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.
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/PKG-INFO +1 -1
- streamsets-6.6.0rc1/docs/_static/images/build/value_chooser__JSON_content.png +0 -0
- streamsets-6.6.0rc1/docs/_static/images/manage/projects/create_project.png +0 -0
- streamsets-6.6.0rc1/docs/_static/images/manage/projects/switch_projects.png +0 -0
- streamsets-6.6.0rc1/docs/_static/images/manage/users_and_groups/project_roles.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/api/sch_api.rst +10 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/build/editing_pipelines.rst +21 -0
- streamsets-6.6.0rc1/docs/manage/projects/projects.rst +242 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/manage/users_and_groups/managing_users_and_groups.rst +15 -15
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/manage/users_and_groups/permissions.rst +7 -7
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/manage/users_and_groups/roles.rst +38 -7
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/manage.rst +1 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/streamsets/sdk/__version__.py +1 -1
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/streamsets/sdk/constants.py +4 -1
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/streamsets/sdk/exceptions.py +9 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/streamsets/sdk/models.py +3 -5
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/streamsets/sdk/sch.py +66 -125
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/streamsets/sdk/sch_api.py +82 -12
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/streamsets/sdk/sch_models.py +405 -16
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/streamsets/sdk/sdc_api.py +3 -1
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/streamsets/sdk/st_api.py +3 -1
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/streamsets.egg-info/PKG-INFO +1 -1
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/streamsets.egg-info/SOURCES.txt +7 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_analytics.py +8 -3
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_job_sequences.py +50 -27
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_projects.py +65 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_saql_search.py +7 -3
- streamsets-6.6.0rc1/tests/integration/test_sch.py +196 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_users_and_groups.py +12 -12
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/conftest.py +14 -0
- streamsets-6.6.0rc1/tests/unit/resources/pipeline_builder_data.py +117 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_collection_model.py +20 -1
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_configuration.py +8 -5
- streamsets-6.6.0rc1/tests/unit/test_engine_api.py +62 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_job_sequence_builder.py +17 -12
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_pipeline.py +20 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_pipeline_builder.py +70 -0
- streamsets-6.6.0rc1/tests/unit/test_roles.py +39 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_sch.py +1 -33
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_step.py +0 -4
- streamsets-6.6.0.dev0/tests/integration/test_sch.py +0 -65
- streamsets-6.6.0.dev0/tests/unit/resources/pipeline_builder_data.py +0 -61
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/.gitignore +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/Dockerfile +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/HISTORY.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/MANIFEST.in +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/Makefile +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/README.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/build_requirements.txt +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/TopologyMissingNodes.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/TopologyMultipleJobsSingleSystem.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/TopologyRestoredNodes.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/add_snowflake_credentials.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/click_snowflake_settings.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/css/docs_theme.css +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/dev_data_generator_to_trash.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/dev_data_generator_to_two_trashes.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/dev_data_generator_with_events.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/dev_raw_data_source_help.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/dev_raw_data_to_trash.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/favicon.ico +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/file_tail_to_two_trashes.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/full-ibm-streamsets-logo.svg +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/build/add_frag_to_pipeline.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/build/connect_event_lane.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/build/delete_connection.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/build/edit_configuration.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/build/error_records_configuration.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/build/error_records_main.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/build/existing_pipelines.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/build/fragment_canvas.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/build/fragment_ui.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/build/multi_output_stages_complete.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/build/multi_output_stages_incomplete.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/build/pipeline_canvas.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/build/pipeline_check_in.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/build/pipeline_ui.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/build/pipelines_using_fragment.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/build/produce_events.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/build/remove_stage.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/build/selector_four_conditions.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/build/snowflake_required_parameters.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/build/stages_unconnected.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/build/stages_with_different_types.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/build/update_pipeline_with_frag.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/manage/permissions/add_new_permissions.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/manage/permissions/change_owner.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/manage/permissions/delete_permissions.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/manage/permissions/share_button.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/manage/permissions/share_settings.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/manage/users_and_groups/activate_user.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/manage/users_and_groups/add_new_group.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/manage/users_and_groups/add_new_user.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/manage/users_and_groups/deactivate_user.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/manage/users_and_groups/delete_group.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/manage/users_and_groups/delete_user.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/manage/users_and_groups/groups_list.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/manage/users_and_groups/invite_user_details.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/manage/users_and_groups/new_group_details.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/manage/users_and_groups/update_group_details.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/manage/users_and_groups/update_user_details.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/manage/users_and_groups/users_list.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/run/activate_sequence.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/run/add_job_modal.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/run/add_jobs_to_job_sequence.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/run/create_job_sequence.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/run/delete_draftrun_ui.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/run/delete_job_sequence.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/run/disable_sequence.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/run/draftrun_ui.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/run/get_job_sequence_steps.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/run/get_job_sequences.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/run/logs_ui.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/run/move_step.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/run/snapshots_ui.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/run/start_draftrun_ui.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/run/stop_draftrun_ui.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/run/three_dots_sequence.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/run/view_history.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/search/SAQL_Mark_Favorite.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/search/SAQL_Query_Builder.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/search/SAQL_Remove.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/search/SAQL_Save_Search.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/search/SAQL_Saved_Searches.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/search/SAQL_Search_Name_Wizard.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/search/SAQL_Update.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/search/Search_Advanced.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/connections/configuring_connection.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/connections/create_connection.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/connections/deleting_connection.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/connections/editing_connection.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/connections/get_connection.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/connections/pipelines_using_connection.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/connections/using_connection.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/connections/verify_connection.png +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/common/configure_install_type_docker.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/common/configure_install_type_tarball.png +0 -0
- {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
- {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
- {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
- {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
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/common/creation_share_deployment.png +0 -0
- {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
- {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
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/ec2_deployments/creation_configure_engine.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/ec2_deployments/creation_define_deployment.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/ec2_deployments/creation_review_and_launch.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/ec2_deployments/creation_share_deployment.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/ec2_deployments/creation_transformer_define_deployment.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/gce_deployments/creation_configure_engine.png +0 -0
- {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
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/gce_deployments/creation_configure_gce_region.png +0 -0
- {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
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/gce_deployments/creation_configure_gce_zone.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/gce_deployments/creation_define_deployment_sdc.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/gce_deployments/creation_define_deployment_transformer.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/gce_deployments/creation_review_and_launch.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/kubernetes_deployments/sdc_configure_deployment_wizard.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/kubernetes_deployments/sdc_configure_kubernetes_wizard.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/kubernetes_deployments/sdc_create_deployment_wizard.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/kubernetes_deployments/sdc_jdbc_version_wizard.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/kubernetes_deployments/sdc_review_launch_wizard.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/kubernetes_deployments/sdc_stage_libs_wizard.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/kubernetes_deployments/transformer_configure_deployment_wizard.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/kubernetes_deployments/transformer_create_deployment_wizard.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/kubernetes_deployments/transformer_jdbc_version_wizard.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/kubernetes_deployments/transformer_stage_libs_wizard.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/self_managed_deployments/creation_configure_engine.png +0 -0
- {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
- {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
- {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
- {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
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/self_managed_deployments/creation_share_deployment.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/self_managed_deployments/get_install_script.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/deployments/self_managed_deployments/select_install_type.png +0 -0
- {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
- {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
- {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
- {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
- {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
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/environments/aws_environments/creation_define_environment.png +0 -0
- {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
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/environments/aws_environments/creation_share_environment.png +0 -0
- {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
- {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
- {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
- {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
- {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
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/environments/azure_environments/creation_define_environment.png +0 -0
- {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
- {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
- {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
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/environments/gcp_environments/creation_configure_gcp_project.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/environments/gcp_environments/creation_define_environment.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/environments/gcp_environments/creation_review_and_activate.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/environments/gcp_environments/creation_select_gcp_vpc.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/environments/gcp_environments/creation_share_environment.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/environments/kubernetes_environments/activate_and_install_wizard.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/environments/kubernetes_environments/configure_environment_wizard.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/environments/kubernetes_environments/create_environment_wizard.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/environments/kubernetes_environments/installation_script_wizard.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/environments/managing_environments/managing_environments.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/environments/self_managed_environments/creation_define_environment.png +0 -0
- {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
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/set_up/environments/self_managed_environments/creation_share_environment.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/welcome/api_credentials.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/images/welcome/examples/find_sdc_id.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/sample_fragment.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/sample_pipeline_using_fragment.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/saved_snowflake_credential.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/sdk_sample_pipeline1.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/sdk_sample_self_managed_deployment.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/sdk_sample_self_managed_deployment_details.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/sdk_sample_self_managed_environment.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/snowflake_credentials_modal.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/_static/snowflake_pipeline_defaults.png +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/advanced_search.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/api.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/build/creating_pipelines.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/build/error_record_handling.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/build/pipeline_fragments.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/build.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/conf.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/index.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/manage/legacy_kubernetes_integration.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/manage/users_and_groups/users_and_groups.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/monitor/subscriptions.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/monitor/topologies.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/monitor.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/requirements.txt +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/run/draft_runs.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/run/job_sequences.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/run/job_templates.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/run/jobs_instances.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/run/scheduled_tasks.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/run.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/search/saql_saved_search.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/search/search_for_object.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/set_up.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/usage/set_up/connections/connections.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/usage/set_up/deployments/azure_vm_deployments.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/usage/set_up/deployments/deployments.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/usage/set_up/deployments/ec2_deployments.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/usage/set_up/deployments/gce_deployments.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/usage/set_up/deployments/kubernetes_deployments.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/usage/set_up/deployments/self_managed_deployments.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/usage/set_up/deployments/stage_libs_sdc.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/usage/set_up/deployments/stage_libs_st.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/usage/set_up/environments/aws_environments.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/usage/set_up/environments/azure_environments.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/usage/set_up/environments/environments.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/usage/set_up/environments/gcp_environments.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/usage/set_up/environments/kubernetes_environments.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/usage/set_up/environments/managing_environments.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/usage/set_up/environments/self_managed_environments.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/welcome/authentication.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/welcome/examples/sdk_examples_job_pipeline.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/welcome/examples/sdk_examples_self_managed_deployment.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/welcome/examples.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/welcome/installation.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/welcome/known_issues.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/welcome/overview.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/welcome/release_notes.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/docs/welcome.rst +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/evergreen/.flake8 +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/evergreen/.pre-commit-config.yaml +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/evergreen/Dockerfile +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/evergreen/Jenkinsfile +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/evergreen/pyproject.toml +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/pyproject.toml +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/requirements.txt +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/setup.cfg +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/streamsets/sdk/__init__.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/streamsets/sdk/analytics.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/streamsets/sdk/aster_api.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/streamsets/sdk/sdc.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/streamsets/sdk/sdc_models.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/streamsets/sdk/st.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/streamsets/sdk/st_models.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/streamsets/sdk/utils.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/streamsets.egg-info/dependency_links.txt +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/streamsets.egg-info/not-zip-safe +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/streamsets.egg-info/requires.txt +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/streamsets.egg-info/top_level.txt +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/test_requirements.txt +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/__init__.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/__init__.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/conftest.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_acl.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_api_credentials.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_connections.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_dpath.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_draft_runs.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_ec2_environments.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_engineless_design.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_jobs.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_kubernetes_environments.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_metering.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_organization.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_pipeline_fragments.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_pipeline_labels.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_pipeline_parameters.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_pipelines.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_saql.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_scheduled_tasks.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_scheduler.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_self_managed_deployments.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_snowflake_jobs.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_snowflake_pipeline_fragments.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_snowflake_pipeline_labels.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_snowflake_pipeline_parameters.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_snowflake_pipelines.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_stages.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/integration/test_topology.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/mocks/__init__.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/mocks/mock_api.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/__init__.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/resources/__init__.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/resources/base_model_data.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/resources/configuration_data.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/resources/conftest_data.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/resources/connections_data.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/resources/engines_data.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/resources/job_sequence_data.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/resources/job_sequence_step_data.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/resources/projects.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/resources/sch_data.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/resources/scheduled_tasks_data.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/resources/self_managed_deployments_data.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/resources/utils_data.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_analytics.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_azure_environment.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_base_model.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_connections.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_deployment_builder.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_engines.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_job_sequence.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_mutable_kwargs.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_permission.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_projects.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_saql_search_builder.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_scheduled_tasks.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_seekable_list.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_self_managed_deployments.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_stage.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_utils.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tests/unit/test_version.py +0 -0
- {streamsets-6.6.0.dev0 → streamsets-6.6.0rc1}/tox.ini +0 -0
|
@@ -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.
|
|
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``, ``
|
|
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
|
-
``
|
|
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 ``
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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 ``
|
|
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 ``
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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 ``
|
|
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.
|
|
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 ``
|
|
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.
|
|
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.
|
|
56
|
-
group.
|
|
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.
|
|
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)
|
|
@@ -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
|
|
140
|
+
if self.property_key not in config_item:
|
|
141
141
|
raise TypeError(
|
|
142
|
-
'Configuration {} does not contain property_key:{}
|
|
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
|
|
271
|
+
return config.get(self.property_value, None)
|
|
274
272
|
|
|
275
273
|
|
|
276
274
|
class BaseModel:
|