smartsheet-python-sdk 3.0.5__tar.gz → 3.2.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.
Files changed (259) hide show
  1. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/.gitignore +1 -0
  2. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/ADVANCED.md +4 -3
  3. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/CHANGELOG.md +36 -1
  4. {smartsheet-python-sdk-3.0.5/smartsheet_python_sdk.egg-info → smartsheet-python-sdk-3.2.0}/PKG-INFO +1 -1
  5. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/docs-source/index.rst +5 -1
  6. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/folders.py +62 -0
  7. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/home.py +6 -0
  8. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/__init__.py +3 -0
  9. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/datetime_object_value.py +2 -2
  10. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/__init__.py +1 -0
  11. smartsheet-python-sdk-3.2.0/smartsheet/models/enums/seat_type.py +17 -0
  12. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/folder.py +29 -1
  13. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/index_result.py +10 -1
  14. smartsheet-python-sdk-3.2.0/smartsheet/models/paginated_children_result.py +80 -0
  15. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/source.py +1 -1
  16. smartsheet-python-sdk-3.2.0/smartsheet/models/token_paginated_result.py +79 -0
  17. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/user_model.py +28 -0
  18. smartsheet-python-sdk-3.2.0/smartsheet/models/user_plan.py +68 -0
  19. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/workspace.py +29 -1
  20. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/users.py +94 -1
  21. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/version.py +2 -2
  22. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/workspaces.py +125 -11
  23. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0/smartsheet_python_sdk.egg-info}/PKG-INFO +1 -1
  24. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet_python_sdk.egg-info/SOURCES.txt +6 -0
  25. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_folders.py +49 -0
  26. smartsheet-python-sdk-3.2.0/tests/integration/test_workspaces.py +271 -0
  27. smartsheet-python-sdk-3.2.0/tests/mock_api/test_mock_api_folders.py +184 -0
  28. smartsheet-python-sdk-3.2.0/tests/mock_api/test_mock_api_workspaces.py +241 -0
  29. smartsheet-python-sdk-3.0.5/tests/integration/test_workspaces.py +0 -154
  30. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/.gitchangelog.rc +0 -0
  31. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/.gitchangelog.tpl +0 -0
  32. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  33. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  34. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/.github/pull_request_template.md +0 -0
  35. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/.github/workflows/publish-distribution.yaml +0 -0
  36. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/.github/workflows/publish-documentation.yaml +0 -0
  37. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/.github/workflows/test-build.yaml +0 -0
  38. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/.markdownlint.json +0 -0
  39. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/CONTRIBUTING.md +0 -0
  40. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/LICENSE.md +0 -0
  41. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/Makefile +0 -0
  42. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/NOTICE +0 -0
  43. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/README.md +0 -0
  44. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/docs-source/Makefile +0 -0
  45. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/docs-source/conf.py +0 -0
  46. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/pylintrc +0 -0
  47. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/setup.cfg +0 -0
  48. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/setup.py +0 -0
  49. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/__init__.py +0 -0
  50. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/attachments.py +0 -0
  51. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/cells.py +0 -0
  52. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/contacts.py +0 -0
  53. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/discussions.py +0 -0
  54. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/events.py +0 -0
  55. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/exceptions.py +0 -0
  56. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/favorites.py +0 -0
  57. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/groups.py +0 -0
  58. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/images.py +0 -0
  59. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/access_token.py +0 -0
  60. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/account.py +0 -0
  61. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/alternate_email.py +0 -0
  62. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/attachment.py +0 -0
  63. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/auto_number_format.py +0 -0
  64. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/automation_action.py +0 -0
  65. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/automation_rule.py +0 -0
  66. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/boolean_object_value.py +0 -0
  67. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/bulk_item_failure.py +0 -0
  68. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/bulk_item_result.py +0 -0
  69. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/cell.py +0 -0
  70. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/cell_data_item.py +0 -0
  71. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/cell_history.py +0 -0
  72. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/cell_link.py +0 -0
  73. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/cell_link_widget_content.py +0 -0
  74. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/chart_widget_content.py +0 -0
  75. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/column.py +0 -0
  76. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/comment.py +0 -0
  77. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/contact.py +0 -0
  78. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/contact_object_value.py +0 -0
  79. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/container_destination.py +0 -0
  80. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/copy_or_move_row_destination.py +0 -0
  81. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/copy_or_move_row_directive.py +0 -0
  82. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/copy_or_move_row_result.py +0 -0
  83. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/criteria.py +0 -0
  84. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/cross_sheet_reference.py +0 -0
  85. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/currency.py +0 -0
  86. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/date_object_value.py +0 -0
  87. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/discussion.py +0 -0
  88. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/downloaded_file.py +0 -0
  89. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/duration.py +0 -0
  90. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/email.py +0 -0
  91. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/access_level.py +0 -0
  92. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/attachment_parent_type.py +0 -0
  93. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/attachment_sub_type.py +0 -0
  94. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/attachment_type.py +0 -0
  95. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/automation_action_frequency.py +0 -0
  96. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/automation_action_type.py +0 -0
  97. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/automation_rule_disabled_reason.py +0 -0
  98. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/cell_link_status.py +0 -0
  99. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/column_type.py +0 -0
  100. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/criteria_target.py +0 -0
  101. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/cross_sheet_reference_status.py +0 -0
  102. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/currency_code.py +0 -0
  103. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/day_descriptors.py +0 -0
  104. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/day_ordinal.py +0 -0
  105. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/event_action.py +0 -0
  106. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/event_obejct_type.py +0 -0
  107. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/event_source.py +0 -0
  108. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/global_template.py +0 -0
  109. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/operator.py +0 -0
  110. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/paper_type.py +0 -0
  111. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/predecessor_type.py +0 -0
  112. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/publish_accessible_by.py +0 -0
  113. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/schedule_type.py +0 -0
  114. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/share_scope.py +0 -0
  115. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/share_type.py +0 -0
  116. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/sheet_email_format.py +0 -0
  117. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/sheet_filter_operator.py +0 -0
  118. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/sheet_filter_type.py +0 -0
  119. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/sort_direction.py +0 -0
  120. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/symbol.py +0 -0
  121. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/system_column_type.py +0 -0
  122. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/update_request_status.py +0 -0
  123. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/user_status.py +0 -0
  124. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/enums/widget_type.py +0 -0
  125. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/error.py +0 -0
  126. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/error_result.py +0 -0
  127. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/event.py +0 -0
  128. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/event_result.py +0 -0
  129. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/explicit_null.py +0 -0
  130. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/favorite.py +0 -0
  131. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/font_family.py +0 -0
  132. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/format_details.py +0 -0
  133. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/format_tables.py +0 -0
  134. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/group.py +0 -0
  135. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/group_member.py +0 -0
  136. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/home.py +0 -0
  137. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/hyperlink.py +0 -0
  138. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/image.py +0 -0
  139. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/image_url.py +0 -0
  140. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/image_url_map.py +0 -0
  141. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/image_widget_content.py +0 -0
  142. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/json_object.py +0 -0
  143. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/multi_contact_object_value.py +0 -0
  144. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/multi_picklist_object_value.py +0 -0
  145. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/multi_row_email.py +0 -0
  146. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/number_object_value.py +0 -0
  147. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/o_auth_error.py +0 -0
  148. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/object_value.py +0 -0
  149. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/predecessor.py +0 -0
  150. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/predecessor_list.py +0 -0
  151. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/primitive_object_value.py +0 -0
  152. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/profile_image.py +0 -0
  153. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/project_settings.py +0 -0
  154. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/recipient.py +0 -0
  155. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/report.py +0 -0
  156. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/report_cell.py +0 -0
  157. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/report_column.py +0 -0
  158. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/report_publish.py +0 -0
  159. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/report_row.py +0 -0
  160. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/report_widget_content.py +0 -0
  161. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/result.py +0 -0
  162. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/row.py +0 -0
  163. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/row_email.py +0 -0
  164. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/row_mapping.py +0 -0
  165. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/schedule.py +0 -0
  166. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/scope.py +0 -0
  167. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/search_result.py +0 -0
  168. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/search_result_item.py +0 -0
  169. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/selection_range.py +0 -0
  170. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/sent_update_request.py +0 -0
  171. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/server_info.py +0 -0
  172. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/share.py +0 -0
  173. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/sheet.py +0 -0
  174. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/sheet_email.py +0 -0
  175. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/sheet_filter.py +0 -0
  176. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/sheet_filter_details.py +0 -0
  177. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/sheet_publish.py +0 -0
  178. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/sheet_summary.py +0 -0
  179. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/sheet_user_permissions.py +0 -0
  180. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/sheet_user_settings.py +0 -0
  181. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/shortcut_data_item.py +0 -0
  182. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/shortcut_widget_content.py +0 -0
  183. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/sight.py +0 -0
  184. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/sight_publish.py +0 -0
  185. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/sort_criterion.py +0 -0
  186. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/sort_specifier.py +0 -0
  187. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/string_object_value.py +0 -0
  188. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/summary_field.py +0 -0
  189. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/template.py +0 -0
  190. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/title_rich_text_widget_content.py +0 -0
  191. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/update_request.py +0 -0
  192. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/user.py +0 -0
  193. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/user_profile.py +0 -0
  194. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/version.py +0 -0
  195. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/web_content_widget_content.py +0 -0
  196. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/webhook.py +0 -0
  197. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/webhook_secret.py +0 -0
  198. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/webhook_stats.py +0 -0
  199. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/webhook_subscope.py +0 -0
  200. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/widget.py +0 -0
  201. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/widget_content.py +0 -0
  202. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/models/widget_hyperlink.py +0 -0
  203. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/object_value.py +0 -0
  204. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/passthrough.py +0 -0
  205. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/reports.py +0 -0
  206. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/search.py +0 -0
  207. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/server.py +0 -0
  208. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/session.py +0 -0
  209. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/sheets.py +0 -0
  210. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/sights.py +0 -0
  211. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/smartsheet.py +0 -0
  212. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/templates.py +0 -0
  213. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/token.py +0 -0
  214. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/types.py +0 -0
  215. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/util.py +0 -0
  216. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet/webhooks.py +0 -0
  217. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet_python_sdk.egg-info/dependency_links.txt +0 -0
  218. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet_python_sdk.egg-info/requires.txt +0 -0
  219. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/smartsheet_python_sdk.egg-info/top_level.txt +0 -0
  220. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/README.md +0 -0
  221. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/conftest.py +0 -0
  222. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/fixtures/calling_all_curs.txt +0 -0
  223. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/fixtures/curly.jpg +0 -0
  224. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/fixtures/moe-curly.jpg +0 -0
  225. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/fixtures/quote.txt +0 -0
  226. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/fixtures/stooges_v1.jpg +0 -0
  227. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/fixtures/stooges_v2.jpg +0 -0
  228. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_attachments.py +0 -0
  229. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_columns.py +0 -0
  230. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_contacts.py +0 -0
  231. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_cross_sheet_references.py +0 -0
  232. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_discussions.py +0 -0
  233. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_events.py +0 -0
  234. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_favorites.py +0 -0
  235. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_groups.py +0 -0
  236. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_home.py +0 -0
  237. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_model_attributes.py +0 -0
  238. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_multi_picklist.py +0 -0
  239. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_object_value.py +0 -0
  240. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_passthrough.py +0 -0
  241. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_regression.py +0 -0
  242. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_reports.py +0 -0
  243. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_rows.py +0 -0
  244. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_server_info.py +0 -0
  245. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_sheet_summary.py +0 -0
  246. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_sheets.py +0 -0
  247. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_templates.py +0 -0
  248. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_update_requests.py +0 -0
  249. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_users.py +0 -0
  250. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_webhooks.py +0 -0
  251. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/integration/test_zsearch.py +0 -0
  252. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/mock_api/mock_api_test_helper.py +0 -0
  253. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/mock_api/test_mock_api_automation_rules.py +0 -0
  254. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/mock_api/test_mock_api_columns.py +0 -0
  255. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/mock_api/test_mock_api_rows.py +0 -0
  256. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/mock_api/test_mock_api_sheets.py +0 -0
  257. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/mock_api/test_mock_api_sights.py +0 -0
  258. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/mock_api/test_mock_change_agent.py +0 -0
  259. {smartsheet-python-sdk-3.0.5 → smartsheet-python-sdk-3.2.0}/tests/mock_api/test_mock_serialization.py +0 -0
@@ -1,6 +1,7 @@
1
1
  .sw[op]
2
2
  .*.sw[op]
3
3
  *.pyc
4
+ *.iml
4
5
 
5
6
  # Ignore setup.py artifacts
6
7
  build/
@@ -80,7 +80,7 @@ response = client.Passthrough.post('/sheets', payload)
80
80
 
81
81
  ### Integration Tests
82
82
 
83
- 1. Follow the instructions [here](tests/integration/README.md)
83
+ 1. Follow the [Integration test instructions](tests/integration/README.md)
84
84
  2. Run `pytest tests/integration`
85
85
 
86
86
  ### Mock API Tests
@@ -134,7 +134,8 @@ 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
- provided can be found [here.](https://smartsheet.redoc.ly/tag/eventsDescription)
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
140
141
  # this example is looking specifically for new sheet events
@@ -157,7 +158,7 @@ last_week = datetime.now() - timedelta(days=7)
157
158
  events_list = smartsheet_client.Events.list_events(since=last_week.isoformat(), max_count=1000)
158
159
  print_new_sheet_events_in_list(events_list)
159
160
 
160
- # continue listing events in the stream by using the stream_position, if the previous response indicates that more
161
+ # continue listing events in the stream by using the stream_position, if the previous response indicates that more
161
162
  # data is available.
162
163
  while events_list.more_available:
163
164
  events_list = smartsheet_client.Events.list_events(stream_position=events_list.next_stream_position, max_count=10000,
@@ -5,6 +5,41 @@ 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.2.0] - 2025-09-25
9
+
10
+ ### Added
11
+
12
+ - Support for POST /2.0/users/{userId}/plans/{planId}/downgrade
13
+ - Support for POST /2.0/users/{userId}/plans/{planId}/upgrade
14
+ - Support for GET /2.0/users/{userId}/plans
15
+ - Support for GET /2.0/users?planId={planId}&seatType={seatType}
16
+ - Support for DELETE /2.0/users/{userId}/plans/{planId}
17
+
18
+ ## [3.1.0] - 2025-08-28
19
+
20
+ ### Added
21
+
22
+ - New `get_workspace_metadata()` method to get workspace metadata without children
23
+ - New `get_workspace_children()` method to get workspace children with filtering and pagination support
24
+ - New `get_folder_metadata()` method to get folder metadata without children
25
+ - New `get_folder_children()` method to get folder children with filtering and pagination support
26
+ - New `TokenPaginatedResult<T>` generic model for type-safe paginated API responses
27
+ - New `PaginatedChildrenResult` model with custom deserialization for mixed children types based on resourceType
28
+ - Updated `list_workspaces()` method to support Token-based pagination . Use the new `pagination_type='token'` parameter with `last_key` and `max_items` for more efficient pagination. When `pagination_type='token'` is used, the method returns a `Result` object containing `data` and `lastKey`.
29
+
30
+ ### Deprecated
31
+
32
+ - `get_workspace()` - Use `get_workspace_metadata()` and `get_workspace_children()` instead
33
+ - `list_folders()` in Workspaces - Use `get_workspace_children()` with `children_resource_types=['folders']` instead
34
+ - `get_folder()` - Use `get_folder_metadata()` and `get_folder_children()` instead
35
+ - `list_folders()` in Folders - Use `get_folder_children()` with `children_resource_types=['folders']` instead
36
+ - `create_folder()` in Home
37
+ - `create_sheet()` in Home
38
+ - `create_sheet_from_template()` in Home
39
+ - `list_all_contents()` in Home
40
+ - `list_folders()` in Home
41
+ - `page_size`, `page`, and `include_all` parameters in `list_workspaces()` method are now deprecated. Use `pagination_type='token'` with `max_items` and `last_key` instead. Deprecated parameters will issue `DeprecationWarning` when used.
42
+
8
43
  ## [3.0.5] - 2025-04-07
9
44
 
10
45
  ### Changed
@@ -253,7 +288,7 @@ if sheet.access_level == 'OWNER':
253
288
  ...
254
289
  ```
255
290
 
256
- [enum34](https://pypi.python.org/pypi/enum34) has been added as a required package for the SDK
291
+ [enum34](https://pypi.python.org/pypi/enum34) has been added as a required package for the SDK
257
292
 
258
293
  ## [1.3.0] - 2018-02-21
259
294
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: smartsheet-python-sdk
3
- Version: 3.0.5
3
+ Version: 3.2.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
@@ -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
  ----------
@@ -22,6 +22,7 @@ import os.path
22
22
 
23
23
  from . import fresh_operation
24
24
  from .models.folder import Folder
25
+ from .util import deprecated
25
26
 
26
27
 
27
28
  class Folders:
@@ -173,9 +174,13 @@ class Folders:
173
174
 
174
175
  return response
175
176
 
177
+ @deprecated
176
178
  def get_folder(self, folder_id, include=None):
177
179
  """Get the specified Folder (and list its contents).
178
180
 
181
+ Deprecated: 3.1.0
182
+ Use `get_folder_metadata` and `get_folder_children` instead.
183
+
179
184
  Args:
180
185
  folder_id (int): Folder ID
181
186
  include (list[str]): A comma-separated list of
@@ -196,9 +201,13 @@ class Folders:
196
201
 
197
202
  return response
198
203
 
204
+ @deprecated
199
205
  def list_folders(self, folder_id, page_size=None, page=None, include_all=None):
200
206
  """Get a list of top-level child Folders within the specified Folder.
201
207
 
208
+ Deprecated: 3.1.0
209
+ Use `get_folder_children` with children_resource_types=['folders'] instead.
210
+
202
211
  Args:
203
212
  folder_id (int): Folder ID
204
213
  page_size (int): The maximum number of items to
@@ -272,6 +281,59 @@ class Folders:
272
281
 
273
282
  return response
274
283
 
284
+ def get_folder_metadata(self, folder_id, include=None):
285
+ """Get the metadata of a folder.
286
+
287
+ Args:
288
+ folder_id (int): Folder ID
289
+ include (list[str]): A list of optional elements to include
290
+ in the response. Valid list values: source.
291
+
292
+ Returns:
293
+ Folder
294
+ """
295
+ _op = fresh_operation("get_folder_metadata")
296
+ _op["method"] = "GET"
297
+ _op["path"] = "/folders/" + str(folder_id) + "/metadata"
298
+ _op["query_params"]["include"] = include
299
+
300
+ expected = "Folder"
301
+ prepped_request = self._base.prepare_request(_op)
302
+ response = self._base.request(prepped_request, expected, _op)
303
+
304
+ return response
305
+
306
+ def get_folder_children(self, folder_id, children_resource_types=None, include=None, last_key=None, max_items=None):
307
+ """Get the children of a folder.
308
+
309
+ Args:
310
+ folder_id (int): Folder ID
311
+ children_resource_types (list[str]): The types of the children resources.
312
+ If not provided, returns children of all types.
313
+ Valid list values: sheets, reports, sights, folders.
314
+ include (list[str]): A list of optional elements to include in the
315
+ response. Valid list values: source, ownerInfo.
316
+ last_key (str): The token from a previous request that will allow this one
317
+ to fetch the next page of results.
318
+ max_items (int): The maximum number of items to return in the response.
319
+
320
+ Returns:
321
+ PaginatedChildrenResult
322
+ """
323
+ _op = fresh_operation("get_folder_children")
324
+ _op["method"] = "GET"
325
+ _op["path"] = "/folders/" + str(folder_id) + "/children"
326
+ _op["query_params"]["childrenResourceTypes"] = children_resource_types
327
+ _op["query_params"]["include"] = include
328
+ _op["query_params"]["lastKey"] = last_key
329
+ _op["query_params"]["maxItems"] = max_items
330
+
331
+ expected = "PaginatedChildrenResult"
332
+ prepped_request = self._base.prepare_request(_op)
333
+ response = self._base.request(prepped_request, expected, _op)
334
+
335
+ return response
336
+
275
337
  def import_csv_sheet(
276
338
  self,
277
339
  folder_id,
@@ -22,6 +22,7 @@ import logging
22
22
  from . import fresh_operation
23
23
  from .models.folder import Folder
24
24
  from .models.sheet import Sheet
25
+ from .util import deprecated
25
26
 
26
27
 
27
28
  class Home:
@@ -33,6 +34,7 @@ class Home:
33
34
  self._base = smartsheet_obj
34
35
  self._log = logging.getLogger(__name__)
35
36
 
37
+ @deprecated
36
38
  def create_folder(self, folder_obj):
37
39
  """Creates a Folder in the user's Sheets folder (Home).
38
40
 
@@ -57,6 +59,7 @@ class Home:
57
59
 
58
60
  return response
59
61
 
62
+ @deprecated
60
63
  def create_sheet(self, sheet_obj):
61
64
  """Create a Sheet from scratch in the user's Sheets folder within
62
65
  Home.
@@ -82,6 +85,7 @@ class Home:
82
85
 
83
86
  return response
84
87
 
88
+ @deprecated
85
89
  def create_sheet_from_template(self, sheet_obj, include=None):
86
90
  """Create a Sheet in the Sheets folder from the specified Template.
87
91
 
@@ -118,6 +122,7 @@ class Home:
118
122
 
119
123
  return response
120
124
 
125
+ @deprecated
121
126
  def list_all_contents(self, include=None, exclude=None):
122
127
  """Get a nested list of all Home objects, including Sheets,
123
128
  Workspaces, Folders, Reports and Templates.
@@ -145,6 +150,7 @@ class Home:
145
150
 
146
151
  return response
147
152
 
153
+ @deprecated
148
154
  def list_folders(self, page_size=None, page=None, include_all=None):
149
155
  """Gets a list of top-level child Folders within the user's Sheets
150
156
  folder.
@@ -73,6 +73,8 @@ from .multi_row_email import MultiRowEmail
73
73
  from .number_object_value import NumberObjectValue
74
74
  from .o_auth_error import OAuthError
75
75
  from .object_value import ObjectValue
76
+ from .paginated_children_result import PaginatedChildrenResult
77
+ from .token_paginated_result import TokenPaginatedResult
76
78
  from .predecessor import Predecessor
77
79
  from .predecessor_list import PredecessorList
78
80
  from .project_settings import ProjectSettings
@@ -119,3 +121,4 @@ from .webhook_subscope import WebhookSubscope
119
121
  from .widget import Widget
120
122
  from .widget_content import WidgetContent
121
123
  from .workspace import Workspace
124
+ from .user_plan import UserPlan
@@ -26,10 +26,10 @@ from .object_value import ObjectValue, six
26
26
 
27
27
 
28
28
  class DatetimeObjectValue(ObjectValue):
29
- """Smartsheet DateObjectValue data model."""
29
+ """Smartsheet DatetimeObjectValue data model."""
30
30
 
31
31
  def __init__(self, props=None, object_type=None, base_obj=None):
32
- """Initialize the DateObjectValue model."""
32
+ """Initialize the DatetimeObjectValue model."""
33
33
  super().__init__(object_type, base_obj)
34
34
  self._base = None
35
35
  if base_obj is not None:
@@ -52,3 +52,4 @@ from .system_column_type import SystemColumnType
52
52
  from .update_request_status import UpdateRequestStatus
53
53
  from .user_status import UserStatus
54
54
  from .widget_type import WidgetType
55
+ 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'
@@ -17,11 +17,12 @@
17
17
 
18
18
  from __future__ import absolute_import
19
19
 
20
- from ..types import Boolean, Number, String, TypedList, json
20
+ from ..types import Boolean, Number, String, Timestamp, TypedList, TypedObject, json
21
21
  from ..util import deserialize, serialize
22
22
  from .report import Report
23
23
  from .sheet import Sheet
24
24
  from .sight import Sight
25
+ from .source import Source
25
26
  from .template import Template
26
27
 
27
28
 
@@ -35,14 +36,17 @@ class Folder:
35
36
  if base_obj is not None:
36
37
  self._base = base_obj
37
38
 
39
+ self._created_at = Timestamp()
38
40
  self._favorite = Boolean()
39
41
  self._folders = TypedList(Folder)
40
42
  self._id_ = Number()
43
+ self._modified_at = Timestamp()
41
44
  self._name = String()
42
45
  self._permalink = String()
43
46
  self._reports = TypedList(Report)
44
47
  self._sheets = TypedList(Sheet)
45
48
  self._sights = TypedList(Sight)
49
+ self._source = TypedObject(Source)
46
50
  self._templates = TypedList(Template)
47
51
 
48
52
  if props:
@@ -64,6 +68,14 @@ class Folder:
64
68
  else:
65
69
  super().__setattr__(key, value)
66
70
 
71
+ @property
72
+ def created_at(self):
73
+ return self._created_at.value
74
+
75
+ @created_at.setter
76
+ def created_at(self, value):
77
+ self._created_at.value = value
78
+
67
79
  @property
68
80
  def favorite(self):
69
81
  return self._favorite.value
@@ -88,6 +100,14 @@ class Folder:
88
100
  def id_(self, value):
89
101
  self._id_.value = value
90
102
 
103
+ @property
104
+ def modified_at(self):
105
+ return self._modified_at.value
106
+
107
+ @modified_at.setter
108
+ def modified_at(self, value):
109
+ self._modified_at.value = value
110
+
91
111
  @property
92
112
  def name(self):
93
113
  return self._name.value
@@ -128,6 +148,14 @@ class Folder:
128
148
  def sights(self, value):
129
149
  self._sights.load(value)
130
150
 
151
+ @property
152
+ def source(self):
153
+ return self._source.value
154
+
155
+ @source.setter
156
+ def source(self, value):
157
+ self._source.value = value
158
+
131
159
  @property
132
160
  def templates(self):
133
161
  return self._templates
@@ -17,7 +17,7 @@
17
17
 
18
18
  from __future__ import absolute_import
19
19
 
20
- from ..types import Number, TypedList, importlib, json
20
+ from ..types import Number, TypedList, importlib, json, String
21
21
  from ..util import deserialize, serialize
22
22
 
23
23
 
@@ -40,6 +40,7 @@ class IndexResult:
40
40
  self._page_size = Number()
41
41
  self._total_count = Number()
42
42
  self._total_pages = Number()
43
+ self._last_key = String()
43
44
 
44
45
  if props:
45
46
  deserialize(self, props)
@@ -94,6 +95,14 @@ class IndexResult:
94
95
  def total_pages(self, value):
95
96
  self._total_pages.value = value
96
97
 
98
+ @property
99
+ def last_key(self):
100
+ return self._last_key.value
101
+
102
+ @last_key.setter
103
+ def last_key(self, value):
104
+ self._last_key.value = value
105
+
97
106
  @property
98
107
  def result(self):
99
108
  """Simplify difference between Result and IndexResult"""
@@ -0,0 +1,80 @@
1
+ # pylint: disable=C0111,R0902,R0904,R0912,R0913,R0915,E1101
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
+ from __future__ import absolute_import
19
+
20
+ from typing import Union
21
+ from ..util import deserialize
22
+ from .token_paginated_result import TokenPaginatedResult
23
+ from .folder import Folder
24
+ from .sheet import Sheet
25
+ from .sight import Sight
26
+ from .report import Report
27
+
28
+ # Type alias for children that can be any of these types
29
+ ChildType = Union[Folder, Sheet, Sight, Report]
30
+
31
+
32
+ class PaginatedChildrenResult(TokenPaginatedResult[ChildType]):
33
+ """Smartsheet PaginatedChildrenResult that deserializes mixed children based on resourceType."""
34
+
35
+ def __init__(self, props=None, base_obj=None):
36
+ """Initialize the PaginatedChildrenResult model."""
37
+ super().__init__(props=None, base_obj=base_obj)
38
+
39
+ if props:
40
+ self._deserialize_data(props)
41
+ deserialize(self, props)
42
+
43
+ def _deserialize_data(self, props):
44
+ """Custom deserialization for data array based on resourceType."""
45
+ if 'data' in props:
46
+ self._data = []
47
+ for item in props['data']:
48
+ self.append_data(item)
49
+
50
+ def append_data(self, item):
51
+ """Append data item, converting to appropriate model based on resourceType."""
52
+ # Get resource type from either dict or object
53
+ if isinstance(item, dict):
54
+ resource_type = item.get('resourceType', '').lower()
55
+ else:
56
+ resource_type = getattr(item, 'resourceType', '').lower()
57
+
58
+ # Convert to appropriate model object based on resource type
59
+ if resource_type == 'folder':
60
+ self._data.append(Folder(item, self._base))
61
+ elif resource_type == 'sheet':
62
+ self._data.append(Sheet(item, self._base))
63
+ elif resource_type == 'sight':
64
+ self._data.append(Sight(item, self._base))
65
+ elif resource_type == 'report':
66
+ self._data.append(Report(item, self._base))
67
+ else:
68
+ # If no resource type or unknown type, append as-is
69
+ self._data.append(item)
70
+
71
+ @property
72
+ def data(self):
73
+ return self._data
74
+
75
+ @data.setter
76
+ def data(self, value):
77
+ """Custom setter that handles deserialization of mixed resource types."""
78
+ self._data = []
79
+ for item in value:
80
+ self.append_data(item)
@@ -31,7 +31,7 @@ class Source:
31
31
  if base_obj is not None:
32
32
  self._base = base_obj
33
33
 
34
- self.allowed_values = {"_type": ["report", "sheet", "sight", "template"]}
34
+ self.allowed_values = {"_type": ["folder", "report", "sheet", "sight", "template", "workspace"]}
35
35
 
36
36
  self._id_ = Number()
37
37
  self._type_ = String(accept=self.allowed_values["_type"])
@@ -0,0 +1,79 @@
1
+ # pylint: disable=C0111,R0902,R0904,R0912,R0913,R0915,E1101
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
+ from __future__ import absolute_import
19
+
20
+ from typing import TypeVar, Generic, List
21
+ from ..types import String, json, TypedList, importlib
22
+ from ..util import deserialize, serialize
23
+
24
+ T = TypeVar('T')
25
+
26
+
27
+ class TokenPaginatedResult(Generic[T]):
28
+ """Smartsheet TokenPaginatedResult data model with generic type support."""
29
+
30
+ def __init__(self, props=None, dynamic_data_type=None, base_obj=None):
31
+ """Initialize the TokenPaginatedResult model."""
32
+ self._base = None
33
+ if base_obj is not None:
34
+ self._base = base_obj
35
+
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)
41
+ self._last_key = String()
42
+
43
+ if props:
44
+ deserialize(self, props)
45
+
46
+ self.request_response = None
47
+ self.__initialized = True
48
+
49
+ @property
50
+ def data(self) -> List[T]:
51
+ return self._data
52
+
53
+ @data.setter
54
+ def data(self, value):
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
+
63
+
64
+ @property
65
+ def last_key(self):
66
+ return self._last_key.value
67
+
68
+ @last_key.setter
69
+ def last_key(self, value):
70
+ self._last_key.value = value
71
+
72
+ def to_dict(self):
73
+ return serialize(self)
74
+
75
+ def to_json(self):
76
+ return json.dumps(self.to_dict())
77
+
78
+ def __str__(self):
79
+ return self.to_json()
@@ -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