files.com 1.1.782 → 1.1.784

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 (152) hide show
  1. checksums.yaml +4 -4
  2. data/_VERSION +1 -1
  3. data/lib/files.com/api_client.rb +47 -15
  4. data/lib/files.com/models/account_line_item.rb +2 -0
  5. data/lib/files.com/models/action.rb +2 -0
  6. data/lib/files.com/models/action_log.rb +10 -8
  7. data/lib/files.com/models/action_notification_export.rb +14 -12
  8. data/lib/files.com/models/action_notification_export_result.rb +7 -5
  9. data/lib/files.com/models/agent_node.rb +2 -0
  10. data/lib/files.com/models/agent_node_connection.rb +2 -0
  11. data/lib/files.com/models/agent_node_instance.rb +2 -0
  12. data/lib/files.com/models/agent_push_update.rb +2 -0
  13. data/lib/files.com/models/ai_assistant_personality.rb +27 -25
  14. data/lib/files.com/models/ai_task.rb +73 -71
  15. data/lib/files.com/models/api_key.rb +38 -36
  16. data/lib/files.com/models/api_request_log.rb +10 -8
  17. data/lib/files.com/models/app.rb +7 -5
  18. data/lib/files.com/models/as2_incoming_message.rb +10 -8
  19. data/lib/files.com/models/as2_outgoing_message.rb +10 -8
  20. data/lib/files.com/models/as2_partner.rb +55 -53
  21. data/lib/files.com/models/as2_station.rb +36 -34
  22. data/lib/files.com/models/auto.rb +2 -0
  23. data/lib/files.com/models/automation.rb +114 -112
  24. data/lib/files.com/models/automation_authoring_schema.rb +2 -0
  25. data/lib/files.com/models/automation_execution_node.rb +2 -0
  26. data/lib/files.com/models/automation_log.rb +10 -8
  27. data/lib/files.com/models/automation_run.rb +27 -25
  28. data/lib/files.com/models/bandwidth_snapshot.rb +10 -8
  29. data/lib/files.com/models/behavior.rb +42 -40
  30. data/lib/files.com/models/bundle.rb +90 -88
  31. data/lib/files.com/models/bundle_action.rb +13 -11
  32. data/lib/files.com/models/bundle_download.rb +12 -10
  33. data/lib/files.com/models/bundle_notification.rb +22 -20
  34. data/lib/files.com/models/bundle_path.rb +2 -0
  35. data/lib/files.com/models/bundle_recipient.rb +17 -15
  36. data/lib/files.com/models/bundle_registration.rb +7 -5
  37. data/lib/files.com/models/chat_message.rb +2 -0
  38. data/lib/files.com/models/chat_session.rb +8 -6
  39. data/lib/files.com/models/child_site_management_policy.rb +32 -30
  40. data/lib/files.com/models/clickwrap.rb +30 -28
  41. data/lib/files.com/models/custom_domain.rb +36 -34
  42. data/lib/files.com/models/desktop_configuration_profile.rb +26 -24
  43. data/lib/files.com/models/direct_connection_info.rb +2 -0
  44. data/lib/files.com/models/dns_record.rb +4 -2
  45. data/lib/files.com/models/email_incoming_message.rb +11 -9
  46. data/lib/files.com/models/email_log.rb +9 -7
  47. data/lib/files.com/models/errors.rb +2 -0
  48. data/lib/files.com/models/event_channel.rb +26 -24
  49. data/lib/files.com/models/event_delivery_attempt.rb +8 -6
  50. data/lib/files.com/models/event_record.rb +13 -11
  51. data/lib/files.com/models/event_subscription.rb +42 -40
  52. data/lib/files.com/models/event_target.rb +30 -28
  53. data/lib/files.com/models/exavault_api_request_log.rb +10 -8
  54. data/lib/files.com/models/expectation.rb +79 -77
  55. data/lib/files.com/models/expectation_evaluation.rb +8 -6
  56. data/lib/files.com/models/expectation_incident.rb +24 -22
  57. data/lib/files.com/models/external_event.rb +16 -14
  58. data/lib/files.com/models/file.rb +138 -136
  59. data/lib/files.com/models/file_action.rb +2 -0
  60. data/lib/files.com/models/file_comment.rb +22 -20
  61. data/lib/files.com/models/file_comment_reaction.rb +11 -9
  62. data/lib/files.com/models/file_migration.rb +4 -2
  63. data/lib/files.com/models/file_migration_log.rb +9 -7
  64. data/lib/files.com/models/file_upload_part.rb +2 -0
  65. data/lib/files.com/models/folder.rb +15 -13
  66. data/lib/files.com/models/form_field.rb +2 -0
  67. data/lib/files.com/models/form_field_set.rb +25 -23
  68. data/lib/files.com/models/ftp_action_log.rb +10 -8
  69. data/lib/files.com/models/gpg_key.rb +42 -40
  70. data/lib/files.com/models/group.rb +44 -42
  71. data/lib/files.com/models/group_user.rb +34 -32
  72. data/lib/files.com/models/history.rb +40 -38
  73. data/lib/files.com/models/history_export.rb +26 -24
  74. data/lib/files.com/models/history_export_result.rb +7 -5
  75. data/lib/files.com/models/holiday_calendar.rb +22 -20
  76. data/lib/files.com/models/holiday_region.rb +4 -2
  77. data/lib/files.com/models/image.rb +2 -0
  78. data/lib/files.com/models/inbound_s3_log.rb +10 -8
  79. data/lib/files.com/models/inbox_recipient.rb +15 -13
  80. data/lib/files.com/models/inbox_registration.rb +5 -3
  81. data/lib/files.com/models/inbox_upload.rb +10 -8
  82. data/lib/files.com/models/integration_centric_profile.rb +27 -25
  83. data/lib/files.com/models/invoice.rb +6 -4
  84. data/lib/files.com/models/invoice_line_item.rb +2 -0
  85. data/lib/files.com/models/ip_address.rb +10 -8
  86. data/lib/files.com/models/key_lifecycle_rule.rb +31 -29
  87. data/lib/files.com/models/lock.rb +20 -18
  88. data/lib/files.com/models/metadata_category.rb +26 -24
  89. data/lib/files.com/models/notification.rb +45 -43
  90. data/lib/files.com/models/outbound_connection_log.rb +10 -8
  91. data/lib/files.com/models/partner.rb +48 -46
  92. data/lib/files.com/models/partner_channel.rb +44 -42
  93. data/lib/files.com/models/partner_channel_template.rb +46 -44
  94. data/lib/files.com/models/partner_connection.rb +2 -0
  95. data/lib/files.com/models/partner_site.rb +6 -4
  96. data/lib/files.com/models/partner_site_request.rb +21 -19
  97. data/lib/files.com/models/payment.rb +6 -4
  98. data/lib/files.com/models/payment_line_item.rb +2 -0
  99. data/lib/files.com/models/pending_work_event.rb +12 -10
  100. data/lib/files.com/models/permission.rb +25 -23
  101. data/lib/files.com/models/preview.rb +2 -0
  102. data/lib/files.com/models/public_hosting_request_log.rb +10 -8
  103. data/lib/files.com/models/public_ip_address.rb +2 -0
  104. data/lib/files.com/models/public_key.rb +32 -30
  105. data/lib/files.com/models/remote_bandwidth_snapshot.rb +10 -8
  106. data/lib/files.com/models/remote_mount_backend.rb +51 -49
  107. data/lib/files.com/models/remote_server.rb +261 -259
  108. data/lib/files.com/models/remote_server_configuration_file.rb +2 -0
  109. data/lib/files.com/models/remote_server_credential.rb +121 -119
  110. data/lib/files.com/models/request.rb +21 -19
  111. data/lib/files.com/models/restore.rb +11 -9
  112. data/lib/files.com/models/schedule.rb +33 -31
  113. data/lib/files.com/models/scheduled_export.rb +57 -55
  114. data/lib/files.com/models/scim_log.rb +7 -5
  115. data/lib/files.com/models/secret.rb +31 -29
  116. data/lib/files.com/models/session.rb +6 -4
  117. data/lib/files.com/models/settings_change.rb +6 -4
  118. data/lib/files.com/models/sftp_action_log.rb +10 -8
  119. data/lib/files.com/models/sftp_host_key.rb +23 -21
  120. data/lib/files.com/models/share_group.rb +27 -25
  121. data/lib/files.com/models/share_group_member.rb +2 -0
  122. data/lib/files.com/models/siem_http_destination.rb +95 -93
  123. data/lib/files.com/models/siem_http_destination_event.rb +12 -10
  124. data/lib/files.com/models/site.rb +80 -78
  125. data/lib/files.com/models/site_subdomain_redirect.rb +11 -9
  126. data/lib/files.com/models/snapshot.rb +28 -26
  127. data/lib/files.com/models/sso_event.rb +13 -11
  128. data/lib/files.com/models/sso_strategy.rb +11 -9
  129. data/lib/files.com/models/status.rb +2 -0
  130. data/lib/files.com/models/style.rb +14 -12
  131. data/lib/files.com/models/sync.rb +82 -80
  132. data/lib/files.com/models/sync_log.rb +9 -7
  133. data/lib/files.com/models/sync_run.rb +13 -11
  134. data/lib/files.com/models/sync_run_live_transfer.rb +2 -0
  135. data/lib/files.com/models/usage_by_top_level_dir.rb +2 -0
  136. data/lib/files.com/models/usage_daily_snapshot.rb +10 -8
  137. data/lib/files.com/models/usage_snapshot.rb +4 -2
  138. data/lib/files.com/models/user.rb +152 -150
  139. data/lib/files.com/models/user_additional_email_recipient.rb +23 -21
  140. data/lib/files.com/models/user_cipher_use.rb +11 -9
  141. data/lib/files.com/models/user_lifecycle_rule.rb +43 -41
  142. data/lib/files.com/models/user_request.rb +17 -15
  143. data/lib/files.com/models/user_security_event.rb +12 -10
  144. data/lib/files.com/models/user_sftp_client_use.rb +6 -4
  145. data/lib/files.com/models/web_dav_action_log.rb +10 -8
  146. data/lib/files.com/models/webhook_test.rb +11 -9
  147. data/lib/files.com/models/workspace.rb +20 -18
  148. data/lib/files.com/models/zip_list_entry.rb +2 -0
  149. data/lib/files.com/util.rb +31 -12
  150. data/lib/files.com/version.rb +1 -1
  151. data/spec/lib/api_client_spec.rb +86 -0
  152. metadata +1 -1
@@ -316,6 +316,92 @@ RSpec.describe Files::ApiClient do
316
316
  end
317
317
  end
318
318
 
319
+ describe "request bodies" do
320
+ it "sends a file part as multipart form data and other parameters as a URL-encoded form" do
321
+ requests = []
322
+ connection = described_class.build_default_conn
323
+ connection.builder.adapter(:test) do |stub|
324
+ stub.patch("/api/rest/v1/bundles/7") do |env|
325
+ body = env.body.respond_to?(:read) ? env.body.read : env.body
326
+ requests << { content_type: env.request_headers["Content-Type"], body: body.b }
327
+ [ 200, { "Content-Type" => "application/json" }, '{"id":7}' ]
328
+ end
329
+ end
330
+ client = described_class.new(connection)
331
+ file = StringIO.new("\x00\xFFbin".b)
332
+ attachment = Faraday::Multipart::FilePart.new(file, "application/octet-stream", "fixture.bin")
333
+
334
+ client.execute_request(:patch, "/bundles/7", api_key: "key", params: { description: "plain", watermark_attachment_file: attachment })
335
+ client.execute_request(:patch, "/bundles/7", api_key: "key", params: { description: "plain", paths: [ "a.txt", "b.txt" ] })
336
+
337
+ multipart, form = requests
338
+ expect(multipart[:content_type]).to start_with("multipart/form-data; boundary=")
339
+ expect(multipart[:body]).to include('name="watermark_attachment_file"; filename="fixture.bin"', "Content-Type: application/octet-stream", "\r\n\r\n\x00\xFFbin\r\n".b)
340
+ expect(multipart[:body]).not_to include("UploadIO")
341
+ expect(file).not_to be_closed
342
+ expect(form[:content_type]).to eq("application/x-www-form-urlencoded")
343
+ expect(Faraday::Utils.parse_nested_query(form[:body])).to eq("description" => "plain", "paths" => [ "a.txt", "b.txt" ])
344
+ end
345
+ end
346
+
347
+ describe "client loggers" do
348
+ around do |example|
349
+ original = [ Files.logger, Files.log_level, Files.max_network_retries ]
350
+ Files.max_network_retries = 0
351
+ example.run
352
+ ensure
353
+ Files.logger, Files.log_level, Files.max_network_retries = original
354
+ end
355
+
356
+ it "logs each client's requests to its own logger without changing the library-wide settings" do
357
+ connection = Faraday.new do |builder|
358
+ builder.response :raise_error
359
+ builder.adapter :test do |stub|
360
+ (1..5).each do |id|
361
+ stub.get("/api/rest/v1/workspaces/#{id}") { [ 200, { "Content-Type" => "application/json" }, { id: id }.to_json ] }
362
+ end
363
+ stub.get("/api/rest/v1/workspaces/6") { [ 404, { "Content-Type" => "application/json" }, { error: "Not Found", type: "not-found" }.to_json ] }
364
+ end
365
+ end
366
+ global_output = StringIO.new
367
+ global_logger = Logger.new(global_output, level: Logger::INFO)
368
+ Files.logger = global_logger
369
+ Files.log_level = Files::LEVEL_INFO
370
+ a_output = StringIO.new
371
+ a_logger = Logger.new(a_output, level: Logger::INFO)
372
+ b_output = StringIO.new
373
+ b_logger = Logger.new(b_output, level: Logger::ERROR)
374
+ client_a = described_class.new(connection, logger: a_logger)
375
+ client_b = described_class.new(connection, logger: b_logger, log_level: Files::LEVEL_DEBUG)
376
+
377
+ Files::Workspace.find(1, {}, api_key: "key", client: client_a)
378
+ Files::Workspace.find(2, {}, api_key: "key", client: client_b)
379
+ Files::Workspace.find(3, {}, api_key: "key", client: client_a)
380
+
381
+ expect(a_output.string).to include("message=Request method=get num_retries=0 path=/workspaces/1", "message=Request method=get num_retries=0 path=/workspaces/3")
382
+ expect(a_output.string.scan(/message=Response .*status=200/).size).to eq(2)
383
+ expect(a_output.string).not_to include("/workspaces/2")
384
+ expect(b_output.string).to be_empty
385
+ expect(global_output.string).to be_empty
386
+ expect([ a_logger.level, b_logger.level ]).to eq([ Logger::INFO, Logger::ERROR ])
387
+ expect(Files.logger).to equal(global_logger)
388
+ expect(Files.log_level).to eq(Files::LEVEL_INFO)
389
+
390
+ expect { Files::Workspace.find(6, {}, api_key: "key", client: client_b) }.to raise_error(Files::NotFoundError)
391
+ expect(b_output.string).to include("message=API error status=404")
392
+ expect(a_output.string).not_to include("API error")
393
+ expect(global_output.string).to be_empty
394
+ expect([ a_logger.level, b_logger.level ]).to eq([ Logger::INFO, Logger::ERROR ])
395
+
396
+ Files::Workspace.find(4, {}, api_key: "key", client: described_class.new(connection))
397
+ expect(global_output.string).to include("message=Request method=get num_retries=0 path=/workspaces/4")
398
+
399
+ quiet_client = described_class.new(connection, logger: nil, log_level: nil)
400
+ expect { Files::Workspace.find(5, {}, api_key: "key", client: quiet_client) }.not_to output.to_stdout
401
+ expect(global_output.string).not_to include("/workspaces/5")
402
+ end
403
+ end
404
+
319
405
  describe "network timeouts" do
320
406
  around do |example|
321
407
  original = [ Files.open_timeout, Files.read_timeout ]
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.782
4
+ version: 1.1.784
5
5
  platform: ruby
6
6
  authors:
7
7
  - files.com