smartsheet-python-sdk 3.1.0__tar.gz → 3.3.0__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.
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/ADVANCED.md +1 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/CHANGELOG.md +27 -0
- {smartsheet-python-sdk-3.1.0/smartsheet_python_sdk.egg-info → smartsheet_python_sdk-3.3.0}/PKG-INFO +31 -7
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/README.md +3 -3
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/docs-source/index.rst +5 -1
- smartsheet_python_sdk-3.3.0/smartsheet/asset_shares.py +163 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/__init__.py +1 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/enums/__init__.py +2 -0
- smartsheet_python_sdk-3.3.0/smartsheet/models/enums/asset_type.py +10 -0
- smartsheet_python_sdk-3.3.0/smartsheet/models/enums/seat_type.py +17 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/token_paginated_result.py +15 -4
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/user_model.py +28 -0
- smartsheet_python_sdk-3.3.0/smartsheet/models/user_plan.py +68 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/sheets.py +16 -1
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/users.py +94 -1
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/version.py +2 -2
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0/smartsheet_python_sdk.egg-info}/PKG-INFO +31 -7
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet_python_sdk.egg-info/SOURCES.txt +5 -0
- smartsheet_python_sdk-3.3.0/tests/integration/test_sharing.py +83 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/.gitchangelog.rc +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/.gitchangelog.tpl +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/.github/pull_request_template.md +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/.github/workflows/publish-distribution.yaml +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/.github/workflows/publish-documentation.yaml +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/.github/workflows/test-build.yaml +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/.gitignore +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/.markdownlint.json +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/CONTRIBUTING.md +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/LICENSE.md +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/Makefile +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/NOTICE +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/docs-source/Makefile +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/docs-source/conf.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/pylintrc +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/setup.cfg +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/setup.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/__init__.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/attachments.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/cells.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/contacts.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/discussions.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/events.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/exceptions.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/favorites.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/folders.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/groups.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/home.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/images.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/access_token.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/account.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/alternate_email.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/attachment.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/auto_number_format.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/automation_action.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/automation_rule.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/boolean_object_value.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/bulk_item_failure.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/bulk_item_result.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/cell.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/cell_data_item.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/cell_history.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/cell_link.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/cell_link_widget_content.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/chart_widget_content.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/column.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/comment.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/contact.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/contact_object_value.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/container_destination.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/copy_or_move_row_destination.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/copy_or_move_row_directive.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/copy_or_move_row_result.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/criteria.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/cross_sheet_reference.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/currency.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/date_object_value.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/datetime_object_value.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/discussion.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/downloaded_file.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/duration.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/email.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/enums/access_level.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/enums/attachment_parent_type.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/enums/attachment_sub_type.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/enums/attachment_type.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/enums/automation_action_frequency.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/enums/automation_action_type.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/enums/automation_rule_disabled_reason.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/enums/cell_link_status.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/enums/column_type.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/enums/criteria_target.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/enums/cross_sheet_reference_status.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/enums/currency_code.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/enums/day_descriptors.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/enums/day_ordinal.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/enums/event_action.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/enums/event_obejct_type.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/enums/event_source.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/enums/global_template.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/enums/operator.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/enums/paper_type.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/enums/predecessor_type.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/enums/publish_accessible_by.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/enums/schedule_type.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/enums/share_scope.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/enums/share_type.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/enums/sheet_email_format.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/enums/sheet_filter_operator.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/enums/sheet_filter_type.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/enums/sort_direction.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/enums/symbol.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/enums/system_column_type.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/enums/update_request_status.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/enums/user_status.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/enums/widget_type.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/error.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/error_result.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/event.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/event_result.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/explicit_null.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/favorite.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/folder.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/font_family.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/format_details.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/format_tables.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/group.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/group_member.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/home.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/hyperlink.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/image.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/image_url.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/image_url_map.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/image_widget_content.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/index_result.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/json_object.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/multi_contact_object_value.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/multi_picklist_object_value.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/multi_row_email.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/number_object_value.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/o_auth_error.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/object_value.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/paginated_children_result.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/predecessor.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/predecessor_list.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/primitive_object_value.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/profile_image.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/project_settings.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/recipient.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/report.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/report_cell.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/report_column.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/report_publish.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/report_row.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/report_widget_content.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/result.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/row.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/row_email.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/row_mapping.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/schedule.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/scope.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/search_result.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/search_result_item.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/selection_range.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/sent_update_request.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/server_info.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/share.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/sheet.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/sheet_email.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/sheet_filter.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/sheet_filter_details.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/sheet_publish.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/sheet_summary.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/sheet_user_permissions.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/sheet_user_settings.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/shortcut_data_item.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/shortcut_widget_content.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/sight.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/sight_publish.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/sort_criterion.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/sort_specifier.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/source.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/string_object_value.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/summary_field.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/template.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/title_rich_text_widget_content.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/update_request.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/user.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/user_profile.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/version.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/web_content_widget_content.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/webhook.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/webhook_secret.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/webhook_stats.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/webhook_subscope.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/widget.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/widget_content.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/widget_hyperlink.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/workspace.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/object_value.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/passthrough.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/reports.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/search.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/server.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/session.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/sights.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/smartsheet.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/templates.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/token.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/types.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/util.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/webhooks.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/workspaces.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet_python_sdk.egg-info/dependency_links.txt +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet_python_sdk.egg-info/requires.txt +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet_python_sdk.egg-info/top_level.txt +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/tests/integration/README.md +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/tests/integration/conftest.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/tests/integration/fixtures/calling_all_curs.txt +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/tests/integration/fixtures/curly.jpg +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/tests/integration/fixtures/moe-curly.jpg +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/tests/integration/fixtures/quote.txt +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/tests/integration/fixtures/stooges_v1.jpg +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/tests/integration/fixtures/stooges_v2.jpg +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/tests/integration/test_attachments.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/tests/integration/test_columns.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/tests/integration/test_contacts.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/tests/integration/test_cross_sheet_references.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/tests/integration/test_discussions.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/tests/integration/test_events.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/tests/integration/test_favorites.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/tests/integration/test_folders.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/tests/integration/test_groups.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/tests/integration/test_home.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/tests/integration/test_model_attributes.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/tests/integration/test_multi_picklist.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/tests/integration/test_object_value.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/tests/integration/test_passthrough.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/tests/integration/test_regression.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/tests/integration/test_reports.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/tests/integration/test_rows.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/tests/integration/test_server_info.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/tests/integration/test_sheet_summary.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/tests/integration/test_sheets.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/tests/integration/test_templates.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/tests/integration/test_update_requests.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/tests/integration/test_users.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/tests/integration/test_webhooks.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/tests/integration/test_workspaces.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/tests/integration/test_zsearch.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/tests/mock_api/mock_api_test_helper.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/tests/mock_api/test_mock_api_automation_rules.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/tests/mock_api/test_mock_api_columns.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/tests/mock_api/test_mock_api_folders.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/tests/mock_api/test_mock_api_rows.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/tests/mock_api/test_mock_api_sheets.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/tests/mock_api/test_mock_api_sights.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/tests/mock_api/test_mock_api_workspaces.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/tests/mock_api/test_mock_change_agent.py +0 -0
- {smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/tests/mock_api/test_mock_serialization.py +0 -0
|
@@ -134,6 +134,7 @@ using the same `stream_position` value until the next list of events is retrieve
|
|
|
134
134
|
Many events have additional information available as a part of the event. That information can be accessed using
|
|
135
135
|
the Python dictionary stored in the `additional_details` property (Note that values of the `additional_details`
|
|
136
136
|
dictionary use camelCase/JSON names, e.g. `sheetName` not `sheet_name`). Information about the additional details
|
|
137
|
+
|
|
137
138
|
provided can be found on the [Events Description](https://smartsheet.redoc.ly/tag/eventsDescription) page of the API Documentation.
|
|
138
139
|
|
|
139
140
|
```python
|
|
@@ -5,6 +5,33 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
|
|
6
6
|
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [3.3.0] - 2025-10-07
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- Support for new asset-based sharing endpoints in a new `sharing` module:
|
|
13
|
+
- `list_asset_shares`: List all shares for a specified asset
|
|
14
|
+
- `get_asset_share`: Get a specific share for a specified asset
|
|
15
|
+
- `share_asset`: Share an asset with specified users and/or groups
|
|
16
|
+
- `update_share`: Update a specific share for a specified asset
|
|
17
|
+
- `delete_share`: Delete a specific share for a specified asset
|
|
18
|
+
- Added `AssetType` enum for use with sharing endpoints
|
|
19
|
+
|
|
20
|
+
### Updated
|
|
21
|
+
|
|
22
|
+
- Deprecated old sharing endpoints in the `sheets` module
|
|
23
|
+
- Added deprecation notices and migration examples in documentation
|
|
24
|
+
|
|
25
|
+
## [3.2.0] - 2025-09-25
|
|
26
|
+
|
|
27
|
+
### Added
|
|
28
|
+
|
|
29
|
+
- Support for POST /2.0/users/{userId}/plans/{planId}/downgrade
|
|
30
|
+
- Support for POST /2.0/users/{userId}/plans/{planId}/upgrade
|
|
31
|
+
- Support for GET /2.0/users/{userId}/plans
|
|
32
|
+
- Support for GET /2.0/users?planId={planId}&seatType={seatType}
|
|
33
|
+
- Support for DELETE /2.0/users/{userId}/plans/{planId}
|
|
34
|
+
|
|
8
35
|
## [3.1.0] - 2025-08-28
|
|
9
36
|
|
|
10
37
|
### Added
|
{smartsheet-python-sdk-3.1.0/smartsheet_python_sdk.egg-info → smartsheet_python_sdk-3.3.0}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: smartsheet-python-sdk
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.3.0
|
|
4
4
|
Summary: Library that uses Python to connect to Smartsheet services (using API 2.0).
|
|
5
5
|
Home-page: http://smartsheet-platform.github.io/api-docs/
|
|
6
6
|
Author: Smartsheet
|
|
@@ -20,16 +20,40 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
20
20
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
21
21
|
Classifier: Topic :: Office/Business :: Financial :: Spreadsheet
|
|
22
22
|
Description-Content-Type: text/markdown
|
|
23
|
-
Provides-Extra: test
|
|
24
|
-
Provides-Extra: develop
|
|
25
23
|
License-File: LICENSE.md
|
|
26
24
|
License-File: NOTICE
|
|
25
|
+
Requires-Dist: requests
|
|
26
|
+
Requires-Dist: requests-toolbelt
|
|
27
|
+
Requires-Dist: six>=1.9
|
|
28
|
+
Requires-Dist: certifi
|
|
29
|
+
Requires-Dist: python-dateutil
|
|
30
|
+
Provides-Extra: test
|
|
31
|
+
Requires-Dist: coverage; extra == "test"
|
|
32
|
+
Requires-Dist: coveralls; extra == "test"
|
|
33
|
+
Requires-Dist: pytest; extra == "test"
|
|
34
|
+
Provides-Extra: develop
|
|
35
|
+
Requires-Dist: coverage; extra == "develop"
|
|
36
|
+
Requires-Dist: coveralls[yaml]; extra == "develop"
|
|
37
|
+
Requires-Dist: pytest; extra == "develop"
|
|
38
|
+
Requires-Dist: pytest-instafail; extra == "develop"
|
|
39
|
+
Dynamic: author
|
|
40
|
+
Dynamic: author-email
|
|
41
|
+
Dynamic: classifier
|
|
42
|
+
Dynamic: description
|
|
43
|
+
Dynamic: description-content-type
|
|
44
|
+
Dynamic: home-page
|
|
45
|
+
Dynamic: keywords
|
|
46
|
+
Dynamic: license
|
|
47
|
+
Dynamic: license-file
|
|
48
|
+
Dynamic: provides-extra
|
|
49
|
+
Dynamic: requires-dist
|
|
50
|
+
Dynamic: summary
|
|
27
51
|
|
|
28
52
|
# Smartsheet Python SDK
|
|
29
53
|
|
|
30
54
|
[](https://github.com/smartsheet/smartsheet-python-sdk/actions/workflows/test-build.yaml) [](https://coveralls.io/github/smartsheet/smartsheet-python-sdk?branch=mainline) [](https://badge.fury.io/py/smartsheet-python-sdk)
|
|
31
55
|
|
|
32
|
-
A library for connecting to the [Smartsheet API](https://smartsheet.
|
|
56
|
+
A library for connecting to the [Smartsheet API](https://developers.smartsheet.com/api/smartsheet/) from Python applications.
|
|
33
57
|
|
|
34
58
|
## Requirements
|
|
35
59
|
|
|
@@ -47,7 +71,7 @@ pip install smartsheet-python-sdk
|
|
|
47
71
|
|
|
48
72
|
To get started with the Smartsheet Python SDK:
|
|
49
73
|
|
|
50
|
-
1. Set **SMARTSHEET_ACCESS_TOKEN** in your environment, using your Smartsheet API key. Find out more about [Authentication and Access Tokens](https://smartsheet.
|
|
74
|
+
1. Set **SMARTSHEET_ACCESS_TOKEN** in your environment, using your Smartsheet API key. Find out more about [Authentication and Access Tokens](https://developers.smartsheet.com/api/smartsheet/guides/basics/authentication) in the Smartsheet API Documentation. You can generate an access token in Smartsheet UI under Account > Personal Settings > API Access.
|
|
51
75
|
|
|
52
76
|
2. Install the Smartsheet Python SDK (see the installation instructions above)
|
|
53
77
|
|
|
@@ -72,7 +96,7 @@ Use the following resources to learn more about the SDK capabilities:
|
|
|
72
96
|
|
|
73
97
|
1. [Smartsheet Python SDK sample project](https://github.com/smartsheet-samples/python-read-write-sheet)
|
|
74
98
|
2. [Python SDK documentation](https://smartsheet.github.io/smartsheet-python-sdk/)
|
|
75
|
-
3. [Smartsheet API Documentation](https://smartsheet.
|
|
99
|
+
3. [Smartsheet API Documentation](https://developers.smartsheet.com/api/smartsheet/)
|
|
76
100
|
|
|
77
101
|
## Advanced Topics
|
|
78
102
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://github.com/smartsheet/smartsheet-python-sdk/actions/workflows/test-build.yaml) [](https://coveralls.io/github/smartsheet/smartsheet-python-sdk?branch=mainline) [](https://badge.fury.io/py/smartsheet-python-sdk)
|
|
4
4
|
|
|
5
|
-
A library for connecting to the [Smartsheet API](https://smartsheet.
|
|
5
|
+
A library for connecting to the [Smartsheet API](https://developers.smartsheet.com/api/smartsheet/) from Python applications.
|
|
6
6
|
|
|
7
7
|
## Requirements
|
|
8
8
|
|
|
@@ -20,7 +20,7 @@ pip install smartsheet-python-sdk
|
|
|
20
20
|
|
|
21
21
|
To get started with the Smartsheet Python SDK:
|
|
22
22
|
|
|
23
|
-
1. Set **SMARTSHEET_ACCESS_TOKEN** in your environment, using your Smartsheet API key. Find out more about [Authentication and Access Tokens](https://smartsheet.
|
|
23
|
+
1. Set **SMARTSHEET_ACCESS_TOKEN** in your environment, using your Smartsheet API key. Find out more about [Authentication and Access Tokens](https://developers.smartsheet.com/api/smartsheet/guides/basics/authentication) in the Smartsheet API Documentation. You can generate an access token in Smartsheet UI under Account > Personal Settings > API Access.
|
|
24
24
|
|
|
25
25
|
2. Install the Smartsheet Python SDK (see the installation instructions above)
|
|
26
26
|
|
|
@@ -45,7 +45,7 @@ Use the following resources to learn more about the SDK capabilities:
|
|
|
45
45
|
|
|
46
46
|
1. [Smartsheet Python SDK sample project](https://github.com/smartsheet-samples/python-read-write-sheet)
|
|
47
47
|
2. [Python SDK documentation](https://smartsheet.github.io/smartsheet-python-sdk/)
|
|
48
|
-
3. [Smartsheet API Documentation](https://smartsheet.
|
|
48
|
+
3. [Smartsheet API Documentation](https://developers.smartsheet.com/api/smartsheet/)
|
|
49
49
|
|
|
50
50
|
## Advanced Topics
|
|
51
51
|
|
|
@@ -7,7 +7,11 @@
|
|
|
7
7
|
Smartsheet Python SDK Documentation
|
|
8
8
|
===================================
|
|
9
9
|
|
|
10
|
-
Release v\ |version
|
|
10
|
+
* Release v\ |version|
|
|
11
|
+
|
|
12
|
+
* `GitHub repository <https://github.com/smartsheet/smartsheet-python-sdk>`_
|
|
13
|
+
|
|
14
|
+
* `Changelog <https://github.com/smartsheet/smartsheet-python-sdk/blob/mainline/CHANGELOG.md>`_
|
|
11
15
|
|
|
12
16
|
Quickstart
|
|
13
17
|
----------
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
# pylint: disable=C0111,R0902,R0913
|
|
2
|
+
# Smartsheet Python SDK.
|
|
3
|
+
#
|
|
4
|
+
# Copyright 2018 Smartsheet.com, Inc.
|
|
5
|
+
#
|
|
6
|
+
# Licensed under the Apache License, Version 2.0 (the "License"): you may
|
|
7
|
+
# not use this file except in compliance with the License. You may obtain
|
|
8
|
+
# a copy of the License at
|
|
9
|
+
#
|
|
10
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
#
|
|
12
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
14
|
+
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
15
|
+
# License for the specific language governing permissions and limitations
|
|
16
|
+
# under the License.
|
|
17
|
+
|
|
18
|
+
import logging
|
|
19
|
+
from . import fresh_operation
|
|
20
|
+
from .models.enums import ShareScope
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class Sharing:
|
|
24
|
+
"""Class for handling Sharing operations."""
|
|
25
|
+
|
|
26
|
+
def __init__(self, smartsheet_obj):
|
|
27
|
+
"""Init Sharing with base Smartsheet object."""
|
|
28
|
+
self._base = smartsheet_obj
|
|
29
|
+
self._log = logging.getLogger(__name__)
|
|
30
|
+
|
|
31
|
+
def list_asset_shares(self, asset_type, asset_id, max_items=None, last_key=None,
|
|
32
|
+
sharing_include: ShareScope = None):
|
|
33
|
+
"""Get the list of all Users and Groups to whom the specified asset is
|
|
34
|
+
shared, and their access level.
|
|
35
|
+
|
|
36
|
+
Args:
|
|
37
|
+
asset_type (AssetType): Type of asset (sheet, report, sight, workspace, etc.)
|
|
38
|
+
asset_id (int): Asset ID
|
|
39
|
+
max_items (int): The maximum number of items to
|
|
40
|
+
return in the response.
|
|
41
|
+
last_key (str): The token from a previous request that will allow this one
|
|
42
|
+
to pick up where the previous one left off.
|
|
43
|
+
sharing_include (ShareScope): Scope of share to include in response
|
|
44
|
+
|
|
45
|
+
Returns:
|
|
46
|
+
IndexResult
|
|
47
|
+
"""
|
|
48
|
+
_op = fresh_operation('list_asset_shares')
|
|
49
|
+
_op['method'] = 'GET'
|
|
50
|
+
_op['path'] = '/shares'
|
|
51
|
+
_op['query_params']['assetType'] = asset_type
|
|
52
|
+
_op['query_params']['assetId'] = asset_id
|
|
53
|
+
_op['query_params']['maxItems'] = max_items
|
|
54
|
+
_op['query_params']['lastKey'] = last_key
|
|
55
|
+
_op['query_params']['sharingInclude'] = sharing_include.name if sharing_include else None
|
|
56
|
+
|
|
57
|
+
expected = ['IndexResult', 'Share']
|
|
58
|
+
|
|
59
|
+
prepped_request = self._base.prepare_request(_op)
|
|
60
|
+
response = self._base.request(prepped_request, expected, _op)
|
|
61
|
+
|
|
62
|
+
return response
|
|
63
|
+
|
|
64
|
+
def get_asset_share(self, asset_type, asset_id, share_id):
|
|
65
|
+
"""Get a specific share for the specified asset.
|
|
66
|
+
|
|
67
|
+
Args:
|
|
68
|
+
asset_type (AssetType): Type of asset (sheet, report, sight, workspace, etc.)
|
|
69
|
+
asset_id (int): Asset ID
|
|
70
|
+
share_id (str): Share ID
|
|
71
|
+
|
|
72
|
+
Returns:
|
|
73
|
+
Share
|
|
74
|
+
"""
|
|
75
|
+
_op = fresh_operation('get_asset_share')
|
|
76
|
+
_op['method'] = 'GET'
|
|
77
|
+
_op['path'] = f'/shares/{share_id}'
|
|
78
|
+
_op['query_params']['assetType'] = asset_type
|
|
79
|
+
_op['query_params']['assetId'] = asset_id
|
|
80
|
+
|
|
81
|
+
expected = 'Share'
|
|
82
|
+
prepped_request = self._base.prepare_request(_op)
|
|
83
|
+
response = self._base.request(prepped_request, expected, _op)
|
|
84
|
+
|
|
85
|
+
return response
|
|
86
|
+
|
|
87
|
+
def share_asset(self, share_obj, asset_type, asset_id, send_email=None):
|
|
88
|
+
"""Share an asset with the specified Users and Groups.
|
|
89
|
+
|
|
90
|
+
Args:
|
|
91
|
+
share_obj (Share or list[Share]): Share object or list of Share objects.
|
|
92
|
+
asset_type (AssetType): Type of asset (sheet, report, sight, workspace, etc.)
|
|
93
|
+
asset_id (int): Asset ID
|
|
94
|
+
send_email (bool): Either true or false to
|
|
95
|
+
indicate whether or not to notify the user by email. Default
|
|
96
|
+
is false.
|
|
97
|
+
|
|
98
|
+
Returns:
|
|
99
|
+
Result
|
|
100
|
+
"""
|
|
101
|
+
_op = fresh_operation('share_asset')
|
|
102
|
+
_op['method'] = 'POST'
|
|
103
|
+
_op['path'] = '/shares'
|
|
104
|
+
_op['query_params']['assetType'] = asset_type
|
|
105
|
+
_op['query_params']['assetId'] = asset_id
|
|
106
|
+
_op['query_params']['sendEmail'] = send_email
|
|
107
|
+
_op['json'] = share_obj
|
|
108
|
+
|
|
109
|
+
expected = ['Result', 'Share']
|
|
110
|
+
|
|
111
|
+
prepped_request = self._base.prepare_request(_op)
|
|
112
|
+
response = self._base.request(prepped_request, expected, _op)
|
|
113
|
+
|
|
114
|
+
return response
|
|
115
|
+
|
|
116
|
+
def update_asset_share(self, share_obj, asset_type, asset_id, share_id):
|
|
117
|
+
"""Update the access level of a User or Group for the specified asset.
|
|
118
|
+
|
|
119
|
+
Args:
|
|
120
|
+
share_obj (Share): Share object.
|
|
121
|
+
asset_type (AssetType): Type of asset (sheet, report, sight, workspace, etc.)
|
|
122
|
+
asset_id (int): Asset ID
|
|
123
|
+
share_id (str): Share ID
|
|
124
|
+
|
|
125
|
+
Returns:
|
|
126
|
+
Result
|
|
127
|
+
"""
|
|
128
|
+
_op = fresh_operation('update_share')
|
|
129
|
+
_op['method'] = 'PATCH'
|
|
130
|
+
_op['path'] = f'/shares/{share_id}'
|
|
131
|
+
_op['query_params']['assetType'] = asset_type
|
|
132
|
+
_op['query_params']['assetId'] = asset_id
|
|
133
|
+
_op['json'] = share_obj
|
|
134
|
+
|
|
135
|
+
expected = ['Result', 'Share']
|
|
136
|
+
|
|
137
|
+
prepped_request = self._base.prepare_request(_op)
|
|
138
|
+
response = self._base.request(prepped_request, expected, _op)
|
|
139
|
+
|
|
140
|
+
return response
|
|
141
|
+
|
|
142
|
+
def delete_asset_share(self, asset_type, asset_id, share_id):
|
|
143
|
+
"""Delete the specified Share.
|
|
144
|
+
|
|
145
|
+
Args:
|
|
146
|
+
asset_type (AssetType): Type of asset (sheet, report, sight, workspace, etc.)
|
|
147
|
+
asset_id (int): Asset ID
|
|
148
|
+
share_id (str): Share ID
|
|
149
|
+
|
|
150
|
+
Returns:
|
|
151
|
+
Result
|
|
152
|
+
"""
|
|
153
|
+
_op = fresh_operation('delete_share')
|
|
154
|
+
_op['method'] = 'DELETE'
|
|
155
|
+
_op['path'] = f'/shares/{share_id}'
|
|
156
|
+
_op['query_params']['assetType'] = asset_type
|
|
157
|
+
_op['query_params']['assetId'] = asset_id
|
|
158
|
+
|
|
159
|
+
expected = ['Result', None]
|
|
160
|
+
prepped_request = self._base.prepare_request(_op)
|
|
161
|
+
response = self._base.request(prepped_request, expected, _op)
|
|
162
|
+
|
|
163
|
+
return response
|
{smartsheet-python-sdk-3.1.0 → smartsheet_python_sdk-3.3.0}/smartsheet/models/enums/__init__.py
RENAMED
|
@@ -19,6 +19,7 @@ from __future__ import absolute_import
|
|
|
19
19
|
|
|
20
20
|
# import enums into enum package
|
|
21
21
|
from .access_level import AccessLevel
|
|
22
|
+
from .asset_type import AssetType
|
|
22
23
|
from .attachment_parent_type import AttachmentParentType
|
|
23
24
|
from .attachment_sub_type import AttachmentSubType
|
|
24
25
|
from .attachment_type import AttachmentType
|
|
@@ -52,3 +53,4 @@ from .system_column_type import SystemColumnType
|
|
|
52
53
|
from .update_request_status import UpdateRequestStatus
|
|
53
54
|
from .user_status import UserStatus
|
|
54
55
|
from .widget_type import WidgetType
|
|
56
|
+
from .seat_type import SeatType, DowngradeSeatType, UpgradeSeatType
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
from enum import Enum
|
|
2
|
+
|
|
3
|
+
class SeatType(str, Enum):
|
|
4
|
+
VIEWER = 'VIEWER'
|
|
5
|
+
GUEST = 'GUEST'
|
|
6
|
+
MEMBER = 'MEMBER'
|
|
7
|
+
PROVISIONAL_MEMBER = 'PROVISIONAL_MEMBER'
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class DowngradeSeatType(str, Enum):
|
|
11
|
+
VIEWER = 'VIEWER'
|
|
12
|
+
GUEST = 'GUEST'
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class UpgradeSeatType(str, Enum):
|
|
16
|
+
GUEST = 'GUEST'
|
|
17
|
+
MEMBER = 'MEMBER'
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
from __future__ import absolute_import
|
|
19
19
|
|
|
20
20
|
from typing import TypeVar, Generic, List
|
|
21
|
-
from ..types import String, json
|
|
21
|
+
from ..types import String, json, TypedList, importlib
|
|
22
22
|
from ..util import deserialize, serialize
|
|
23
23
|
|
|
24
24
|
T = TypeVar('T')
|
|
@@ -27,13 +27,17 @@ T = TypeVar('T')
|
|
|
27
27
|
class TokenPaginatedResult(Generic[T]):
|
|
28
28
|
"""Smartsheet TokenPaginatedResult data model with generic type support."""
|
|
29
29
|
|
|
30
|
-
def __init__(self, props=None, base_obj=None):
|
|
30
|
+
def __init__(self, props=None, dynamic_data_type=None, base_obj=None):
|
|
31
31
|
"""Initialize the TokenPaginatedResult model."""
|
|
32
32
|
self._base = None
|
|
33
33
|
if base_obj is not None:
|
|
34
34
|
self._base = base_obj
|
|
35
35
|
|
|
36
|
-
self.
|
|
36
|
+
self._dynamic_data_type = None
|
|
37
|
+
if dynamic_data_type is not None:
|
|
38
|
+
self._dynamic_data_type = dynamic_data_type
|
|
39
|
+
|
|
40
|
+
self._data = TypedList(object)
|
|
37
41
|
self._last_key = String()
|
|
38
42
|
|
|
39
43
|
if props:
|
|
@@ -48,7 +52,14 @@ class TokenPaginatedResult(Generic[T]):
|
|
|
48
52
|
|
|
49
53
|
@data.setter
|
|
50
54
|
def data(self, value):
|
|
51
|
-
|
|
55
|
+
class_ = getattr(
|
|
56
|
+
importlib.import_module("smartsheet.models"), self._dynamic_data_type
|
|
57
|
+
)
|
|
58
|
+
if isinstance(value, list):
|
|
59
|
+
self._data = [class_(x, self._base) for x in value]
|
|
60
|
+
else:
|
|
61
|
+
self._data = class_(value, self._base)
|
|
62
|
+
|
|
52
63
|
|
|
53
64
|
@property
|
|
54
65
|
def last_key(self):
|
|
@@ -19,6 +19,7 @@ from __future__ import absolute_import
|
|
|
19
19
|
|
|
20
20
|
from ..types import (Boolean, EnumeratedValue, Number, String, Timestamp,
|
|
21
21
|
TypedList, TypedObject, json)
|
|
22
|
+
from ..models.enums import SeatType
|
|
22
23
|
from ..util import deserialize, serialize
|
|
23
24
|
from .alternate_email import AlternateEmail
|
|
24
25
|
from .enums import UserStatus
|
|
@@ -44,6 +45,7 @@ class UserModel:
|
|
|
44
45
|
self._first_name = String()
|
|
45
46
|
self._group_admin = Boolean()
|
|
46
47
|
self._id_ = Number()
|
|
48
|
+
self._is_internal = Boolean()
|
|
47
49
|
self._last_login = Timestamp()
|
|
48
50
|
self._last_name = String()
|
|
49
51
|
self._licensed_sheet_creator = Boolean()
|
|
@@ -51,6 +53,8 @@ class UserModel:
|
|
|
51
53
|
self._profile_image = TypedObject(ProfileImage)
|
|
52
54
|
self._resource_viewer = Boolean()
|
|
53
55
|
self._role = String()
|
|
56
|
+
self._seat_type = EnumeratedValue(SeatType)
|
|
57
|
+
self._seat_type_last_changed_at = Timestamp()
|
|
54
58
|
self._sheet_count = Number()
|
|
55
59
|
self._status = EnumeratedValue(UserStatus)
|
|
56
60
|
self._title = String()
|
|
@@ -145,6 +149,14 @@ class UserModel:
|
|
|
145
149
|
def id_(self, value):
|
|
146
150
|
self._id_.value = value
|
|
147
151
|
|
|
152
|
+
@property
|
|
153
|
+
def is_internal(self):
|
|
154
|
+
return self._is_internal.value
|
|
155
|
+
|
|
156
|
+
@is_internal.setter
|
|
157
|
+
def is_internal(self, value):
|
|
158
|
+
self._is_internal.value = value
|
|
159
|
+
|
|
148
160
|
@property
|
|
149
161
|
def last_login(self):
|
|
150
162
|
return self._last_login.value
|
|
@@ -201,6 +213,22 @@ class UserModel:
|
|
|
201
213
|
def role(self, value):
|
|
202
214
|
self._role.value = value
|
|
203
215
|
|
|
216
|
+
@property
|
|
217
|
+
def seat_type(self):
|
|
218
|
+
return self._seat_type
|
|
219
|
+
|
|
220
|
+
@seat_type.setter
|
|
221
|
+
def seat_type(self, value):
|
|
222
|
+
self._seat_type.set(value)
|
|
223
|
+
|
|
224
|
+
@property
|
|
225
|
+
def seat_type_last_changed_at(self):
|
|
226
|
+
return self._seat_type_last_changed_at.value
|
|
227
|
+
|
|
228
|
+
@seat_type_last_changed_at.setter
|
|
229
|
+
def seat_type_last_changed_at(self, value):
|
|
230
|
+
self._seat_type_last_changed_at.value = value
|
|
231
|
+
|
|
204
232
|
@property
|
|
205
233
|
def sheet_count(self):
|
|
206
234
|
return self._sheet_count.value
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
from __future__ import absolute_import
|
|
2
|
+
|
|
3
|
+
from ..types import (Boolean, EnumeratedValue, Number, String, Timestamp,
|
|
4
|
+
TypedList, TypedObject, json)
|
|
5
|
+
from ..models.enums import SeatType
|
|
6
|
+
from ..util import deserialize, serialize
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class UserPlan:
|
|
10
|
+
|
|
11
|
+
"""Smartsheet Plan for a User data model."""
|
|
12
|
+
|
|
13
|
+
def __init__(self, props=None, base_obj=None):
|
|
14
|
+
"""Initialize the UserPlan model."""
|
|
15
|
+
self._base = None
|
|
16
|
+
if base_obj is not None:
|
|
17
|
+
self._base = base_obj
|
|
18
|
+
|
|
19
|
+
self._plan_id = Number()
|
|
20
|
+
self._seat_type = EnumeratedValue(SeatType)
|
|
21
|
+
self._seat_type_last_changed_at = Timestamp()
|
|
22
|
+
self._is_internal = Boolean()
|
|
23
|
+
|
|
24
|
+
if props:
|
|
25
|
+
deserialize(self, props)
|
|
26
|
+
|
|
27
|
+
self.__initialized = True
|
|
28
|
+
|
|
29
|
+
@property
|
|
30
|
+
def plan_id(self):
|
|
31
|
+
return self._plan_id.value
|
|
32
|
+
|
|
33
|
+
@plan_id.setter
|
|
34
|
+
def plan_id(self, value):
|
|
35
|
+
self._plan_id.value = value
|
|
36
|
+
|
|
37
|
+
@property
|
|
38
|
+
def seat_type(self):
|
|
39
|
+
return self._seat_type
|
|
40
|
+
|
|
41
|
+
@seat_type.setter
|
|
42
|
+
def seat_type(self, value):
|
|
43
|
+
self._seat_type.set(value)
|
|
44
|
+
|
|
45
|
+
@property
|
|
46
|
+
def seat_type_last_changed_at(self):
|
|
47
|
+
return self._seat_type_last_changed_at.value
|
|
48
|
+
|
|
49
|
+
@seat_type_last_changed_at.setter
|
|
50
|
+
def seat_type_last_changed_at(self, value):
|
|
51
|
+
self._seat_type_last_changed_at.value = value
|
|
52
|
+
|
|
53
|
+
@property
|
|
54
|
+
def is_internal(self):
|
|
55
|
+
return self._is_internal.value
|
|
56
|
+
|
|
57
|
+
@is_internal.setter
|
|
58
|
+
def is_internal(self, value):
|
|
59
|
+
self._is_internal.value = value
|
|
60
|
+
|
|
61
|
+
def to_dict(self):
|
|
62
|
+
return serialize(self)
|
|
63
|
+
|
|
64
|
+
def to_json(self):
|
|
65
|
+
return json.dumps(self.to_dict())
|
|
66
|
+
|
|
67
|
+
def __str__(self):
|
|
68
|
+
return self.to_json()
|
|
@@ -30,7 +30,6 @@ from .models.summary_field import SummaryField
|
|
|
30
30
|
from .types import TypedList
|
|
31
31
|
from .util import deprecated
|
|
32
32
|
|
|
33
|
-
|
|
34
33
|
class Sheets:
|
|
35
34
|
|
|
36
35
|
"""Class for handling Sheets operations."""
|
|
@@ -310,6 +309,7 @@ class Sheets:
|
|
|
310
309
|
|
|
311
310
|
return response
|
|
312
311
|
|
|
312
|
+
@deprecated("Use sharing.delete_share instead")
|
|
313
313
|
def delete_share(self, sheet_id, share_id):
|
|
314
314
|
"""Delete the specified Share.
|
|
315
315
|
|
|
@@ -319,6 +319,9 @@ class Sheets:
|
|
|
319
319
|
|
|
320
320
|
Returns:
|
|
321
321
|
Result
|
|
322
|
+
|
|
323
|
+
Deprecated:
|
|
324
|
+
Use sharing.delete_share instead with assetType=AssetType.SHEET
|
|
322
325
|
"""
|
|
323
326
|
_op = fresh_operation("delete_share")
|
|
324
327
|
_op["method"] = "DELETE"
|
|
@@ -470,6 +473,7 @@ class Sheets:
|
|
|
470
473
|
|
|
471
474
|
return response
|
|
472
475
|
|
|
476
|
+
@deprecated("Use sharing.get_asset_share instead")
|
|
473
477
|
def get_share(self, sheet_id, share_id):
|
|
474
478
|
"""Get the specified Share.
|
|
475
479
|
|
|
@@ -479,6 +483,9 @@ class Sheets:
|
|
|
479
483
|
|
|
480
484
|
Returns:
|
|
481
485
|
Share
|
|
486
|
+
|
|
487
|
+
Deprecated:
|
|
488
|
+
Use sharing.get_asset_share instead with assetType=AssetType.SHEET
|
|
482
489
|
"""
|
|
483
490
|
_op = fresh_operation("get_share")
|
|
484
491
|
_op["method"] = "GET"
|
|
@@ -991,6 +998,7 @@ class Sheets:
|
|
|
991
998
|
|
|
992
999
|
return response
|
|
993
1000
|
|
|
1001
|
+
@deprecated("Use sharing.share_asset instead")
|
|
994
1002
|
def share_sheet(self, sheet_id, share_obj, send_email=None):
|
|
995
1003
|
"""Share the specified Sheet.
|
|
996
1004
|
|
|
@@ -1006,6 +1014,9 @@ class Sheets:
|
|
|
1006
1014
|
|
|
1007
1015
|
Returns:
|
|
1008
1016
|
Result
|
|
1017
|
+
|
|
1018
|
+
Deprecated:
|
|
1019
|
+
Use sharing.share_asset instead with assetType=AssetType.SHEET
|
|
1009
1020
|
"""
|
|
1010
1021
|
_op = fresh_operation("share_sheet")
|
|
1011
1022
|
_op["method"] = "POST"
|
|
@@ -1120,6 +1131,7 @@ class Sheets:
|
|
|
1120
1131
|
|
|
1121
1132
|
return response
|
|
1122
1133
|
|
|
1134
|
+
@deprecated("Use sharing.update_share instead")
|
|
1123
1135
|
def update_share(self, sheet_id, share_id, share_obj):
|
|
1124
1136
|
"""Update the access level of a User or Group for the specified Sheet.
|
|
1125
1137
|
|
|
@@ -1130,6 +1142,9 @@ class Sheets:
|
|
|
1130
1142
|
|
|
1131
1143
|
Returns:
|
|
1132
1144
|
Result
|
|
1145
|
+
|
|
1146
|
+
Deprecated:
|
|
1147
|
+
Use sharing.update_share instead with assetType=AssetType.SHEET
|
|
1133
1148
|
"""
|
|
1134
1149
|
if not all(val is not None for val in ["sheet_id", "share_id", "share_obj"]):
|
|
1135
1150
|
raise ValueError(
|