Files.com 1.4.27__tar.gz → 1.4.39__tar.gz
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.com-1.4.27 → Files.com-1.4.39}/Files.com.egg-info/PKG-INFO +1 -1
- {Files.com-1.4.27 → Files.com-1.4.39}/PKG-INFO +1 -1
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/__init__.py +1 -1
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/as2_partner.py +22 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/automation.py +8 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/behavior.py +4 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/bundle.py +26 -4
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/remote_server.py +8 -74
- Files.com-1.4.39/files_sdk/models/remote_server_configuration_file.py +65 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/site.py +2 -2
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/sso_strategy.py +1 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/user.py +2 -1
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/user_request.py +4 -0
- Files.com-1.4.27/files_sdk/models/remote_server_configuration_file.py +0 -50
- {Files.com-1.4.27 → Files.com-1.4.39}/Files.com.egg-info/SOURCES.txt +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/Files.com.egg-info/dependency_links.txt +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/Files.com.egg-info/requires.txt +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/Files.com.egg-info/top_level.txt +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/README.md +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/api.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/api_client.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/error.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/list_obj.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/__init__.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/account_line_item.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/action.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/action_notification_export.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/action_notification_export_result.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/action_webhook_failure.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/api_key.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/app.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/as2_incoming_message.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/as2_outgoing_message.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/as2_station.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/auto.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/automation_run.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/bandwidth_snapshot.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/bundle_download.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/bundle_notification.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/bundle_recipient.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/bundle_registration.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/clickwrap.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/dns_record.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/email_incoming_message.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/errors.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/external_event.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/file.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/file_action.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/file_comment.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/file_comment_reaction.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/file_migration.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/file_upload_part.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/folder.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/form_field.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/form_field_set.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/gpg_key.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/group.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/group_user.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/history.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/history_export.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/history_export_result.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/image.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/inbox_recipient.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/inbox_registration.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/inbox_upload.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/invoice.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/invoice_line_item.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/ip_address.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/lock.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/message.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/message_comment.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/message_comment_reaction.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/message_reaction.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/notification.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/payment.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/payment_line_item.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/permission.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/preview.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/priority.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/project.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/public_ip_address.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/public_key.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/remote_bandwidth_snapshot.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/request.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/session.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/settings_change.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/sftp_host_key.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/share_group.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/share_group_member.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/snapshot.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/status.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/style.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/usage_daily_snapshot.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/usage_snapshot.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/user_cipher_use.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/models/webhook_test.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/path_util.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/files_sdk/util.py +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/pyproject.toml +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/setup.cfg +0 -0
- {Files.com-1.4.27 → Files.com-1.4.39}/setup.py +0 -0
|
@@ -15,6 +15,7 @@ class As2Partner:
|
|
|
15
15
|
"name": None, # string - The partner's formal AS2 name.
|
|
16
16
|
"uri": None, # string - Public URI for sending AS2 message to.
|
|
17
17
|
"server_certificate": None, # string - Remote server certificate security setting
|
|
18
|
+
"mdn_validation_level": None, # string - MDN Validation Level
|
|
18
19
|
"enable_dedicated_ips": None, # boolean - `true` if remote server only accepts connections from dedicated IPs
|
|
19
20
|
"hex_public_certificate_serial": None, # string - Serial of public certificate used for message security in hex format.
|
|
20
21
|
"public_certificate_md5": None, # string - MD5 hash of public certificate used for message security.
|
|
@@ -49,6 +50,7 @@ class As2Partner:
|
|
|
49
50
|
# name - string - AS2 Name
|
|
50
51
|
# uri - string - URL base for AS2 responses
|
|
51
52
|
# server_certificate - string - Remote server certificate security setting
|
|
53
|
+
# mdn_validation_level - string - MDN Validation Level
|
|
52
54
|
# public_certificate - string
|
|
53
55
|
# enable_dedicated_ips - boolean
|
|
54
56
|
def update(self, params=None):
|
|
@@ -73,6 +75,12 @@ class As2Partner:
|
|
|
73
75
|
raise InvalidParameterError(
|
|
74
76
|
"Bad parameter: server_certificate must be an str"
|
|
75
77
|
)
|
|
78
|
+
if "mdn_validation_level" in params and not isinstance(
|
|
79
|
+
params["mdn_validation_level"], str
|
|
80
|
+
):
|
|
81
|
+
raise InvalidParameterError(
|
|
82
|
+
"Bad parameter: mdn_validation_level must be an str"
|
|
83
|
+
)
|
|
76
84
|
if "public_certificate" in params and not isinstance(
|
|
77
85
|
params["public_certificate"], str
|
|
78
86
|
):
|
|
@@ -167,6 +175,7 @@ def get(id, params=None, options=None):
|
|
|
167
175
|
# public_certificate (required) - string
|
|
168
176
|
# as2_station_id (required) - int64 - Id of As2Station for this partner
|
|
169
177
|
# server_certificate - string - Remote server certificate security setting
|
|
178
|
+
# mdn_validation_level - string - MDN Validation Level
|
|
170
179
|
# enable_dedicated_ips - boolean
|
|
171
180
|
def create(params=None, options=None):
|
|
172
181
|
if not isinstance(params, dict):
|
|
@@ -195,6 +204,12 @@ def create(params=None, options=None):
|
|
|
195
204
|
raise InvalidParameterError(
|
|
196
205
|
"Bad parameter: server_certificate must be an str"
|
|
197
206
|
)
|
|
207
|
+
if "mdn_validation_level" in params and not isinstance(
|
|
208
|
+
params["mdn_validation_level"], str
|
|
209
|
+
):
|
|
210
|
+
raise InvalidParameterError(
|
|
211
|
+
"Bad parameter: mdn_validation_level must be an str"
|
|
212
|
+
)
|
|
198
213
|
if "name" not in params:
|
|
199
214
|
raise MissingParameterError("Parameter missing: name")
|
|
200
215
|
if "uri" not in params:
|
|
@@ -213,6 +228,7 @@ def create(params=None, options=None):
|
|
|
213
228
|
# name - string - AS2 Name
|
|
214
229
|
# uri - string - URL base for AS2 responses
|
|
215
230
|
# server_certificate - string - Remote server certificate security setting
|
|
231
|
+
# mdn_validation_level - string - MDN Validation Level
|
|
216
232
|
# public_certificate - string
|
|
217
233
|
# enable_dedicated_ips - boolean
|
|
218
234
|
def update(id, params=None, options=None):
|
|
@@ -233,6 +249,12 @@ def update(id, params=None, options=None):
|
|
|
233
249
|
raise InvalidParameterError(
|
|
234
250
|
"Bad parameter: server_certificate must be an str"
|
|
235
251
|
)
|
|
252
|
+
if "mdn_validation_level" in params and not isinstance(
|
|
253
|
+
params["mdn_validation_level"], str
|
|
254
|
+
):
|
|
255
|
+
raise InvalidParameterError(
|
|
256
|
+
"Bad parameter: mdn_validation_level must be an str"
|
|
257
|
+
)
|
|
236
258
|
if "public_certificate" in params and not isinstance(
|
|
237
259
|
params["public_certificate"], str
|
|
238
260
|
):
|
|
@@ -20,9 +20,11 @@ class Automation:
|
|
|
20
20
|
"destinations": None, # array - Destination Paths
|
|
21
21
|
"disabled": None, # boolean - If true, this automation will not run.
|
|
22
22
|
"group_ids": None, # array - IDs of Groups for the Automation (i.e. who to Request File from)
|
|
23
|
+
"ignore_locked_folders": None, # boolean - If true, the Lock Folders behavior will be disregarded for automated actions.
|
|
23
24
|
"interval": None, # string - If trigger is `daily`, this specifies how often to run this automation. One of: `day`, `week`, `week_end`, `month`, `month_end`, `quarter`, `quarter_end`, `year`, `year_end`
|
|
24
25
|
"last_modified_at": None, # date-time - Time when automation was last modified. Does not change for name or description updates.
|
|
25
26
|
"name": None, # string - Name for this automation.
|
|
27
|
+
"overwrite_files": None, # boolean - If true, existing files will be overwritten with new files on Move/Copy automations. Note: by default files will not be overwritten if they appear to be the same file size as the newly incoming file. Use the `:always_overwrite_size_matching_files` option to override this.
|
|
26
28
|
"path": None, # string - Path on which this Automation runs. Supports globs, except on remote mounts. This must be slash-delimited, but it must neither start nor end with a slash. Maximum of 5000 characters.
|
|
27
29
|
"recurring_day": None, # int64 - If trigger type is `daily`, this specifies a day number to run in one of the supported intervals: `week`, `month`, `quarter`, `year`.
|
|
28
30
|
"schedule": None, # object - If trigger is `custom_schedule`, Custom schedule description for when the automation should be run in json format.
|
|
@@ -97,7 +99,9 @@ class Automation:
|
|
|
97
99
|
# always_overwrite_size_matching_files - boolean - Ordinarily, files with identical size in the source and destination will be skipped from copy operations to prevent wasted transfer. If this flag is `true` we will overwrite the destination file always. Note that this may cause large amounts of wasted transfer usage.
|
|
98
100
|
# description - string - Description for the this Automation.
|
|
99
101
|
# disabled - boolean - If true, this automation will not run.
|
|
102
|
+
# ignore_locked_folders - boolean - If true, the Lock Folders behavior will be disregarded for automated actions.
|
|
100
103
|
# name - string - Name for this automation.
|
|
104
|
+
# overwrite_files - boolean - If true, existing files will be overwritten with new files on Move/Copy automations. Note: by default files will not be overwritten if they appear to be the same file size as the newly incoming file. Use the `:always_overwrite_size_matching_files` option to override this.
|
|
101
105
|
# trigger - string - How this automation is triggered to run.
|
|
102
106
|
# trigger_actions - array(string) - If trigger is `action`, this is the list of action types on which to trigger the automation. Valid actions are create, read, update, destroy, move, copy
|
|
103
107
|
# value - object - A Hash of attributes specific to the automation type.
|
|
@@ -329,7 +333,9 @@ def get(id, params=None, options=None):
|
|
|
329
333
|
# always_overwrite_size_matching_files - boolean - Ordinarily, files with identical size in the source and destination will be skipped from copy operations to prevent wasted transfer. If this flag is `true` we will overwrite the destination file always. Note that this may cause large amounts of wasted transfer usage.
|
|
330
334
|
# description - string - Description for the this Automation.
|
|
331
335
|
# disabled - boolean - If true, this automation will not run.
|
|
336
|
+
# ignore_locked_folders - boolean - If true, the Lock Folders behavior will be disregarded for automated actions.
|
|
332
337
|
# name - string - Name for this automation.
|
|
338
|
+
# overwrite_files - boolean - If true, existing files will be overwritten with new files on Move/Copy automations. Note: by default files will not be overwritten if they appear to be the same file size as the newly incoming file. Use the `:always_overwrite_size_matching_files` option to override this.
|
|
333
339
|
# trigger - string - How this automation is triggered to run.
|
|
334
340
|
# trigger_actions - array(string) - If trigger is `action`, this is the list of action types on which to trigger the automation. Valid actions are create, read, update, destroy, move, copy
|
|
335
341
|
# value - object - A Hash of attributes specific to the automation type.
|
|
@@ -460,7 +466,9 @@ def manual_run(id, params=None, options=None):
|
|
|
460
466
|
# always_overwrite_size_matching_files - boolean - Ordinarily, files with identical size in the source and destination will be skipped from copy operations to prevent wasted transfer. If this flag is `true` we will overwrite the destination file always. Note that this may cause large amounts of wasted transfer usage.
|
|
461
467
|
# description - string - Description for the this Automation.
|
|
462
468
|
# disabled - boolean - If true, this automation will not run.
|
|
469
|
+
# ignore_locked_folders - boolean - If true, the Lock Folders behavior will be disregarded for automated actions.
|
|
463
470
|
# name - string - Name for this automation.
|
|
471
|
+
# overwrite_files - boolean - If true, existing files will be overwritten with new files on Move/Copy automations. Note: by default files will not be overwritten if they appear to be the same file size as the newly incoming file. Use the `:always_overwrite_size_matching_files` option to override this.
|
|
464
472
|
# trigger - string - How this automation is triggered to run.
|
|
465
473
|
# trigger_actions - array(string) - If trigger is `action`, this is the list of action types on which to trigger the automation. Valid actions are create, read, update, destroy, move, copy
|
|
466
474
|
# value - object - A Hash of attributes specific to the automation type.
|
|
@@ -17,6 +17,7 @@ class Behavior:
|
|
|
17
17
|
"name": None, # string - Name for this behavior.
|
|
18
18
|
"description": None, # string - Description for this behavior.
|
|
19
19
|
"value": None, # object - Settings for this behavior. See the section above for an example value to provide here. Formatting is different for each Behavior type. May be sent as nested JSON or a single JSON-encoded string. If using XML encoding for the API call, this data must be sent as a JSON-encoded string.
|
|
20
|
+
"disable_parent_folder_behavior": None, # boolean - If true, the parent folder's behavior will be disabled for this folder.
|
|
20
21
|
"attachment_file": None, # file - Certain behaviors may require a file, for instance, the "watermark" behavior requires a watermark image
|
|
21
22
|
"attachment_delete": None, # boolean - If true, will delete the file stored in attachment
|
|
22
23
|
}
|
|
@@ -43,6 +44,7 @@ class Behavior:
|
|
|
43
44
|
# Parameters:
|
|
44
45
|
# value - string - The value of the folder behavior. Can be an integer, array, or hash depending on the type of folder behavior. See The Behavior Types section for example values for each type of behavior.
|
|
45
46
|
# attachment_file - file - Certain behaviors may require a file, for instance, the "watermark" behavior requires a watermark image
|
|
47
|
+
# disable_parent_folder_behavior - boolean - If true, the parent folder's behavior will be disabled for this folder.
|
|
46
48
|
# name - string - Name for this behavior.
|
|
47
49
|
# description - string - Description for this behavior.
|
|
48
50
|
# behavior - string - Behavior type.
|
|
@@ -220,6 +222,7 @@ def list_for(path, params=None, options=None):
|
|
|
220
222
|
# Parameters:
|
|
221
223
|
# value - string - The value of the folder behavior. Can be an integer, array, or hash depending on the type of folder behavior. See The Behavior Types section for example values for each type of behavior.
|
|
222
224
|
# attachment_file - file - Certain behaviors may require a file, for instance, the "watermark" behavior requires a watermark image
|
|
225
|
+
# disable_parent_folder_behavior - boolean - If true, the parent folder's behavior will be disabled for this folder.
|
|
223
226
|
# name - string - Name for this behavior.
|
|
224
227
|
# description - string - Description for this behavior.
|
|
225
228
|
# path (required) - string - Folder behaviors path.
|
|
@@ -281,6 +284,7 @@ def webhook_test(params=None, options=None):
|
|
|
281
284
|
# Parameters:
|
|
282
285
|
# value - string - The value of the folder behavior. Can be an integer, array, or hash depending on the type of folder behavior. See The Behavior Types section for example values for each type of behavior.
|
|
283
286
|
# attachment_file - file - Certain behaviors may require a file, for instance, the "watermark" behavior requires a watermark image
|
|
287
|
+
# disable_parent_folder_behavior - boolean - If true, the parent folder's behavior will be disabled for this folder.
|
|
284
288
|
# name - string - Name for this behavior.
|
|
285
289
|
# description - string - Description for this behavior.
|
|
286
290
|
# behavior - string - Behavior type.
|
|
@@ -36,7 +36,8 @@ class Bundle:
|
|
|
36
36
|
"dont_separate_submissions_by_folder": None, # boolean - Do not create subfolders for files uploaded to this share. Note: there are subtle security pitfalls with allowing anonymous uploads from multiple users to live in the same folder. We strongly discourage use of this option unless absolutely required.
|
|
37
37
|
"max_uses": None, # int64 - Maximum number of times bundle can be accessed
|
|
38
38
|
"note": None, # string - Bundle internal note
|
|
39
|
-
"path_template": None, # string - Template for creating submission subfolders. Can use the uploader's name, email address, ip, company, and any custom form data.
|
|
39
|
+
"path_template": None, # string - Template for creating submission subfolders. Can use the uploader's name, email address, ip, company, `strftime` directives, and any custom form data.
|
|
40
|
+
"path_template_time_zone": None, # string - Timezone to use when rendering timestamps in path templates.
|
|
40
41
|
"send_email_receipt_to_uploader": None, # boolean - Send delivery receipt to the uploader. Note: For writable share only
|
|
41
42
|
"snapshot_id": None, # int64 - ID of the snapshot containing this bundle's contents.
|
|
42
43
|
"user_id": None, # int64 - Bundle creator user ID
|
|
@@ -123,7 +124,8 @@ class Bundle:
|
|
|
123
124
|
# inbox_id - int64 - ID of the associated inbox, if available.
|
|
124
125
|
# max_uses - int64 - Maximum number of times bundle can be accessed
|
|
125
126
|
# note - string - Bundle internal note
|
|
126
|
-
# path_template - string - Template for creating submission subfolders. Can use the uploader's name, email address, ip, company, and any custom form data.
|
|
127
|
+
# path_template - string - Template for creating submission subfolders. Can use the uploader's name, email address, ip, company, `strftime` directives, and any custom form data.
|
|
128
|
+
# path_template_time_zone - string - Timezone to use when rendering timestamps in path templates.
|
|
127
129
|
# permissions - string - Permissions that apply to Folders in this Share Link.
|
|
128
130
|
# preview_only - boolean - DEPRECATED: Restrict users to previewing files only. Use `permissions` instead.
|
|
129
131
|
# require_registration - boolean - Show a registration page that captures the downloader's name and email address?
|
|
@@ -197,6 +199,12 @@ class Bundle:
|
|
|
197
199
|
raise InvalidParameterError(
|
|
198
200
|
"Bad parameter: path_template must be an str"
|
|
199
201
|
)
|
|
202
|
+
if "path_template_time_zone" in params and not isinstance(
|
|
203
|
+
params["path_template_time_zone"], str
|
|
204
|
+
):
|
|
205
|
+
raise InvalidParameterError(
|
|
206
|
+
"Bad parameter: path_template_time_zone must be an str"
|
|
207
|
+
)
|
|
200
208
|
if "permissions" in params and not isinstance(
|
|
201
209
|
params["permissions"], str
|
|
202
210
|
):
|
|
@@ -329,7 +337,8 @@ def get(id, params=None, options=None):
|
|
|
329
337
|
# description - string - Public description
|
|
330
338
|
# note - string - Bundle internal note
|
|
331
339
|
# code - string - Bundle code. This code forms the end part of the Public URL.
|
|
332
|
-
# path_template - string - Template for creating submission subfolders. Can use the uploader's name, email address, ip, company, and any custom form data.
|
|
340
|
+
# path_template - string - Template for creating submission subfolders. Can use the uploader's name, email address, ip, company, `strftime` directives, and any custom form data.
|
|
341
|
+
# path_template_time_zone - string - Timezone to use when rendering timestamps in path templates.
|
|
333
342
|
# permissions - string - Permissions that apply to Folders in this Share Link.
|
|
334
343
|
# preview_only - boolean - DEPRECATED: Restrict users to previewing files only. Use `permissions` instead.
|
|
335
344
|
# require_registration - boolean - Show a registration page that captures the downloader's name and email address?
|
|
@@ -378,6 +387,12 @@ def create(params=None, options=None):
|
|
|
378
387
|
raise InvalidParameterError(
|
|
379
388
|
"Bad parameter: path_template must be an str"
|
|
380
389
|
)
|
|
390
|
+
if "path_template_time_zone" in params and not isinstance(
|
|
391
|
+
params["path_template_time_zone"], str
|
|
392
|
+
):
|
|
393
|
+
raise InvalidParameterError(
|
|
394
|
+
"Bad parameter: path_template_time_zone must be an str"
|
|
395
|
+
)
|
|
381
396
|
if "permissions" in params and not isinstance(params["permissions"], str):
|
|
382
397
|
raise InvalidParameterError(
|
|
383
398
|
"Bad parameter: permissions must be an str"
|
|
@@ -451,7 +466,8 @@ def share(id, params=None, options=None):
|
|
|
451
466
|
# inbox_id - int64 - ID of the associated inbox, if available.
|
|
452
467
|
# max_uses - int64 - Maximum number of times bundle can be accessed
|
|
453
468
|
# note - string - Bundle internal note
|
|
454
|
-
# path_template - string - Template for creating submission subfolders. Can use the uploader's name, email address, ip, company, and any custom form data.
|
|
469
|
+
# path_template - string - Template for creating submission subfolders. Can use the uploader's name, email address, ip, company, `strftime` directives, and any custom form data.
|
|
470
|
+
# path_template_time_zone - string - Timezone to use when rendering timestamps in path templates.
|
|
455
471
|
# permissions - string - Permissions that apply to Folders in this Share Link.
|
|
456
472
|
# preview_only - boolean - DEPRECATED: Restrict users to previewing files only. Use `permissions` instead.
|
|
457
473
|
# require_registration - boolean - Show a registration page that captures the downloader's name and email address?
|
|
@@ -507,6 +523,12 @@ def update(id, params=None, options=None):
|
|
|
507
523
|
raise InvalidParameterError(
|
|
508
524
|
"Bad parameter: path_template must be an str"
|
|
509
525
|
)
|
|
526
|
+
if "path_template_time_zone" in params and not isinstance(
|
|
527
|
+
params["path_template_time_zone"], str
|
|
528
|
+
):
|
|
529
|
+
raise InvalidParameterError(
|
|
530
|
+
"Bad parameter: path_template_time_zone must be an str"
|
|
531
|
+
)
|
|
510
532
|
if "permissions" in params and not isinstance(params["permissions"], str):
|
|
511
533
|
raise InvalidParameterError(
|
|
512
534
|
"Bad parameter: permissions must be an str"
|
|
@@ -114,17 +114,10 @@ class RemoteServer:
|
|
|
114
114
|
# Post local changes, check in, and download configuration file (used by some Remote Server integrations, such as the Files.com Agent)
|
|
115
115
|
#
|
|
116
116
|
# Parameters:
|
|
117
|
-
#
|
|
118
|
-
#
|
|
119
|
-
#
|
|
120
|
-
#
|
|
121
|
-
# port - int64 - Incoming port for files agent connections
|
|
122
|
-
# status - string - either running or shutdown
|
|
123
|
-
# config_version - string - agent config version
|
|
124
|
-
# private_key - string - private key
|
|
125
|
-
# public_key - string - public key
|
|
126
|
-
# server_host_key - string
|
|
127
|
-
# subdomain - string
|
|
117
|
+
# permission_set - string - The permission set for the agent ['read_write', 'read_only', 'write_only']
|
|
118
|
+
# root - string - The root directory for the agent
|
|
119
|
+
# private_key - string - The private key for the agent
|
|
120
|
+
# subdomain - string - Files.com subdomain site name
|
|
128
121
|
def configuration_file(self, params=None):
|
|
129
122
|
if not isinstance(params, dict):
|
|
130
123
|
params = {}
|
|
@@ -137,10 +130,6 @@ class RemoteServer:
|
|
|
137
130
|
raise MissingParameterError("Parameter missing: id")
|
|
138
131
|
if "id" in params and not isinstance(params["id"], int):
|
|
139
132
|
raise InvalidParameterError("Bad parameter: id must be an int")
|
|
140
|
-
if "api_token" in params and not isinstance(params["api_token"], str):
|
|
141
|
-
raise InvalidParameterError(
|
|
142
|
-
"Bad parameter: api_token must be an str"
|
|
143
|
-
)
|
|
144
133
|
if "permission_set" in params and not isinstance(
|
|
145
134
|
params["permission_set"], str
|
|
146
135
|
):
|
|
@@ -149,38 +138,12 @@ class RemoteServer:
|
|
|
149
138
|
)
|
|
150
139
|
if "root" in params and not isinstance(params["root"], str):
|
|
151
140
|
raise InvalidParameterError("Bad parameter: root must be an str")
|
|
152
|
-
if "hostname" in params and not isinstance(params["hostname"], str):
|
|
153
|
-
raise InvalidParameterError(
|
|
154
|
-
"Bad parameter: hostname must be an str"
|
|
155
|
-
)
|
|
156
|
-
if "port" in params and not isinstance(params["port"], int):
|
|
157
|
-
raise InvalidParameterError("Bad parameter: port must be an int")
|
|
158
|
-
if "status" in params and not isinstance(params["status"], str):
|
|
159
|
-
raise InvalidParameterError("Bad parameter: status must be an str")
|
|
160
|
-
if "config_version" in params and not isinstance(
|
|
161
|
-
params["config_version"], str
|
|
162
|
-
):
|
|
163
|
-
raise InvalidParameterError(
|
|
164
|
-
"Bad parameter: config_version must be an str"
|
|
165
|
-
)
|
|
166
141
|
if "private_key" in params and not isinstance(
|
|
167
142
|
params["private_key"], str
|
|
168
143
|
):
|
|
169
144
|
raise InvalidParameterError(
|
|
170
145
|
"Bad parameter: private_key must be an str"
|
|
171
146
|
)
|
|
172
|
-
if "public_key" in params and not isinstance(
|
|
173
|
-
params["public_key"], str
|
|
174
|
-
):
|
|
175
|
-
raise InvalidParameterError(
|
|
176
|
-
"Bad parameter: public_key must be an str"
|
|
177
|
-
)
|
|
178
|
-
if "server_host_key" in params and not isinstance(
|
|
179
|
-
params["server_host_key"], str
|
|
180
|
-
):
|
|
181
|
-
raise InvalidParameterError(
|
|
182
|
-
"Bad parameter: server_host_key must be an str"
|
|
183
|
-
)
|
|
184
147
|
if "subdomain" in params and not isinstance(params["subdomain"], str):
|
|
185
148
|
raise InvalidParameterError(
|
|
186
149
|
"Bad parameter: subdomain must be an str"
|
|
@@ -1119,17 +1082,10 @@ def create(params=None, options=None):
|
|
|
1119
1082
|
# Post local changes, check in, and download configuration file (used by some Remote Server integrations, such as the Files.com Agent)
|
|
1120
1083
|
#
|
|
1121
1084
|
# Parameters:
|
|
1122
|
-
#
|
|
1123
|
-
#
|
|
1124
|
-
#
|
|
1125
|
-
#
|
|
1126
|
-
# port - int64 - Incoming port for files agent connections
|
|
1127
|
-
# status - string - either running or shutdown
|
|
1128
|
-
# config_version - string - agent config version
|
|
1129
|
-
# private_key - string - private key
|
|
1130
|
-
# public_key - string - public key
|
|
1131
|
-
# server_host_key - string
|
|
1132
|
-
# subdomain - string
|
|
1085
|
+
# permission_set - string - The permission set for the agent ['read_write', 'read_only', 'write_only']
|
|
1086
|
+
# root - string - The root directory for the agent
|
|
1087
|
+
# private_key - string - The private key for the agent
|
|
1088
|
+
# subdomain - string - Files.com subdomain site name
|
|
1133
1089
|
def configuration_file(id, params=None, options=None):
|
|
1134
1090
|
if not isinstance(params, dict):
|
|
1135
1091
|
params = {}
|
|
@@ -1138,8 +1094,6 @@ def configuration_file(id, params=None, options=None):
|
|
|
1138
1094
|
params["id"] = id
|
|
1139
1095
|
if "id" in params and not isinstance(params["id"], int):
|
|
1140
1096
|
raise InvalidParameterError("Bad parameter: id must be an int")
|
|
1141
|
-
if "api_token" in params and not isinstance(params["api_token"], str):
|
|
1142
|
-
raise InvalidParameterError("Bad parameter: api_token must be an str")
|
|
1143
1097
|
if "permission_set" in params and not isinstance(
|
|
1144
1098
|
params["permission_set"], str
|
|
1145
1099
|
):
|
|
@@ -1148,30 +1102,10 @@ def configuration_file(id, params=None, options=None):
|
|
|
1148
1102
|
)
|
|
1149
1103
|
if "root" in params and not isinstance(params["root"], str):
|
|
1150
1104
|
raise InvalidParameterError("Bad parameter: root must be an str")
|
|
1151
|
-
if "hostname" in params and not isinstance(params["hostname"], str):
|
|
1152
|
-
raise InvalidParameterError("Bad parameter: hostname must be an str")
|
|
1153
|
-
if "port" in params and not isinstance(params["port"], int):
|
|
1154
|
-
raise InvalidParameterError("Bad parameter: port must be an int")
|
|
1155
|
-
if "status" in params and not isinstance(params["status"], str):
|
|
1156
|
-
raise InvalidParameterError("Bad parameter: status must be an str")
|
|
1157
|
-
if "config_version" in params and not isinstance(
|
|
1158
|
-
params["config_version"], str
|
|
1159
|
-
):
|
|
1160
|
-
raise InvalidParameterError(
|
|
1161
|
-
"Bad parameter: config_version must be an str"
|
|
1162
|
-
)
|
|
1163
1105
|
if "private_key" in params and not isinstance(params["private_key"], str):
|
|
1164
1106
|
raise InvalidParameterError(
|
|
1165
1107
|
"Bad parameter: private_key must be an str"
|
|
1166
1108
|
)
|
|
1167
|
-
if "public_key" in params and not isinstance(params["public_key"], str):
|
|
1168
|
-
raise InvalidParameterError("Bad parameter: public_key must be an str")
|
|
1169
|
-
if "server_host_key" in params and not isinstance(
|
|
1170
|
-
params["server_host_key"], str
|
|
1171
|
-
):
|
|
1172
|
-
raise InvalidParameterError(
|
|
1173
|
-
"Bad parameter: server_host_key must be an str"
|
|
1174
|
-
)
|
|
1175
1109
|
if "subdomain" in params and not isinstance(params["subdomain"], str):
|
|
1176
1110
|
raise InvalidParameterError("Bad parameter: subdomain must be an str")
|
|
1177
1111
|
if "id" not in params:
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import builtins # noqa: F401
|
|
2
|
+
from files_sdk.api import Api # noqa: F401
|
|
3
|
+
from files_sdk.error import ( # noqa: F401
|
|
4
|
+
InvalidParameterError,
|
|
5
|
+
MissingParameterError,
|
|
6
|
+
NotImplementedError,
|
|
7
|
+
)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class RemoteServerConfigurationFile:
|
|
11
|
+
default_attributes = {
|
|
12
|
+
"id": None, # int64 - The remote server ID of the agent
|
|
13
|
+
"permission_set": None, # string - The permission set for the agent ['read_write', 'read_only', 'write_only']
|
|
14
|
+
"private_key": None, # string - The private key for the agent
|
|
15
|
+
"subdomain": None, # string - Files.com subdomain site name
|
|
16
|
+
"root": None, # string - The root directory for the agent
|
|
17
|
+
"follow_links": None, # boolean - Follow symlinks when traversing directories
|
|
18
|
+
"prefer_protocol": None, # string - Preferred network protocol ['udp', 'tcp']
|
|
19
|
+
"dns": None, # string - DNS lookup method ['auto','doh','system']
|
|
20
|
+
"proxy_all_outbound": None, # boolean - Proxy all outbound traffic through files.com proxy server
|
|
21
|
+
"endpoint_override": None, # string - Custom site endpoint URL
|
|
22
|
+
"log_file": None, # string - Log file name and location
|
|
23
|
+
"log_level": None, # string - Log level for the agent logs ['debug', 'info', 'warn', 'error', 'fatal']
|
|
24
|
+
"log_rotate_num": None, # int64 - Log route for agent logs. (default 5)
|
|
25
|
+
"log_rotate_size": None, # int64 - Log route size in MB for agent logs. (default 20MB)
|
|
26
|
+
"max_concurrent_jobs": None, # int64 - Maximum number of concurrent jobs (default CPU Count * 4)
|
|
27
|
+
"graceful_shutdown_timeout": None, # int64 - Graceful shutdown timeout in seconds
|
|
28
|
+
"transfer_rate_limit": None, # string - File transfer (upload/download) rate limit
|
|
29
|
+
# <limit>-<period>, with the given periods:
|
|
30
|
+
# * 'S': second
|
|
31
|
+
# * 'M': minute
|
|
32
|
+
# * 'H': hour
|
|
33
|
+
# * 'D': day
|
|
34
|
+
# Examples:
|
|
35
|
+
# * 5 requests/second: '5-S'
|
|
36
|
+
# * 10 requests/minute: '10-M'
|
|
37
|
+
# * 1000 requests/hour: '1000-H'
|
|
38
|
+
# * 2000 requests/day: '2000-D'
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
def __init__(self, attributes=None, options=None):
|
|
42
|
+
if not isinstance(attributes, dict):
|
|
43
|
+
attributes = {}
|
|
44
|
+
if not isinstance(options, dict):
|
|
45
|
+
options = {}
|
|
46
|
+
self.set_attributes(attributes)
|
|
47
|
+
self.options = options
|
|
48
|
+
|
|
49
|
+
def set_attributes(self, attributes):
|
|
50
|
+
for (
|
|
51
|
+
attribute,
|
|
52
|
+
default_value,
|
|
53
|
+
) in RemoteServerConfigurationFile.default_attributes.items():
|
|
54
|
+
setattr(self, attribute, attributes.get(attribute, default_value))
|
|
55
|
+
|
|
56
|
+
def get_attributes(self):
|
|
57
|
+
return {
|
|
58
|
+
k: getattr(self, k, None)
|
|
59
|
+
for k in RemoteServerConfigurationFile.default_attributes
|
|
60
|
+
if getattr(self, k, None) is not None
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
def new(*args, **kwargs):
|
|
65
|
+
return RemoteServerConfigurationFile(*args, **kwargs)
|
|
@@ -128,7 +128,7 @@ class Site:
|
|
|
128
128
|
"sftp_enabled": None, # boolean - Is SFTP enabled?
|
|
129
129
|
"sftp_host_key_type": None, # string - Sftp Host Key Type
|
|
130
130
|
"active_sftp_host_key_id": None, # int64 - Id of the currently selected custom SFTP Host Key
|
|
131
|
-
"sftp_insecure_ciphers": None, # boolean - Are Insecure Ciphers allowed for SFTP? Note:
|
|
131
|
+
"sftp_insecure_ciphers": None, # boolean - Are Insecure Ciphers allowed for SFTP? Note: Setting TLS Disabled -> True will always allow insecure ciphers for SFTP as well. Enabling this is insecure.
|
|
132
132
|
"sftp_user_root_enabled": None, # boolean - Use user FTP roots also for SFTP?
|
|
133
133
|
"sharing_enabled": None, # boolean - Allow bundle creation
|
|
134
134
|
"show_request_access_link": None, # boolean - Show request access link for users without access? Currently unused.
|
|
@@ -240,7 +240,7 @@ def get_usage(params=None, options=None):
|
|
|
240
240
|
# session_expiry - double - Session expiry in hours
|
|
241
241
|
# ssl_required - boolean - Is SSL required? Disabling this is insecure.
|
|
242
242
|
# tls_disabled - boolean - Are Insecure TLS and SFTP Ciphers allowed? Enabling this is insecure.
|
|
243
|
-
# sftp_insecure_ciphers - boolean - Are Insecure Ciphers allowed for SFTP? Note:
|
|
243
|
+
# sftp_insecure_ciphers - boolean - Are Insecure Ciphers allowed for SFTP? Note: Setting TLS Disabled -> True will always allow insecure ciphers for SFTP as well. Enabling this is insecure.
|
|
244
244
|
# disable_files_certificate_generation - boolean - If set, Files.com will not set the CAA records required to generate future SSL certificates for this domain.
|
|
245
245
|
# user_lockout - boolean - Will users be locked out after incorrect login attempts?
|
|
246
246
|
# user_lockout_tries - int64 - Number of login tries within `user_lockout_within` hours before users are locked out
|
|
@@ -45,6 +45,7 @@ class SsoStrategy:
|
|
|
45
45
|
"provision_sftp_permission": None, # boolean - Auto-provisioned users get SFTP permission?
|
|
46
46
|
"provision_time_zone": None, # string - Default time zone for auto provisioned users.
|
|
47
47
|
"provision_company": None, # string - Default company for auto provisioned users.
|
|
48
|
+
"provision_require_2fa": None, # string - 2FA required setting for auto provisioned users.
|
|
48
49
|
"ldap_base_dn": None, # string - Base DN for looking up users in LDAP server
|
|
49
50
|
"ldap_domain": None, # string - Domain name that will be appended to LDAP usernames
|
|
50
51
|
"enabled": None, # boolean - Is strategy enabled? This may become automatically set to `false` after a high number and duration of failures.
|
|
@@ -66,7 +66,8 @@ class User:
|
|
|
66
66
|
"subscribe_to_newsletter": None, # boolean - Is the user subscribed to the newsletter?
|
|
67
67
|
"externally_managed": None, # boolean - Is this user managed by a SsoStrategy?
|
|
68
68
|
"time_zone": None, # string - User time zone
|
|
69
|
-
"type_of_2fa": None, # string - Type(s) of 2FA methods in use. Will be either `sms`, `totp`, `u2f`, `yubi`, or multiple values sorted alphabetically and joined by an underscore.
|
|
69
|
+
"type_of_2fa": None, # string - Type(s) of 2FA methods in use, for programmatic use. Will be either `sms`, `totp`, `u2f`, `yubi`, or multiple values sorted alphabetically and joined by an underscore. Does not specify whether user has more than one of a given method.
|
|
70
|
+
"type_of_2fa_for_display": None, # string - Type(s) of 2FA methods in use, formatted for displaying in the UI. Unlike `type_of_2fa`, this value will make clear when a user has more than 1 of the same type of method.
|
|
70
71
|
"user_root": None, # string - Root folder for FTP (and optionally SFTP if the appropriate site-wide setting is set.) Note that this is not used for API, Desktop, or Web interface.
|
|
71
72
|
"days_remaining_until_password_expire": None, # int64 - Number of days remaining until password expires
|
|
72
73
|
"password_expire_at": None, # date-time - Password expiration datetime
|
|
@@ -14,6 +14,7 @@ class UserRequest:
|
|
|
14
14
|
"name": None, # string - User's full name
|
|
15
15
|
"email": None, # email - User email address
|
|
16
16
|
"details": None, # string - Details of the user's request
|
|
17
|
+
"company": None, # string - User's company name
|
|
17
18
|
}
|
|
18
19
|
|
|
19
20
|
def __init__(self, attributes=None, options=None):
|
|
@@ -113,6 +114,7 @@ def get(id, params=None, options=None):
|
|
|
113
114
|
# name (required) - string - Name of user requested
|
|
114
115
|
# email (required) - string - Email of user requested
|
|
115
116
|
# details (required) - string - Details of the user request
|
|
117
|
+
# company - string - Company of the user requested
|
|
116
118
|
def create(params=None, options=None):
|
|
117
119
|
if not isinstance(params, dict):
|
|
118
120
|
params = {}
|
|
@@ -124,6 +126,8 @@ def create(params=None, options=None):
|
|
|
124
126
|
raise InvalidParameterError("Bad parameter: email must be an str")
|
|
125
127
|
if "details" in params and not isinstance(params["details"], str):
|
|
126
128
|
raise InvalidParameterError("Bad parameter: details must be an str")
|
|
129
|
+
if "company" in params and not isinstance(params["company"], str):
|
|
130
|
+
raise InvalidParameterError("Bad parameter: company must be an str")
|
|
127
131
|
if "name" not in params:
|
|
128
132
|
raise MissingParameterError("Parameter missing: name")
|
|
129
133
|
if "email" not in params:
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import builtins # noqa: F401
|
|
2
|
-
from files_sdk.api import Api # noqa: F401
|
|
3
|
-
from files_sdk.error import ( # noqa: F401
|
|
4
|
-
InvalidParameterError,
|
|
5
|
-
MissingParameterError,
|
|
6
|
-
NotImplementedError,
|
|
7
|
-
)
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
class RemoteServerConfigurationFile:
|
|
11
|
-
default_attributes = {
|
|
12
|
-
"id": None, # int64 - Agent ID
|
|
13
|
-
"permission_set": None, # string -
|
|
14
|
-
"private_key": None, # string - private key
|
|
15
|
-
"subdomain": None, # string
|
|
16
|
-
"root": None, # string - Agent local root path
|
|
17
|
-
"api_token": None, # string - Files Agent API Token
|
|
18
|
-
"port": None, # int64 - Incoming port for files agent connections
|
|
19
|
-
"hostname": None, # string
|
|
20
|
-
"public_key": None, # string - public key
|
|
21
|
-
"status": None, # string - either running or shutdown
|
|
22
|
-
"server_host_key": None, # string
|
|
23
|
-
"config_version": None, # string - agent config version
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
def __init__(self, attributes=None, options=None):
|
|
27
|
-
if not isinstance(attributes, dict):
|
|
28
|
-
attributes = {}
|
|
29
|
-
if not isinstance(options, dict):
|
|
30
|
-
options = {}
|
|
31
|
-
self.set_attributes(attributes)
|
|
32
|
-
self.options = options
|
|
33
|
-
|
|
34
|
-
def set_attributes(self, attributes):
|
|
35
|
-
for (
|
|
36
|
-
attribute,
|
|
37
|
-
default_value,
|
|
38
|
-
) in RemoteServerConfigurationFile.default_attributes.items():
|
|
39
|
-
setattr(self, attribute, attributes.get(attribute, default_value))
|
|
40
|
-
|
|
41
|
-
def get_attributes(self):
|
|
42
|
-
return {
|
|
43
|
-
k: getattr(self, k, None)
|
|
44
|
-
for k in RemoteServerConfigurationFile.default_attributes
|
|
45
|
-
if getattr(self, k, None) is not None
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
def new(*args, **kwargs):
|
|
50
|
-
return RemoteServerConfigurationFile(*args, **kwargs)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|