streamsets 6.6.0.dev0__tar.gz → 6.6.0rc1__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 (354) hide show
  1. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/PKG-INFO +1 -1
  2. streamsets-6.6.0rc1/docs/_static/images/build/value_chooser__JSON_content.png +0 -0
  3. streamsets-6.6.0rc1/docs/_static/images/manage/projects/create_project.png +0 -0
  4. streamsets-6.6.0rc1/docs/_static/images/manage/projects/switch_projects.png +0 -0
  5. streamsets-6.6.0rc1/docs/_static/images/manage/users_and_groups/project_roles.png +0 -0
  6. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/api/sch_api.rst +10 -0
  7. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/build/editing_pipelines.rst +21 -0
  8. streamsets-6.6.0rc1/docs/manage/projects/projects.rst +242 -0
  9. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/manage/users_and_groups/managing_users_and_groups.rst +15 -15
  10. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/manage/users_and_groups/permissions.rst +7 -7
  11. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/manage/users_and_groups/roles.rst +38 -7
  12. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/manage.rst +1 -0
  13. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/streamsets/sdk/__version__.py +1 -1
  14. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/streamsets/sdk/constants.py +4 -1
  15. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/streamsets/sdk/exceptions.py +9 -0
  16. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/streamsets/sdk/models.py +3 -5
  17. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/streamsets/sdk/sch.py +66 -125
  18. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/streamsets/sdk/sch_api.py +82 -12
  19. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/streamsets/sdk/sch_models.py +405 -16
  20. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/streamsets/sdk/sdc_api.py +3 -1
  21. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/streamsets/sdk/st_api.py +3 -1
  22. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/streamsets.egg-info/PKG-INFO +1 -1
  23. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/streamsets.egg-info/SOURCES.txt +7 -0
  24. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_analytics.py +8 -3
  25. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_job_sequences.py +50 -27
  26. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_projects.py +65 -0
  27. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_saql_search.py +7 -3
  28. streamsets-6.6.0rc1/tests/integration/test_sch.py +196 -0
  29. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_users_and_groups.py +12 -12
  30. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/conftest.py +14 -0
  31. streamsets-6.6.0rc1/tests/unit/resources/pipeline_builder_data.py +117 -0
  32. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_collection_model.py +20 -1
  33. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_configuration.py +8 -5
  34. streamsets-6.6.0rc1/tests/unit/test_engine_api.py +62 -0
  35. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_job_sequence_builder.py +17 -12
  36. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_pipeline.py +20 -0
  37. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_pipeline_builder.py +70 -0
  38. streamsets-6.6.0rc1/tests/unit/test_roles.py +39 -0
  39. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_sch.py +1 -33
  40. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_step.py +0 -4
  41. streamsets-6.6.0.dev0/tests/integration/test_sch.py +0 -65
  42. streamsets-6.6.0.dev0/tests/unit/resources/pipeline_builder_data.py +0 -61
  43. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/.gitignore +0 -0
  44. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/Dockerfile +0 -0
  45. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/HISTORY.rst +0 -0
  46. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/MANIFEST.in +0 -0
  47. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/Makefile +0 -0
  48. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/README.rst +0 -0
  49. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/build_requirements.txt +0 -0
  50. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/TopologyMissingNodes.png +0 -0
  51. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/TopologyMultipleJobsSingleSystem.png +0 -0
  52. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/TopologyRestoredNodes.png +0 -0
  53. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/add_snowflake_credentials.png +0 -0
  54. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/click_snowflake_settings.png +0 -0
  55. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/css/docs_theme.css +0 -0
  56. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/dev_data_generator_to_trash.png +0 -0
  57. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/dev_data_generator_to_two_trashes.png +0 -0
  58. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/dev_data_generator_with_events.png +0 -0
  59. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/dev_raw_data_source_help.png +0 -0
  60. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/dev_raw_data_to_trash.png +0 -0
  61. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/favicon.ico +0 -0
  62. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/file_tail_to_two_trashes.png +0 -0
  63. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/full-ibm-streamsets-logo.svg +0 -0
  64. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/build/add_frag_to_pipeline.png +0 -0
  65. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/build/connect_event_lane.png +0 -0
  66. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/build/delete_connection.png +0 -0
  67. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/build/edit_configuration.png +0 -0
  68. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/build/error_records_configuration.png +0 -0
  69. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/build/error_records_main.png +0 -0
  70. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/build/existing_pipelines.png +0 -0
  71. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/build/fragment_canvas.png +0 -0
  72. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/build/fragment_ui.png +0 -0
  73. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/build/multi_output_stages_complete.png +0 -0
  74. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/build/multi_output_stages_incomplete.png +0 -0
  75. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/build/pipeline_canvas.png +0 -0
  76. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/build/pipeline_check_in.png +0 -0
  77. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/build/pipeline_ui.png +0 -0
  78. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/build/pipelines_using_fragment.png +0 -0
  79. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/build/produce_events.png +0 -0
  80. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/build/remove_stage.png +0 -0
  81. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/build/selector_four_conditions.png +0 -0
  82. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/build/snowflake_required_parameters.png +0 -0
  83. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/build/stages_unconnected.png +0 -0
  84. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/build/stages_with_different_types.png +0 -0
  85. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/build/update_pipeline_with_frag.png +0 -0
  86. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/manage/permissions/add_new_permissions.png +0 -0
  87. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/manage/permissions/change_owner.png +0 -0
  88. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/manage/permissions/delete_permissions.png +0 -0
  89. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/manage/permissions/share_button.png +0 -0
  90. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/manage/permissions/share_settings.png +0 -0
  91. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/manage/users_and_groups/activate_user.png +0 -0
  92. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/manage/users_and_groups/add_new_group.png +0 -0
  93. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/manage/users_and_groups/add_new_user.png +0 -0
  94. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/manage/users_and_groups/deactivate_user.png +0 -0
  95. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/manage/users_and_groups/delete_group.png +0 -0
  96. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/manage/users_and_groups/delete_user.png +0 -0
  97. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/manage/users_and_groups/groups_list.png +0 -0
  98. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/manage/users_and_groups/invite_user_details.png +0 -0
  99. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/manage/users_and_groups/new_group_details.png +0 -0
  100. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/manage/users_and_groups/update_group_details.png +0 -0
  101. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/manage/users_and_groups/update_user_details.png +0 -0
  102. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/manage/users_and_groups/users_list.png +0 -0
  103. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/run/activate_sequence.png +0 -0
  104. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/run/add_job_modal.png +0 -0
  105. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/run/add_jobs_to_job_sequence.png +0 -0
  106. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/run/create_job_sequence.png +0 -0
  107. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/run/delete_draftrun_ui.png +0 -0
  108. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/run/delete_job_sequence.png +0 -0
  109. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/run/disable_sequence.png +0 -0
  110. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/run/draftrun_ui.png +0 -0
  111. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/run/get_job_sequence_steps.png +0 -0
  112. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/run/get_job_sequences.png +0 -0
  113. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/run/logs_ui.png +0 -0
  114. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/run/move_step.png +0 -0
  115. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/run/snapshots_ui.png +0 -0
  116. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/run/start_draftrun_ui.png +0 -0
  117. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/run/stop_draftrun_ui.png +0 -0
  118. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/run/three_dots_sequence.png +0 -0
  119. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/run/view_history.png +0 -0
  120. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/search/SAQL_Mark_Favorite.png +0 -0
  121. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/search/SAQL_Query_Builder.png +0 -0
  122. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/search/SAQL_Remove.png +0 -0
  123. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/search/SAQL_Save_Search.png +0 -0
  124. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/search/SAQL_Saved_Searches.png +0 -0
  125. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/search/SAQL_Search_Name_Wizard.png +0 -0
  126. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/search/SAQL_Update.png +0 -0
  127. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/search/Search_Advanced.png +0 -0
  128. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/connections/configuring_connection.png +0 -0
  129. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/connections/create_connection.png +0 -0
  130. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/connections/deleting_connection.png +0 -0
  131. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/connections/editing_connection.png +0 -0
  132. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/connections/get_connection.png +0 -0
  133. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/connections/pipelines_using_connection.png +0 -0
  134. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/connections/using_connection.png +0 -0
  135. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/connections/verify_connection.png +0 -0
  136. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/azure_vm_deployments/creation_configure_azure_vm_autoscaling_group.png +0 -0
  137. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/azure_vm_deployments/creation_configure_azure_vm_ssh_access.png +0 -0
  138. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/azure_vm_deployments/creation_configure_azure_vm_zone.png +0 -0
  139. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/azure_vm_deployments/creation_define_deployment_sdc.png +0 -0
  140. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/azure_vm_deployments/creation_define_deployment_transformer.png +0 -0
  141. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/azure_vm_deployments/creation_review_and_launch.png +0 -0
  142. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/common/configure_install_type_docker.png +0 -0
  143. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/common/configure_install_type_tarball.png +0 -0
  144. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/common/creation_configure_engine_stage_lib_selection_as_a_list.png +0 -0
  145. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/common/creation_configure_engine_stage_lib_selection_screen.png +0 -0
  146. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/common/creation_configure_engine_transformer_stage_lib_selection_as_a_list.png +0 -0
  147. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/common/creation_configure_engine_transformer_stage_lib_selection_screen.png +0 -0
  148. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/common/creation_share_deployment.png +0 -0
  149. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/ec2_deployments/creation_configure_ec2_autoscaling_group.png +0 -0
  150. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/ec2_deployments/creation_configure_ec2_ssh_access.png +0 -0
  151. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/ec2_deployments/creation_configure_engine.png +0 -0
  152. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/ec2_deployments/creation_define_deployment.png +0 -0
  153. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/ec2_deployments/creation_review_and_launch.png +0 -0
  154. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/ec2_deployments/creation_share_deployment.png +0 -0
  155. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/ec2_deployments/creation_transformer_define_deployment.png +0 -0
  156. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/gce_deployments/creation_configure_engine.png +0 -0
  157. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/gce_deployments/creation_configure_gce_autoscaling_group.png +0 -0
  158. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/gce_deployments/creation_configure_gce_region.png +0 -0
  159. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/gce_deployments/creation_configure_gce_ssh_access.png +0 -0
  160. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/gce_deployments/creation_configure_gce_zone.png +0 -0
  161. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/gce_deployments/creation_define_deployment_sdc.png +0 -0
  162. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/gce_deployments/creation_define_deployment_transformer.png +0 -0
  163. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/gce_deployments/creation_review_and_launch.png +0 -0
  164. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/kubernetes_deployments/sdc_configure_deployment_wizard.png +0 -0
  165. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/kubernetes_deployments/sdc_configure_kubernetes_wizard.png +0 -0
  166. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/kubernetes_deployments/sdc_create_deployment_wizard.png +0 -0
  167. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/kubernetes_deployments/sdc_jdbc_version_wizard.png +0 -0
  168. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/kubernetes_deployments/sdc_review_launch_wizard.png +0 -0
  169. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/kubernetes_deployments/sdc_stage_libs_wizard.png +0 -0
  170. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/kubernetes_deployments/transformer_configure_deployment_wizard.png +0 -0
  171. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/kubernetes_deployments/transformer_create_deployment_wizard.png +0 -0
  172. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/kubernetes_deployments/transformer_jdbc_version_wizard.png +0 -0
  173. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/kubernetes_deployments/transformer_stage_libs_wizard.png +0 -0
  174. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/self_managed_deployments/creation_configure_engine.png +0 -0
  175. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/self_managed_deployments/creation_define_deployment_sdc.png +0 -0
  176. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/self_managed_deployments/creation_define_deployment_transformer.png +0 -0
  177. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/self_managed_deployments/creation_review_and_launch_sdc.png +0 -0
  178. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/self_managed_deployments/creation_review_and_launch_transformer.png +0 -0
  179. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/self_managed_deployments/creation_share_deployment.png +0 -0
  180. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/self_managed_deployments/get_install_script.png +0 -0
  181. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/self_managed_deployments/select_install_type.png +0 -0
  182. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/environments/aws_environments/creation_configure_engine_configure_access_keys.png +0 -0
  183. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/environments/aws_environments/creation_configure_engine_configure_aws_subnets.png +0 -0
  184. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/environments/aws_environments/creation_configure_engine_configure_aws_vpc.png +0 -0
  185. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/environments/aws_environments/creation_configure_engine_configure_cross_account_role.png +0 -0
  186. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/environments/aws_environments/creation_configure_engine_select_aws_region.png +0 -0
  187. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/environments/aws_environments/creation_define_environment.png +0 -0
  188. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/environments/aws_environments/creation_review_and_activate_environment.png +0 -0
  189. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/environments/aws_environments/creation_share_environment.png +0 -0
  190. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/environments/azure_environments/creation_configure_engine_configure_azure_credentials.png +0 -0
  191. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/environments/azure_environments/creation_configure_engine_configure_azure_region.png +0 -0
  192. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/environments/azure_environments/creation_configure_engine_configure_azure_subnet.png +0 -0
  193. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/environments/azure_environments/creation_configure_engine_configure_azure_vnet.png +0 -0
  194. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/environments/azure_environments/creation_configure_engine_defaults_azure_vm_instances.png +0 -0
  195. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/environments/azure_environments/creation_define_environment.png +0 -0
  196. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/environments/azure_environments/creation_review_and_activate_environment.png +0 -0
  197. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/environments/gcp_environments/creation_configure_credentials_service_account_impersonation.png +0 -0
  198. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/environments/gcp_environments/creation_configure_credentials_service_account_key.png +0 -0
  199. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/environments/gcp_environments/creation_configure_gcp_project.png +0 -0
  200. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/environments/gcp_environments/creation_define_environment.png +0 -0
  201. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/environments/gcp_environments/creation_review_and_activate.png +0 -0
  202. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/environments/gcp_environments/creation_select_gcp_vpc.png +0 -0
  203. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/environments/gcp_environments/creation_share_environment.png +0 -0
  204. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/environments/kubernetes_environments/activate_and_install_wizard.png +0 -0
  205. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/environments/kubernetes_environments/configure_environment_wizard.png +0 -0
  206. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/environments/kubernetes_environments/create_environment_wizard.png +0 -0
  207. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/environments/kubernetes_environments/installation_script_wizard.png +0 -0
  208. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/environments/managing_environments/managing_environments.png +0 -0
  209. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/environments/self_managed_environments/creation_define_environment.png +0 -0
  210. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/environments/self_managed_environments/creation_review_and_activate.png +0 -0
  211. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/environments/self_managed_environments/creation_share_environment.png +0 -0
  212. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/welcome/api_credentials.png +0 -0
  213. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/welcome/examples/find_sdc_id.png +0 -0
  214. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/sample_fragment.png +0 -0
  215. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/sample_pipeline_using_fragment.png +0 -0
  216. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/saved_snowflake_credential.png +0 -0
  217. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/sdk_sample_pipeline1.png +0 -0
  218. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/sdk_sample_self_managed_deployment.png +0 -0
  219. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/sdk_sample_self_managed_deployment_details.png +0 -0
  220. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/sdk_sample_self_managed_environment.png +0 -0
  221. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/snowflake_credentials_modal.png +0 -0
  222. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/snowflake_pipeline_defaults.png +0 -0
  223. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/advanced_search.rst +0 -0
  224. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/api.rst +0 -0
  225. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/build/creating_pipelines.rst +0 -0
  226. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/build/error_record_handling.rst +0 -0
  227. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/build/pipeline_fragments.rst +0 -0
  228. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/build.rst +0 -0
  229. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/conf.py +0 -0
  230. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/index.rst +0 -0
  231. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/manage/legacy_kubernetes_integration.rst +0 -0
  232. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/manage/users_and_groups/users_and_groups.rst +0 -0
  233. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/monitor/subscriptions.rst +0 -0
  234. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/monitor/topologies.rst +0 -0
  235. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/monitor.rst +0 -0
  236. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/requirements.txt +0 -0
  237. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/run/draft_runs.rst +0 -0
  238. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/run/job_sequences.rst +0 -0
  239. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/run/job_templates.rst +0 -0
  240. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/run/jobs_instances.rst +0 -0
  241. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/run/scheduled_tasks.rst +0 -0
  242. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/run.rst +0 -0
  243. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/search/saql_saved_search.rst +0 -0
  244. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/search/search_for_object.rst +0 -0
  245. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/set_up.rst +0 -0
  246. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/usage/set_up/connections/connections.rst +0 -0
  247. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/usage/set_up/deployments/azure_vm_deployments.rst +0 -0
  248. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/usage/set_up/deployments/deployments.rst +0 -0
  249. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/usage/set_up/deployments/ec2_deployments.rst +0 -0
  250. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/usage/set_up/deployments/gce_deployments.rst +0 -0
  251. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/usage/set_up/deployments/kubernetes_deployments.rst +0 -0
  252. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/usage/set_up/deployments/self_managed_deployments.rst +0 -0
  253. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/usage/set_up/deployments/stage_libs_sdc.rst +0 -0
  254. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/usage/set_up/deployments/stage_libs_st.rst +0 -0
  255. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/usage/set_up/environments/aws_environments.rst +0 -0
  256. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/usage/set_up/environments/azure_environments.rst +0 -0
  257. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/usage/set_up/environments/environments.rst +0 -0
  258. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/usage/set_up/environments/gcp_environments.rst +0 -0
  259. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/usage/set_up/environments/kubernetes_environments.rst +0 -0
  260. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/usage/set_up/environments/managing_environments.rst +0 -0
  261. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/usage/set_up/environments/self_managed_environments.rst +0 -0
  262. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/welcome/authentication.rst +0 -0
  263. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/welcome/examples/sdk_examples_job_pipeline.rst +0 -0
  264. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/welcome/examples/sdk_examples_self_managed_deployment.rst +0 -0
  265. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/welcome/examples.rst +0 -0
  266. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/welcome/installation.rst +0 -0
  267. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/welcome/known_issues.rst +0 -0
  268. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/welcome/overview.rst +0 -0
  269. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/welcome/release_notes.rst +0 -0
  270. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/welcome.rst +0 -0
  271. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/evergreen/.flake8 +0 -0
  272. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/evergreen/.pre-commit-config.yaml +0 -0
  273. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/evergreen/Dockerfile +0 -0
  274. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/evergreen/Jenkinsfile +0 -0
  275. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/evergreen/pyproject.toml +0 -0
  276. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/pyproject.toml +0 -0
  277. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/requirements.txt +0 -0
  278. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/setup.cfg +0 -0
  279. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/streamsets/sdk/__init__.py +0 -0
  280. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/streamsets/sdk/analytics.py +0 -0
  281. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/streamsets/sdk/aster_api.py +0 -0
  282. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/streamsets/sdk/sdc.py +0 -0
  283. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/streamsets/sdk/sdc_models.py +0 -0
  284. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/streamsets/sdk/st.py +0 -0
  285. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/streamsets/sdk/st_models.py +0 -0
  286. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/streamsets/sdk/utils.py +0 -0
  287. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/streamsets.egg-info/dependency_links.txt +0 -0
  288. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/streamsets.egg-info/not-zip-safe +0 -0
  289. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/streamsets.egg-info/requires.txt +0 -0
  290. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/streamsets.egg-info/top_level.txt +0 -0
  291. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/test_requirements.txt +0 -0
  292. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/__init__.py +0 -0
  293. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/__init__.py +0 -0
  294. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/conftest.py +0 -0
  295. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_acl.py +0 -0
  296. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_api_credentials.py +0 -0
  297. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_connections.py +0 -0
  298. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_dpath.py +0 -0
  299. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_draft_runs.py +0 -0
  300. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_ec2_environments.py +0 -0
  301. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_engineless_design.py +0 -0
  302. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_jobs.py +0 -0
  303. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_kubernetes_environments.py +0 -0
  304. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_metering.py +0 -0
  305. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_organization.py +0 -0
  306. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_pipeline_fragments.py +0 -0
  307. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_pipeline_labels.py +0 -0
  308. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_pipeline_parameters.py +0 -0
  309. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_pipelines.py +0 -0
  310. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_saql.py +0 -0
  311. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_scheduled_tasks.py +0 -0
  312. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_scheduler.py +0 -0
  313. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_self_managed_deployments.py +0 -0
  314. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_snowflake_jobs.py +0 -0
  315. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_snowflake_pipeline_fragments.py +0 -0
  316. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_snowflake_pipeline_labels.py +0 -0
  317. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_snowflake_pipeline_parameters.py +0 -0
  318. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_snowflake_pipelines.py +0 -0
  319. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_stages.py +0 -0
  320. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_topology.py +0 -0
  321. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/mocks/__init__.py +0 -0
  322. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/mocks/mock_api.py +0 -0
  323. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/__init__.py +0 -0
  324. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/resources/__init__.py +0 -0
  325. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/resources/base_model_data.py +0 -0
  326. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/resources/configuration_data.py +0 -0
  327. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/resources/conftest_data.py +0 -0
  328. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/resources/connections_data.py +0 -0
  329. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/resources/engines_data.py +0 -0
  330. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/resources/job_sequence_data.py +0 -0
  331. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/resources/job_sequence_step_data.py +0 -0
  332. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/resources/projects.py +0 -0
  333. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/resources/sch_data.py +0 -0
  334. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/resources/scheduled_tasks_data.py +0 -0
  335. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/resources/self_managed_deployments_data.py +0 -0
  336. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/resources/utils_data.py +0 -0
  337. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_analytics.py +0 -0
  338. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_azure_environment.py +0 -0
  339. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_base_model.py +0 -0
  340. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_connections.py +0 -0
  341. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_deployment_builder.py +0 -0
  342. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_engines.py +0 -0
  343. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_job_sequence.py +0 -0
  344. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_mutable_kwargs.py +0 -0
  345. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_permission.py +0 -0
  346. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_projects.py +0 -0
  347. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_saql_search_builder.py +0 -0
  348. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_scheduled_tasks.py +0 -0
  349. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_seekable_list.py +0 -0
  350. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_self_managed_deployments.py +0 -0
  351. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_stage.py +0 -0
  352. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_utils.py +0 -0
  353. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_version.py +0 -0
  354. {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: streamsets
3
- Version: 6.6.0.dev0
3
+ Version: 6.6.0rc1
4
4
  Summary: A Python SDK for StreamSets
5
5
  Author: StreamSets Inc
6
6
  Classifier: Development Status :: 5 - Production/Stable
@@ -205,6 +205,16 @@ Pipelines
205
205
  .. autoclass:: streamsets.sdk.sch_models.StPipelineBuilder
206
206
  :members:
207
207
 
208
+ Projects
209
+ ^^^^^^^^
210
+
211
+ .. autoclass:: streamsets.sdk.sch_models.Project
212
+ :members:
213
+ .. autoclass:: streamsets.sdk.sch_models.Projects
214
+ :members:
215
+ .. autoclass:: streamsets.sdk.sch_models.ProjectBuilder
216
+ :members:
217
+
208
218
  Protection Methods
209
219
  ^^^^^^^^^^^^^^^^^^
210
220
  .. autoclass:: streamsets.sdk.sch_models.ProtectionMethod
@@ -216,6 +216,27 @@ Setting the configuration value is as simple as directly setting the value in-me
216
216
  .. note::
217
217
  The same workflow can be followed to access/edit configuration values of :py:class:`streamsets.sdk.sch_models.Pipeline` objects
218
218
 
219
+ Some configuration values have a predefined set of options to choose from. You can get a list of these using the :py:meth:`streamsets.sdk.sch.PipelineBuilder.get_stage_configuration_options` method, as shown below:
220
+
221
+ .. code-block:: python
222
+
223
+ pipeline_builder.get_stage_configuration_options(
224
+ config_name="JSON Content", # UI name of the configuration field
225
+ stage_name="Dev Raw Data Source", # Name of the stage
226
+ config_name_type="label", # Type of the config_name parameter (Default: label)
227
+ stage_name_type="label", # Type of the stage_name parameter (Default: label)
228
+ )
229
+ **Output:**
230
+
231
+ .. code-block:: python:
232
+
233
+ [ChooseOption(UI_VALUE='JSON array of objects', SDK_VALUE='ARRAY_OBJECTS'), ChooseOption(UI_VALUE='Multiple JSON objects', SDK_VALUE='MULTIPLE_OBJECTS')]
234
+
235
+ The list will match the values shown in the `JSON Content` UI dropdown.
236
+
237
+ .. image:: ../_static/images/build/value_chooser__JSON_content.png
238
+ |
239
+ |
219
240
  Once you have edited your :py:class:`streamsets.sdk.sch_models.Pipeline` or :py:class:`streamsets.sdk.sch_models.SchSdcStage`, the changes must be published to Control Hub.
220
241
  This can be done by taking the updated :py:class:`streamsets.sdk.sch_models.Pipeline` instance and passing it into the :py:meth:`streamsets.sdk.sch.publish_pipeline` method as seen below:
221
242
 
@@ -0,0 +1,242 @@
1
+ Managing Projects
2
+ =================
3
+ |
4
+
5
+ The SDK allows you to manage projects for your organization. This includes creating or deleting projects, managing users and groups
6
+ that have access to a project.
7
+
8
+ Creating A Project
9
+ ~~~~~~~~~~~~~~~~~~
10
+
11
+ To create a Project on the Platform UI, you should go to Manage > Projects and click on the ``+`` icon.
12
+
13
+ .. image:: ../../_static/images/manage/projects/create_project.png
14
+ |
15
+
16
+ To create a Project via the SDK, you need to instantiate a new instance of :py:class:`streamsets.sdk.sch_models.ProjectBuilder`
17
+ to create a new instance of :py:class:`streamsets.sdk.sch_models.Project`.
18
+
19
+ To instantiate the builder instance use :py:meth:`streamsets.sdk.ControlHub.get_project_builder` method.
20
+ You can then call the :py:meth:`streamsets.sdk.sch_models.ProjectBuilder.build` method to create the new Project by supplying the ``name``
21
+ and the optional ``description`` parameter.
22
+
23
+ After instantiating the object, you can add it to Platform via the :py:meth:`streamsets.sdk.ControlHub.add_project`.
24
+
25
+ .. code-block:: python
26
+
27
+ # Instantiate the ProjectBuilder
28
+ project_builder = sch.get_project_builder()
29
+
30
+ # build the project by passing name, and optionally a description
31
+ project = project_builder.build(name='Secret project', decription='Nothing to see')
32
+
33
+ # add the project to Platform
34
+ sch.add_project(project)
35
+
36
+ Manage User And Group Access For Project
37
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
38
+
39
+ Managing the project roles for a user or group is explained in the :ref:`Project Roles<project_roles>` section.
40
+
41
+ Adding Users and Groups To Project
42
+ ----------------------------------
43
+
44
+ After creating a project in the step above, we are now ready to add users and groups to a project.
45
+
46
+ To do this you can use the following methods, :py:meth:`streamsets.sdk.sch_models.Project.add_user`
47
+ and :py:meth:`streamsets.sdk.sch_models.Project.add_group`.
48
+
49
+ You can pass one or more instances of :py:class:`streamsets.sdk.sch_models.User` or :py:class:`streamsets.sdk.sch_models.Group`
50
+ to the respective methods to add them to a project.
51
+
52
+ .. code-block:: python
53
+
54
+ # get a user to add to a project
55
+ user = sch.users.get(email_address="some.person@company.com")
56
+
57
+ # add the user to a project
58
+ project.add_user(user)
59
+
60
+ # you can add multiple users in a single call
61
+ project.add_user(user1, user2)
62
+
63
+ # get a group to add to a project
64
+ group = sch.groups.get(display_name='many-persons')
65
+
66
+ # add the group to the project
67
+ project.add_group(group)
68
+
69
+ # you can add multiple groups in a single call
70
+ project.add_group(group1, group2)
71
+
72
+ Listing Users and Groups In Project
73
+ -----------------------------------
74
+
75
+ To list the users and groups in a project you can use the :py:attr:`streamsets.sdk.sch_models.Project.users` and
76
+ :py:attr:`streamsets.sdk.sch_models.Project.groups` respectively.
77
+
78
+ .. code-block:: python
79
+
80
+ # list users
81
+ project.users
82
+ # Output: [User(name=...), User(name...)]
83
+
84
+ # list groups
85
+ project.groups
86
+ # Output: [Group(display_name=...), Group(display_name=...)]
87
+
88
+ Both attributes return a :py:class:`streamsets.sdk.utils.SeekableList` and it is possible to filter for users or groups based on their attributes.
89
+
90
+ Removing Users and Groups From Project
91
+ --------------------------------------
92
+
93
+ To remove a user or group from a project you can use the following methods: :py:meth:`streamsets.sdk.sch_models.Project.remove_user`
94
+ and :py:meth:`streamsets.sdk.sch_models.Project.remove_group`.
95
+
96
+ You can pass one or more instances of :py:class:`streamsets.sdk.sch_models.User` or :py:class:`streamsets.sdk.sch_models.Group`
97
+ to the respective methods to remove them from a project.
98
+
99
+ .. code-block:: python
100
+
101
+ # remove a user
102
+ project.remove_user(user)
103
+
104
+ # remove multiple users
105
+ project.remove_user(user1, user2)
106
+
107
+ # remove a group
108
+ project.remove_group(group)
109
+
110
+ # remove multiple groups
111
+ project.remove_group(group1, group2)
112
+
113
+ Listing Projects
114
+ ~~~~~~~~~~~~~~~~
115
+
116
+ You can use the :py:attr:`streamsets.sdk.ControlHub.projects` to list all the projects in your Organization.
117
+ This returns an instance of :py:class:`streamsets.sdk.utils.SeekableList` containing instances of
118
+ :py:class:`streamsets.sdk.sch_models.Project`.
119
+
120
+ .. code-block:: python
121
+
122
+ # list projects
123
+ sch.projects
124
+ # Output: [Project(name=..), Project(name=...)]
125
+
126
+ # get a particular project
127
+ project_x = sch.projects.get(name='project x')
128
+
129
+ Switching Project And Organization Views
130
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
131
+
132
+ In the Platform UI, you start with a organization-level view by default. You can switch to a particular project's view by clicking
133
+ on the option on the top bar of the screen and choosing which project to switch to. You can also click on the organization
134
+ to switch back to an organization-level view.
135
+
136
+ .. image:: ../../_static/images/manage/projects/switch_projects.png
137
+ |
138
+
139
+ In the SDK, we maintain a similar experience to the UI by starting with an organization-level view. We then allow the user to choose a project and switch to that project's view.
140
+
141
+ This is achieved with the :py:attr:`streamsets.sdk.ControlHub.current_project` property. This property defaults to ``None``
142
+ and can then be set to an instance of :py:class:`streamsets.sdk.sch_models.Project` to get that project's view.
143
+ It can then be reset to ``None`` to return to an organization-level view.
144
+
145
+ .. code-block:: python
146
+
147
+ # initialise a ControlHub instance
148
+ sch = ControlHub(...)
149
+
150
+ # the default view is always organization-level
151
+ sch.current_project is None
152
+ # Output: True
153
+
154
+ # get a project that we can switch to
155
+ project = sch.projects.get(name='my project')
156
+
157
+ # switch to the project view
158
+ sch.current_project = project
159
+
160
+ # SDK usage is the same inside a project when this attribute is set
161
+
162
+ # switch to organization-level view
163
+ sch.current_project = None
164
+
165
+ Updating A Project
166
+ ~~~~~~~~~~~~~~~~~~
167
+
168
+ Updating a project refers to updating the ``name`` and ``description`` of a project. We can do this by updating the values of those
169
+ attributes of a :py:class:`streamsets.sdk.sch_models.Project` instance and then calling the :py:meth:`streamsets.sdk.ControlHub.update_project`
170
+ method to update it on Platform.
171
+
172
+ .. code-block:: python
173
+
174
+ # get a project to update
175
+ project = sch.projects.get(name='please update this name')
176
+
177
+ # set a new name or description
178
+ project.name = 'fantastic new name'
179
+ project.description = 'some description'
180
+
181
+ # update it on platform
182
+ sch.update_project(project)
183
+
184
+ Deleting A Project
185
+ ~~~~~~~~~~~~~~~~~~
186
+
187
+ A project can be deleted by passing a :py:class:`streamsets.sdk.sch_models.Project` instance to the
188
+ :py:meth:`streamsets.sdk.ControlHub.delete_project` method.
189
+
190
+ .. code-block:: python
191
+
192
+ # get a project to delete
193
+ project = sch.projects.get(name='delete this')
194
+
195
+ # call delete on platform
196
+ sch.delete_project(project)
197
+
198
+ # you can delete multiple projects at the same time
199
+ projects_to_delete = sch.projects.get_all(description='unused')
200
+ sch.delete_project(*projects_to_delete)
201
+
202
+ Bringing It All Together
203
+ ~~~~~~~~~~~~~~~~~~~~~~~~
204
+
205
+ The complete scripts from this section can be found below.
206
+
207
+ .. code-block:: python
208
+
209
+ # Retrieve all projects
210
+ sch.projects
211
+
212
+ # switching to project's view
213
+ project = sch.projects.get(name='some project')
214
+ sch.current_project = project
215
+
216
+ # switching to an organization-level view
217
+ sch.current_project = None
218
+
219
+ # Creating a project
220
+ project_builder = sch.get_project_builder()
221
+ project = project_builder.build(name='some name', description='optional description')
222
+ sch.add_project(project)
223
+
224
+ # Updating a project's name or description
225
+ project.name = 'new name'
226
+ project.description = 'new description'
227
+ sch.update_project(project)
228
+
229
+ # Deleting a project
230
+ sch.delete_project(project)
231
+
232
+ # Retrieve users/groups in a project
233
+ project.users
234
+ project.groups
235
+
236
+ # Add users/groups to a project
237
+ # project.add_user(user1, user2)
238
+ # project.add_group(group1, group2)
239
+
240
+ # Remove users/groups from a project
241
+ # project.remove_user(user1, user2)
242
+ # project.remove_group(group1, group2)
@@ -77,7 +77,7 @@ method:
77
77
 
78
78
  user_builder = sch.get_user_builder()
79
79
  user = user_builder.build(email_address='johndeer@test.com')
80
- user.roles = ['Connection Editor', 'Connection User', 'Topology Editor', 'Topology User']
80
+ user.organization_roles = ['Connection Editor', 'Connection User', 'Topology Editor', 'Topology User']
81
81
  # Add user to three groups that exist in the organization: all, beta-testers, pipeline operators
82
82
  group_one = sch.groups.get(display_name='all')
83
83
  group_two = sch.groups.get(display_name='beta-testers')
@@ -87,27 +87,27 @@ method:
87
87
 
88
88
  .. note::
89
89
  The :py:meth:`streamsets.sdk.ControlHub.invite_user` method will automatically update the invited user's in-memory
90
- representation, including adding the user's ``id``, ``roles``, and ``groups``.
90
+ representation, including adding the user's ``id``, ``organization_roles``, and ``groups``.
91
91
 
92
92
  Updating An Existing User
93
93
  -------------------------
94
94
  .. _updating_users:
95
95
 
96
96
  Updating an existing user in the UI is done by expanding the user's details, making necessary changes to attributes like
97
- ``roles`` or ``groups``, and saving the changes:
97
+ ``organization_roles`` or ``groups``, and saving the changes:
98
98
 
99
99
  .. image:: ../../_static/images/manage/users_and_groups/update_user_details.png
100
100
 
101
101
  |
102
- It is also possible to update a user's attributes, like ``roles`` or ``groups``, from the SDK. Simply retrieve the user
102
+ It is also possible to update a user's attributes, like ``organization_roles`` or ``groups``, from the SDK. Simply retrieve the user
103
103
  you wish to update, modify the desired attribute(s), and then pass the user object to the :py:meth:`streamsets.sdk.ControlHub.update_user()`
104
104
  method:
105
105
 
106
106
  .. code-block:: python
107
107
 
108
108
  user = sch.users.get(email_address='mitch@streamsets.com')
109
- # Set the user's roles to be the following
110
- user.roles = ['Engine Administrator', 'Job Operator', 'Pipeline Editor', 'Deployment Manager']
109
+ # Set the user's organization roles to be the following
110
+ user.organization_roles = ['Engine Administrator', 'Job Operator', 'Pipeline Editor', 'Deployment Manager']
111
111
  # Add the user to a new group
112
112
  new_group = sch.groups.get(display_name='new-group')
113
113
  user.groups.append(new_group)
@@ -208,7 +208,7 @@ example have been removed.
208
208
  # ---- Adding Users ----
209
209
  user_builder = sch.get_user_builder()
210
210
  user = user_builder.build(email_address='johndeer@test.com')
211
- user.roles = ['Connection Editor', 'Connection User', 'Topology Editor', 'Topology User']
211
+ user.organization_roles = ['Connection Editor', 'Connection User', 'Topology Editor', 'Topology User']
212
212
  # Add user to three groups that exist in the organization: all, beta-testers, pipeline operators
213
213
  group_one = sch.groups.get(display_name='all')
214
214
  group_two = sch.groups.get(display_name='beta-testers')
@@ -218,8 +218,8 @@ example have been removed.
218
218
 
219
219
  # ---- Updating An Existing User ----
220
220
  user = sch.users.get(email_address='mitch@streamsets.com')
221
- # Set the user's roles to be the following
222
- user.roles = ['Engine Administrator', 'Job Operator', 'Pipeline Editor', 'Deployment Manager']
221
+ # Set the user's organization roles to be the following
222
+ user.organization_roles = ['Engine Administrator', 'Job Operator', 'Pipeline Editor', 'Deployment Manager']
223
223
  # Add the user to a new group
224
224
  new_group = sch.groups.get(display_name='new-group')
225
225
  user.groups.append(new_group)
@@ -321,7 +321,7 @@ SDK, use the :py:class:`streamsets.sdk.sch_models.GroupBuilder` class. Retrieve
321
321
  user_two = sch.users.get(email_address='kramer@streamsets.com')
322
322
  group.users = [user_one, user_two]
323
323
  # Add the 'Pipeline User' role in addition to the defaults
324
- group.roles.append('Pipeline User')
324
+ group.organization_roles.append('Pipeline User')
325
325
  response = sch.add_group(group)
326
326
 
327
327
  .. note::
@@ -332,12 +332,12 @@ Updating Groups
332
332
  .. _updating_groups:
333
333
 
334
334
  Updating an existing group in the Platform UI is done by expanding the group's details, making necessary changes
335
- to attributes like ``roles`` or ``users``, and saving the changes:
335
+ to attributes like ``organization_roles`` or ``users``, and saving the changes:
336
336
 
337
337
  .. image:: ../../_static/images/manage/users_and_groups/update_group_details.png
338
338
 
339
339
  |
340
- It is also possible to update a group's attributes, like ``roles`` or ``users``, from the SDK. Simply retrieve the
340
+ It is also possible to update a group's attributes, like ``organization_roles`` or ``users``, from the SDK. Simply retrieve the
341
341
  group you wish to update, modify the desired attribute(s), and then pass the group object to the :py:meth:`streamsets.sdk.ControlHub.update_group()`
342
342
  method:
343
343
 
@@ -346,7 +346,7 @@ method:
346
346
  group = sch.groups.get(display_name='example-group')
347
347
  user_to_add = sch.users.get(email_address='constanza@streamsets.com')
348
348
  group.users.append(user_to_add)
349
- group.roles.remove('Engine Administrator')
349
+ group.organization_roles.remove('Engine Administrator')
350
350
  response = sch.update_group(group)
351
351
 
352
352
  .. note::
@@ -403,14 +403,14 @@ example have been removed.
403
403
  user_two = sch.users.get(email_address='kramer@streamsets.com')
404
404
  group.users = [user_one, user_two]
405
405
  # Add the 'Pipeline User' role in addition to the defaults
406
- group.roles.append('Pipeline User')
406
+ group.organization_roles.append('Pipeline User')
407
407
  response = sch.add_group(group)
408
408
 
409
409
  # ---- Updating Groups ----
410
410
  group = sch.groups.get(display_name='example-group')
411
411
  user_to_add = sch.users.get(email_address='constanza@streamsets.com')
412
412
  group.users.append(user_to_add)
413
- group.roles.remove('Engine Administrator')
413
+ group.organization_roles.remove('Engine Administrator')
414
414
  response = sch.update_group(group)
415
415
 
416
416
  # ---- Deleting Groups ----
@@ -59,7 +59,7 @@ instance the following steps can be taken:
59
59
  .. note::
60
60
  The ``subject_id`` format for an ACL permission varies based on whether it pertains to a user or group. A user's
61
61
  ``subject_id`` will be in the format ``user.id@organization.id``, while a group's ``subject_id`` will be in the format
62
- ``group.id``.
62
+ ``group.group_id``.
63
63
 
64
64
 
65
65
  You can inspect an ACL definition's actions to see the level of access a particular user or group has to the resource:
@@ -135,7 +135,7 @@ method to add it to the object that owns the ACL:
135
135
  # Build the new permission definition for the subject_id (id), subject_type (user or group) and the
136
136
  # actions to allow for this subject.
137
137
  user_permission = acl.permission_builder.build(subject_id=user.id, subject_type='USER', actions=actions)
138
- group_permission = acl.permission_builder.build(subject_id=group.id, subject_type='GROUP', actions=actions)
138
+ group_permission = acl.permission_builder.build(subject_id=group.group_id, subject_type='GROUP', actions=actions)
139
139
 
140
140
  # Add the permission definition to the ACL
141
141
  acl.add_permission(user_permission)
@@ -143,7 +143,7 @@ method to add it to the object that owns the ACL:
143
143
 
144
144
  # Show that the permission definition was correctly added to the ACL
145
145
  pipeline.acl.permissions.get(subject_id=user.id)
146
- pipeline.acl.permissions.get(subject_id=group.id)
146
+ pipeline.acl.permissions.get(subject_id=group.group_id)
147
147
 
148
148
 
149
149
  **Output:**
@@ -153,7 +153,7 @@ method to add it to the object that owns the ACL:
153
153
  # pipeline.acl.permissions.get(subject_id=user.id)
154
154
  <Permission (resource_id=b99b5d55-380d-45a5-b8f1-0c9345fb662f:791759af-e8b5-11eb-8015-e592a7dbb2d0, subject_type=USER, subject_id=aa172288-c804-11ec-ba8b-4930c98e80a9@791759af-e8b5-11eb-8015-e592a7dbb2d0)>
155
155
 
156
- # pipeline.acl.permissions.get(subject_id=group.id)
156
+ # pipeline.acl.permissions.get(subject_id=group.group_id)
157
157
  <Permission (resource_id=b99b5d55-380d-45a5-b8f1-0c9345fb662f:791759af-e8b5-11eb-8015-e592a7dbb2d0, subject_type=GROUP, subject_id=new_group@791759af-e8b5-11eb-8015-e592a7dbb2d0)>
158
158
 
159
159
  Updating Existing ACL Permissions on an Object
@@ -170,7 +170,7 @@ the actions as needed:
170
170
 
171
171
  # Retrieve the permission definition for the subject to be modified
172
172
  group = sch.groups.get(display_name='new-group')
173
- permission = pipeline.acl.permissions.get(subject_id=group.id)
173
+ permission = pipeline.acl.permissions.get(subject_id=group.group_id)
174
174
 
175
175
  # Create a list of new actions that the permission definition will use
176
176
  updated_actions = ['READ']
@@ -179,13 +179,13 @@ the actions as needed:
179
179
  permission.actions = updated_actions
180
180
 
181
181
  # Show that the permission definition was correctly added to the ACL
182
- pipeline.acl.permissions.get(subject_id=group.id).actions
182
+ pipeline.acl.permissions.get(subject_id=group.group_id).actions
183
183
 
184
184
  **Output:**
185
185
 
186
186
  .. code-block:: python
187
187
 
188
- # pipeline.acl.permissions.get(subject_id=group.id).actions
188
+ # pipeline.acl.permissions.get(subject_id=group.group_id).actions
189
189
  ['READ']
190
190
 
191
191
  .. note::
@@ -11,14 +11,14 @@ Selecting a User's Roles at Creation Time
11
11
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
12
12
 
13
13
  As shown in the :ref:`Inviting Users<inviting_users>` section, a User's roles can be selected at creation time in the
14
- SDK by setting the the ``roles`` attribute equal to a list of roles for that user. You can then pass the :py:class:`streamsets.sdk.sch_models.User`
14
+ SDK by setting the the ``organization_roles`` attribute equal to a list of roles for that user. You can then pass the :py:class:`streamsets.sdk.sch_models.User`
15
15
  instance to the :py:meth:`streamsets.sdk.ControlHub.invite_user` method:
16
16
 
17
17
  .. code-block:: python
18
18
 
19
19
  user_builder = sch.get_user_builder()
20
20
  user = user_builder.build(email_address='johndeer@test.com')
21
- user.roles = ['Connection Editor', 'Connection User', 'Topology Editor', 'Topology User']
21
+ user.organization_roles = ['Connection Editor', 'Connection User', 'Topology Editor', 'Topology User']
22
22
  response = sch.invite_user(user)
23
23
 
24
24
  The SDK utilizes the same naming conventions for the roles as the Platform UI. A list of the available roles
@@ -29,14 +29,14 @@ Updating an Existing User's Roles
29
29
 
30
30
  As shown in the :ref:`Updating An Existing User<updating_users>` section, you can also update the roles of an existing
31
31
  user in the SDK. Similar to selecting roles at user creation time, you can update an existing user's roles by
32
- setting the the ``roles`` attribute equal to a list of roles the user should have and passing the updated :py:class:`streamsets.sdk.sch_models.User`
32
+ setting the the ``organization_roles`` attribute equal to a list of roles the user should have and passing the updated :py:class:`streamsets.sdk.sch_models.User`
33
33
  instance to the :py:meth:`streamsets.sdk.ControlHub.update_user()` method:
34
34
 
35
35
  .. code-block:: python
36
36
 
37
37
  user = sch.users.get(email_address='kramer@streamsets.com')
38
38
  # Set the user's roles to be the following
39
- user.roles = ['Engine Administrator', 'Job Operator', 'Pipeline Editor', 'Deployment Manager']
39
+ user.organization_roles = ['Engine Administrator', 'Job Operator', 'Pipeline Editor', 'Deployment Manager']
40
40
  response = sch.update_user(user)
41
41
 
42
42
  Selecting a Group's Roles at Creation Time
@@ -52,8 +52,8 @@ to the :py:meth:`streamsets.sdk.ControlHub.add_group` method:
52
52
  group_builder = sch.get_group_builder()
53
53
  group = group_builder.build(display_name='example-group', group_id='example_group')
54
54
  # Add the 'Pipeline User' role and remove the 'Engine Administrator' role
55
- group.roles.append('Pipeline User')
56
- group.roles.remove('Engine Administrator')
55
+ group.organization_roles.append('Pipeline User')
56
+ group.organization_roles.remove('Engine Administrator')
57
57
  response = sch.add_group(group)
58
58
 
59
59
  Updating an Existing Group's Roles
@@ -68,9 +68,40 @@ instance to the :py:meth:`streamsets.sdk.ControlHub.update_group` method:
68
68
  .. code-block:: python
69
69
 
70
70
  group = sch.groups.get(display_name='example-group')
71
- group.roles.remove('Deployment Manager')
71
+ group.organization_roles.remove('Deployment Manager')
72
72
  response = sch.update_group(group)
73
73
 
74
74
  .. note::
75
75
  Being able to add or remove only one role at a time is a known limitation for the :py:class:`streamsets.sdk.sch_models.Group`
76
76
  class. It will be improved and expanded in a future release.
77
+
78
+ Project Roles
79
+ ~~~~~~~~~~~~~
80
+
81
+ .. _project_roles:
82
+
83
+ If the Projects feature is enabled in your organization, you will be able to grant Users and Groups project-level
84
+ roles. These roles behave the same as organization roles, but grant users a role across all projects they are
85
+ assigned to. You can further control this by assigning them appropriate permissions to a resource.
86
+
87
+ In the UI, you can see a section for project roles.
88
+
89
+ .. image:: ../../_static/images/manage/users_and_groups/project_roles.png
90
+
91
+ This behaves exactly like organization roles.
92
+
93
+ In the SDK, you can use :py:attr:`streamsets.sdk.sch_models.User.project_roles` and :py:attr:`streamsets.sdk.sch_models.Group.project_roles`
94
+ to modify project roles for a user or group. The usage and behavior is the same as that of :py:attr:`streamsets.sdk.sch_models.User.organization_roles`
95
+ and :py:attr:`streamsets.sdk.sch_models.Group.organization_roles`.
96
+
97
+ .. code-block:: python
98
+
99
+ # give a user the "Connection Editor" role.
100
+ user = sch.users.get(email_address="user.in@project")
101
+ user.project_roles.append("Connection Editor")
102
+ sch.update_user(user)
103
+
104
+ # remove the "Deployment Manager" role from a group
105
+ group = sch.groups.get(display_name="not deployment managers")
106
+ group.project_roles.remove("Deployment Manager")
107
+ sch.update_group(group)
@@ -9,4 +9,5 @@ Manage
9
9
  :hidden:
10
10
 
11
11
  manage/legacy_kubernetes_integration
12
+ manage/projects/projects
12
13
  manage/users_and_groups/users_and_groups
@@ -2,4 +2,4 @@
2
2
  # PID 5900-BAF
3
3
  # Copyright StreamSets Inc., an IBM Company 2024
4
4
 
5
- __version__ = "6.6.0-dev"
5
+ __version__ = "6.6.0rc1"
@@ -375,8 +375,8 @@ ST_PIPELINE_BW_COMPATIBILITY = {
375
375
  'values': {True: 'PROVISION_CLUSTER', False: 'EXISTING_CLUSTER'},
376
376
  },
377
377
  },
378
+ # Transformer
378
379
  '6.0.0': {
379
- # Transformer
380
380
  'transformerEmrConnection.masterInstanceType': {'name': 'transformerEmrConnection.primaryInstanceType'},
381
381
  'transformerEmrConnection.masterInstanceTypeCustom': {
382
382
  'name': 'transformerEmrConnection.primaryInstanceTypeCustom'
@@ -395,6 +395,9 @@ ST_PIPELINE_BW_COMPATIBILITY = {
395
395
  'sdcEmrConnection.slaveInstanceTypeCustom': {'name': 'sdcEmrConnection.secondaryInstanceTypeCustom'},
396
396
  'sdcEmrConnection.slaveSecurityGroup': {'name': 'sdcEmrConnection.secondarySecurityGroup'},
397
397
  },
398
+ '6.1.0': {
399
+ 'googleCloudConfig.masterType': {'name': 'googleCloudConfig.primaryType'},
400
+ },
398
401
  }
399
402
 
400
403
 
@@ -113,6 +113,15 @@ class MultipleIssuesError(Exception):
113
113
  return str('{}: {}'.format(self.message, self.errors))
114
114
 
115
115
 
116
+ class ProjectAccessError(Exception):
117
+ """User does not have access to the current Project."""
118
+
119
+ def __init__(self, code, message):
120
+ super().__init__(f"{code}: {message}")
121
+ self.code = code
122
+ self.message = message
123
+
124
+
116
125
  class UnprocessableEntityError(HTTPError):
117
126
  """Unprocessable Entity Error (HTTP 422)."""
118
127
 
@@ -137,11 +137,9 @@ class Configuration:
137
137
  for config_item_index, config_item in enumerate(config_list):
138
138
  if not isinstance(config_item, dict):
139
139
  raise TypeError('A Configuration must be a list of dictionaries')
140
- if self.property_key not in config_item or self.property_value not in config_item:
140
+ if self.property_key not in config_item:
141
141
  raise TypeError(
142
- 'Configuration {} does not contain property_key:{} or property_value:{}'.format(
143
- config_item, self.property_key, self.property_value
144
- )
142
+ 'Configuration {} does not contain property_key:{}'.format(config_item, self.property_key)
145
143
  )
146
144
  configuration_index_map[config_item[self.property_key]] = (config_item_index, config_list_index)
147
145
 
@@ -270,7 +268,7 @@ class Configuration:
270
268
  elif config.get('type') == 'integer':
271
269
  return int(config[self.property_value])
272
270
  else:
273
- return config[self.property_value]
271
+ return config.get(self.property_value, None)
274
272
 
275
273
 
276
274
  class BaseModel: