files.com 1.1.818 → 1.1.820

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (441) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/_VERSION +1 -1
  4. data/build.sh +1 -1
  5. data/doc/Files/APIConnectionError.html +1 -1
  6. data/doc/Files/APIError.html +1 -1
  7. data/doc/Files/AccountAlreadyExistsError.html +1 -1
  8. data/doc/Files/AccountLineItem.html +1 -1
  9. data/doc/Files/AccountOverdueError.html +1 -1
  10. data/doc/Files/Action.html +1 -1
  11. data/doc/Files/ActionLog.html +1 -1
  12. data/doc/Files/ActionNotificationExport.html +1 -1
  13. data/doc/Files/ActionNotificationExportResult.html +1 -1
  14. data/doc/Files/AdditionalAuthenticationRequiredError.html +1 -1
  15. data/doc/Files/AgentNode.html +1 -1
  16. data/doc/Files/AgentNodeConnection.html +1 -1
  17. data/doc/Files/AgentNodeInstance.html +1 -1
  18. data/doc/Files/AgentPushUpdate.html +1 -1
  19. data/doc/Files/AgentPushUpdateBlockedError.html +1 -1
  20. data/doc/Files/AgentUnavailableError.html +1 -1
  21. data/doc/Files/AgentUpgradeRequiredError.html +1 -1
  22. data/doc/Files/AiAssistantPersonality.html +1 -1
  23. data/doc/Files/AiTask.html +1 -1
  24. data/doc/Files/AiTaskCannotBeRunManuallyError.html +1 -1
  25. data/doc/Files/AlreadyCompletedError.html +1 -1
  26. data/doc/Files/Api.html +1 -1
  27. data/doc/Files/ApiClient/RequestLogContext.html +1 -1
  28. data/doc/Files/ApiClient/TransferSettings.html +1 -1
  29. data/doc/Files/ApiClient.html +1 -1
  30. data/doc/Files/ApiKey.html +1 -1
  31. data/doc/Files/ApiKeyIsDisabledError.html +1 -1
  32. data/doc/Files/ApiKeyIsPathRestrictedError.html +1 -1
  33. data/doc/Files/ApiKeyNotFoundError.html +1 -1
  34. data/doc/Files/ApiKeyOnlyForDesktopAppError.html +1 -1
  35. data/doc/Files/ApiKeyOnlyForFileOperationsError.html +1 -1
  36. data/doc/Files/ApiKeyOnlyForMobileAppError.html +1 -1
  37. data/doc/Files/ApiKeyOnlyForOfficeIntegrationError.html +1 -1
  38. data/doc/Files/ApiKeySessionsNotSupportedError.html +1 -1
  39. data/doc/Files/ApiRequestLog.html +1 -1
  40. data/doc/Files/App.html +1 -1
  41. data/doc/Files/As2IncomingMessage.html +1 -1
  42. data/doc/Files/As2OutgoingMessage.html +1 -1
  43. data/doc/Files/As2Partner.html +1 -1
  44. data/doc/Files/As2Station.html +1 -1
  45. data/doc/Files/AttachmentTooLargeError.html +1 -1
  46. data/doc/Files/AuthenticationError.html +1 -1
  47. data/doc/Files/AuthenticationRequiredError.html +1 -1
  48. data/doc/Files/Auto.html +1 -1
  49. data/doc/Files/Automation.html +1 -1
  50. data/doc/Files/AutomationAuthoringSchema.html +1 -1
  51. data/doc/Files/AutomationCannotBeRunManuallyError.html +1 -1
  52. data/doc/Files/AutomationExecutionNode.html +1 -1
  53. data/doc/Files/AutomationLog.html +1 -1
  54. data/doc/Files/AutomationRun.html +1 -1
  55. data/doc/Files/AutomationsUnavailableError.html +1 -1
  56. data/doc/Files/BadRequestError.html +1 -1
  57. data/doc/Files/BandwidthSnapshot.html +1 -1
  58. data/doc/Files/Behavior.html +1 -1
  59. data/doc/Files/BehaviorNotAllowedOnRemoteServerError.html +1 -1
  60. data/doc/Files/BillingInformationHiddenError.html +1 -1
  61. data/doc/Files/BillingPermissionRequiredError.html +1 -1
  62. data/doc/Files/BufferedUploadDisabledForThisDestinationError.html +1 -1
  63. data/doc/Files/Bundle.html +1 -1
  64. data/doc/Files/BundleAction.html +1 -1
  65. data/doc/Files/BundleDownload.html +1 -1
  66. data/doc/Files/BundleMaximumUsesReachedError.html +1 -1
  67. data/doc/Files/BundleNotification.html +1 -1
  68. data/doc/Files/BundleOnlyAllowsPreviewsError.html +1 -1
  69. data/doc/Files/BundleOperationRequiresSubfolderError.html +1 -1
  70. data/doc/Files/BundlePath.html +1 -1
  71. data/doc/Files/BundlePathNotFoundError.html +1 -1
  72. data/doc/Files/BundlePermissionRequiredError.html +1 -1
  73. data/doc/Files/BundleRecipient.html +1 -1
  74. data/doc/Files/BundleRegistration.html +1 -1
  75. data/doc/Files/BundleRegistrationCodeFailedError.html +1 -1
  76. data/doc/Files/BundleRegistrationNotFoundError.html +1 -1
  77. data/doc/Files/CannotAdministerHigherLevelUserError.html +1 -1
  78. data/doc/Files/CannotDownloadDirectoryError.html +1 -1
  79. data/doc/Files/CannotLoginWhileUsingKeyError.html +1 -1
  80. data/doc/Files/CantActForOtherUserError.html +1 -1
  81. data/doc/Files/CantMoveWithMultipleLocationsError.html +1 -1
  82. data/doc/Files/ChatMessage.html +1 -1
  83. data/doc/Files/ChatSession.html +1 -1
  84. data/doc/Files/ChildSiteManagementPolicy.html +1 -1
  85. data/doc/Files/Clickwrap.html +1 -1
  86. data/doc/Files/CodeNotFoundError.html +1 -1
  87. data/doc/Files/ConfigurationLockedPathError.html +1 -1
  88. data/doc/Files/ContactAdminForPasswordChangeHelpError.html +1 -1
  89. data/doc/Files/CouldNotCreateParentError.html +1 -1
  90. data/doc/Files/CustomDomain.html +1 -1
  91. data/doc/Files/DatetimeParseError.html +1 -1
  92. data/doc/Files/DesktopConfigurationProfile.html +1 -1
  93. data/doc/Files/DestinationExistsError.html +1 -1
  94. data/doc/Files/DestinationFolderLimitedError.html +1 -1
  95. data/doc/Files/DestinationParentConflictError.html +1 -1
  96. data/doc/Files/DestinationParentDoesNotExistError.html +1 -1
  97. data/doc/Files/DestinationSameError.html +1 -1
  98. data/doc/Files/DestinationSiteMismatchError.html +1 -1
  99. data/doc/Files/DirectConnectionInfo.html +1 -1
  100. data/doc/Files/DnsRecord.html +1 -1
  101. data/doc/Files/DoesNotSupportSortingError.html +1 -1
  102. data/doc/Files/DuplicateShareRecipientError.html +1 -1
  103. data/doc/Files/EmailIncomingMessage.html +1 -1
  104. data/doc/Files/EmailLog.html +1 -1
  105. data/doc/Files/Error.html +1 -1
  106. data/doc/Files/Errors.html +1 -1
  107. data/doc/Files/EventChannel.html +1 -1
  108. data/doc/Files/EventDeliveryAttempt.html +1 -1
  109. data/doc/Files/EventRecord.html +1 -1
  110. data/doc/Files/EventSubscription.html +1 -1
  111. data/doc/Files/EventTarget.html +1 -1
  112. data/doc/Files/ExavaultApiRequestLog.html +1 -1
  113. data/doc/Files/ExceededRuntimeLimitError.html +1 -1
  114. data/doc/Files/Expectation.html +1 -1
  115. data/doc/Files/ExpectationAlreadyHasOpenWindowError.html +1 -1
  116. data/doc/Files/ExpectationEvaluation.html +1 -1
  117. data/doc/Files/ExpectationIncident.html +1 -1
  118. data/doc/Files/ExpectationNotManualTriggerError.html +1 -1
  119. data/doc/Files/ExpiredPrivateKeyError.html +1 -1
  120. data/doc/Files/ExpiredPublicKeyError.html +1 -1
  121. data/doc/Files/ExportFailureError.html +1 -1
  122. data/doc/Files/ExportNotReadyError.html +1 -1
  123. data/doc/Files/ExternalEvent.html +1 -1
  124. data/doc/Files/FailedToChangePasswordError.html +1 -1
  125. data/doc/Files/File.html +1 -1
  126. data/doc/Files/FileAction.html +1 -1
  127. data/doc/Files/FileActionError.html +1 -1
  128. data/doc/Files/FileComment.html +1 -1
  129. data/doc/Files/FileCommentReaction.html +1 -1
  130. data/doc/Files/FileLockedError.html +1 -1
  131. data/doc/Files/FileMigration.html +1 -1
  132. data/doc/Files/FileMigrationLog.html +1 -1
  133. data/doc/Files/FileNotFoundError.html +1 -1
  134. data/doc/Files/FileNotUploadedError.html +1 -1
  135. data/doc/Files/FilePendingProcessingError.html +1 -1
  136. data/doc/Files/FileProcessingErrorError.html +1 -1
  137. data/doc/Files/FileTooBigToDecryptError.html +1 -1
  138. data/doc/Files/FileTooBigToEncryptError.html +1 -1
  139. data/doc/Files/FileUploadNotFoundError.html +1 -1
  140. data/doc/Files/FileUploadPart.html +1 -1
  141. data/doc/Files/FileUploadedToWrongRegionError.html +1 -1
  142. data/doc/Files/FileUtils.html +1 -1
  143. data/doc/Files/FilenameTooLongError.html +1 -1
  144. data/doc/Files/FilesAgentFailedAuthorizationError.html +1 -1
  145. data/doc/Files/FilesNativeStorageOverloadedError.html +1 -1
  146. data/doc/Files/Folder.html +1 -1
  147. data/doc/Files/FolderAdminOrBillingPermissionRequiredError.html +1 -1
  148. data/doc/Files/FolderAdminPermissionRequiredError.html +1 -1
  149. data/doc/Files/FolderLockedError.html +1 -1
  150. data/doc/Files/FolderMustNotBeAFileError.html +1 -1
  151. data/doc/Files/FolderNotEmptyError.html +1 -1
  152. data/doc/Files/FoldersNotAllowedError.html +1 -1
  153. data/doc/Files/FormField.html +1 -1
  154. data/doc/Files/FormFieldSet.html +1 -1
  155. data/doc/Files/FtpActionLog.html +1 -1
  156. data/doc/Files/FullPermissionRequiredError.html +1 -1
  157. data/doc/Files/GpgKey.html +1 -1
  158. data/doc/Files/Group.html +1 -1
  159. data/doc/Files/GroupNotFoundError.html +1 -1
  160. data/doc/Files/GroupUser.html +1 -1
  161. data/doc/Files/History.html +1 -1
  162. data/doc/Files/HistoryExport.html +1 -1
  163. data/doc/Files/HistoryExportResult.html +1 -1
  164. data/doc/Files/HistoryPermissionRequiredError.html +1 -1
  165. data/doc/Files/HistoryUnavailableError.html +1 -1
  166. data/doc/Files/HolidayCalendar.html +1 -1
  167. data/doc/Files/HolidayRegion.html +1 -1
  168. data/doc/Files/Image.html +1 -1
  169. data/doc/Files/InAppAiAssistantUnavailableError.html +1 -1
  170. data/doc/Files/InboundS3Log.html +1 -1
  171. data/doc/Files/InboxNotFoundError.html +1 -1
  172. data/doc/Files/InboxRecipient.html +1 -1
  173. data/doc/Files/InboxRegistration.html +1 -1
  174. data/doc/Files/InboxRegistrationCodeFailedError.html +1 -1
  175. data/doc/Files/InboxUpload.html +1 -1
  176. data/doc/Files/InsufficientPermissionForParamsError.html +1 -1
  177. data/doc/Files/InsufficientPermissionForSiteError.html +1 -1
  178. data/doc/Files/IntegrationCentricProfile.html +1 -1
  179. data/doc/Files/InternalGeneralErrorError.html +1 -1
  180. data/doc/Files/InvalidBodyError.html +1 -1
  181. data/doc/Files/InvalidBundleCodeError.html +1 -1
  182. data/doc/Files/InvalidCredentialsError.html +1 -1
  183. data/doc/Files/InvalidCursorError.html +1 -1
  184. data/doc/Files/InvalidCursorTypeForSortError.html +1 -1
  185. data/doc/Files/InvalidEtagsError.html +1 -1
  186. data/doc/Files/InvalidFileTypeError.html +1 -1
  187. data/doc/Files/InvalidFilenameError.html +1 -1
  188. data/doc/Files/InvalidFilterAliasCombinationError.html +1 -1
  189. data/doc/Files/InvalidFilterFieldError.html +1 -1
  190. data/doc/Files/InvalidFilterParamError.html +1 -1
  191. data/doc/Files/InvalidFilterParamFormatError.html +1 -1
  192. data/doc/Files/InvalidFilterParamValueError.html +1 -1
  193. data/doc/Files/InvalidInputEncodingError.html +1 -1
  194. data/doc/Files/InvalidInterfaceError.html +1 -1
  195. data/doc/Files/InvalidOauthError.html +1 -1
  196. data/doc/Files/InvalidOauthProviderError.html +1 -1
  197. data/doc/Files/InvalidOrExpiredCodeError.html +1 -1
  198. data/doc/Files/InvalidParameterError.html +1 -1
  199. data/doc/Files/InvalidPathError.html +1 -1
  200. data/doc/Files/InvalidPriorityColorError.html +1 -1
  201. data/doc/Files/InvalidRangeError.html +1 -1
  202. data/doc/Files/InvalidReturnToUrlError.html +1 -1
  203. data/doc/Files/InvalidSearchQueryError.html +1 -1
  204. data/doc/Files/InvalidSessionError.html +1 -1
  205. data/doc/Files/InvalidSiteError.html +1 -1
  206. data/doc/Files/InvalidSortFieldError.html +1 -1
  207. data/doc/Files/InvalidSortFilterCombinationError.html +1 -1
  208. data/doc/Files/InvalidUploadOffsetError.html +1 -1
  209. data/doc/Files/InvalidUploadPartGapError.html +1 -1
  210. data/doc/Files/InvalidUploadPartSizeError.html +1 -1
  211. data/doc/Files/InvalidUsernameOrPasswordError.html +1 -1
  212. data/doc/Files/InvalidWorkspaceIdHeaderError.html +1 -1
  213. data/doc/Files/InvalidZipFileError.html +1 -1
  214. data/doc/Files/Invoice.html +1 -1
  215. data/doc/Files/InvoiceLineItem.html +1 -1
  216. data/doc/Files/IpAddress.html +1 -1
  217. data/doc/Files/KeyLifecycleRule.html +1 -1
  218. data/doc/Files/List.html +1 -1
  219. data/doc/Files/Lock.html +1 -1
  220. data/doc/Files/LockOperationBusyError.html +1 -1
  221. data/doc/Files/LockedOutError.html +1 -1
  222. data/doc/Files/LockoutRegionMismatchError.html +1 -1
  223. data/doc/Files/MetadataCategory.html +1 -1
  224. data/doc/Files/MetadataNotSupportedOnRemotesError.html +1 -1
  225. data/doc/Files/MethodNotAllowedError.html +1 -1
  226. data/doc/Files/MigrationInProgressError.html +1 -1
  227. data/doc/Files/MissingParameterError.html +1 -1
  228. data/doc/Files/ModelSaveErrorError.html +1 -1
  229. data/doc/Files/MoverAccessDeniedError.html +1 -1
  230. data/doc/Files/MoverPackageRequiredError.html +1 -1
  231. data/doc/Files/MultipleProcessingErrorsError.html +1 -1
  232. data/doc/Files/MultipleSortParamsNotAllowedError.html +1 -1
  233. data/doc/Files/MustAuthenticateWithApiKeyError.html +1 -1
  234. data/doc/Files/NeedAdminPermissionForInboxError.html +1 -1
  235. data/doc/Files/NestedNotFoundError.html +1 -1
  236. data/doc/Files/NoAccountForSiteError.html +1 -1
  237. data/doc/Files/NoValidInputParamsError.html +1 -1
  238. data/doc/Files/NonAdminsMustQueryByFolderOrPathError.html +1 -1
  239. data/doc/Files/NotAllowedToCreateBundleError.html +1 -1
  240. data/doc/Files/NotAuthenticatedError.html +1 -1
  241. data/doc/Files/NotAuthorizedError.html +1 -1
  242. data/doc/Files/NotEnqueuableSyncError.html +1 -1
  243. data/doc/Files/NotFoundError.html +1 -1
  244. data/doc/Files/NotImplementedError.html +1 -1
  245. data/doc/Files/Notification.html +1 -1
  246. data/doc/Files/OffsetUploadNotAllowedWithMalwareScanningError.html +1 -1
  247. data/doc/Files/OneTimePasswordIncorrectError.html +1 -1
  248. data/doc/Files/OutboundConnectionLog.html +1 -1
  249. data/doc/Files/PartNumberTooLargeError.html +1 -1
  250. data/doc/Files/Partner.html +1 -1
  251. data/doc/Files/PartnerChannel.html +1 -1
  252. data/doc/Files/PartnerChannelTemplate.html +1 -1
  253. data/doc/Files/PartnerConnection.html +1 -1
  254. data/doc/Files/PartnerSite.html +1 -1
  255. data/doc/Files/PartnerSiteRequest.html +1 -1
  256. data/doc/Files/PasswordChangeNotRequiredError.html +1 -1
  257. data/doc/Files/PasswordChangeRequiredError.html +1 -1
  258. data/doc/Files/PathCannotHaveTrailingWhitespaceError.html +1 -1
  259. data/doc/Files/PathTooLongError.html +1 -1
  260. data/doc/Files/PathUtil.html +1 -1
  261. data/doc/Files/Payment.html +1 -1
  262. data/doc/Files/PaymentLineItem.html +1 -1
  263. data/doc/Files/PaymentMethodErrorError.html +1 -1
  264. data/doc/Files/PendingWorkEvent.html +1 -1
  265. data/doc/Files/Permission.html +1 -1
  266. data/doc/Files/PlanNotFoundError.html +1 -1
  267. data/doc/Files/Preview.html +1 -1
  268. data/doc/Files/PreviewOnlyPermissionCannotDownloadError.html +1 -1
  269. data/doc/Files/ProcessingFailureError.html +1 -1
  270. data/doc/Files/PublicHostingRequestLog.html +1 -1
  271. data/doc/Files/PublicIpAddress.html +1 -1
  272. data/doc/Files/PublicKey.html +1 -1
  273. data/doc/Files/RateLimitedError.html +1 -1
  274. data/doc/Files/ReadOnlySessionError.html +1 -1
  275. data/doc/Files/ReadPermissionRequiredError.html +1 -1
  276. data/doc/Files/ReauthenticationFailedError.html +1 -1
  277. data/doc/Files/ReauthenticationFailedFinalError.html +1 -1
  278. data/doc/Files/ReauthenticationNeededActionError.html +1 -1
  279. data/doc/Files/ReauthenticationNeededFieldsError.html +1 -1
  280. data/doc/Files/ReauthenticationRateLimitedError.html +1 -1
  281. data/doc/Files/RecaptchaFailedError.html +1 -1
  282. data/doc/Files/RecipientAlreadySharedError.html +1 -1
  283. data/doc/Files/RemoteBandwidthSnapshot.html +1 -1
  284. data/doc/Files/RemoteDesktopDebugLoggingDisabledError.html +1 -1
  285. data/doc/Files/RemoteEntryReadOnlyError.html +1 -1
  286. data/doc/Files/RemoteMountBackend.html +1 -1
  287. data/doc/Files/RemoteServer.html +1 -1
  288. data/doc/Files/RemoteServerConfigurationFile.html +1 -1
  289. data/doc/Files/RemoteServerCredential.html +1 -1
  290. data/doc/Files/RemoteServerErrorError.html +1 -1
  291. data/doc/Files/Request.html +1 -1
  292. data/doc/Files/RequestBodyTooLargeError.html +1 -1
  293. data/doc/Files/RequestParamsContainInvalidCharacterError.html +1 -1
  294. data/doc/Files/RequestParamsInvalidError.html +1 -1
  295. data/doc/Files/RequestParamsRequiredError.html +1 -1
  296. data/doc/Files/ResourceBelongsToParentSiteError.html +1 -1
  297. data/doc/Files/ResourceLockedError.html +1 -1
  298. data/doc/Files/Response.html +1 -1
  299. data/doc/Files/Restore.html +1 -1
  300. data/doc/Files/RootFolderBehaviorSiteAdminRequiredError.html +1 -1
  301. data/doc/Files/RootFolderBehaviorSkipSiteAdminRequiredError.html +1 -1
  302. data/doc/Files/Schedule.html +1 -1
  303. data/doc/Files/ScheduledExport.html +1 -1
  304. data/doc/Files/ScimLog.html +1 -1
  305. data/doc/Files/SearchAllOnChildPathError.html +1 -1
  306. data/doc/Files/SearchUnavailableError.html +1 -1
  307. data/doc/Files/Secret.html +1 -1
  308. data/doc/Files/SelfManagedRequiredError.html +1 -1
  309. data/doc/Files/ServiceUnavailableError.html +1 -1
  310. data/doc/Files/Session.html +1 -1
  311. data/doc/Files/SettingsChange.html +1 -1
  312. data/doc/Files/SftpActionLog.html +1 -1
  313. data/doc/Files/SftpHostKey.html +1 -1
  314. data/doc/Files/ShareGroup.html +1 -1
  315. data/doc/Files/ShareGroupMember.html +1 -1
  316. data/doc/Files/SiemHttpDestination.html +1 -1
  317. data/doc/Files/SiemHttpDestinationEvent.html +1 -1
  318. data/doc/Files/Site.html +1 -1
  319. data/doc/Files/SiteAdminOrPartnerAdminPermissionRequiredError.html +1 -1
  320. data/doc/Files/SiteAdminOrWorkspaceAdminOrFolderAdminPermissionRequiredError.html +1 -1
  321. data/doc/Files/SiteAdminOrWorkspaceAdminOrPartnerAdminOrFolderAdminPermissionRequiredError.html +1 -1
  322. data/doc/Files/SiteAdminOrWorkspaceAdminOrPartnerAdminPermissionRequiredError.html +1 -1
  323. data/doc/Files/SiteAdminOrWorkspaceAdminPermissionRequiredError.html +1 -1
  324. data/doc/Files/SiteAdminRequiredError.html +1 -1
  325. data/doc/Files/SiteConfigurationError.html +1 -1
  326. data/doc/Files/SiteDisabledError.html +1 -1
  327. data/doc/Files/SiteFilesAreImmutableError.html +1 -1
  328. data/doc/Files/SiteNotFoundError.html +1 -1
  329. data/doc/Files/SiteSubdomainRedirect.html +1 -1
  330. data/doc/Files/SiteWasRemovedError.html +1 -1
  331. data/doc/Files/SizableIO.html +1 -1
  332. data/doc/Files/Snapshot.html +1 -1
  333. data/doc/Files/SsoEvent.html +1 -1
  334. data/doc/Files/SsoStrategy.html +1 -1
  335. data/doc/Files/Status.html +1 -1
  336. data/doc/Files/Style.html +1 -1
  337. data/doc/Files/SubfolderLockedError.html +1 -1
  338. data/doc/Files/Sync.html +1 -1
  339. data/doc/Files/SyncInProgressError.html +1 -1
  340. data/doc/Files/SyncLog.html +1 -1
  341. data/doc/Files/SyncRun.html +1 -1
  342. data/doc/Files/SyncRunLiveTransfer.html +1 -1
  343. data/doc/Files/SystemProfiler.html +1 -1
  344. data/doc/Files/TooManyConcurrentLoginsError.html +1 -1
  345. data/doc/Files/TooManyConcurrentRequestsError.html +1 -1
  346. data/doc/Files/TooManyLoginAttemptsError.html +1 -1
  347. data/doc/Files/TooManyRequestsError.html +1 -1
  348. data/doc/Files/TooManySharesError.html +1 -1
  349. data/doc/Files/Transfer/BufferLimitError.html +1 -1
  350. data/doc/Files/Transfer/ByteBudget/Reservation.html +1 -1
  351. data/doc/Files/Transfer/ByteBudget.html +1 -1
  352. data/doc/Files/Transfer/CancelledError.html +1 -1
  353. data/doc/Files/Transfer/Checkpoint.html +1 -1
  354. data/doc/Files/Transfer/CheckpointError.html +1 -1
  355. data/doc/Files/Transfer/ClientTransport/ClientResponse.html +1 -1
  356. data/doc/Files/Transfer/ClientTransport/Reader.html +1 -1
  357. data/doc/Files/Transfer/ClientTransport.html +1 -1
  358. data/doc/Files/Transfer/Clock.html +1 -1
  359. data/doc/Files/Transfer/Control.html +1 -1
  360. data/doc/Files/Transfer/Controller/Attempt.html +1 -1
  361. data/doc/Files/Transfer/Controller.html +1 -1
  362. data/doc/Files/Transfer/Coordinator/Timing.html +1 -1
  363. data/doc/Files/Transfer/Coordinator.html +1 -1
  364. data/doc/Files/Transfer/DownloadCoordinator/FileSink.html +1 -1
  365. data/doc/Files/Transfer/DownloadCoordinator/IoSink.html +1 -1
  366. data/doc/Files/Transfer/DownloadCoordinator/Piece.html +1 -1
  367. data/doc/Files/Transfer/DownloadCoordinator.html +1 -1
  368. data/doc/Files/Transfer/FileSlots.html +1 -1
  369. data/doc/Files/Transfer/FrontendResponseError.html +1 -1
  370. data/doc/Files/Transfer/Holds.html +1 -1
  371. data/doc/Files/Transfer/HttpTransport.html +1 -1
  372. data/doc/Files/Transfer/Job.html +1 -1
  373. data/doc/Files/Transfer/Options.html +1 -1
  374. data/doc/Files/Transfer/PausedError.html +1 -1
  375. data/doc/Files/Transfer/Policy.html +1 -1
  376. data/doc/Files/Transfer/RequestPermits.html +1 -1
  377. data/doc/Files/Transfer/SourceChangedError.html +1 -1
  378. data/doc/Files/Transfer/StorageResponse.html +1 -1
  379. data/doc/Files/Transfer/StorageRetry.html +1 -1
  380. data/doc/Files/Transfer/UploadCoordinator/Grant.html +1 -1
  381. data/doc/Files/Transfer/UploadCoordinator/Part.html +1 -1
  382. data/doc/Files/Transfer/UploadCoordinator/Region.html +1 -1
  383. data/doc/Files/Transfer/UploadCoordinator/Segments.html +1 -1
  384. data/doc/Files/Transfer/UploadCoordinator/Source.html +1 -1
  385. data/doc/Files/Transfer/UploadCoordinator/StreamSource.html +1 -1
  386. data/doc/Files/Transfer/UploadCoordinator.html +1 -1
  387. data/doc/Files/Transfer/UploadPlan.html +1 -1
  388. data/doc/Files/Transfer/VersionChangedError.html +1 -1
  389. data/doc/Files/Transfer.html +1 -1
  390. data/doc/Files/TrialExpiredError.html +1 -1
  391. data/doc/Files/TrialLockedError.html +1 -1
  392. data/doc/Files/TwoFactorAuthenticationCodeAlreadySentError.html +1 -1
  393. data/doc/Files/TwoFactorAuthenticationCountryBlacklistedError.html +1 -1
  394. data/doc/Files/TwoFactorAuthenticationErrorError.html +1 -1
  395. data/doc/Files/TwoFactorAuthenticationGeneralErrorError.html +1 -1
  396. data/doc/Files/TwoFactorAuthenticationMethodUnsupportedErrorError.html +1 -1
  397. data/doc/Files/TwoFactorAuthenticationRequiredError.html +1 -1
  398. data/doc/Files/TwoFactorAuthenticationSetupExpiredError.html +1 -1
  399. data/doc/Files/TwoFactorAuthenticationUnsubscribedRecipientError.html +1 -1
  400. data/doc/Files/URI.html +1 -1
  401. data/doc/Files/UnrecognizedSortIndexError.html +1 -1
  402. data/doc/Files/UnsupportedCurrencyError.html +1 -1
  403. data/doc/Files/UnsupportedHttpResponseFormatError.html +1 -1
  404. data/doc/Files/UnsupportedMediaTypeError.html +1 -1
  405. data/doc/Files/UpdatesNotAllowedForRemotesError.html +1 -1
  406. data/doc/Files/UploadsUnavailableError.html +1 -1
  407. data/doc/Files/UsageByTopLevelDir.html +1 -1
  408. data/doc/Files/UsageDailySnapshot.html +1 -1
  409. data/doc/Files/UsageSnapshot.html +1 -1
  410. data/doc/Files/User.html +5 -5
  411. data/doc/Files/UserAdditionalEmailRecipient.html +1 -1
  412. data/doc/Files/UserCipherUse.html +1 -1
  413. data/doc/Files/UserIdInvalidError.html +1 -1
  414. data/doc/Files/UserIdOnUserEndpointError.html +1 -1
  415. data/doc/Files/UserIdWithoutSiteAdminError.html +1 -1
  416. data/doc/Files/UserLifecycleRule.html +1 -1
  417. data/doc/Files/UserNotFoundError.html +1 -1
  418. data/doc/Files/UserRequest.html +1 -1
  419. data/doc/Files/UserRequestsEnabledRequiredError.html +1 -1
  420. data/doc/Files/UserRequiredError.html +1 -1
  421. data/doc/Files/UserSecurityEvent.html +1 -1
  422. data/doc/Files/UserSftpClientUse.html +1 -1
  423. data/doc/Files/Util/LogSettings.html +1 -1
  424. data/doc/Files/Util.html +1 -1
  425. data/doc/Files/WebDavActionLog.html +1 -1
  426. data/doc/Files/WebhookTest.html +1 -1
  427. data/doc/Files/Workspace.html +1 -1
  428. data/doc/Files/WriteAndBundlePermissionRequiredError.html +1 -1
  429. data/doc/Files/WritePermissionRequiredError.html +1 -1
  430. data/doc/Files/ZipListEntry.html +1 -1
  431. data/doc/Files.html +1 -1
  432. data/doc/_index.html +1 -1
  433. data/doc/file.README.html +1 -1
  434. data/doc/index.html +1 -1
  435. data/doc/top-level-namespace.html +1 -1
  436. data/docs/user.md +2 -2
  437. data/lib/files.com/models/user.rb +2 -2
  438. data/shared-functional-tests.sh +12 -0
  439. data/test/test.rb +77 -14
  440. data/test.sh +2 -1
  441. metadata +2 -1
@@ -170,7 +170,7 @@
170
170
  </div>
171
171
 
172
172
  <div id="footer">
173
- Generated on Fri Nov 6 18:22:04 2026 by
173
+ Generated on Fri Nov 6 21:05:45 2026 by
174
174
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
175
175
  0.9.45 (ruby-4.0.9).
176
176
  </div>
@@ -5574,7 +5574,7 @@ Each instance keeps its API field values in <code>attributes</code>.</p>
5574
5574
  </div>
5575
5575
 
5576
5576
  <div id="footer">
5577
- Generated on Fri Nov 6 18:22:37 2026 by
5577
+ Generated on Fri Nov 6 21:06:06 2026 by
5578
5578
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
5579
5579
  0.9.45 (ruby-4.0.9).
5580
5580
  </div>
@@ -170,7 +170,7 @@
170
170
  </div>
171
171
 
172
172
  <div id="footer">
173
- Generated on Fri Nov 6 18:22:04 2026 by
173
+ Generated on Fri Nov 6 21:05:45 2026 by
174
174
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
175
175
  0.9.45 (ruby-4.0.9).
176
176
  </div>
@@ -3013,7 +3013,7 @@ Each instance keeps its API field values in <code>attributes</code>.</p>
3013
3013
  </div>
3014
3014
 
3015
3015
  <div id="footer">
3016
- Generated on Fri Nov 6 18:22:23 2026 by
3016
+ Generated on Fri Nov 6 21:05:57 2026 by
3017
3017
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
3018
3018
  0.9.45 (ruby-4.0.9).
3019
3019
  </div>
@@ -170,7 +170,7 @@
170
170
  </div>
171
171
 
172
172
  <div id="footer">
173
- Generated on Fri Nov 6 18:22:05 2026 by
173
+ Generated on Fri Nov 6 21:05:46 2026 by
174
174
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
175
175
  0.9.45 (ruby-4.0.9).
176
176
  </div>
@@ -170,7 +170,7 @@
170
170
  </div>
171
171
 
172
172
  <div id="footer">
173
- Generated on Fri Nov 6 18:22:03 2026 by
173
+ Generated on Fri Nov 6 21:05:45 2026 by
174
174
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
175
175
  0.9.45 (ruby-4.0.9).
176
176
  </div>
@@ -1858,7 +1858,7 @@ Each instance keeps its API field values in <code>attributes</code>.</p>
1858
1858
  </div>
1859
1859
 
1860
1860
  <div id="footer">
1861
- Generated on Fri Nov 6 18:22:37 2026 by
1861
+ Generated on Fri Nov 6 21:06:06 2026 by
1862
1862
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1863
1863
  0.9.45 (ruby-4.0.9).
1864
1864
  </div>
@@ -1262,7 +1262,7 @@ Each instance keeps its API field values in <code>attributes</code>.</p>
1262
1262
  </div>
1263
1263
 
1264
1264
  <div id="footer">
1265
- Generated on Fri Nov 6 18:22:39 2026 by
1265
+ Generated on Fri Nov 6 21:06:06 2026 by
1266
1266
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1267
1267
  0.9.45 (ruby-4.0.9).
1268
1268
  </div>
@@ -301,7 +301,7 @@ standard output or error at <code>log_level</code> and above. A nil <code>log_le
301
301
  </div>
302
302
 
303
303
  <div id="footer">
304
- Generated on Fri Nov 6 18:22:02 2026 by
304
+ Generated on Fri Nov 6 21:05:44 2026 by
305
305
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
306
306
  0.9.45 (ruby-4.0.9).
307
307
  </div>
data/doc/Files/Util.html CHANGED
@@ -966,7 +966,7 @@ credentials, query, fragment, spaces or backslashes.</p>
966
966
  </div>
967
967
 
968
968
  <div id="footer">
969
- Generated on Fri Nov 6 18:22:02 2026 by
969
+ Generated on Fri Nov 6 21:05:44 2026 by
970
970
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
971
971
  0.9.45 (ruby-4.0.9).
972
972
  </div>
@@ -2359,7 +2359,7 @@ Each instance keeps its API field values in <code>attributes</code>.</p>
2359
2359
  </div>
2360
2360
 
2361
2361
  <div id="footer">
2362
- Generated on Fri Nov 6 18:22:37 2026 by
2362
+ Generated on Fri Nov 6 21:06:05 2026 by
2363
2363
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
2364
2364
  0.9.45 (ruby-4.0.9).
2365
2365
  </div>
@@ -3442,7 +3442,7 @@ Each instance keeps its API field values in <code>attributes</code>.</p>
3442
3442
  </div>
3443
3443
 
3444
3444
  <div id="footer">
3445
- Generated on Fri Nov 6 18:22:23 2026 by
3445
+ Generated on Fri Nov 6 21:05:57 2026 by
3446
3446
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
3447
3447
  0.9.45 (ruby-4.0.9).
3448
3448
  </div>
@@ -2894,7 +2894,7 @@ Each instance keeps its API field values in <code>attributes</code>.</p>
2894
2894
  </div>
2895
2895
 
2896
2896
  <div id="footer">
2897
- Generated on Fri Nov 6 18:22:17 2026 by
2897
+ Generated on Fri Nov 6 21:05:54 2026 by
2898
2898
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
2899
2899
  0.9.45 (ruby-4.0.9).
2900
2900
  </div>
@@ -170,7 +170,7 @@
170
170
  </div>
171
171
 
172
172
  <div id="footer">
173
- Generated on Fri Nov 6 18:22:04 2026 by
173
+ Generated on Fri Nov 6 21:05:45 2026 by
174
174
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
175
175
  0.9.45 (ruby-4.0.9).
176
176
  </div>
@@ -170,7 +170,7 @@
170
170
  </div>
171
171
 
172
172
  <div id="footer">
173
- Generated on Fri Nov 6 18:22:04 2026 by
173
+ Generated on Fri Nov 6 21:05:45 2026 by
174
174
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
175
175
  0.9.45 (ruby-4.0.9).
176
176
  </div>
@@ -579,7 +579,7 @@ Each instance keeps its API field values in <code>attributes</code>.</p>
579
579
  </div>
580
580
 
581
581
  <div id="footer">
582
- Generated on Fri Nov 6 18:22:33 2026 by
582
+ Generated on Fri Nov 6 21:06:03 2026 by
583
583
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
584
584
  0.9.45 (ruby-4.0.9).
585
585
  </div>
data/doc/Files.html CHANGED
@@ -1725,7 +1725,7 @@ with API requests.</p>
1725
1725
  </div>
1726
1726
 
1727
1727
  <div id="footer">
1728
- Generated on Fri Nov 6 18:22:02 2026 by
1728
+ Generated on Fri Nov 6 21:05:44 2026 by
1729
1729
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1730
1730
  0.9.45 (ruby-4.0.9).
1731
1731
  </div>
data/doc/_index.html CHANGED
@@ -3263,7 +3263,7 @@
3263
3263
  </div>
3264
3264
 
3265
3265
  <div id="footer">
3266
- Generated on Fri Nov 6 18:22:01 2026 by
3266
+ Generated on Fri Nov 6 21:05:44 2026 by
3267
3267
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
3268
3268
  0.9.45 (ruby-4.0.9).
3269
3269
  </div>
data/doc/file.README.html CHANGED
@@ -1567,7 +1567,7 @@ reference locally. YARD is a development dependency; using the SDK does not
1567
1567
  require it. The normal <code>build.sh</code> also generates the reference. <code>bundle exec rake build</code> generates it before packaging and includes <code>doc/</code> in the gem.</p></div></div>
1568
1568
 
1569
1569
  <div id="footer">
1570
- Generated on Fri Nov 6 18:22:02 2026 by
1570
+ Generated on Fri Nov 6 21:05:44 2026 by
1571
1571
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1572
1572
  0.9.45 (ruby-4.0.9).
1573
1573
  </div>
data/doc/index.html CHANGED
@@ -1567,7 +1567,7 @@ reference locally. YARD is a development dependency; using the SDK does not
1567
1567
  require it. The normal <code>build.sh</code> also generates the reference. <code>bundle exec rake build</code> generates it before packaging and includes <code>doc/</code> in the gem.</p></div></div>
1568
1568
 
1569
1569
  <div id="footer">
1570
- Generated on Fri Nov 6 18:22:02 2026 by
1570
+ Generated on Fri Nov 6 21:05:44 2026 by
1571
1571
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
1572
1572
  0.9.45 (ruby-4.0.9).
1573
1573
  </div>
@@ -102,7 +102,7 @@
102
102
  </div>
103
103
 
104
104
  <div id="footer">
105
- Generated on Fri Nov 6 18:22:02 2026 by
105
+ Generated on Fri Nov 6 21:05:44 2026 by
106
106
  <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
107
107
  0.9.45 (ruby-4.0.9).
108
108
  </div>
data/docs/user.md CHANGED
@@ -216,8 +216,8 @@ Files::User.list(
216
216
 
217
217
  * `cursor` (string): Used for pagination. When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`. Send one of those cursor value here to resume an existing list from the next available record. Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination.
218
218
  * `per_page` (int64): Number of records to show per page. (Max: 10000, 1,000 or less is recommended).
219
- * `sort_by` (object): If set, sort records by the specified field in either `asc` or `desc` direction. Valid fields are `site_id`, `company`, `name`, `disabled`, `authenticate_until`, `email`, `username`, `workspace_id`, `last_desktop_login_at`, `last_login_at`, `site_admin`, `password_validity_days` or `ssl_required`.
220
- * `filter` (object): If set, return records where the specified field is equal to the supplied value. Valid fields are `username`, `name`, `email`, `company`, `site_admin`, `password_validity_days`, `ssl_required`, `last_login_at`, `authenticate_until`, `not_site_admin`, `disabled`, `partner_id`, `primary_group_id` or `workspace_id`. Valid field combinations are `[ site_admin, username ]`, `[ not_site_admin, username ]`, `[ workspace_id, username ]`, `[ company, name ]`, `[ workspace_id, name ]`, `[ workspace_id, email ]`, `[ workspace_id, company ]`, `[ workspace_id, site_admin ]`, `[ workspace_id, not_site_admin ]`, `[ workspace_id, disabled ]`, `[ workspace_id, partner_id ]`, `[ workspace_id, site_admin, username ]`, `[ workspace_id, not_site_admin, username ]`, `[ workspace_id, disabled, username ]`, `[ workspace_id, partner_id, username ]` or `[ workspace_id, company, name ]`.
219
+ * `sort_by` (object): If set, sort records by the specified field in either `asc` or `desc` direction. Valid fields are `site_id`, `company`, `name`, `disabled`, `authenticate_until`, `email`, `username`, `workspace_id`, `last_desktop_login_at`, `last_login_at`, `site_admin`, `password_validity_days`, `ssl_required` or `ftp_tls_session_reuse_required`.
220
+ * `filter` (object): If set, return records where the specified field is equal to the supplied value. Valid fields are `username`, `name`, `email`, `company`, `site_admin`, `password_validity_days`, `ssl_required`, `ftp_tls_session_reuse_required`, `last_login_at`, `authenticate_until`, `not_site_admin`, `disabled`, `partner_id`, `primary_group_id` or `workspace_id`. Valid field combinations are `[ site_admin, username ]`, `[ not_site_admin, username ]`, `[ workspace_id, username ]`, `[ company, name ]`, `[ workspace_id, name ]`, `[ workspace_id, email ]`, `[ workspace_id, company ]`, `[ workspace_id, site_admin ]`, `[ workspace_id, not_site_admin ]`, `[ workspace_id, disabled ]`, `[ workspace_id, partner_id ]`, `[ workspace_id, site_admin, username ]`, `[ workspace_id, not_site_admin, username ]`, `[ workspace_id, disabled, username ]`, `[ workspace_id, partner_id, username ]` or `[ workspace_id, company, name ]`.
221
221
  * `filter_gt` (object): If set, return records where the specified field is greater than the supplied value. Valid fields are `password_validity_days`, `last_login_at` or `authenticate_until`.
222
222
  * `filter_gteq` (object): If set, return records where the specified field is greater than or equal the supplied value. Valid fields are `password_validity_days`, `last_login_at` or `authenticate_until`.
223
223
  * `filter_prefix` (object): If set, return records where the specified field is prefixed by the supplied value. Valid fields are `username`, `name`, `email` or `company`. Valid field combinations are `[ company, name ]`.
@@ -1592,8 +1592,8 @@ module Files
1592
1592
  # @param params [Hash] API parameters, keyed by Symbol.
1593
1593
  # @option params [String] cursor Used for pagination. When a list request has more records available, cursors are provided in the response headers `X-Files-Cursor-Next` and `X-Files-Cursor-Prev`. Send one of those cursor value here to resume an existing list from the next available record. Note: many of our SDKs have iterator methods that will automatically handle cursor-based pagination.
1594
1594
  # @option params [Integer] per_page Number of records to show per page. (Max: 10000, 1,000 or less is recommended).
1595
- # @option params [Hash] sort_by If set, sort records by the specified field in either `asc` or `desc` direction. Valid fields are `site_id`, `company`, `name`, `disabled`, `authenticate_until`, `email`, `username`, `workspace_id`, `last_desktop_login_at`, `last_login_at`, `site_admin`, `password_validity_days` or `ssl_required`.
1596
- # @option params [Hash] filter If set, return records where the specified field is equal to the supplied value. Valid fields are `username`, `name`, `email`, `company`, `site_admin`, `password_validity_days`, `ssl_required`, `last_login_at`, `authenticate_until`, `not_site_admin`, `disabled`, `partner_id`, `primary_group_id` or `workspace_id`. Valid field combinations are `[ site_admin, username ]`, `[ not_site_admin, username ]`, `[ workspace_id, username ]`, `[ company, name ]`, `[ workspace_id, name ]`, `[ workspace_id, email ]`, `[ workspace_id, company ]`, `[ workspace_id, site_admin ]`, `[ workspace_id, not_site_admin ]`, `[ workspace_id, disabled ]`, `[ workspace_id, partner_id ]`, `[ workspace_id, site_admin, username ]`, `[ workspace_id, not_site_admin, username ]`, `[ workspace_id, disabled, username ]`, `[ workspace_id, partner_id, username ]` or `[ workspace_id, company, name ]`.
1595
+ # @option params [Hash] sort_by If set, sort records by the specified field in either `asc` or `desc` direction. Valid fields are `site_id`, `company`, `name`, `disabled`, `authenticate_until`, `email`, `username`, `workspace_id`, `last_desktop_login_at`, `last_login_at`, `site_admin`, `password_validity_days`, `ssl_required` or `ftp_tls_session_reuse_required`.
1596
+ # @option params [Hash] filter If set, return records where the specified field is equal to the supplied value. Valid fields are `username`, `name`, `email`, `company`, `site_admin`, `password_validity_days`, `ssl_required`, `ftp_tls_session_reuse_required`, `last_login_at`, `authenticate_until`, `not_site_admin`, `disabled`, `partner_id`, `primary_group_id` or `workspace_id`. Valid field combinations are `[ site_admin, username ]`, `[ not_site_admin, username ]`, `[ workspace_id, username ]`, `[ company, name ]`, `[ workspace_id, name ]`, `[ workspace_id, email ]`, `[ workspace_id, company ]`, `[ workspace_id, site_admin ]`, `[ workspace_id, not_site_admin ]`, `[ workspace_id, disabled ]`, `[ workspace_id, partner_id ]`, `[ workspace_id, site_admin, username ]`, `[ workspace_id, not_site_admin, username ]`, `[ workspace_id, disabled, username ]`, `[ workspace_id, partner_id, username ]` or `[ workspace_id, company, name ]`.
1597
1597
  # @option params [Hash] filter_gt If set, return records where the specified field is greater than the supplied value. Valid fields are `password_validity_days`, `last_login_at` or `authenticate_until`.
1598
1598
  # @option params [Hash] filter_gteq If set, return records where the specified field is greater than or equal the supplied value. Valid fields are `password_validity_days`, `last_login_at` or `authenticate_until`.
1599
1599
  # @option params [Hash] filter_prefix If set, return records where the specified field is prefixed by the supplied value. Valid fields are `username`, `name`, `email` or `company`. Valid field combinations are `[ company, name ]`.
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env ruby
2
+ require "bundler"
3
+ Bundler.with_unbundled_env do
4
+ Dir.chdir(__dir__) do
5
+ mock = File.expand_path("../mock-server", Dir.pwd)
6
+ out = ENV.fetch("FILES_RUBY_FUNCTIONAL_OUT", File.expand_path("../../verification-ruby/manual-functional", Dir.pwd))
7
+ exit 1 unless system("ruby", File.join(mock, "with-scenario.rb"), "--scenario", "users-find", "--out", out,
8
+ "--consumer-timeout", "60", "--", "bundle", "exec", "ruby", "test/test.rb", "--shared-simulator"
9
+ )
10
+ exit(system("bundle", "exec", "ruby", "test/test.rb", "--check-shared-simulator", out) ? 0 : 1)
11
+ end
12
+ end
data/test/test.rb CHANGED
@@ -1,15 +1,13 @@
1
- require '../lib/files.com'
1
+ require_relative '../lib/files.com'
2
+ require 'json'
3
+ require 'net/http'
4
+ require 'uri'
2
5
  require 'tempfile'
3
6
 
4
7
  def assert(value)
5
8
  raise "failed assertion" unless value
6
9
  end
7
10
 
8
- Files.api_key = File.read(File.expand_path("../../../.test_credentials", __dir__)).strip
9
- Files.base_url = "https://sdk.filesstaging.av"
10
- Files.logger = Logger.new($stdout)
11
- Files.log_level = 'debug'
12
-
13
11
  def test_user_list_and_update
14
12
  user = Files::User.all.first
15
13
  user = Files::User.find(user.id)
@@ -34,10 +32,10 @@ def test_folder_operations
34
32
  name = "folder_#{Time.now.to_i}"
35
33
  Files::Folder.create(name)
36
34
  file = Files::File.find(name)
37
- file.copy("#{name}_copy")
35
+ file.copy(destination: "#{name}_copy")
38
36
  file.delete
39
37
  file = Files::File.find("#{name}_copy")
40
- file.move("#{name}_moved_copy")
38
+ file.move(destination: "#{name}_moved_copy")
41
39
  file = Files::File.find("#{name}_moved_copy")
42
40
  Files::Folder.create("#{file.path}/child")
43
41
  Files::FileUtils.rm_r(file.path)
@@ -67,9 +65,74 @@ def test_sessions
67
65
  session.destroy
68
66
  end
69
67
 
70
- #test_user_list_and_update
71
- #test_user_create_and_delete
72
- #test_folder_operations
73
- #test_file_operations
74
- #test_file_ruby_emulation
75
- test_sessions
68
+ # These existing manual functions exercise ordinary API behavior. Sessions remain a live/manual probe.
69
+ FUNCTIONAL_TESTS = %w[test_user_list_and_update test_user_create_and_delete test_folder_operations test_file_operations test_file_ruby_emulation].freeze
70
+
71
+ def simulator_control(origin, name, body = nil)
72
+ uri = URI("#{origin}/__files_mock/v1/#{name}")
73
+ response = Net::HTTP.start(uri.hostname, uri.port, nil, open_timeout: 5, read_timeout: 10) do |http|
74
+ body ? http.post(uri.request_uri, JSON.generate(body), "Content-Type" => "application/json") : http.get(uri.request_uri)
75
+ end
76
+ assert(response.code == "200")
77
+ JSON.parse(response.body)
78
+ end
79
+
80
+ case ARGV.first
81
+ when "--shared-simulator"
82
+ assert(ARGV.size == 1)
83
+ names = %w[FILES_MOCK_SERVER_URL FILES_MOCK_SERVER_HOST FILES_MOCK_SERVER_PORT FILES_MOCK_SCHEMA_SHA256 FILES_MOCK_INSTANCE FILES_MOCK_API_KEY FILES_MOCK_SCENARIO_FILE FILES_MOCK_OUT]
84
+ env = names.to_h { |name| [ name, ENV.fetch(name) ] }
85
+ origin = env.fetch("FILES_MOCK_SERVER_URL")
86
+ assert(env.fetch("FILES_MOCK_SERVER_HOST") == "127.0.0.1")
87
+ port = Integer(env.fetch("FILES_MOCK_SERVER_PORT"))
88
+ assert(port.between?(1, 65_535) && origin == "http://127.0.0.1:#{port}")
89
+ assert(env.fetch("FILES_MOCK_API_KEY").match?(/\A[A-Za-z0-9]+\z/))
90
+ expected = { "status" => "ready", "mode" => "simulation", "contract_version" => 3,
91
+ "schema_sha256" => env.fetch("FILES_MOCK_SCHEMA_SHA256"), "instance" => env.fetch("FILES_MOCK_INSTANCE") }
92
+ scenario = JSON.parse(File.read(env.fetch("FILES_MOCK_SCENARIO_FILE")))
93
+ assert(scenario.fetch("name") == "users-find")
94
+ Files.api_key = env.fetch("FILES_MOCK_API_KEY")
95
+ Files.base_url = origin
96
+ Files.session_id = nil
97
+ Files.workspace_id = nil
98
+ results = FUNCTIONAL_TESTS.map do |name|
99
+ result = { "test" => name, "passed" => false }
100
+ begin
101
+ before = simulator_control(origin, "ready")
102
+ assert(before.slice(*expected.keys) == expected)
103
+ reset = simulator_control(origin, "reset", scenario.fetch("reset"))
104
+ after = simulator_control(origin, "ready")
105
+ assert(after.slice(*expected.keys) == expected && reset.fetch("epoch") == before.fetch("epoch") + 1 && after.fetch("epoch") == reset.fetch("epoch"))
106
+ send(name)
107
+ journal = simulator_control(origin, "journal")
108
+ assert(journal.fetch("epoch") == reset.fetch("epoch"))
109
+ assert(journal.fetch("complete") && journal.fetch("dropped").zero?)
110
+ ready = simulator_control(origin, "ready")
111
+ assert(ready.slice(*expected.keys) == expected && ready.fetch("epoch") == reset.fetch("epoch"))
112
+ calls = journal.fetch("entries").select { |entry| entry.fetch("path").start_with?("/api/rest/v1/") }
113
+ assert(!calls.empty? && calls.map { |entry| entry.dig("credentials", "api_key") }.uniq == [ 1 ])
114
+ File.write(File.join(env.fetch("FILES_MOCK_OUT"), "#{name}.journal.json"), JSON.pretty_generate(journal))
115
+ result["passed"] = true
116
+ result["epoch"] = reset.fetch("epoch")
117
+ rescue StandardError => e
118
+ result["error"] = "#{e.class}: #{e.message}"
119
+ end
120
+ result
121
+ end
122
+ File.write(File.join(env.fetch("FILES_MOCK_OUT"), "legacy-functional.json"), JSON.pretty_generate({ "tests" => results }))
123
+ results.each { |result| puts "#{result.fetch("test")}: #{result.fetch("passed") ? "passed" : result.fetch("error")}" }
124
+ exit(results.all? { |result| result.fetch("passed") } ? 0 : 1)
125
+ when "--check-shared-simulator"
126
+ assert(ARGV.size == 2)
127
+ results = JSON.parse(File.read(File.join(ARGV.fetch(1), "legacy-functional.json"))).fetch("tests")
128
+ assert(results.size == 5 && results.map { |result| result.fetch("test") } == FUNCTIONAL_TESTS && results.all? { |result| result.fetch("passed") })
129
+ puts "All five legacy Ruby functional tests passed through the shared simulator."
130
+ when nil
131
+ Files.api_key = File.read(File.expand_path("../../../.test_credentials", __dir__)).strip
132
+ Files.base_url = "https://sdk.filesstaging.av"
133
+ Files.logger = Logger.new($stdout)
134
+ Files.log_level = 'debug'
135
+ test_sessions
136
+ else
137
+ abort "usage: test.rb [--shared-simulator | --check-shared-simulator OUT]"
138
+ end
data/test.sh CHANGED
@@ -3,6 +3,7 @@ require "bundler"
3
3
  Bundler.with_unbundled_env do
4
4
  Dir.chdir("generated/ruby") do
5
5
  exit 1 if ARGV[0] == "true" && !system("bundle install")
6
- exit(system("bundle exec rspec") ? 0 : 1)
6
+ exit 1 unless system("bundle exec rspec")
7
+ exit(system("ruby", "shared-functional-tests.sh") ? 0 : 1)
7
8
  end
8
9
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: files.com
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.818
4
+ version: 1.1.820
5
5
  platform: ruby
6
6
  authors:
7
7
  - files.com
@@ -932,6 +932,7 @@ files:
932
932
  - lib/files.com/uri.rb
933
933
  - lib/files.com/util.rb
934
934
  - lib/files.com/version.rb
935
+ - shared-functional-tests.sh
935
936
  - shared/comparison_examples.json
936
937
  - shared/header_test_data.json
937
938
  - shared/normalization_for_comparison_test_data.json