files-com 1.6.53__py3-none-any.whl → 1.6.54__py3-none-any.whl

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.

Potentially problematic release.


This version of files-com might be problematic. Click here for more details.

README.md CHANGED
@@ -583,12 +583,16 @@ files_sdk.error.FolderAdminPermissionRequiredError -> files_sdk.error.NotAuthori
583
583
  |`HistoryPermissionRequiredError`| `NotAuthorizedError` |
584
584
  |`InsufficientPermissionForParamsError`| `NotAuthorizedError` |
585
585
  |`InsufficientPermissionForSiteError`| `NotAuthorizedError` |
586
+ |`MoverAccessDeniedError`| `NotAuthorizedError` |
587
+ |`MoverPackageRequiredError`| `NotAuthorizedError` |
586
588
  |`MustAuthenticateWithApiKeyError`| `NotAuthorizedError` |
587
589
  |`NeedAdminPermissionForInboxError`| `NotAuthorizedError` |
588
590
  |`NonAdminsMustQueryByFolderOrPathError`| `NotAuthorizedError` |
589
591
  |`NotAllowedToCreateBundleError`| `NotAuthorizedError` |
592
+ |`NotEnqueuableSyncError`| `NotAuthorizedError` |
590
593
  |`PasswordChangeNotRequiredError`| `NotAuthorizedError` |
591
594
  |`PasswordChangeRequiredError`| `NotAuthorizedError` |
595
+ |`PaymentMethodErrorError`| `NotAuthorizedError` |
592
596
  |`ReadOnlySessionError`| `NotAuthorizedError` |
593
597
  |`ReadPermissionRequiredError`| `NotAuthorizedError` |
594
598
  |`ReauthenticationFailedError`| `NotAuthorizedError` |
@@ -655,6 +659,7 @@ files_sdk.error.FolderAdminPermissionRequiredError -> files_sdk.error.NotAuthori
655
659
  |`ResourceBelongsToParentSiteError`| `ProcessingFailureError` |
656
660
  |`ResourceLockedError`| `ProcessingFailureError` |
657
661
  |`SubfolderLockedError`| `ProcessingFailureError` |
662
+ |`SyncInProgressError`| `ProcessingFailureError` |
658
663
  |`TwoFactorAuthenticationCodeAlreadySentError`| `ProcessingFailureError` |
659
664
  |`TwoFactorAuthenticationCountryBlacklistedError`| `ProcessingFailureError` |
660
665
  |`TwoFactorAuthenticationGeneralErrorError`| `ProcessingFailureError` |
_VERSION CHANGED
@@ -1 +1 @@
1
- 1.6.53
1
+ 1.6.54
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: files_com
3
- Version: 1.6.53
3
+ Version: 1.6.54
4
4
  Summary: Python bindings for the Files.com API
5
5
  License: MIT
6
6
  Requires-Python: >=3.5
@@ -595,12 +595,16 @@ files_sdk.error.FolderAdminPermissionRequiredError -> files_sdk.error.NotAuthori
595
595
  |`HistoryPermissionRequiredError`| `NotAuthorizedError` |
596
596
  |`InsufficientPermissionForParamsError`| `NotAuthorizedError` |
597
597
  |`InsufficientPermissionForSiteError`| `NotAuthorizedError` |
598
+ |`MoverAccessDeniedError`| `NotAuthorizedError` |
599
+ |`MoverPackageRequiredError`| `NotAuthorizedError` |
598
600
  |`MustAuthenticateWithApiKeyError`| `NotAuthorizedError` |
599
601
  |`NeedAdminPermissionForInboxError`| `NotAuthorizedError` |
600
602
  |`NonAdminsMustQueryByFolderOrPathError`| `NotAuthorizedError` |
601
603
  |`NotAllowedToCreateBundleError`| `NotAuthorizedError` |
604
+ |`NotEnqueuableSyncError`| `NotAuthorizedError` |
602
605
  |`PasswordChangeNotRequiredError`| `NotAuthorizedError` |
603
606
  |`PasswordChangeRequiredError`| `NotAuthorizedError` |
607
+ |`PaymentMethodErrorError`| `NotAuthorizedError` |
604
608
  |`ReadOnlySessionError`| `NotAuthorizedError` |
605
609
  |`ReadPermissionRequiredError`| `NotAuthorizedError` |
606
610
  |`ReauthenticationFailedError`| `NotAuthorizedError` |
@@ -667,6 +671,7 @@ files_sdk.error.FolderAdminPermissionRequiredError -> files_sdk.error.NotAuthori
667
671
  |`ResourceBelongsToParentSiteError`| `ProcessingFailureError` |
668
672
  |`ResourceLockedError`| `ProcessingFailureError` |
669
673
  |`SubfolderLockedError`| `ProcessingFailureError` |
674
+ |`SyncInProgressError`| `ProcessingFailureError` |
670
675
  |`TwoFactorAuthenticationCodeAlreadySentError`| `ProcessingFailureError` |
671
676
  |`TwoFactorAuthenticationCountryBlacklistedError`| `ProcessingFailureError` |
672
677
  |`TwoFactorAuthenticationGeneralErrorError`| `ProcessingFailureError` |
@@ -1,10 +1,10 @@
1
- README.md,sha256=jKJinmGYs8ThgZvMmGojgls4WTKo-Zz1Voa2AEFEP2Q,31114
2
- _VERSION,sha256=2ouvkXTcmZrQsJQo0z-QQZTAblXdSPF5XpdhJ39hbz0,7
3
- files_com-1.6.53.dist-info/licenses/LICENSE,sha256=ziANl9OTD-5-iE8XYIZNm6IYBDxOCHwQ-mdhci7lNew,1102
4
- files_sdk/__init__.py,sha256=aSDmvV_a1UPPseprN_Q7G96eiZ40o1qkCQ8VeDxw1X0,13062
1
+ README.md,sha256=0ZatNXBzpAonCoSF5aabb4bSBab3Em1D_0c40uBKh4s,31374
2
+ _VERSION,sha256=npoDO79o6W8wOrZ3KvzGpG7Ej5D6a3smObZ2Xy2NLJE,7
3
+ files_com-1.6.54.dist-info/licenses/LICENSE,sha256=ziANl9OTD-5-iE8XYIZNm6IYBDxOCHwQ-mdhci7lNew,1102
4
+ files_sdk/__init__.py,sha256=4AR3cttyLD-rxZUsMBA0uVYv_StzpeH6HmMl9YsBLcQ,13062
5
5
  files_sdk/api.py,sha256=HOLk50HLQCbnHwnAr9OElQEWvdA_BABBSEvvFSt1S4A,1846
6
6
  files_sdk/api_client.py,sha256=cfFvm-o4Ao8SWADiJv7t7qnJfG_LJmWV3l6ALTC-Opo,11264
7
- files_sdk/error.py,sha256=JZD-njfO1NG0xGBc1kExiDUCbq9xT5JHjBv9oBXtJ58,64619
7
+ files_sdk/error.py,sha256=I2dHSJRlGxdZL-SGhzS9blGe4eQmERNoFi57I5PgRpM,66294
8
8
  files_sdk/list_obj.py,sha256=MWgmESLAmfh1uaSw76PWxmnf9f6_08TLUHe8_mCYKL4,1157
9
9
  files_sdk/path_util.py,sha256=7x8X3JLoMkcqNefCaBeHYXD8MGvPby4AOy-xnBX_LNk,1694
10
10
  files_sdk/util.py,sha256=6aA4N0Wq_ykINW7eMrs2ntFAL2hRLM6IvJf6n_yP34c,962
@@ -64,7 +64,7 @@ files_sdk/models/inbox_recipient.py,sha256=_iUVVsBJLmAU2GatfjxYNBTEiv4D-DoJ0vbBK
64
64
  files_sdk/models/inbox_registration.py,sha256=d2JxmVNko0G3W1_YHdGwgs6o1RiCxagtEFMf4UKS0mA,3341
65
65
  files_sdk/models/inbox_upload.py,sha256=37SxR8JX_eMn9wJQMeAfDDhqEl-_1o6nCJMHzMGW8no,4484
66
66
  files_sdk/models/invoice.py,sha256=W5fGwC5s53PZsEu_SzGXsIdxN1Pw7MQ0wGZq4brMZ1c,3753
67
- files_sdk/models/invoice_line_item.py,sha256=qzClkGS7nHcKxon_yZdWCCwui3e7M9jetw_HacdsE8g,1578
67
+ files_sdk/models/invoice_line_item.py,sha256=MsF92gPhLR8AajrIhKt_PbNwFcrDzTEwOk66W8UCQQU,1630
68
68
  files_sdk/models/ip_address.py,sha256=Uyqd0-8gpbv2Nlt1ttTLH9ylDSTdw1dcrmRjtwDgkIw,5783
69
69
  files_sdk/models/lock.py,sha256=RjMPVJJsWOKJ8ll3YwalC64NHDtq5GIBIh9A1w3bM7o,7229
70
70
  files_sdk/models/message.py,sha256=Lp2CHdf2AyXNjSF0giOdozvch-_sdC8FlemSPJMOZLs,10192
@@ -100,9 +100,9 @@ files_sdk/models/snapshot.py,sha256=zmdQWKR8EhUkF1mFQHFzWfreaEVXG1p_jEtmY4j3cKA,
100
100
  files_sdk/models/sso_strategy.py,sha256=vWNCPfot8z15xUhAoFsS52W-1vg8IpKIqAALZ6pBwd0,9112
101
101
  files_sdk/models/status.py,sha256=IIY3RiJ2RZ2yPByAAh8eIq_cgZFTj13eR4UpqHTANQI,1363
102
102
  files_sdk/models/style.py,sha256=KZY0fZ4kP4AtwZpCi24EtNXL8WFLhE9a1Jme1gA6Kkw,5201
103
- files_sdk/models/sync.py,sha256=YB9velpnopIV8wKfPt1OxCqEno6V6EenBbHsesLLK74,27449
103
+ files_sdk/models/sync.py,sha256=64tNcdpYIh5_g8IM9OGWQXEosxZQrubAMoseo_vSXdM,28739
104
104
  files_sdk/models/sync_log.py,sha256=uWP2p4LiUmV5hqZvaZFIBJIyPmdZ21lP9O81LQuNKS4,21135
105
- files_sdk/models/sync_run.py,sha256=fuviQORsPpDRoXk9CDc7WMupYCGPxO5-R32-kkpZVZM,5397
105
+ files_sdk/models/sync_run.py,sha256=ZSTcL9Qj00AF2BvZArSPpmmgpv9VO3o9KM2RKtnAtXs,5273
106
106
  files_sdk/models/usage_by_top_level_dir.py,sha256=o_dETvzcgEA9lsdES_yzwPVAZVFk4ZcnsCTugR8O8eY,1185
107
107
  files_sdk/models/usage_daily_snapshot.py,sha256=rWf6GaTlN9spkUPwfF4IJ0Y6z-JTV9TAWjsFrxI-UFg,5477
108
108
  files_sdk/models/usage_snapshot.py,sha256=3GzMIxBjKelgNP7ksWq4XlrRlAFcYxzd_J6vAgb52qc,4005
@@ -113,7 +113,7 @@ files_sdk/models/user_request.py,sha256=ykA5Lq0MYB7qTDOMMFBuyKa_R_LgQwGVorC-q-6q
113
113
  files_sdk/models/user_sftp_client_use.py,sha256=VnOo3ll6fwSc8grG5ZqGK8o3grYKg5P9b5B_hGS4vCs,2827
114
114
  files_sdk/models/web_dav_action_log.py,sha256=uMTIkTgSpW5mgKAEWnCmI4U5eqcAL2g8OHqB-lBir3A,76424
115
115
  files_sdk/models/webhook_test.py,sha256=AWGH8ULsgltBJL2YtTYGnAJ80cCVekrjZ2sUP0UlWgc,5018
116
- files_com-1.6.53.dist-info/METADATA,sha256=_BapyQGtnw2cHJWrp7yNGHoslnyVt-Nxvguof7Glci0,31406
117
- files_com-1.6.53.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
118
- files_com-1.6.53.dist-info/top_level.txt,sha256=p_2P-gluT_8boeXQNixTP3x-tFd1-la2NedKOiln21I,10
119
- files_com-1.6.53.dist-info/RECORD,,
116
+ files_com-1.6.54.dist-info/METADATA,sha256=bEnEdj9goB4JRta8blxOwRE0IxWmfFKqS1nIWzm65dk,31666
117
+ files_com-1.6.54.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
118
+ files_com-1.6.54.dist-info/top_level.txt,sha256=p_2P-gluT_8boeXQNixTP3x-tFd1-la2NedKOiln21I,10
119
+ files_com-1.6.54.dist-info/RECORD,,
files_sdk/__init__.py CHANGED
@@ -227,7 +227,7 @@ session_id = None
227
227
  source_ip = None
228
228
  base_url = "https://app.files.com"
229
229
  base_path = "api/rest/v1"
230
- version = "1.6.53"
230
+ version = "1.6.54"
231
231
 
232
232
  __version__ = version
233
233
 
files_sdk/error.py CHANGED
@@ -1342,6 +1342,36 @@ class InsufficientPermissionForSiteError(NotAuthorizedError):
1342
1342
  )
1343
1343
 
1344
1344
 
1345
+ class MoverAccessDeniedError(NotAuthorizedError):
1346
+ def __init__(
1347
+ self,
1348
+ message=None,
1349
+ http_body=None,
1350
+ http_status=None,
1351
+ json_body=None,
1352
+ headers=None,
1353
+ code=None,
1354
+ ):
1355
+ super().__init__(
1356
+ message, http_body, http_status, json_body, headers, code
1357
+ )
1358
+
1359
+
1360
+ class MoverPackageRequiredError(NotAuthorizedError):
1361
+ def __init__(
1362
+ self,
1363
+ message=None,
1364
+ http_body=None,
1365
+ http_status=None,
1366
+ json_body=None,
1367
+ headers=None,
1368
+ code=None,
1369
+ ):
1370
+ super().__init__(
1371
+ message, http_body, http_status, json_body, headers, code
1372
+ )
1373
+
1374
+
1345
1375
  class MustAuthenticateWithApiKeyError(NotAuthorizedError):
1346
1376
  def __init__(
1347
1377
  self,
@@ -1402,6 +1432,21 @@ class NotAllowedToCreateBundleError(NotAuthorizedError):
1402
1432
  )
1403
1433
 
1404
1434
 
1435
+ class NotEnqueuableSyncError(NotAuthorizedError):
1436
+ def __init__(
1437
+ self,
1438
+ message=None,
1439
+ http_body=None,
1440
+ http_status=None,
1441
+ json_body=None,
1442
+ headers=None,
1443
+ code=None,
1444
+ ):
1445
+ super().__init__(
1446
+ message, http_body, http_status, json_body, headers, code
1447
+ )
1448
+
1449
+
1405
1450
  class PasswordChangeNotRequiredError(NotAuthorizedError):
1406
1451
  def __init__(
1407
1452
  self,
@@ -1432,6 +1477,21 @@ class PasswordChangeRequiredError(NotAuthorizedError):
1432
1477
  )
1433
1478
 
1434
1479
 
1480
+ class PaymentMethodErrorError(NotAuthorizedError):
1481
+ def __init__(
1482
+ self,
1483
+ message=None,
1484
+ http_body=None,
1485
+ http_status=None,
1486
+ json_body=None,
1487
+ headers=None,
1488
+ code=None,
1489
+ ):
1490
+ super().__init__(
1491
+ message, http_body, http_status, json_body, headers, code
1492
+ )
1493
+
1494
+
1435
1495
  class ReadOnlySessionError(NotAuthorizedError):
1436
1496
  def __init__(
1437
1497
  self,
@@ -2452,6 +2512,21 @@ class SubfolderLockedError(ProcessingFailureError):
2452
2512
  )
2453
2513
 
2454
2514
 
2515
+ class SyncInProgressError(ProcessingFailureError):
2516
+ def __init__(
2517
+ self,
2518
+ message=None,
2519
+ http_body=None,
2520
+ http_status=None,
2521
+ json_body=None,
2522
+ headers=None,
2523
+ code=None,
2524
+ ):
2525
+ super().__init__(
2526
+ message, http_body, http_status, json_body, headers, code
2527
+ )
2528
+
2529
+
2455
2530
  class TwoFactorAuthenticationCodeAlreadySentError(ProcessingFailureError):
2456
2531
  def __init__(
2457
2532
  self,
@@ -9,6 +9,7 @@ from files_sdk.error import ( # noqa: F401
9
9
 
10
10
  class InvoiceLineItem:
11
11
  default_attributes = {
12
+ "id": None, # int64 - Invoice Line item Id
12
13
  "amount": None, # double - Invoice line item amount
13
14
  "created_at": None, # date-time - Invoice line item created at date/time
14
15
  "description": None, # string - Invoice line item description
files_sdk/models/sync.py CHANGED
@@ -36,6 +36,7 @@ class Sync:
36
36
  "schedule_times_of_day": None, # array(string) - If trigger is `custom_schedule`, Custom schedule description for when the sync should be run. Times of day in HH:MM format.
37
37
  "schedule_time_zone": None, # string - If trigger is `custom_schedule`, Custom schedule Time Zone for when the sync should be run.
38
38
  "holiday_region": None, # string - If trigger is `custom_schedule`, the sync will check if there is a formal, observed holiday for the region, and if so, it will not run.
39
+ "latest_sync_run": None, # SyncRun - The latest run of this sync
39
40
  }
40
41
 
41
42
  def __init__(self, attributes=None, options=None):
@@ -57,6 +58,26 @@ class Sync:
57
58
  if getattr(self, k, None) is not None
58
59
  }
59
60
 
61
+ # Dry Run Sync
62
+ def dry_run(self, params=None):
63
+ if not isinstance(params, dict):
64
+ params = {}
65
+
66
+ if hasattr(self, "id") and self.id:
67
+ params["id"] = self.id
68
+ else:
69
+ raise MissingParameterError("Current object doesn't have a id")
70
+ if "id" not in params:
71
+ raise MissingParameterError("Parameter missing: id")
72
+ if "id" in params and not isinstance(params["id"], int):
73
+ raise InvalidParameterError("Bad parameter: id must be an int")
74
+ Api.send_request(
75
+ "POST",
76
+ "/syncs/{id}/dry_run".format(id=params["id"]),
77
+ params,
78
+ self.options,
79
+ )
80
+
60
81
  # Manually Run Sync
61
82
  def manual_run(self, params=None):
62
83
  if not isinstance(params, dict):
@@ -382,6 +403,22 @@ def create(params=None, options=None):
382
403
  return Sync(response.data, options)
383
404
 
384
405
 
406
+ # Dry Run Sync
407
+ def dry_run(id, params=None, options=None):
408
+ if not isinstance(params, dict):
409
+ params = {}
410
+ if not isinstance(options, dict):
411
+ options = {}
412
+ params["id"] = id
413
+ if "id" in params and not isinstance(params["id"], int):
414
+ raise InvalidParameterError("Bad parameter: id must be an int")
415
+ if "id" not in params:
416
+ raise MissingParameterError("Parameter missing: id")
417
+ Api.send_request(
418
+ "POST", "/syncs/{id}/dry_run".format(id=params["id"]), params, options
419
+ )
420
+
421
+
385
422
  # Manually Run Sync
386
423
  def manual_run(id, params=None, options=None):
387
424
  if not isinstance(params, dict):
@@ -18,7 +18,6 @@ class SyncRun:
18
18
  "dest_remote_server_type": None, # string - Destination remote server type, if any
19
19
  "body": None, # string - Log or summary body for this run
20
20
  "event_errors": None, # array(string) - Array of errors encountered during the run
21
- "bytes_synced": None, # int64 - Total bytes synced in this run
22
21
  "compared_files": None, # int64 - Number of files compared
23
22
  "compared_folders": None, # int64 - Number of folders compared
24
23
  "errored_files": None, # int64 - Number of files that errored
@@ -27,6 +26,9 @@ class SyncRun:
27
26
  "log_url": None, # string - Link to external log file.
28
27
  "completed_at": None, # date-time - When this run was completed
29
28
  "notified": None, # boolean - Whether notifications were sent for this run
29
+ "dry_run": None, # boolean - Whether this run was a dry run (no actual changes made)
30
+ "bytes_synced": None, # int64 - Total bytes synced in this run
31
+ "estimated_bytes_count": None, # int64 - Estimated bytes count for this run
30
32
  "created_at": None, # date-time - When this run was created
31
33
  "updated_at": None, # date-time - When this run was last updated
32
34
  }
@@ -55,9 +57,8 @@ class SyncRun:
55
57
  # user_id - int64 - User ID. Provide a value of `0` to operate the current session's user.
56
58
  # 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.
57
59
  # per_page - int64 - Number of records to show per page. (Max: 10,000, 1,000 or less is recommended).
58
- # sort_by - object - If set, sort records by the specified field in either `asc` or `desc` direction. Valid fields are `sync_id`, `created_at` or `status`.
59
- # filter - object - If set, return records where the specified field is equal to the supplied value. Valid fields are `status` and `sync_id`. Valid field combinations are `[ sync_id, status ]`.
60
- # sync_id (required) - int64 - ID of the Sync this run belongs to
60
+ # sort_by - object - If set, sort records by the specified field in either `asc` or `desc` direction. Valid fields are `site_id`, `sync_id` or `created_at`.
61
+ # filter - object - If set, return records where the specified field is equal to the supplied value. Valid fields are `status`, `dry_run` or `sync_id`. Valid field combinations are `[ sync_id, status ]`.
61
62
  def list(params=None, options=None):
62
63
  if not isinstance(params, dict):
63
64
  params = {}
@@ -73,10 +74,6 @@ def list(params=None, options=None):
73
74
  raise InvalidParameterError("Bad parameter: sort_by must be an dict")
74
75
  if "filter" in params and not isinstance(params["filter"], dict):
75
76
  raise InvalidParameterError("Bad parameter: filter must be an dict")
76
- if "sync_id" in params and not isinstance(params["sync_id"], int):
77
- raise InvalidParameterError("Bad parameter: sync_id must be an int")
78
- if "sync_id" not in params:
79
- raise MissingParameterError("Parameter missing: sync_id")
80
77
  return ListObj(SyncRun, "GET", "/sync_runs", params, options)
81
78
 
82
79