validio-sdk 0.25.2__tar.gz → 0.26.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (376) hide show
  1. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/PKG-INFO +1 -1
  2. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/pyproject.toml +6 -5
  3. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/__init__.py +4 -7
  4. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/_api/api.py +195 -53
  5. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/client/__init__.py +1 -1
  6. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/code/apply.py +8 -1
  7. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/code/plan.py +36 -6
  8. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/config.py +4 -4
  9. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/dbt.py +6 -3
  10. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/client.py +0 -1
  11. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/resource/_diff.py +71 -28
  12. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/resource/_diffable.py +18 -2
  13. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/resource/_resource.py +88 -10
  14. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/resource/_serde.py +3 -1
  15. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/resource/_server_resources.py +145 -58
  16. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/resource/_update_namespace.py +1 -1
  17. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/resource/channels.py +21 -47
  18. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/resource/credentials.py +90 -24
  19. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/resource/filters.py +8 -1
  20. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/resource/notification_rules.py +41 -7
  21. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/resource/segmentations.py +3 -1
  22. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/resource/sources.py +28 -151
  23. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/resource/tags.py +2 -1
  24. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/resource/tests/test__diff.py +1 -19
  25. validio_sdk-0.26.0/validio_sdk/resource/tests/test__plan.py +378 -0
  26. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/resource/tests/test__resource.py +28 -29
  27. validio_sdk-0.26.0/validio_sdk/resource/tests/test__sql_validation.py +135 -0
  28. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/resource/tests/test_import.py +1 -1
  29. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/resource/thresholds.py +4 -0
  30. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/resource/validators.py +121 -68
  31. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/resource/windows.py +28 -1
  32. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/validio_client.py +3 -3
  33. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/LICENSE +0 -0
  34. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/README_PUBLIC.md +0 -0
  35. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/_api/__init__.py +0 -0
  36. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/client/client.py +0 -0
  37. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/code/__init__.py +0 -0
  38. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/code/_import.py +0 -0
  39. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/code/_progress.py +0 -0
  40. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/code/scaffold.py +0 -0
  41. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/code/settings.py +0 -0
  42. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/exception.py +0 -0
  43. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/__init__.py +0 -0
  44. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/add_catalog_asset_tags.py +0 -0
  45. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/add_team_members.py +0 -0
  46. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/apply_validator_recommendation.py +0 -0
  47. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/async_base_client.py +0 -0
  48. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/aws_athena_credential_secret_changed.py +0 -0
  49. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/aws_credential_secret_changed.py +0 -0
  50. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/aws_redshift_credential_secret_changed.py +0 -0
  51. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/azure_synapse_entra_id_credential_secret_changed.py +0 -0
  52. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/azure_synapse_sql_credential_secret_changed.py +0 -0
  53. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/backfill_source.py +0 -0
  54. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/base_model.py +0 -0
  55. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/click_house_credential_secret_changed.py +0 -0
  56. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_aws_athena_credential.py +0 -0
  57. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_aws_athena_source.py +0 -0
  58. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_aws_credential.py +0 -0
  59. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_aws_kinesis_source.py +0 -0
  60. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_aws_redshift_credential.py +0 -0
  61. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_aws_redshift_source.py +0 -0
  62. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_aws_s3_source.py +0 -0
  63. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_azure_synapse_entra_id_credential.py +0 -0
  64. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_azure_synapse_source.py +0 -0
  65. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_azure_synapse_sql_credential.py +0 -0
  66. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_boolean_filter.py +0 -0
  67. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_categorical_distribution_validator_with_difference_threshold.py +0 -0
  68. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_categorical_distribution_validator_with_dynamic_threshold.py +0 -0
  69. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_categorical_distribution_validator_with_fixed_threshold.py +0 -0
  70. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_click_house_credential.py +0 -0
  71. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_click_house_source.py +0 -0
  72. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_databricks_credential.py +0 -0
  73. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_databricks_source.py +0 -0
  74. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_dbt_cloud_credential.py +0 -0
  75. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_dbt_core_credential.py +0 -0
  76. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_dbt_model_run_source.py +0 -0
  77. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_dbt_test_result_source.py +0 -0
  78. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_demo_credential.py +0 -0
  79. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_demo_source.py +0 -0
  80. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_enum_filter.py +0 -0
  81. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_file_window.py +0 -0
  82. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_fixed_batch_window.py +0 -0
  83. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_freshness_validator_with_difference_threshold.py +0 -0
  84. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_freshness_validator_with_dynamic_threshold.py +0 -0
  85. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_freshness_validator_with_fixed_threshold.py +0 -0
  86. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_gcp_big_query_source.py +0 -0
  87. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_gcp_credential.py +0 -0
  88. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_gcp_pub_sub_lite_source.py +0 -0
  89. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_gcp_pub_sub_source.py +0 -0
  90. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_gcp_storage_source.py +0 -0
  91. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_global_window.py +0 -0
  92. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_kafka_sasl_ssl_plain_credential.py +0 -0
  93. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_kafka_source.py +0 -0
  94. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_kafka_ssl_credential.py +0 -0
  95. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_lineage_edge.py +0 -0
  96. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_looker_credential.py +0 -0
  97. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_ms_power_bi_credential.py +0 -0
  98. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_ms_teams_channel.py +0 -0
  99. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_namespace.py +0 -0
  100. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_notification_rule.py +0 -0
  101. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_null_filter.py +0 -0
  102. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_numeric_anomaly_validator_with_difference_threshold.py +0 -0
  103. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_numeric_anomaly_validator_with_dynamic_threshold.py +0 -0
  104. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_numeric_anomaly_validator_with_fixed_threshold.py +0 -0
  105. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_numeric_distribution_validator_with_difference_threshold.py +0 -0
  106. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_numeric_distribution_validator_with_dynamic_threshold.py +0 -0
  107. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_numeric_distribution_validator_with_fixed_threshold.py +0 -0
  108. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_numeric_validator_with_difference_threshold.py +0 -0
  109. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_numeric_validator_with_dynamic_threshold.py +0 -0
  110. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_numeric_validator_with_fixed_threshold.py +0 -0
  111. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_owner_notification_rule_condition.py +0 -0
  112. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_postgre_sql_credential.py +0 -0
  113. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_postgre_sql_source.py +0 -0
  114. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_relative_time_validator_with_difference_threshold.py +0 -0
  115. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_relative_time_validator_with_dynamic_threshold.py +0 -0
  116. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_relative_time_validator_with_fixed_threshold.py +0 -0
  117. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_relative_volume_validator_with_difference_threshold.py +0 -0
  118. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_relative_volume_validator_with_dynamic_threshold.py +0 -0
  119. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_relative_volume_validator_with_fixed_threshold.py +0 -0
  120. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_saml_identity_provider.py +0 -0
  121. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_segment_notification_rule_condition.py +0 -0
  122. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_segmentation.py +0 -0
  123. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_severity_notification_rule_condition.py +0 -0
  124. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_slack_channel.py +0 -0
  125. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_snowflake_credential.py +0 -0
  126. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_snowflake_source.py +0 -0
  127. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_source_notification_rule_condition.py +0 -0
  128. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_sql_filter.py +0 -0
  129. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_sql_validator_with_difference_threshold.py +0 -0
  130. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_sql_validator_with_dynamic_threshold.py +0 -0
  131. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_sql_validator_with_fixed_threshold.py +0 -0
  132. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_string_filter.py +0 -0
  133. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_tableau_connected_app_credential.py +0 -0
  134. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_tableau_personal_access_token_credential.py +0 -0
  135. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_tag.py +0 -0
  136. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_tag_notification_rule_condition.py +0 -0
  137. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_team.py +0 -0
  138. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_threshold_filter.py +0 -0
  139. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_tumbling_window.py +0 -0
  140. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_type_notification_rule_condition.py +0 -0
  141. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_user.py +0 -0
  142. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_volume_validator_with_difference_threshold.py +0 -0
  143. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_volume_validator_with_dynamic_threshold.py +0 -0
  144. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_volume_validator_with_fixed_threshold.py +0 -0
  145. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/create_webhook_channel.py +0 -0
  146. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/databricks_credential_secret_changed.py +0 -0
  147. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/dbt_artifact_multipart_upload_append_part.py +0 -0
  148. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/dbt_artifact_multipart_upload_complete.py +0 -0
  149. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/dbt_artifact_multipart_upload_create.py +0 -0
  150. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/dbt_artifact_upload.py +0 -0
  151. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/dbt_cloud_credential_secret_changed.py +0 -0
  152. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/delete_catalog_asset_tags.py +0 -0
  153. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/delete_channel.py +0 -0
  154. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/delete_credential.py +0 -0
  155. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/delete_credentials.py +0 -0
  156. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/delete_filter.py +0 -0
  157. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/delete_filters.py +0 -0
  158. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/delete_identity.py +0 -0
  159. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/delete_identity_provider.py +0 -0
  160. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/delete_lineage_edges.py +0 -0
  161. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/delete_namespaces.py +0 -0
  162. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/delete_notification_rule.py +0 -0
  163. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/delete_segmentation.py +0 -0
  164. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/delete_source.py +0 -0
  165. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/delete_sources.py +0 -0
  166. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/delete_tags.py +0 -0
  167. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/delete_team.py +0 -0
  168. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/delete_user.py +0 -0
  169. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/delete_validators.py +0 -0
  170. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/delete_window.py +0 -0
  171. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/delete_windows.py +0 -0
  172. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/dismiss_validator_recommendation.py +0 -0
  173. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/enums.py +0 -0
  174. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/exceptions.py +0 -0
  175. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/fragments.py +0 -0
  176. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/gcp_credential_secret_changed.py +0 -0
  177. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/get_channel_by_resource_name.py +0 -0
  178. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/get_credential_by_resource_name.py +0 -0
  179. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/get_databricks_warehouse_info.py +0 -0
  180. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/get_filter.py +0 -0
  181. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/get_group_incidents.py +0 -0
  182. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/get_identity_provider_by_resource_name.py +0 -0
  183. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/get_incident_group.py +0 -0
  184. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/get_incident_groups.py +0 -0
  185. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/get_incident_past_groups.py +0 -0
  186. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/get_incident_related_groups.py +0 -0
  187. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/get_lineage_edge.py +0 -0
  188. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/get_lineage_graph.py +0 -0
  189. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/get_namespace.py +0 -0
  190. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/get_notification_rule.py +0 -0
  191. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/get_notification_rule_by_resource_name.py +0 -0
  192. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/get_segmentation.py +0 -0
  193. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/get_segmentation_by_resource_name.py +0 -0
  194. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/get_segments_by_segmentation.py +0 -0
  195. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/get_source.py +0 -0
  196. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/get_source_by_resource_name.py +0 -0
  197. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/get_source_by_resource_name_deprecated.py +0 -0
  198. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/get_source_incident_groups.py +0 -0
  199. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/get_source_manual_poll_progress.py +0 -0
  200. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/get_source_recommended_validators.py +0 -0
  201. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/get_tag.py +0 -0
  202. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/get_team.py +0 -0
  203. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/get_teams.py +0 -0
  204. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/get_user_by_resource_name.py +0 -0
  205. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/get_validator.py +0 -0
  206. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/get_validator_by_resource_name.py +0 -0
  207. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/get_validator_incidents.py +0 -0
  208. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/get_validator_metric_debug_info.py +0 -0
  209. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/get_validator_metric_debug_records.py +0 -0
  210. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/get_validator_segment_metrics.py +0 -0
  211. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/get_window.py +0 -0
  212. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/get_window_by_resource_name.py +0 -0
  213. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/infer_aws_athena_schema.py +0 -0
  214. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/infer_aws_kinesis_schema.py +0 -0
  215. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/infer_aws_redshift_schema.py +0 -0
  216. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/infer_aws_s3_schema.py +0 -0
  217. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/infer_azure_synapse_schema.py +0 -0
  218. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/infer_click_house_schema.py +0 -0
  219. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/infer_databricks_schema.py +0 -0
  220. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/infer_dbt_model_run_schema.py +0 -0
  221. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/infer_dbt_test_result_schema.py +0 -0
  222. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/infer_demo_schema.py +0 -0
  223. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/infer_gcp_big_query_schema.py +0 -0
  224. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/infer_gcp_pub_sub_lite_schema.py +0 -0
  225. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/infer_gcp_pub_sub_schema.py +0 -0
  226. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/infer_gcp_storage_schema.py +0 -0
  227. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/infer_kafka_schema.py +0 -0
  228. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/infer_postgre_sql_schema.py +0 -0
  229. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/infer_sample_schema.py +0 -0
  230. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/infer_snowflake_schema.py +0 -0
  231. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/input_types.py +0 -0
  232. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/kafka_sasl_ssl_plain_credential_secret_changed.py +0 -0
  233. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/kafka_ssl_credential_secret_changed.py +0 -0
  234. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/list_channels.py +0 -0
  235. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/list_credentials.py +0 -0
  236. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/list_filters.py +0 -0
  237. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/list_identity_providers.py +0 -0
  238. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/list_namespaces.py +0 -0
  239. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/list_notification_rules.py +0 -0
  240. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/list_resource_namespaces.py +0 -0
  241. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/list_segmentations.py +0 -0
  242. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/list_sources.py +0 -0
  243. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/list_tags.py +0 -0
  244. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/list_users.py +0 -0
  245. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/list_validators.py +0 -0
  246. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/list_windows.py +0 -0
  247. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/looker_credential_secret_changed.py +0 -0
  248. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/ms_power_bi_credential_secret_changed.py +0 -0
  249. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/ms_teams_channel_secret_changed.py +0 -0
  250. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/mute_incident_group.py +0 -0
  251. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/mute_incidents.py +0 -0
  252. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/mute_source.py +0 -0
  253. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/mute_validator.py +0 -0
  254. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/poll_source.py +0 -0
  255. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/poll_source_manually.py +0 -0
  256. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/postgre_sql_credential_secret_changed.py +0 -0
  257. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/remove_team_members.py +0 -0
  258. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/reset_source.py +0 -0
  259. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/revoke_namespace_roles.py +0 -0
  260. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/segments.py +0 -0
  261. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/segments_by_resource_name.py +0 -0
  262. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/slack_channel_secret_changed.py +0 -0
  263. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/snowflake_credential_secret_changed.py +0 -0
  264. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/sql_filter_verification.py +0 -0
  265. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/sql_validator_query_verification.py +0 -0
  266. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/start_databricks_warehouse.py +0 -0
  267. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/start_source.py +0 -0
  268. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/stop_source.py +0 -0
  269. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/tableau_connected_app_credential_secret_changed.py +0 -0
  270. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/tableau_personal_access_token_credential_secret_changed.py +0 -0
  271. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/translate_incident_v_1_to_group_id.py +0 -0
  272. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/unmute_incident_group.py +0 -0
  273. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/unmute_incidents.py +0 -0
  274. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/unmute_source.py +0 -0
  275. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/unmute_validator.py +0 -0
  276. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_aws_athena_credential.py +0 -0
  277. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_aws_athena_source.py +0 -0
  278. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_aws_credential.py +0 -0
  279. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_aws_kinesis_source.py +0 -0
  280. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_aws_redshift_credential.py +0 -0
  281. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_aws_redshift_source.py +0 -0
  282. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_aws_s3_source.py +0 -0
  283. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_azure_synapse_entra_id_credential.py +0 -0
  284. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_azure_synapse_source.py +0 -0
  285. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_azure_synapse_sql_credential.py +0 -0
  286. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_boolean_filter.py +0 -0
  287. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_categorical_distribution_validator.py +0 -0
  288. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_channel_namespace.py +0 -0
  289. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_click_house_credential.py +0 -0
  290. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_click_house_source.py +0 -0
  291. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_credential_namespace.py +0 -0
  292. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_databricks_credential.py +0 -0
  293. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_databricks_source.py +0 -0
  294. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_dbt_cloud_credential.py +0 -0
  295. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_dbt_core_credential.py +0 -0
  296. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_dbt_model_run_source.py +0 -0
  297. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_dbt_test_result_source.py +0 -0
  298. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_demo_credential.py +0 -0
  299. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_demo_source.py +0 -0
  300. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_enum_filter.py +0 -0
  301. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_file_window.py +0 -0
  302. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_fixed_batch_window.py +0 -0
  303. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_freshness_validator.py +0 -0
  304. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_gcp_big_query_source.py +0 -0
  305. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_gcp_credential.py +0 -0
  306. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_gcp_pub_sub_lite_source.py +0 -0
  307. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_gcp_pub_sub_source.py +0 -0
  308. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_gcp_storage_source.py +0 -0
  309. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_global_window.py +0 -0
  310. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_incident_group_owner.py +0 -0
  311. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_incident_group_status.py +0 -0
  312. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_incident_status.py +0 -0
  313. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_kafka_sasl_ssl_plain_credential.py +0 -0
  314. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_kafka_source.py +0 -0
  315. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_kafka_ssl_credential.py +0 -0
  316. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_local_identity_provider.py +0 -0
  317. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_looker_credential.py +0 -0
  318. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_ms_power_bi_credential.py +0 -0
  319. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_ms_teams_channel.py +0 -0
  320. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_namespace.py +0 -0
  321. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_namespace_roles.py +0 -0
  322. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_notification_rule.py +0 -0
  323. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_null_filter.py +0 -0
  324. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_numeric_anomaly_validator.py +0 -0
  325. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_numeric_distribution_validator.py +0 -0
  326. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_numeric_validator.py +0 -0
  327. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_owner_notification_rule_condition.py +0 -0
  328. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_postgre_sql_credential.py +0 -0
  329. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_postgre_sql_source.py +0 -0
  330. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_relative_time_validator.py +0 -0
  331. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_relative_volume_validator.py +0 -0
  332. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_saml_identity_provider.py +0 -0
  333. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_segment_notification_rule_condition.py +0 -0
  334. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_segmentation.py +0 -0
  335. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_severity_notification_rule_condition.py +0 -0
  336. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_slack_channel.py +0 -0
  337. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_snowflake_credential.py +0 -0
  338. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_snowflake_source.py +0 -0
  339. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_source_notification_rule_condition.py +0 -0
  340. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_source_owner.py +0 -0
  341. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_sql_filter.py +0 -0
  342. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_sql_validator.py +0 -0
  343. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_string_filter.py +0 -0
  344. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_tableau_connected_app_credential.py +0 -0
  345. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_tableau_personal_access_token_credential.py +0 -0
  346. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_tag.py +0 -0
  347. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_tag_notification_rule_condition.py +0 -0
  348. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_team.py +0 -0
  349. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_threshold_filter.py +0 -0
  350. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_tumbling_window.py +0 -0
  351. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_type_notification_rule_condition.py +0 -0
  352. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_user.py +0 -0
  353. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_validator_with_difference_threshold.py +0 -0
  354. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_validator_with_dynamic_threshold.py +0 -0
  355. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_validator_with_fixed_threshold.py +0 -0
  356. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_volume_validator.py +0 -0
  357. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/update_webhook_channel.py +0 -0
  358. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/verify_source_schema.py +0 -0
  359. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/graphql_client/webhook_channel_secret_changed.py +0 -0
  360. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/metadata.py +0 -0
  361. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/py.typed +0 -0
  362. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/resource/__init__.py +1 -1
  363. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/resource/_diff_util.py +0 -0
  364. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/resource/_errors.py +0 -0
  365. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/resource/_field_selector.py +0 -0
  366. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/resource/_resource_graph.py +0 -0
  367. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/resource/_util.py +0 -0
  368. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/resource/replacement.py +0 -0
  369. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/resource/tests/__init__.py +0 -0
  370. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/resource/tests/assets/example_manifest.json +0 -0
  371. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/resource/tests/assets/expected_trimmed_manifest.json +0 -0
  372. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/resource/tests/test__channel.py +0 -0
  373. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/resource/tests/test__dbt.py +0 -0
  374. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/resource/tests/test__field_selector.py +0 -0
  375. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/scalars.py +0 -0
  376. {validio_sdk-0.25.2 → validio_sdk-0.26.0}/validio_sdk/util.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: validio-sdk
3
- Version: 0.25.2
3
+ Version: 0.26.0
4
4
  Summary: SDK to interact with the Validio platform
5
5
  Home-page: https://validio.io/
6
6
  License: Apache-2.0
@@ -3,7 +3,7 @@ name = "validio-sdk"
3
3
  # This version does not represent the released version or any tag. For each
4
4
  # release we automatically bump this before building and publishing so this
5
5
  # should be kept at 0.0.1dev1
6
- version = "0.25.2"
6
+ version = "0.26.0"
7
7
  description = "SDK to interact with the Validio platform"
8
8
  authors = ["Validio <support@validio.io>"]
9
9
  license = "Apache-2.0"
@@ -31,7 +31,7 @@ licensecheck = "^2023.1.1"
31
31
  mypy = "^1.2.0"
32
32
  pytest = "^7.3.1"
33
33
  pytest-asyncio = "^0.21.0"
34
- ruff = "^0.1.11"
34
+ ruff = "^0.9.6"
35
35
  sphinx = "^6.2.1" # We use <7 because most themes only work with that.
36
36
  sphinx-rtd-theme = "^1.2.1"
37
37
  ariadne-codegen = "0.14.0"
@@ -126,6 +126,7 @@ exclude = [
126
126
  "docs/*",
127
127
  ]
128
128
 
129
+ [tool.ruff.lint]
129
130
  select = [
130
131
  "ARG", # flake8-unused-argument
131
132
  "C4", # flake8-comprehension
@@ -152,7 +153,7 @@ ignore = [
152
153
  "PLR0913", # Too many arguments to function call (named arguments take care of this)
153
154
  ]
154
155
 
155
- [tool.ruff.per-file-ignores]
156
+ [tool.ruff.lint.per-file-ignores]
156
157
  "__init__.py" = [
157
158
  # We don't need docstrings in __init__
158
159
  "D104",
@@ -165,13 +166,13 @@ ignore = [
165
166
  "*/graphql_client/*.py" = ["D"]
166
167
  "*/tests/*.py" = ["D"]
167
168
 
168
- [tool.ruff.pydocstyle]
169
+ [tool.ruff.lint.pydocstyle]
169
170
  convention = "google"
170
171
 
171
172
  [tool.mypy]
172
173
  ignore_missing_imports = true
173
174
  disallow_untyped_calls = true
174
- disallow_untyped_defs = true
175
+ disallow_untyped_defs = false # TODO(Set to true when generated client is deleted)
175
176
  disallow_incomplete_defs = true
176
177
  check_untyped_defs = true
177
178
  disallow_untyped_decorators = true
@@ -25,24 +25,21 @@ from validio_sdk.resource.filters import (
25
25
  from validio_sdk.util import load_jtd_schema
26
26
 
27
27
  __all__ = [
28
- # Filters
29
28
  "BooleanFilter",
30
29
  "BooleanFilterOperator",
30
+ "ConfigInvalidError",
31
+ "ConfigNotFoundError",
31
32
  "EnumFilter",
32
33
  "EnumFilterOperator",
33
34
  "NullFilter",
34
35
  "NullFilterOperator",
36
+ "SqlFilter",
35
37
  "StringFilter",
36
38
  "StringFilterOperator",
37
39
  "ThresholdFilter",
38
40
  "ThresholdFilterOperator",
39
- "SqlFilter",
40
- # Exceptions
41
- "ValidioError",
42
- "ConfigNotFoundError",
43
- "ConfigInvalidError",
44
41
  "UnauthorizedError",
45
42
  "ValidioConnectionError",
46
- # Methods
43
+ "ValidioError",
47
44
  "load_jtd_schema",
48
45
  ]
@@ -241,6 +241,38 @@ class APIClient:
241
241
  async with self.client as session:
242
242
  return await delete_namespace(session, namespace_id)
243
243
 
244
+ async def delete_credentials(self, credential_ids: list[str]) -> Any:
245
+ async with self.client as session:
246
+ return await delete_credentials(session, credential_ids)
247
+
248
+ async def delete_channels(self, channel_ids: list[str]) -> Any:
249
+ async with self.client as session:
250
+ return await delete_channels(session, channel_ids)
251
+
252
+ async def delete_sources(self, source_ids: list[str]) -> Any:
253
+ async with self.client as session:
254
+ return await delete_sources(session, source_ids)
255
+
256
+ async def delete_windows(self, window_ids: list[str]) -> Any:
257
+ async with self.client as session:
258
+ return await delete_windows(session, window_ids)
259
+
260
+ async def delete_segmentations(self, segmentation_ids: list[str]) -> Any:
261
+ async with self.client as session:
262
+ return await delete_segmentations(session, segmentation_ids)
263
+
264
+ async def delete_filters(self, filter_ids: list[str]) -> Any:
265
+ async with self.client as session:
266
+ return await delete_filters(session, filter_ids)
267
+
268
+ async def delete_notification_rules(self, notification_rule_ids: list[str]) -> Any:
269
+ async with self.client as session:
270
+ return await delete_notification_rules(session, notification_rule_ids)
271
+
272
+ async def delete_validators(self, validator_ids: list[str]) -> Any:
273
+ async with self.client as session:
274
+ return await delete_validators(session, validator_ids)
275
+
244
276
  async def get_recommendations(self, source_id: str) -> Any:
245
277
  async with self.client as session:
246
278
  return await get_recommendations(session, source_id)
@@ -368,17 +400,6 @@ async def get_sources(
368
400
  }
369
401
  }
370
402
  }
371
- ... on GcpPubSubLiteSource {
372
- config {
373
- location
374
- project
375
- subscriptionId
376
- messageFormat {
377
- format
378
- schema
379
- }
380
- }
381
- }
382
403
  ... on AwsAthenaSource {
383
404
  config {
384
405
  catalog
@@ -554,7 +575,7 @@ async def get_sources(
554
575
  async def secrets_changed_by_field(
555
576
  session: Session,
556
577
  class_name: str,
557
- return_fields: set[str],
578
+ query_response_fields: str,
558
579
  variable_values: dict[str, Any],
559
580
  ) -> Any:
560
581
  """Check if secrets changed. This is only compatible with APIs that return
@@ -562,8 +583,7 @@ async def secrets_changed_by_field(
562
583
 
563
584
  Create a query and input types for the passed class name.
564
585
  :param class_name: Name of resource class, e.g. RedshiftCredential
565
- :param return_fields: Names of the secret fields which will be used to retrieve
566
- the results of change per field
586
+ :param query_response_fields: Query response that contains secret fields changed.
567
587
  :param variable_values: Dictionary with secret fields
568
588
  :returns: GraphQL response containing which fields have changed
569
589
  """
@@ -571,13 +591,11 @@ async def secrets_changed_by_field(
571
591
  method_name = f"{lc_first}SecretChanged"
572
592
  input_type = f"{class_name}SecretChangedInput!"
573
593
 
574
- return_fields_query: str = "\n".join(return_fields)
575
-
576
594
  query = f"""
577
595
  query Op($input: {input_type}) {{
578
596
  {method_name}(input: $input) {{
579
- {return_fields_query}
580
597
  errors {{ code message }}
598
+ {query_response_fields}
581
599
  }}
582
600
  }}
583
601
  """
@@ -631,7 +649,7 @@ async def dbt_artifact_multipart_upload_create(
631
649
 
632
650
  if response["errors"]:
633
651
  raise ValidioError(
634
- f'Failed to create dbt multipart upload: {response["errors"]}',
652
+ f"Failed to create dbt multipart upload: {response['errors']}",
635
653
  )
636
654
 
637
655
  return response["id"]
@@ -654,7 +672,7 @@ async def dbt_artifact_multipart_upload_append_part(
654
672
 
655
673
  if response["errors"]:
656
674
  raise ValidioError(
657
- f'Failed to append dbt multipart upload: {response["errors"]}',
675
+ f"Failed to append dbt multipart upload: {response['errors']}",
658
676
  )
659
677
 
660
678
 
@@ -670,7 +688,7 @@ async def dbt_artifact_multipart_upload_complete(
670
688
 
671
689
  if response["errors"]:
672
690
  raise ValidioError(
673
- f'Failed to finalize dbt multipart upload: {response["errors"]}',
691
+ f"Failed to finalize dbt multipart upload: {response['errors']}",
674
692
  )
675
693
 
676
694
 
@@ -710,7 +728,6 @@ async def validator_segment_metrics(
710
728
  isIncident
711
729
  value
712
730
  severity
713
- deviation
714
731
  ... on ValidatorMetricWithFixedThreshold {
715
732
  operator
716
733
  bound
@@ -1038,6 +1055,8 @@ async def get_credentials(
1038
1055
  variable_values = _namespace_filter(namespace_id)
1039
1056
 
1040
1057
  result = await execute(session, query, variable_values=variable_values)
1058
+ if not result:
1059
+ return result
1041
1060
 
1042
1061
  if isinstance(result, list):
1043
1062
  return_first = False
@@ -1071,7 +1090,6 @@ async def get_channels(
1071
1090
  ... on SlackChannel {
1072
1091
  config {
1073
1092
  slackWebhookUrl: webhookUrl
1074
- timezone
1075
1093
  applicationLinkUrl
1076
1094
  slackChannelId
1077
1095
  interactiveMessageEnabled
@@ -1081,13 +1099,11 @@ async def get_channels(
1081
1099
  config {
1082
1100
  webhookUrl
1083
1101
  applicationLinkUrl
1084
- authHeader
1085
1102
  }
1086
1103
  }
1087
1104
  ... on MsTeamsChannel {
1088
1105
  config {
1089
1106
  msTeamsWebhookUrl: webhookUrl
1090
- timezone
1091
1107
  applicationLinkUrl
1092
1108
  msTeamsChannelId
1093
1109
  msTeamsInteractiveMessageEnabled: interactiveMessageEnabled
@@ -1126,6 +1142,8 @@ async def get_channels(
1126
1142
  variable_values = _namespace_filter(namespace_id)
1127
1143
 
1128
1144
  result = await execute(session, query, variable_values=variable_values)
1145
+ if not result:
1146
+ return result
1129
1147
 
1130
1148
  if isinstance(result, list):
1131
1149
  return_first = False
@@ -1273,7 +1291,6 @@ async def get_segments(
1273
1291
  segment_details = """
1274
1292
  fragment SegmentDetails on Segment {
1275
1293
  id
1276
- muted
1277
1294
  fields {
1278
1295
  field
1279
1296
  value
@@ -1342,12 +1359,21 @@ async def get_windows(
1342
1359
  }
1343
1360
  ... on FileWindow {
1344
1361
  dataTimeField
1362
+ config {
1363
+ segmentRetentionPeriodDays
1364
+ }
1365
+ }
1366
+ ... on GlobalWindow {
1367
+ config {
1368
+ segmentRetentionPeriodDays
1369
+ }
1345
1370
  }
1346
1371
  ... on FixedBatchWindow {
1347
1372
  config {
1348
1373
  batchSize
1349
1374
  segmentedBatching
1350
1375
  batchTimeoutSecs
1376
+ segmentRetentionPeriodDays
1351
1377
  }
1352
1378
  dataTimeField
1353
1379
  }
@@ -1356,6 +1382,7 @@ async def get_windows(
1356
1382
  windowSize
1357
1383
  timeUnit
1358
1384
  windowTimeoutDisabled
1385
+ segmentRetentionPeriodDays
1359
1386
  }
1360
1387
  dataTimeField
1361
1388
  }
@@ -1565,12 +1592,6 @@ async def get_validators(
1565
1592
 
1566
1593
  reference_source_config = """
1567
1594
  referenceSourceConfig {
1568
- source {
1569
- ...ReferenceSourceConfigDetails
1570
- }
1571
- window {
1572
- ...WindowDetails
1573
- }
1574
1595
  history
1575
1596
  offset
1576
1597
  sourceFilter {
@@ -1598,28 +1619,6 @@ async def get_validators(
1598
1619
  }}
1599
1620
  }}
1600
1621
 
1601
- fragment ReferenceSourceConfigDetails on Source {{
1602
- __typename
1603
- id
1604
- name
1605
- resourceName
1606
- namespaceId
1607
- namespace {{
1608
- id
1609
- }}
1610
- }}
1611
-
1612
- fragment WindowDetails on Window {{
1613
- __typename
1614
- id
1615
- name
1616
- resourceName
1617
- namespaceId
1618
- namespace {{
1619
- id
1620
- }}
1621
- }}
1622
-
1623
1622
  fragment ValidatorDetails on Validator {{
1624
1623
  __typename
1625
1624
  id
@@ -1695,6 +1694,7 @@ async def get_validators(
1695
1694
  sourceFields
1696
1695
  volumeMetric: metric
1697
1696
  initializeWithBackfill
1697
+ metadataEnabled
1698
1698
  threshold {{
1699
1699
  ...ThresholdDetails
1700
1700
  }}
@@ -1730,6 +1730,7 @@ async def get_validators(
1730
1730
  ... on FreshnessValidator {{
1731
1731
  config {{
1732
1732
  initializeWithBackfill
1733
+ metadataEnabled
1733
1734
  optionalSourceField: sourceField
1734
1735
  threshold {{
1735
1736
  ...ThresholdDetails
@@ -2125,6 +2126,80 @@ async def delete_namespace(session: Session, namespace_id: str) -> Any:
2125
2126
  )
2126
2127
 
2127
2128
 
2129
+ async def delete_credentials(session: Session, window_ids: list[str]) -> Any:
2130
+ return await execute_mutation(
2131
+ session,
2132
+ "credentialsDelete",
2133
+ argument_types={"ids": "[CredentialId!]!"},
2134
+ variable_values={"ids": window_ids},
2135
+ )
2136
+
2137
+
2138
+ async def delete_channels(session: Session, channel_ids: list[str]) -> Any:
2139
+ return await execute_mutation(
2140
+ session,
2141
+ "channelsDelete",
2142
+ argument_types={"ids": "[ChannelId!]!"},
2143
+ variable_values={"ids": channel_ids},
2144
+ )
2145
+
2146
+
2147
+ async def delete_sources(session: Session, source_ids: list[str]) -> Any:
2148
+ return await execute_mutation(
2149
+ session,
2150
+ "sourcesDelete",
2151
+ argument_types={"ids": "[SourceId!]!"},
2152
+ variable_values={"ids": source_ids},
2153
+ )
2154
+
2155
+
2156
+ async def delete_windows(session: Session, window_ids: list[str]) -> Any:
2157
+ return await execute_mutation(
2158
+ session,
2159
+ "windowsDelete",
2160
+ argument_types={"ids": "[WindowId!]!"},
2161
+ variable_values={"ids": window_ids},
2162
+ )
2163
+
2164
+
2165
+ async def delete_segmentations(session: Session, segmentation_ids: list[str]) -> Any:
2166
+ return await execute_mutation(
2167
+ session,
2168
+ "segmentationsDelete",
2169
+ argument_types={"ids": "[SegmentationId!]!"},
2170
+ variable_values={"ids": segmentation_ids},
2171
+ )
2172
+
2173
+
2174
+ async def delete_filters(session: Session, filter_ids: list[str]) -> Any:
2175
+ return await execute_mutation(
2176
+ session,
2177
+ "filtersDelete",
2178
+ argument_types={"ids": "[FilterId!]!"},
2179
+ variable_values={"ids": filter_ids},
2180
+ )
2181
+
2182
+
2183
+ async def delete_notification_rules(
2184
+ session: Session, notification_rule_ids: list[str]
2185
+ ) -> Any:
2186
+ return await execute_mutation(
2187
+ session,
2188
+ "notificationRulesDelete",
2189
+ argument_types={"ids": "[NotificationRuleId!]!"},
2190
+ variable_values={"ids": notification_rule_ids},
2191
+ )
2192
+
2193
+
2194
+ async def delete_validators(session: Session, validator_ids: list[str]) -> Any:
2195
+ return await execute_mutation(
2196
+ session,
2197
+ "validatorsDelete",
2198
+ argument_types={"ids": "[ValidatorId!]!"},
2199
+ variable_values={"ids": validator_ids},
2200
+ )
2201
+
2202
+
2128
2203
  async def get_recommendations(session: Session, source_id: str) -> Any:
2129
2204
  query = """
2130
2205
  query GetSourceRecommendedValidators($id: SourceId!) {
@@ -2437,6 +2512,73 @@ async def apply_source_action(
2437
2512
  return result[f"source{action.value}"]
2438
2513
 
2439
2514
 
2515
+ async def validate_sql_validator_query(
2516
+ session: Session,
2517
+ query: str,
2518
+ validator_display_name: str,
2519
+ source_id: str,
2520
+ segmentation_id: str,
2521
+ window_id: str,
2522
+ ) -> None:
2523
+ gql_query = """
2524
+ query S($input: SqlValidatorQueryVerificationInput!) {
2525
+ sqlValidatorQueryVerification(input: $input) {
2526
+ queryError
2527
+ }
2528
+ }
2529
+ """
2530
+ result = await execute(
2531
+ session,
2532
+ gql_query,
2533
+ variable_values={
2534
+ "input": {
2535
+ "query": query,
2536
+ "sourceConfig": {
2537
+ "segmentationId": segmentation_id,
2538
+ "windowId": window_id,
2539
+ "sourceId": source_id,
2540
+ },
2541
+ "dryRun": True,
2542
+ }
2543
+ },
2544
+ )
2545
+ if "queryError" in result and result["queryError"] is not None:
2546
+ raise ValidioError(
2547
+ f"""Sql query for validator '{validator_display_name}' is not valid:
2548
+ {result["queryError"]}"""
2549
+ )
2550
+
2551
+
2552
+ async def validate_sql_filter_query(
2553
+ session: Session,
2554
+ query: str,
2555
+ filter_display_name: str,
2556
+ source_id: str,
2557
+ ) -> None:
2558
+ gql_query = """
2559
+ query S($input: SqlFilterVerificationInput!) {
2560
+ sqlFilterVerification(input: $input) {
2561
+ queryError
2562
+ }
2563
+ }
2564
+ """
2565
+ result = await execute(
2566
+ session,
2567
+ gql_query,
2568
+ variable_values={
2569
+ "input": {
2570
+ "query": query,
2571
+ "sourceId": source_id,
2572
+ }
2573
+ },
2574
+ )
2575
+ if "queryError" in result and result["queryError"] is not None:
2576
+ raise ValidioError(
2577
+ f"""Sql query for filter '{filter_display_name}' is not valid:
2578
+ {result["queryError"]}"""
2579
+ )
2580
+
2581
+
2440
2582
  def split_to_chunks(data: list[Any]) -> list[list[Any]]:
2441
2583
  return split_to_n_chunks(data, NUM_CONCURRENT_CONNECTIONS)
2442
2584
 
@@ -1,3 +1,3 @@
1
1
  from .client import Client, Session
2
2
 
3
- __all__ = ["Session", "Client"]
3
+ __all__ = ["Client", "Session"]
@@ -14,6 +14,7 @@ async def apply(
14
14
  diff: GraphDiff,
15
15
  show_secrets: bool,
16
16
  show_progress: bool = True,
17
+ dry_run_sql: bool = False,
17
18
  ) -> None:
18
19
  """Applies the provided diff operations on the server."""
19
20
  progress_bar = ProgressBar(
@@ -24,5 +25,11 @@ async def apply(
24
25
  with progress_bar:
25
26
  async with client.client as session:
26
27
  await apply_updates_on_server(
27
- namespace, ctx, diff, session, show_secrets, progress_bar
28
+ namespace,
29
+ ctx,
30
+ diff,
31
+ session,
32
+ show_secrets,
33
+ progress_bar,
34
+ dry_run_sql,
28
35
  )
@@ -24,7 +24,7 @@ from validio_sdk.resource._resource import (
24
24
  )
25
25
  from validio_sdk.resource._server_resources import load_resources
26
26
  from validio_sdk.resource._util import SourceSchemaReinference
27
- from validio_sdk.resource.channels import Channel
27
+ from validio_sdk.resource.channels import Channel, WebhookChannel
28
28
  from validio_sdk.resource.tags import Tag
29
29
 
30
30
 
@@ -229,12 +229,15 @@ def _create_resource_diff_object(
229
229
  r: Resource | Diffable | dict,
230
230
  show_secrets: bool,
231
231
  rewrites: dict[str, Any] | None = None,
232
- secrets_changed: bool = False,
232
+ secret_fields_changed: dict[str, Any] | None = None,
233
233
  is_manifest: bool = False,
234
234
  ) -> dict[str, object]:
235
235
  if rewrites is None:
236
236
  rewrites = {}
237
237
 
238
+ if secret_fields_changed is None:
239
+ secret_fields_changed = {}
240
+
238
241
  data = dict(r) if not isinstance(r, dict) else r
239
242
 
240
243
  diff_object = {}
@@ -245,17 +248,19 @@ def _create_resource_diff_object(
245
248
  if k in rewrites:
246
249
  diff_object[k] = rewrites[k]
247
250
  elif isinstance(v, Resource | Diffable | dict):
251
+ ch = secret_fields_changed.get(k)
248
252
  diff_object[k] = _create_resource_diff_object(
249
253
  v,
250
254
  show_secrets,
251
- secrets_changed=secrets_changed,
255
+ secret_fields_changed=ch if not isinstance(ch, bool) else {},
252
256
  is_manifest=is_manifest,
253
257
  )
254
258
  elif hasattr(v, "__dict__") and not isinstance(v, Enum):
259
+ ch = secret_fields_changed.get(k)
255
260
  diff_object[k] = _create_resource_diff_object(
256
261
  v.__dict__,
257
262
  show_secrets,
258
- secrets_changed=secrets_changed,
263
+ secret_fields_changed=ch if not isinstance(ch, bool) else {},
259
264
  is_manifest=is_manifest,
260
265
  )
261
266
  elif isinstance(v, list):
@@ -269,7 +274,6 @@ def _create_resource_diff_object(
269
274
  _create_resource_diff_object(
270
275
  item.__dict__,
271
276
  show_secrets,
272
- secrets_changed=secrets_changed,
273
277
  is_manifest=is_manifest,
274
278
  )
275
279
  )
@@ -288,7 +292,33 @@ def _create_resource_diff_object(
288
292
 
289
293
  if secret_fields:
290
294
  for field in secret_fields:
291
- if secrets_changed and not is_manifest:
295
+ # We want to avoid overriding webhook_url if it is None already
296
+ # which may give a misleading impression that it is set to a value.
297
+ #
298
+ # For any channel that is not the WebhookChannel, we will always
299
+ # flag it as changed if any secrets have changed, which is consistent
300
+ # with existing behavior.
301
+ #
302
+ # This workaround until webhook URL is deprecated fully from some
303
+ # channels (VR-4047).
304
+ flag_webhook_url_as_changed = False
305
+ if not isinstance(r, WebhookChannel) and field == "webhook_url":
306
+ if hasattr(r, "webhook_url") and not r.webhook_url:
307
+ continue
308
+ if any(
309
+ secret_fields_changed[secret_field]
310
+ for secret_field in secret_fields_changed
311
+ ):
312
+ flag_webhook_url_as_changed = True
313
+
314
+ if (
315
+ # Special case handling for webhook URL
316
+ flag_webhook_url_as_changed
317
+ or
318
+ # If the field does not exist in the secrets changed dict then
319
+ # don't flag it as changed
320
+ secret_fields_changed.get(field)
321
+ ) and not is_manifest:
292
322
  diff_object[field] = "REDACTED-PREVIOUS"
293
323
  else:
294
324
  diff_object[field] = "REDACTED"
@@ -77,10 +77,10 @@ class ValidioConfig:
77
77
  Will ensure we don't print sensitive information.
78
78
  """
79
79
  return (
80
- f'{"Default namespace":<20} | {self.default_namespace}\n'
81
- f'{"Endpoint":<20} | {self.endpoint}\n'
82
- f'{"Access key":<20} | {self.access_key}\n'
83
- f'{"Access secret":<20} | {self._none_or_hidden(self.access_secret)}\n'
80
+ f"{'Default namespace':<20} | {self.default_namespace}\n"
81
+ f"{'Endpoint':<20} | {self.endpoint}\n"
82
+ f"{'Access key':<20} | {self.access_key}\n"
83
+ f"{'Access secret':<20} | {self._none_or_hidden(self.access_secret)}\n"
84
84
  )
85
85
 
86
86
 
@@ -10,6 +10,7 @@ from validio_sdk._api.api import (
10
10
  dbt_artifact_multipart_upload_complete,
11
11
  dbt_artifact_multipart_upload_create,
12
12
  )
13
+ from validio_sdk.client.client import Client
13
14
 
14
15
  _DBT_MULTIPART_UPLOAD_CHUNK_SIZE_BYTES = 2 * 1000 * 1000 # 2MB
15
16
 
@@ -164,7 +165,7 @@ def _extract_sources(manifest: dict, relevant_sources: set) -> dict:
164
165
 
165
166
 
166
167
  async def upload_artifacts(
167
- client: APIClient,
168
+ client: APIClient | Client,
168
169
  credential_id: str,
169
170
  job_name: str,
170
171
  manifest: dict,
@@ -174,13 +175,15 @@ async def upload_artifacts(
174
175
  Helper function to upload dbt artifacts.
175
176
  The artifacts are additionally trimmed before uploading.
176
177
 
177
- :param client: ValidioAPIClient to use for the artifacts upload.
178
+ :param client: Client to use for the artifacts upload.
178
179
  :param credential_id: DBTCore credential id to upload artifacts on behalf of.
179
180
  :param job_name: Job associated with the artifacts.
180
181
  :param manifest: manifest.json payload
181
182
  :param run_results: run_results.json payload
182
183
  """
183
- async with client.client as session:
184
+ client = client if isinstance(client, Client) else client.client
185
+
186
+ async with client as session:
184
187
  upload_id = await dbt_artifact_multipart_upload_create(
185
188
  session,
186
189
  credential_id=credential_id,
@@ -27967,7 +27967,6 @@ class Client(AsyncBaseClient):
27967
27967
  isIncident
27968
27968
  value
27969
27969
  severity
27970
- deviation
27971
27970
  ... on ValidatorMetricWithFixedThreshold {
27972
27971
  operator
27973
27972
  bound