Files.com 1.6.392__tar.gz → 1.6.394__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.6.392/files_com.egg-info → files_com-1.6.394}/PKG-INFO +1 -1
- files_com-1.6.394/_VERSION +1 -0
- {files_com-1.6.392 → files_com-1.6.394/files_com.egg-info}/PKG-INFO +1 -1
- {files_com-1.6.392 → files_com-1.6.394}/files_com.egg-info/SOURCES.txt +2 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/__init__.py +3 -1
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/__init__.py +1 -0
- files_com-1.6.394/files_sdk/models/custom_domain.py +271 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/file.py +220 -0
- {files_com-1.6.392 → files_com-1.6.394}/pyproject.toml +1 -1
- files_com-1.6.394/tests/test_custom_domain.py +68 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_file.py +36 -0
- files_com-1.6.392/_VERSION +0 -1
- {files_com-1.6.392 → files_com-1.6.394}/LICENSE +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/README.md +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_com.egg-info/dependency_links.txt +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_com.egg-info/requires.txt +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_com.egg-info/top_level.txt +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/api.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/api_client.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/error.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/list_obj.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/account_line_item.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/action.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/action_log.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/action_notification_export.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/action_notification_export_result.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/agent_push_update.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/api_key.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/api_request_log.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/app.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/as2_incoming_message.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/as2_outgoing_message.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/as2_partner.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/as2_station.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/auto.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/automation.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/automation_log.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/automation_run.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/bandwidth_snapshot.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/behavior.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/bundle.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/bundle_action.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/bundle_download.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/bundle_notification.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/bundle_path.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/bundle_recipient.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/bundle_registration.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/child_site_management_policy.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/clickwrap.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/desktop_configuration_profile.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/dns_record.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/email_incoming_message.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/email_log.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/errors.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/event_channel.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/event_delivery_attempt.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/event_record.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/event_subscription.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/event_target.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/exavault_api_request_log.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/expectation.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/expectation_evaluation.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/expectation_incident.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/external_event.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/file_action.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/file_comment.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/file_comment_reaction.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/file_migration.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/file_migration_log.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/file_upload_part.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/folder.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/form_field.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/form_field_set.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/ftp_action_log.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/gpg_key.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/group.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/group_user.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/history.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/history_export.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/history_export_result.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/holiday_region.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/image.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/inbound_s3_log.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/inbox_recipient.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/inbox_registration.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/inbox_upload.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/invoice.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/invoice_line_item.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/ip_address.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/key_lifecycle_rule.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/lock.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/message.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/message_comment.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/message_comment_reaction.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/message_reaction.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/metadata_category.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/notification.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/outbound_connection_log.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/partner.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/partner_site.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/partner_site_request.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/payment.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/payment_line_item.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/pending_work_event.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/permission.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/preview.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/project.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/public_hosting_request_log.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/public_ip_address.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/public_key.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/remote_bandwidth_snapshot.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/remote_mount_backend.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/remote_server.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/remote_server_configuration_file.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/remote_server_credential.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/request.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/restore.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/scheduled_export.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/scim_log.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/session.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/settings_change.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/sftp_action_log.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/sftp_host_key.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/share_group.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/share_group_member.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/siem_http_destination.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/siem_http_destination_event.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/site.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/site_subdomain_redirect.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/snapshot.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/sso_event.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/sso_strategy.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/status.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/style.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/sync.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/sync_log.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/sync_run.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/sync_run_live_transfer.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/usage_by_top_level_dir.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/usage_daily_snapshot.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/usage_snapshot.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/user.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/user_cipher_use.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/user_lifecycle_rule.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/user_request.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/user_security_event.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/user_sftp_client_use.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/web_dav_action_log.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/webhook_test.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/workspace.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/models/zip_list_entry.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/path_util.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/files_sdk/util.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/setup.cfg +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_account_line_item.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_action.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_action_log.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_action_notification_export.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_action_notification_export_result.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_agent_push_update.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_api_errors.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_api_key.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_api_request_log.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_app.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_as2_incoming_message.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_as2_outgoing_message.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_as2_partner.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_as2_station.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_auto.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_automation.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_automation_log.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_automation_run.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_bandwidth_snapshot.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_behavior.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_bundle.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_bundle_action.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_bundle_download.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_bundle_notification.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_bundle_path.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_bundle_recipient.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_bundle_registration.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_child_site_management_policy.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_clickwrap.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_connection_adapter.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_decimal_contract.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_desktop_configuration_profile.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_dns_record.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_email_incoming_message.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_email_log.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_errors.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_event_channel.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_event_delivery_attempt.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_event_record.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_event_subscription.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_event_target.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_exavault_api_request_log.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_expectation.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_expectation_evaluation.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_expectation_incident.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_external_event.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_file_action.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_file_comment.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_file_comment_reaction.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_file_migration.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_file_migration_log.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_file_upload_part.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_folder.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_form_field.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_form_field_set.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_ftp_action_log.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_gpg_key.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_group.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_group_user.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_history.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_history_export.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_history_export_result.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_holiday_region.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_image.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_inbound_s3_log.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_inbox_recipient.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_inbox_registration.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_inbox_upload.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_invoice.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_invoice_line_item.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_ip_address.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_key_lifecycle_rule.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_lock.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_message.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_message_comment.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_message_comment_reaction.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_message_reaction.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_metadata_category.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_notification.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_outbound_connection_log.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_partner.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_partner_site.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_partner_site_request.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_path_util.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_payment.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_payment_line_item.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_pending_work_event.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_permission.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_preview.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_project.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_public_hosting_request_log.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_public_ip_address.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_public_key.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_remote_bandwidth_snapshot.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_remote_mount_backend.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_remote_server.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_remote_server_configuration_file.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_remote_server_credential.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_request.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_restore.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_scheduled_export.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_scim_log.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_session.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_settings_change.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_sftp_action_log.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_sftp_host_key.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_share_group.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_share_group_member.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_siem_http_destination.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_siem_http_destination_event.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_site.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_site_subdomain_redirect.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_snapshot.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_sso_event.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_sso_strategy.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_status.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_style.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_sync.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_sync_log.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_sync_run.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_sync_run_live_transfer.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_usage_by_top_level_dir.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_usage_daily_snapshot.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_usage_snapshot.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_user.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_user_cipher_use.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_user_lifecycle_rule.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_user_request.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_user_security_event.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_user_sftp_client_use.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_web_dav_action_log.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_webhook_test.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_workspace.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_workspace_id.py +0 -0
- {files_com-1.6.392 → files_com-1.6.394}/tests/test_zip_list_entry.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1.6.394
|
|
@@ -44,6 +44,7 @@ files_sdk/models/bundle_recipient.py
|
|
|
44
44
|
files_sdk/models/bundle_registration.py
|
|
45
45
|
files_sdk/models/child_site_management_policy.py
|
|
46
46
|
files_sdk/models/clickwrap.py
|
|
47
|
+
files_sdk/models/custom_domain.py
|
|
47
48
|
files_sdk/models/desktop_configuration_profile.py
|
|
48
49
|
files_sdk/models/dns_record.py
|
|
49
50
|
files_sdk/models/email_incoming_message.py
|
|
@@ -177,6 +178,7 @@ tests/test_bundle_registration.py
|
|
|
177
178
|
tests/test_child_site_management_policy.py
|
|
178
179
|
tests/test_clickwrap.py
|
|
179
180
|
tests/test_connection_adapter.py
|
|
181
|
+
tests/test_custom_domain.py
|
|
180
182
|
tests/test_decimal_contract.py
|
|
181
183
|
tests/test_desktop_configuration_profile.py
|
|
182
184
|
tests/test_dns_record.py
|
|
@@ -27,6 +27,7 @@ import files_sdk.models.bundle_recipient as bundle_recipient
|
|
|
27
27
|
import files_sdk.models.bundle_registration as bundle_registration
|
|
28
28
|
import files_sdk.models.child_site_management_policy as child_site_management_policy
|
|
29
29
|
import files_sdk.models.clickwrap as clickwrap
|
|
30
|
+
import files_sdk.models.custom_domain as custom_domain
|
|
30
31
|
import files_sdk.models.desktop_configuration_profile as desktop_configuration_profile
|
|
31
32
|
import files_sdk.models.dns_record as dns_record
|
|
32
33
|
import files_sdk.models.email_incoming_message as email_incoming_message
|
|
@@ -165,6 +166,7 @@ from files_sdk.models.child_site_management_policy import (
|
|
|
165
166
|
ChildSiteManagementPolicy,
|
|
166
167
|
)
|
|
167
168
|
from files_sdk.models.clickwrap import Clickwrap
|
|
169
|
+
from files_sdk.models.custom_domain import CustomDomain
|
|
168
170
|
from files_sdk.models.desktop_configuration_profile import (
|
|
169
171
|
DesktopConfigurationProfile,
|
|
170
172
|
)
|
|
@@ -286,7 +288,7 @@ source_ip = None
|
|
|
286
288
|
workspace_id = None
|
|
287
289
|
base_url = "https://app.files.com"
|
|
288
290
|
base_path = "api/rest/v1"
|
|
289
|
-
version = "1.6.
|
|
291
|
+
version = "1.6.394"
|
|
290
292
|
|
|
291
293
|
__version__ = version
|
|
292
294
|
|
|
@@ -32,6 +32,7 @@ from files_sdk.models.child_site_management_policy import (
|
|
|
32
32
|
ChildSiteManagementPolicy,
|
|
33
33
|
)
|
|
34
34
|
from files_sdk.models.clickwrap import Clickwrap
|
|
35
|
+
from files_sdk.models.custom_domain import CustomDomain
|
|
35
36
|
from files_sdk.models.desktop_configuration_profile import (
|
|
36
37
|
DesktopConfigurationProfile,
|
|
37
38
|
)
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
import builtins # noqa: F401
|
|
2
|
+
from files_sdk.api import Api # noqa: F401
|
|
3
|
+
from files_sdk.list_obj import ListObj
|
|
4
|
+
from files_sdk.error import ( # noqa: F401
|
|
5
|
+
InvalidParameterError,
|
|
6
|
+
MissingParameterError,
|
|
7
|
+
NotImplementedError,
|
|
8
|
+
)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class CustomDomain:
|
|
12
|
+
default_attributes = {
|
|
13
|
+
"id": None, # int64 - Custom Domain ID.
|
|
14
|
+
"domain": None, # string - Customer-owned domain name.
|
|
15
|
+
"destination": None, # string - Where this custom domain routes. Can be `site_alias`, `public_hosting`, or `s3_endpoint`.
|
|
16
|
+
"dns_status": None, # string - Current DNS verification status.
|
|
17
|
+
"ssl_certificate_id": None, # int64 - Current SSL certificate ID.
|
|
18
|
+
"brick_managed": None, # boolean - Is this domain's SSL certificate automatically managed and renewed by Files.com?
|
|
19
|
+
"folder_behavior_id": None, # int64 - Public Hosting behavior ID when this domain routes to a specific Public Hosting behavior.
|
|
20
|
+
"created_at": None, # date-time - When this Custom Domain was created.
|
|
21
|
+
"updated_at": None, # date-time - When this Custom Domain was last updated.
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
def __init__(self, attributes=None, options=None):
|
|
25
|
+
if not isinstance(attributes, dict):
|
|
26
|
+
attributes = {}
|
|
27
|
+
if not isinstance(options, dict):
|
|
28
|
+
options = {}
|
|
29
|
+
self.set_attributes(attributes)
|
|
30
|
+
self.options = options
|
|
31
|
+
|
|
32
|
+
def set_attributes(self, attributes):
|
|
33
|
+
for (
|
|
34
|
+
attribute,
|
|
35
|
+
default_value,
|
|
36
|
+
) in CustomDomain.default_attributes.items():
|
|
37
|
+
value = attributes.get(attribute, default_value)
|
|
38
|
+
setattr(self, attribute, value)
|
|
39
|
+
|
|
40
|
+
def get_attributes(self):
|
|
41
|
+
attrs = {
|
|
42
|
+
k: getattr(self, k, None)
|
|
43
|
+
for k in CustomDomain.default_attributes
|
|
44
|
+
if getattr(self, k, None) is not None
|
|
45
|
+
}
|
|
46
|
+
return attrs
|
|
47
|
+
|
|
48
|
+
# Parameters:
|
|
49
|
+
# destination - string - Where this custom domain routes. Can be `site_alias`, `public_hosting`, or `s3_endpoint`.
|
|
50
|
+
# folder_behavior_id - int64 - Public Hosting behavior ID when this domain routes to a specific Public Hosting behavior.
|
|
51
|
+
# ssl_certificate_id - int64 - Current SSL certificate ID.
|
|
52
|
+
# domain - string - Customer-owned domain name.
|
|
53
|
+
def update(self, params=None):
|
|
54
|
+
if not isinstance(params, dict):
|
|
55
|
+
params = {}
|
|
56
|
+
|
|
57
|
+
if hasattr(self, "id") and self.id:
|
|
58
|
+
params["id"] = self.id
|
|
59
|
+
else:
|
|
60
|
+
raise MissingParameterError("Current object doesn't have a id")
|
|
61
|
+
if "id" not in params:
|
|
62
|
+
raise MissingParameterError("Parameter missing: id")
|
|
63
|
+
if "id" in params and not isinstance(params["id"], int):
|
|
64
|
+
raise InvalidParameterError("Bad parameter: id must be an int")
|
|
65
|
+
if "destination" in params and not isinstance(
|
|
66
|
+
params["destination"], str
|
|
67
|
+
):
|
|
68
|
+
raise InvalidParameterError(
|
|
69
|
+
"Bad parameter: destination must be an str"
|
|
70
|
+
)
|
|
71
|
+
if "folder_behavior_id" in params and not isinstance(
|
|
72
|
+
params["folder_behavior_id"], int
|
|
73
|
+
):
|
|
74
|
+
raise InvalidParameterError(
|
|
75
|
+
"Bad parameter: folder_behavior_id must be an int"
|
|
76
|
+
)
|
|
77
|
+
if "ssl_certificate_id" in params and not isinstance(
|
|
78
|
+
params["ssl_certificate_id"], int
|
|
79
|
+
):
|
|
80
|
+
raise InvalidParameterError(
|
|
81
|
+
"Bad parameter: ssl_certificate_id must be an int"
|
|
82
|
+
)
|
|
83
|
+
if "domain" in params and not isinstance(params["domain"], str):
|
|
84
|
+
raise InvalidParameterError("Bad parameter: domain must be an str")
|
|
85
|
+
response, _options = Api.send_request(
|
|
86
|
+
"PATCH",
|
|
87
|
+
"/custom_domains/{id}".format(id=params["id"]),
|
|
88
|
+
params,
|
|
89
|
+
self.options,
|
|
90
|
+
)
|
|
91
|
+
return response.data
|
|
92
|
+
|
|
93
|
+
def delete(self, params=None):
|
|
94
|
+
if not isinstance(params, dict):
|
|
95
|
+
params = {}
|
|
96
|
+
|
|
97
|
+
if hasattr(self, "id") and self.id:
|
|
98
|
+
params["id"] = self.id
|
|
99
|
+
else:
|
|
100
|
+
raise MissingParameterError("Current object doesn't have a id")
|
|
101
|
+
if "id" not in params:
|
|
102
|
+
raise MissingParameterError("Parameter missing: id")
|
|
103
|
+
if "id" in params and not isinstance(params["id"], int):
|
|
104
|
+
raise InvalidParameterError("Bad parameter: id must be an int")
|
|
105
|
+
Api.send_request(
|
|
106
|
+
"DELETE",
|
|
107
|
+
"/custom_domains/{id}".format(id=params["id"]),
|
|
108
|
+
params,
|
|
109
|
+
self.options,
|
|
110
|
+
)
|
|
111
|
+
|
|
112
|
+
def destroy(self, params=None):
|
|
113
|
+
self.delete(params)
|
|
114
|
+
|
|
115
|
+
def save(self):
|
|
116
|
+
if hasattr(self, "id") and self.id:
|
|
117
|
+
new_obj = self.update(self.get_attributes())
|
|
118
|
+
self.set_attributes(new_obj.get_attributes())
|
|
119
|
+
return True
|
|
120
|
+
else:
|
|
121
|
+
new_obj = create(self.get_attributes(), self.options)
|
|
122
|
+
self.set_attributes(new_obj.get_attributes())
|
|
123
|
+
return True
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
# Parameters:
|
|
127
|
+
# 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.
|
|
128
|
+
# per_page - int64 - Number of records to show per page. (Max: 10000, 1,000 or less is recommended).
|
|
129
|
+
# sort_by - object - If set, sort records by the specified field in either `asc` or `desc` direction. Valid fields are `id`.
|
|
130
|
+
def list(params=None, options=None):
|
|
131
|
+
if not isinstance(params, dict):
|
|
132
|
+
params = {}
|
|
133
|
+
if not isinstance(options, dict):
|
|
134
|
+
options = {}
|
|
135
|
+
if "cursor" in params and not isinstance(params["cursor"], str):
|
|
136
|
+
raise InvalidParameterError("Bad parameter: cursor must be an str")
|
|
137
|
+
if "per_page" in params and not isinstance(params["per_page"], int):
|
|
138
|
+
raise InvalidParameterError("Bad parameter: per_page must be an int")
|
|
139
|
+
if "sort_by" in params and not isinstance(params["sort_by"], dict):
|
|
140
|
+
raise InvalidParameterError("Bad parameter: sort_by must be an dict")
|
|
141
|
+
return ListObj(CustomDomain, "GET", "/custom_domains", params, options)
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
def all(params=None, options=None):
|
|
145
|
+
list(params, options)
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
# Parameters:
|
|
149
|
+
# id (required) - int64 - Custom Domain ID.
|
|
150
|
+
def find(id, params=None, options=None):
|
|
151
|
+
if not isinstance(params, dict):
|
|
152
|
+
params = {}
|
|
153
|
+
if not isinstance(options, dict):
|
|
154
|
+
options = {}
|
|
155
|
+
params["id"] = id
|
|
156
|
+
if "id" in params and not isinstance(params["id"], int):
|
|
157
|
+
raise InvalidParameterError("Bad parameter: id must be an int")
|
|
158
|
+
if "id" not in params:
|
|
159
|
+
raise MissingParameterError("Parameter missing: id")
|
|
160
|
+
response, options = Api.send_request(
|
|
161
|
+
"GET", "/custom_domains/{id}".format(id=params["id"]), params, options
|
|
162
|
+
)
|
|
163
|
+
return CustomDomain(response.data, options)
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
def get(id, params=None, options=None):
|
|
167
|
+
find(id, params, options)
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
# Parameters:
|
|
171
|
+
# destination - string - Where this custom domain routes. Can be `site_alias`, `public_hosting`, or `s3_endpoint`.
|
|
172
|
+
# folder_behavior_id - int64 - Public Hosting behavior ID when this domain routes to a specific Public Hosting behavior.
|
|
173
|
+
# ssl_certificate_id - int64 - Current SSL certificate ID.
|
|
174
|
+
# domain (required) - string - Customer-owned domain name.
|
|
175
|
+
def create(params=None, options=None):
|
|
176
|
+
if not isinstance(params, dict):
|
|
177
|
+
params = {}
|
|
178
|
+
if not isinstance(options, dict):
|
|
179
|
+
options = {}
|
|
180
|
+
if "destination" in params and not isinstance(params["destination"], str):
|
|
181
|
+
raise InvalidParameterError(
|
|
182
|
+
"Bad parameter: destination must be an str"
|
|
183
|
+
)
|
|
184
|
+
if "folder_behavior_id" in params and not isinstance(
|
|
185
|
+
params["folder_behavior_id"], int
|
|
186
|
+
):
|
|
187
|
+
raise InvalidParameterError(
|
|
188
|
+
"Bad parameter: folder_behavior_id must be an int"
|
|
189
|
+
)
|
|
190
|
+
if "ssl_certificate_id" in params and not isinstance(
|
|
191
|
+
params["ssl_certificate_id"], int
|
|
192
|
+
):
|
|
193
|
+
raise InvalidParameterError(
|
|
194
|
+
"Bad parameter: ssl_certificate_id must be an int"
|
|
195
|
+
)
|
|
196
|
+
if "domain" in params and not isinstance(params["domain"], str):
|
|
197
|
+
raise InvalidParameterError("Bad parameter: domain must be an str")
|
|
198
|
+
if "domain" not in params:
|
|
199
|
+
raise MissingParameterError("Parameter missing: domain")
|
|
200
|
+
response, options = Api.send_request(
|
|
201
|
+
"POST", "/custom_domains", params, options
|
|
202
|
+
)
|
|
203
|
+
return CustomDomain(response.data, options)
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
# Parameters:
|
|
207
|
+
# destination - string - Where this custom domain routes. Can be `site_alias`, `public_hosting`, or `s3_endpoint`.
|
|
208
|
+
# folder_behavior_id - int64 - Public Hosting behavior ID when this domain routes to a specific Public Hosting behavior.
|
|
209
|
+
# ssl_certificate_id - int64 - Current SSL certificate ID.
|
|
210
|
+
# domain - string - Customer-owned domain name.
|
|
211
|
+
def update(id, params=None, options=None):
|
|
212
|
+
if not isinstance(params, dict):
|
|
213
|
+
params = {}
|
|
214
|
+
if not isinstance(options, dict):
|
|
215
|
+
options = {}
|
|
216
|
+
params["id"] = id
|
|
217
|
+
if "id" in params and not isinstance(params["id"], int):
|
|
218
|
+
raise InvalidParameterError("Bad parameter: id must be an int")
|
|
219
|
+
if "destination" in params and not isinstance(params["destination"], str):
|
|
220
|
+
raise InvalidParameterError(
|
|
221
|
+
"Bad parameter: destination must be an str"
|
|
222
|
+
)
|
|
223
|
+
if "folder_behavior_id" in params and not isinstance(
|
|
224
|
+
params["folder_behavior_id"], int
|
|
225
|
+
):
|
|
226
|
+
raise InvalidParameterError(
|
|
227
|
+
"Bad parameter: folder_behavior_id must be an int"
|
|
228
|
+
)
|
|
229
|
+
if "ssl_certificate_id" in params and not isinstance(
|
|
230
|
+
params["ssl_certificate_id"], int
|
|
231
|
+
):
|
|
232
|
+
raise InvalidParameterError(
|
|
233
|
+
"Bad parameter: ssl_certificate_id must be an int"
|
|
234
|
+
)
|
|
235
|
+
if "domain" in params and not isinstance(params["domain"], str):
|
|
236
|
+
raise InvalidParameterError("Bad parameter: domain must be an str")
|
|
237
|
+
if "id" not in params:
|
|
238
|
+
raise MissingParameterError("Parameter missing: id")
|
|
239
|
+
response, options = Api.send_request(
|
|
240
|
+
"PATCH",
|
|
241
|
+
"/custom_domains/{id}".format(id=params["id"]),
|
|
242
|
+
params,
|
|
243
|
+
options,
|
|
244
|
+
)
|
|
245
|
+
return CustomDomain(response.data, options)
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
def delete(id, params=None, options=None):
|
|
249
|
+
if not isinstance(params, dict):
|
|
250
|
+
params = {}
|
|
251
|
+
if not isinstance(options, dict):
|
|
252
|
+
options = {}
|
|
253
|
+
params["id"] = id
|
|
254
|
+
if "id" in params and not isinstance(params["id"], int):
|
|
255
|
+
raise InvalidParameterError("Bad parameter: id must be an int")
|
|
256
|
+
if "id" not in params:
|
|
257
|
+
raise MissingParameterError("Parameter missing: id")
|
|
258
|
+
Api.send_request(
|
|
259
|
+
"DELETE",
|
|
260
|
+
"/custom_domains/{id}".format(id=params["id"]),
|
|
261
|
+
params,
|
|
262
|
+
options,
|
|
263
|
+
)
|
|
264
|
+
|
|
265
|
+
|
|
266
|
+
def destroy(id, params=None, options=None):
|
|
267
|
+
delete(id, params, options)
|
|
268
|
+
|
|
269
|
+
|
|
270
|
+
def new(*args, **kwargs):
|
|
271
|
+
return CustomDomain(*args, **kwargs)
|
|
@@ -398,6 +398,110 @@ class File:
|
|
|
398
398
|
)
|
|
399
399
|
return response.data
|
|
400
400
|
|
|
401
|
+
# Decrypt a GPG-encrypted file and save it to a destination path
|
|
402
|
+
#
|
|
403
|
+
# Parameters:
|
|
404
|
+
# destination (required) - string - Destination file path for the decrypted file.
|
|
405
|
+
# gpg_key_ids - array(int64) - GPG Key IDs to decrypt with. If omitted, every accessible private GPG key in the source workspace is used.
|
|
406
|
+
# gpg_key_partner_id - int64 - Partner ID whose GPG keys should be used for decryption.
|
|
407
|
+
# use_all_private_keys - boolean - Use every accessible private GPG key in the source workspace for decryption.
|
|
408
|
+
# ignore_mdc_error - boolean - Ignore errors from the MDC (modification detection code) check.
|
|
409
|
+
# overwrite - boolean - Overwrite existing file in the destination?
|
|
410
|
+
def gpg_decrypt(self, params=None):
|
|
411
|
+
if not isinstance(params, dict):
|
|
412
|
+
params = {}
|
|
413
|
+
|
|
414
|
+
if hasattr(self, "path") and self.path:
|
|
415
|
+
params["path"] = self.path
|
|
416
|
+
else:
|
|
417
|
+
raise MissingParameterError("Current object doesn't have a path")
|
|
418
|
+
if "path" not in params:
|
|
419
|
+
raise MissingParameterError("Parameter missing: path")
|
|
420
|
+
if "destination" not in params:
|
|
421
|
+
raise MissingParameterError("Parameter missing: destination")
|
|
422
|
+
if "path" in params and not isinstance(params["path"], str):
|
|
423
|
+
raise InvalidParameterError("Bad parameter: path must be an str")
|
|
424
|
+
if "destination" in params and not isinstance(
|
|
425
|
+
params["destination"], str
|
|
426
|
+
):
|
|
427
|
+
raise InvalidParameterError(
|
|
428
|
+
"Bad parameter: destination must be an str"
|
|
429
|
+
)
|
|
430
|
+
if "gpg_key_ids" in params and not isinstance(
|
|
431
|
+
params["gpg_key_ids"], builtins.list
|
|
432
|
+
):
|
|
433
|
+
raise InvalidParameterError(
|
|
434
|
+
"Bad parameter: gpg_key_ids must be an list"
|
|
435
|
+
)
|
|
436
|
+
if "gpg_key_partner_id" in params and not isinstance(
|
|
437
|
+
params["gpg_key_partner_id"], int
|
|
438
|
+
):
|
|
439
|
+
raise InvalidParameterError(
|
|
440
|
+
"Bad parameter: gpg_key_partner_id must be an int"
|
|
441
|
+
)
|
|
442
|
+
response, _options = Api.send_request(
|
|
443
|
+
"POST",
|
|
444
|
+
"/file_actions/gpg_decrypt/{path}".format(path=params["path"]),
|
|
445
|
+
params,
|
|
446
|
+
self.options,
|
|
447
|
+
)
|
|
448
|
+
return response.data
|
|
449
|
+
|
|
450
|
+
# Encrypt a file with GPG and save it to a destination path
|
|
451
|
+
#
|
|
452
|
+
# Parameters:
|
|
453
|
+
# destination (required) - string - Destination file path for the encrypted file.
|
|
454
|
+
# gpg_key_ids - array(int64) - GPG Key IDs to encrypt with.
|
|
455
|
+
# gpg_key_partner_id - int64 - Partner ID whose GPG keys should be used for encryption.
|
|
456
|
+
# signing_key_id - int64 - Optional GPG Key ID to sign with.
|
|
457
|
+
# armor - boolean - Output ASCII-armored encrypted data.
|
|
458
|
+
# overwrite - boolean - Overwrite existing file in the destination?
|
|
459
|
+
def gpg_encrypt(self, params=None):
|
|
460
|
+
if not isinstance(params, dict):
|
|
461
|
+
params = {}
|
|
462
|
+
|
|
463
|
+
if hasattr(self, "path") and self.path:
|
|
464
|
+
params["path"] = self.path
|
|
465
|
+
else:
|
|
466
|
+
raise MissingParameterError("Current object doesn't have a path")
|
|
467
|
+
if "path" not in params:
|
|
468
|
+
raise MissingParameterError("Parameter missing: path")
|
|
469
|
+
if "destination" not in params:
|
|
470
|
+
raise MissingParameterError("Parameter missing: destination")
|
|
471
|
+
if "path" in params and not isinstance(params["path"], str):
|
|
472
|
+
raise InvalidParameterError("Bad parameter: path must be an str")
|
|
473
|
+
if "destination" in params and not isinstance(
|
|
474
|
+
params["destination"], str
|
|
475
|
+
):
|
|
476
|
+
raise InvalidParameterError(
|
|
477
|
+
"Bad parameter: destination must be an str"
|
|
478
|
+
)
|
|
479
|
+
if "gpg_key_ids" in params and not isinstance(
|
|
480
|
+
params["gpg_key_ids"], builtins.list
|
|
481
|
+
):
|
|
482
|
+
raise InvalidParameterError(
|
|
483
|
+
"Bad parameter: gpg_key_ids must be an list"
|
|
484
|
+
)
|
|
485
|
+
if "gpg_key_partner_id" in params and not isinstance(
|
|
486
|
+
params["gpg_key_partner_id"], int
|
|
487
|
+
):
|
|
488
|
+
raise InvalidParameterError(
|
|
489
|
+
"Bad parameter: gpg_key_partner_id must be an int"
|
|
490
|
+
)
|
|
491
|
+
if "signing_key_id" in params and not isinstance(
|
|
492
|
+
params["signing_key_id"], int
|
|
493
|
+
):
|
|
494
|
+
raise InvalidParameterError(
|
|
495
|
+
"Bad parameter: signing_key_id must be an int"
|
|
496
|
+
)
|
|
497
|
+
response, _options = Api.send_request(
|
|
498
|
+
"POST",
|
|
499
|
+
"/file_actions/gpg_encrypt/{path}".format(path=params["path"]),
|
|
500
|
+
params,
|
|
501
|
+
self.options,
|
|
502
|
+
)
|
|
503
|
+
return response.data
|
|
504
|
+
|
|
401
505
|
# Extract a ZIP file to a destination folder
|
|
402
506
|
#
|
|
403
507
|
# Parameters:
|
|
@@ -805,6 +909,122 @@ def move(path, params=None, options=None):
|
|
|
805
909
|
return FileAction(response.data, options)
|
|
806
910
|
|
|
807
911
|
|
|
912
|
+
# Decrypt a GPG-encrypted file and save it to a destination path
|
|
913
|
+
#
|
|
914
|
+
# Parameters:
|
|
915
|
+
# destination (required) - string - Destination file path for the decrypted file.
|
|
916
|
+
# gpg_key_ids - array(int64) - GPG Key IDs to decrypt with. If omitted, every accessible private GPG key in the source workspace is used.
|
|
917
|
+
# gpg_key_partner_id - int64 - Partner ID whose GPG keys should be used for decryption.
|
|
918
|
+
# use_all_private_keys - boolean - Use every accessible private GPG key in the source workspace for decryption.
|
|
919
|
+
# ignore_mdc_error - boolean - Ignore errors from the MDC (modification detection code) check.
|
|
920
|
+
# overwrite - boolean - Overwrite existing file in the destination?
|
|
921
|
+
def gpg_decrypt(path, params=None, options=None):
|
|
922
|
+
if not isinstance(params, dict):
|
|
923
|
+
params = {}
|
|
924
|
+
if not isinstance(options, dict):
|
|
925
|
+
options = {}
|
|
926
|
+
params["path"] = path
|
|
927
|
+
if "path" in params and not isinstance(params["path"], str):
|
|
928
|
+
raise InvalidParameterError("Bad parameter: path must be an str")
|
|
929
|
+
if "destination" in params and not isinstance(params["destination"], str):
|
|
930
|
+
raise InvalidParameterError(
|
|
931
|
+
"Bad parameter: destination must be an str"
|
|
932
|
+
)
|
|
933
|
+
if "gpg_key_ids" in params and not isinstance(
|
|
934
|
+
params["gpg_key_ids"], builtins.list
|
|
935
|
+
):
|
|
936
|
+
raise InvalidParameterError(
|
|
937
|
+
"Bad parameter: gpg_key_ids must be an list"
|
|
938
|
+
)
|
|
939
|
+
if "gpg_key_partner_id" in params and not isinstance(
|
|
940
|
+
params["gpg_key_partner_id"], int
|
|
941
|
+
):
|
|
942
|
+
raise InvalidParameterError(
|
|
943
|
+
"Bad parameter: gpg_key_partner_id must be an int"
|
|
944
|
+
)
|
|
945
|
+
if "use_all_private_keys" in params and not isinstance(
|
|
946
|
+
params["use_all_private_keys"], bool
|
|
947
|
+
):
|
|
948
|
+
raise InvalidParameterError(
|
|
949
|
+
"Bad parameter: use_all_private_keys must be an bool"
|
|
950
|
+
)
|
|
951
|
+
if "ignore_mdc_error" in params and not isinstance(
|
|
952
|
+
params["ignore_mdc_error"], bool
|
|
953
|
+
):
|
|
954
|
+
raise InvalidParameterError(
|
|
955
|
+
"Bad parameter: ignore_mdc_error must be an bool"
|
|
956
|
+
)
|
|
957
|
+
if "overwrite" in params and not isinstance(params["overwrite"], bool):
|
|
958
|
+
raise InvalidParameterError("Bad parameter: overwrite must be an bool")
|
|
959
|
+
if "path" not in params:
|
|
960
|
+
raise MissingParameterError("Parameter missing: path")
|
|
961
|
+
if "destination" not in params:
|
|
962
|
+
raise MissingParameterError("Parameter missing: destination")
|
|
963
|
+
response, options = Api.send_request(
|
|
964
|
+
"POST",
|
|
965
|
+
"/file_actions/gpg_decrypt/{path}".format(path=params["path"]),
|
|
966
|
+
params,
|
|
967
|
+
options,
|
|
968
|
+
)
|
|
969
|
+
return FileAction(response.data, options)
|
|
970
|
+
|
|
971
|
+
|
|
972
|
+
# Encrypt a file with GPG and save it to a destination path
|
|
973
|
+
#
|
|
974
|
+
# Parameters:
|
|
975
|
+
# destination (required) - string - Destination file path for the encrypted file.
|
|
976
|
+
# gpg_key_ids - array(int64) - GPG Key IDs to encrypt with.
|
|
977
|
+
# gpg_key_partner_id - int64 - Partner ID whose GPG keys should be used for encryption.
|
|
978
|
+
# signing_key_id - int64 - Optional GPG Key ID to sign with.
|
|
979
|
+
# armor - boolean - Output ASCII-armored encrypted data.
|
|
980
|
+
# overwrite - boolean - Overwrite existing file in the destination?
|
|
981
|
+
def gpg_encrypt(path, params=None, options=None):
|
|
982
|
+
if not isinstance(params, dict):
|
|
983
|
+
params = {}
|
|
984
|
+
if not isinstance(options, dict):
|
|
985
|
+
options = {}
|
|
986
|
+
params["path"] = path
|
|
987
|
+
if "path" in params and not isinstance(params["path"], str):
|
|
988
|
+
raise InvalidParameterError("Bad parameter: path must be an str")
|
|
989
|
+
if "destination" in params and not isinstance(params["destination"], str):
|
|
990
|
+
raise InvalidParameterError(
|
|
991
|
+
"Bad parameter: destination must be an str"
|
|
992
|
+
)
|
|
993
|
+
if "gpg_key_ids" in params and not isinstance(
|
|
994
|
+
params["gpg_key_ids"], builtins.list
|
|
995
|
+
):
|
|
996
|
+
raise InvalidParameterError(
|
|
997
|
+
"Bad parameter: gpg_key_ids must be an list"
|
|
998
|
+
)
|
|
999
|
+
if "gpg_key_partner_id" in params and not isinstance(
|
|
1000
|
+
params["gpg_key_partner_id"], int
|
|
1001
|
+
):
|
|
1002
|
+
raise InvalidParameterError(
|
|
1003
|
+
"Bad parameter: gpg_key_partner_id must be an int"
|
|
1004
|
+
)
|
|
1005
|
+
if "signing_key_id" in params and not isinstance(
|
|
1006
|
+
params["signing_key_id"], int
|
|
1007
|
+
):
|
|
1008
|
+
raise InvalidParameterError(
|
|
1009
|
+
"Bad parameter: signing_key_id must be an int"
|
|
1010
|
+
)
|
|
1011
|
+
if "armor" in params and not isinstance(params["armor"], bool):
|
|
1012
|
+
raise InvalidParameterError("Bad parameter: armor must be an bool")
|
|
1013
|
+
if "overwrite" in params and not isinstance(params["overwrite"], bool):
|
|
1014
|
+
raise InvalidParameterError("Bad parameter: overwrite must be an bool")
|
|
1015
|
+
if "path" not in params:
|
|
1016
|
+
raise MissingParameterError("Parameter missing: path")
|
|
1017
|
+
if "destination" not in params:
|
|
1018
|
+
raise MissingParameterError("Parameter missing: destination")
|
|
1019
|
+
response, options = Api.send_request(
|
|
1020
|
+
"POST",
|
|
1021
|
+
"/file_actions/gpg_encrypt/{path}".format(path=params["path"]),
|
|
1022
|
+
params,
|
|
1023
|
+
options,
|
|
1024
|
+
)
|
|
1025
|
+
return FileAction(response.data, options)
|
|
1026
|
+
|
|
1027
|
+
|
|
808
1028
|
# Extract a ZIP file to a destination folder
|
|
809
1029
|
#
|
|
810
1030
|
# Parameters:
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import unittest
|
|
2
|
+
import inspect
|
|
3
|
+
import files_sdk
|
|
4
|
+
from tests.base import TestBase
|
|
5
|
+
from files_sdk.models import CustomDomain
|
|
6
|
+
from files_sdk import custom_domain
|
|
7
|
+
|
|
8
|
+
class CustomDomainTest(TestBase):
|
|
9
|
+
pass
|
|
10
|
+
# Instance Methods
|
|
11
|
+
@unittest.skipUnless(TestBase.mock_server_path_exists("PATCH", "/custom_domains/{id}"), "Mock path does not exist")
|
|
12
|
+
def test_update(self):
|
|
13
|
+
params = {
|
|
14
|
+
"id" : 12345,
|
|
15
|
+
}
|
|
16
|
+
custom_domain = CustomDomain(params)
|
|
17
|
+
custom_domain.update(params)
|
|
18
|
+
|
|
19
|
+
@unittest.skipUnless(TestBase.mock_server_path_exists("DELETE", "/custom_domains/{id}"), "Mock path does not exist")
|
|
20
|
+
def test_delete(self):
|
|
21
|
+
params = {
|
|
22
|
+
"id" : 12345,
|
|
23
|
+
}
|
|
24
|
+
custom_domain = CustomDomain(params)
|
|
25
|
+
custom_domain.delete(params)
|
|
26
|
+
|
|
27
|
+
# Alias of delete
|
|
28
|
+
def test_destroy(self):
|
|
29
|
+
pass
|
|
30
|
+
|
|
31
|
+
# Static Methods
|
|
32
|
+
@unittest.skipUnless(TestBase.mock_server_path_exists("GET", "/custom_domains"), "Mock path does not exist")
|
|
33
|
+
def test_list(self):
|
|
34
|
+
resp = custom_domain.list()
|
|
35
|
+
|
|
36
|
+
@unittest.skipUnless(TestBase.mock_server_path_exists("GET", "/custom_domains/{id}"), "Mock path does not exist")
|
|
37
|
+
def test_find(self):
|
|
38
|
+
id = 12345
|
|
39
|
+
params = {
|
|
40
|
+
"id" : 12345,
|
|
41
|
+
}
|
|
42
|
+
custom_domain.find(id, params)
|
|
43
|
+
|
|
44
|
+
@unittest.skipUnless(TestBase.mock_server_path_exists("POST", "/custom_domains"), "Mock path does not exist")
|
|
45
|
+
def test_create(self):
|
|
46
|
+
params = {
|
|
47
|
+
"domain" : "foo",
|
|
48
|
+
}
|
|
49
|
+
custom_domain.create(params)
|
|
50
|
+
|
|
51
|
+
@unittest.skipUnless(TestBase.mock_server_path_exists("PATCH", "/custom_domains/{id}"), "Mock path does not exist")
|
|
52
|
+
def test_update(self):
|
|
53
|
+
id = 12345
|
|
54
|
+
params = {
|
|
55
|
+
"id" : 12345,
|
|
56
|
+
}
|
|
57
|
+
custom_domain.update(id, params)
|
|
58
|
+
|
|
59
|
+
@unittest.skipUnless(TestBase.mock_server_path_exists("DELETE", "/custom_domains/{id}"), "Mock path does not exist")
|
|
60
|
+
def test_delete(self):
|
|
61
|
+
id = 12345
|
|
62
|
+
params = {
|
|
63
|
+
"id" : 12345,
|
|
64
|
+
}
|
|
65
|
+
custom_domain.delete(id, params)
|
|
66
|
+
|
|
67
|
+
if __name__ == '__main__':
|
|
68
|
+
unittest.main()
|