qontract-reconcile 0.10.2.dev299__py3-none-any.whl → 0.10.2.dev430__py3-none-any.whl

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 (403) hide show
  1. {qontract_reconcile-0.10.2.dev299.dist-info → qontract_reconcile-0.10.2.dev430.dist-info}/METADATA +13 -12
  2. {qontract_reconcile-0.10.2.dev299.dist-info → qontract_reconcile-0.10.2.dev430.dist-info}/RECORD +399 -394
  3. reconcile/acs_rbac.py +2 -2
  4. reconcile/aus/advanced_upgrade_service.py +18 -12
  5. reconcile/aus/base.py +134 -32
  6. reconcile/aus/cluster_version_data.py +15 -5
  7. reconcile/aus/models.py +3 -1
  8. reconcile/aus/ocm_addons_upgrade_scheduler_org.py +1 -0
  9. reconcile/aus/ocm_upgrade_scheduler.py +8 -1
  10. reconcile/aus/ocm_upgrade_scheduler_org.py +20 -5
  11. reconcile/aus/version_gates/sts_version_gate_handler.py +54 -1
  12. reconcile/automated_actions/config/integration.py +16 -4
  13. reconcile/aws_account_manager/integration.py +8 -8
  14. reconcile/aws_account_manager/reconciler.py +3 -3
  15. reconcile/aws_ami_cleanup/integration.py +8 -12
  16. reconcile/aws_ami_share.py +69 -62
  17. reconcile/aws_cloudwatch_log_retention/integration.py +155 -126
  18. reconcile/aws_ecr_image_pull_secrets.py +4 -4
  19. reconcile/aws_iam_keys.py +1 -0
  20. reconcile/aws_saml_idp/integration.py +12 -4
  21. reconcile/aws_saml_roles/integration.py +32 -25
  22. reconcile/aws_version_sync/integration.py +125 -84
  23. reconcile/change_owners/bundle.py +3 -3
  24. reconcile/change_owners/change_log_tracking.py +3 -2
  25. reconcile/change_owners/change_owners.py +1 -1
  26. reconcile/change_owners/diff.py +2 -4
  27. reconcile/checkpoint.py +12 -4
  28. reconcile/cli.py +111 -18
  29. reconcile/cluster_deployment_mapper.py +2 -3
  30. reconcile/dashdotdb_dora.py +5 -12
  31. reconcile/dashdotdb_slo.py +1 -1
  32. reconcile/database_access_manager.py +125 -121
  33. reconcile/deadmanssnitch.py +1 -5
  34. reconcile/dynatrace_token_provider/integration.py +1 -1
  35. reconcile/endpoints_discovery/integration.py +4 -1
  36. reconcile/endpoints_discovery/merge_request.py +1 -1
  37. reconcile/endpoints_discovery/merge_request_manager.py +9 -11
  38. reconcile/external_resources/factories.py +5 -12
  39. reconcile/external_resources/integration.py +1 -1
  40. reconcile/external_resources/manager.py +8 -5
  41. reconcile/external_resources/meta.py +0 -1
  42. reconcile/external_resources/metrics.py +1 -1
  43. reconcile/external_resources/model.py +20 -20
  44. reconcile/external_resources/reconciler.py +7 -4
  45. reconcile/external_resources/secrets_sync.py +8 -11
  46. reconcile/external_resources/state.py +26 -16
  47. reconcile/fleet_labeler/integration.py +1 -1
  48. reconcile/gabi_authorized_users.py +8 -5
  49. reconcile/gcp_image_mirror.py +2 -2
  50. reconcile/github_org.py +1 -1
  51. reconcile/github_owners.py +4 -0
  52. reconcile/gitlab_housekeeping.py +13 -15
  53. reconcile/gitlab_members.py +6 -12
  54. reconcile/gitlab_mr_sqs_consumer.py +2 -2
  55. reconcile/gitlab_owners.py +15 -11
  56. reconcile/gitlab_permissions.py +8 -12
  57. reconcile/glitchtip_project_alerts/integration.py +3 -1
  58. reconcile/gql_definitions/acs/acs_instances.py +10 -10
  59. reconcile/gql_definitions/acs/acs_policies.py +5 -5
  60. reconcile/gql_definitions/acs/acs_rbac.py +6 -6
  61. reconcile/gql_definitions/advanced_upgrade_service/aus_clusters.py +32 -32
  62. reconcile/gql_definitions/advanced_upgrade_service/aus_organization.py +26 -26
  63. reconcile/gql_definitions/app_interface_metrics_exporter/onboarding_status.py +6 -7
  64. reconcile/gql_definitions/app_sre_tekton_access_revalidation/roles.py +5 -5
  65. reconcile/gql_definitions/app_sre_tekton_access_revalidation/users.py +5 -5
  66. reconcile/gql_definitions/automated_actions/instance.py +51 -12
  67. reconcile/gql_definitions/aws_account_manager/aws_accounts.py +11 -11
  68. reconcile/gql_definitions/aws_ami_cleanup/aws_accounts.py +20 -10
  69. reconcile/gql_definitions/aws_cloudwatch_log_retention/aws_accounts.py +28 -68
  70. reconcile/gql_definitions/aws_saml_idp/aws_accounts.py +20 -10
  71. reconcile/gql_definitions/aws_saml_roles/aws_accounts.py +20 -10
  72. reconcile/gql_definitions/aws_saml_roles/roles.py +5 -5
  73. reconcile/gql_definitions/aws_version_sync/clusters.py +10 -10
  74. reconcile/gql_definitions/aws_version_sync/namespaces.py +5 -5
  75. reconcile/gql_definitions/change_owners/queries/change_types.py +5 -5
  76. reconcile/gql_definitions/change_owners/queries/self_service_roles.py +9 -9
  77. reconcile/gql_definitions/cluster_auth_rhidp/clusters.py +18 -18
  78. reconcile/gql_definitions/common/alerting_services_settings.py +9 -9
  79. reconcile/gql_definitions/common/app_code_component_repos.py +5 -5
  80. reconcile/gql_definitions/common/app_interface_custom_messages.py +5 -5
  81. reconcile/gql_definitions/common/app_interface_dms_settings.py +5 -5
  82. reconcile/gql_definitions/common/app_interface_repo_settings.py +5 -5
  83. reconcile/gql_definitions/common/app_interface_roles.py +120 -0
  84. reconcile/gql_definitions/common/app_interface_state_settings.py +10 -10
  85. reconcile/gql_definitions/common/app_interface_vault_settings.py +5 -5
  86. reconcile/gql_definitions/common/app_quay_repos_escalation_policies.py +5 -5
  87. reconcile/gql_definitions/common/apps.py +5 -5
  88. reconcile/gql_definitions/common/aws_vpc_requests.py +23 -10
  89. reconcile/gql_definitions/common/aws_vpcs.py +11 -11
  90. reconcile/gql_definitions/common/clusters.py +37 -35
  91. reconcile/gql_definitions/common/clusters_minimal.py +14 -14
  92. reconcile/gql_definitions/common/clusters_with_dms.py +6 -6
  93. reconcile/gql_definitions/common/clusters_with_peering.py +29 -30
  94. reconcile/gql_definitions/common/github_orgs.py +10 -10
  95. reconcile/gql_definitions/common/jira_settings.py +10 -10
  96. reconcile/gql_definitions/common/jiralert_settings.py +5 -5
  97. reconcile/gql_definitions/common/ldap_settings.py +5 -5
  98. reconcile/gql_definitions/common/namespaces.py +42 -44
  99. reconcile/gql_definitions/common/namespaces_minimal.py +15 -13
  100. reconcile/gql_definitions/common/ocm_env_telemeter.py +12 -12
  101. reconcile/gql_definitions/common/ocm_environments.py +19 -19
  102. reconcile/gql_definitions/common/pagerduty_instances.py +9 -9
  103. reconcile/gql_definitions/common/pgp_reencryption_settings.py +6 -6
  104. reconcile/gql_definitions/common/pipeline_providers.py +29 -29
  105. reconcile/gql_definitions/common/quay_instances.py +5 -5
  106. reconcile/gql_definitions/common/quay_orgs.py +5 -5
  107. reconcile/gql_definitions/common/reserved_networks.py +5 -5
  108. reconcile/gql_definitions/common/rhcs_provider_settings.py +5 -5
  109. reconcile/gql_definitions/common/saas_files.py +44 -44
  110. reconcile/gql_definitions/common/saas_target_namespaces.py +10 -10
  111. reconcile/gql_definitions/common/saasherder_settings.py +5 -5
  112. reconcile/gql_definitions/common/slack_workspaces.py +5 -5
  113. reconcile/gql_definitions/common/smtp_client_settings.py +19 -19
  114. reconcile/gql_definitions/common/state_aws_account.py +7 -8
  115. reconcile/gql_definitions/common/users.py +5 -5
  116. reconcile/gql_definitions/common/users_with_paths.py +5 -5
  117. reconcile/gql_definitions/cost_report/app_names.py +5 -5
  118. reconcile/gql_definitions/cost_report/cost_namespaces.py +5 -5
  119. reconcile/gql_definitions/cost_report/settings.py +9 -9
  120. reconcile/gql_definitions/dashdotdb_slo/slo_documents_query.py +43 -43
  121. reconcile/gql_definitions/dynatrace_token_provider/dynatrace_bootstrap_tokens.py +10 -10
  122. reconcile/gql_definitions/dynatrace_token_provider/token_specs.py +5 -5
  123. reconcile/gql_definitions/email_sender/apps.py +5 -5
  124. reconcile/gql_definitions/email_sender/emails.py +8 -8
  125. reconcile/gql_definitions/email_sender/users.py +6 -6
  126. reconcile/gql_definitions/endpoints_discovery/apps.py +10 -10
  127. reconcile/gql_definitions/external_resources/aws_accounts.py +9 -9
  128. reconcile/gql_definitions/external_resources/external_resources_modules.py +23 -23
  129. reconcile/gql_definitions/external_resources/external_resources_namespaces.py +492 -410
  130. reconcile/gql_definitions/external_resources/external_resources_settings.py +28 -26
  131. reconcile/gql_definitions/external_resources/fragments/external_resources_module_overrides.py +5 -5
  132. reconcile/gql_definitions/fleet_labeler/fleet_labels.py +40 -40
  133. reconcile/gql_definitions/fragments/aus_organization.py +5 -5
  134. reconcile/gql_definitions/fragments/aws_account_common.py +7 -5
  135. reconcile/gql_definitions/fragments/aws_account_managed.py +5 -5
  136. reconcile/gql_definitions/fragments/aws_account_sso.py +5 -5
  137. reconcile/gql_definitions/fragments/aws_infra_management_account.py +5 -5
  138. reconcile/gql_definitions/fragments/{aws_vpc_request_subnet.py → aws_organization.py} +12 -8
  139. reconcile/gql_definitions/fragments/aws_vpc.py +5 -5
  140. reconcile/gql_definitions/fragments/aws_vpc_request.py +10 -5
  141. reconcile/gql_definitions/fragments/container_image_mirror.py +5 -5
  142. reconcile/gql_definitions/fragments/deploy_resources.py +5 -5
  143. reconcile/gql_definitions/fragments/disable.py +5 -5
  144. reconcile/gql_definitions/fragments/email_service.py +5 -5
  145. reconcile/gql_definitions/fragments/email_user.py +5 -5
  146. reconcile/gql_definitions/fragments/jumphost_common_fields.py +5 -5
  147. reconcile/gql_definitions/fragments/membership_source.py +5 -5
  148. reconcile/gql_definitions/fragments/minimal_ocm_organization.py +5 -5
  149. reconcile/gql_definitions/fragments/oc_connection_cluster.py +5 -5
  150. reconcile/gql_definitions/fragments/ocm_environment.py +5 -5
  151. reconcile/gql_definitions/fragments/pipeline_provider_retention.py +5 -5
  152. reconcile/gql_definitions/fragments/prometheus_instance.py +5 -5
  153. reconcile/gql_definitions/fragments/resource_limits_requirements.py +5 -5
  154. reconcile/gql_definitions/fragments/resource_requests_requirements.py +5 -5
  155. reconcile/gql_definitions/fragments/resource_values.py +5 -5
  156. reconcile/gql_definitions/fragments/saas_slo_document.py +5 -5
  157. reconcile/gql_definitions/fragments/saas_target_namespace.py +5 -5
  158. reconcile/gql_definitions/fragments/serviceaccount_token.py +5 -5
  159. reconcile/gql_definitions/fragments/terraform_state.py +5 -5
  160. reconcile/gql_definitions/fragments/upgrade_policy.py +5 -5
  161. reconcile/gql_definitions/fragments/user.py +5 -5
  162. reconcile/gql_definitions/fragments/vault_secret.py +5 -5
  163. reconcile/gql_definitions/gcp/gcp_docker_repos.py +9 -9
  164. reconcile/gql_definitions/gcp/gcp_projects.py +9 -9
  165. reconcile/gql_definitions/gitlab_members/gitlab_instances.py +9 -9
  166. reconcile/gql_definitions/gitlab_members/permissions.py +9 -9
  167. reconcile/gql_definitions/glitchtip/glitchtip_instance.py +9 -9
  168. reconcile/gql_definitions/glitchtip/glitchtip_project.py +11 -11
  169. reconcile/gql_definitions/glitchtip_project_alerts/glitchtip_project.py +9 -9
  170. reconcile/gql_definitions/integrations/integrations.py +48 -51
  171. reconcile/gql_definitions/introspection.json +3050 -1393
  172. reconcile/gql_definitions/jenkins_configs/jenkins_configs.py +11 -11
  173. reconcile/gql_definitions/jenkins_configs/jenkins_instances.py +10 -10
  174. reconcile/gql_definitions/jira/jira_servers.py +5 -5
  175. reconcile/gql_definitions/jira_permissions_validator/jira_boards_for_permissions_validator.py +14 -10
  176. reconcile/gql_definitions/jumphosts/jumphosts.py +13 -13
  177. reconcile/gql_definitions/ldap_groups/roles.py +5 -5
  178. reconcile/gql_definitions/ldap_groups/settings.py +9 -9
  179. reconcile/gql_definitions/maintenance/maintenances.py +5 -5
  180. reconcile/gql_definitions/membershipsources/roles.py +5 -5
  181. reconcile/gql_definitions/ocm_labels/clusters.py +18 -19
  182. reconcile/gql_definitions/ocm_labels/organizations.py +5 -5
  183. reconcile/gql_definitions/openshift_cluster_bots/clusters.py +22 -22
  184. reconcile/gql_definitions/openshift_groups/managed_groups.py +5 -5
  185. reconcile/gql_definitions/openshift_groups/managed_roles.py +6 -6
  186. reconcile/gql_definitions/openshift_serviceaccount_tokens/tokens.py +10 -10
  187. reconcile/gql_definitions/quay_membership/quay_membership.py +6 -6
  188. reconcile/gql_definitions/rhcs/certs.py +33 -87
  189. reconcile/gql_definitions/rhcs/openshift_resource_rhcs_cert.py +43 -0
  190. reconcile/gql_definitions/rhidp/organizations.py +18 -18
  191. reconcile/gql_definitions/service_dependencies/jenkins_instance_fragment.py +5 -5
  192. reconcile/gql_definitions/service_dependencies/service_dependencies.py +8 -8
  193. reconcile/gql_definitions/sharding/aws_accounts.py +10 -10
  194. reconcile/gql_definitions/sharding/ocm_organization.py +8 -8
  195. reconcile/gql_definitions/skupper_network/site_controller_template.py +5 -5
  196. reconcile/gql_definitions/skupper_network/skupper_networks.py +10 -10
  197. reconcile/gql_definitions/slack_usergroups/clusters.py +5 -5
  198. reconcile/gql_definitions/slack_usergroups/permissions.py +9 -9
  199. reconcile/gql_definitions/slack_usergroups/users.py +5 -5
  200. reconcile/gql_definitions/slo_documents/slo_documents.py +5 -5
  201. reconcile/gql_definitions/status_board/status_board.py +6 -7
  202. reconcile/gql_definitions/statuspage/statuspages.py +9 -9
  203. reconcile/gql_definitions/templating/template_collection.py +5 -5
  204. reconcile/gql_definitions/templating/templates.py +5 -5
  205. reconcile/gql_definitions/terraform_cloudflare_dns/app_interface_cloudflare_dns_settings.py +6 -6
  206. reconcile/gql_definitions/terraform_cloudflare_dns/terraform_cloudflare_zones.py +11 -11
  207. reconcile/gql_definitions/terraform_cloudflare_resources/terraform_cloudflare_accounts.py +11 -11
  208. reconcile/gql_definitions/terraform_cloudflare_resources/terraform_cloudflare_resources.py +20 -25
  209. reconcile/gql_definitions/terraform_cloudflare_users/app_interface_setting_cloudflare_and_vault.py +6 -6
  210. reconcile/gql_definitions/terraform_cloudflare_users/terraform_cloudflare_roles.py +12 -12
  211. reconcile/gql_definitions/terraform_init/aws_accounts.py +23 -9
  212. reconcile/gql_definitions/terraform_repo/terraform_repo.py +9 -9
  213. reconcile/gql_definitions/terraform_resources/database_access_manager.py +5 -5
  214. reconcile/gql_definitions/terraform_resources/terraform_resources_namespaces.py +448 -402
  215. reconcile/gql_definitions/terraform_tgw_attachments/aws_accounts.py +23 -17
  216. reconcile/gql_definitions/unleash_feature_toggles/feature_toggles.py +9 -9
  217. reconcile/gql_definitions/vault_instances/vault_instances.py +61 -61
  218. reconcile/gql_definitions/vault_policies/vault_policies.py +11 -11
  219. reconcile/gql_definitions/vpc_peerings_validator/vpc_peerings_validator.py +8 -8
  220. reconcile/gql_definitions/vpc_peerings_validator/vpc_peerings_validator_peered_cluster_fragment.py +5 -5
  221. reconcile/integrations_manager.py +3 -3
  222. reconcile/jenkins_job_builder.py +1 -1
  223. reconcile/jenkins_worker_fleets.py +80 -11
  224. reconcile/jira_permissions_validator.py +237 -122
  225. reconcile/ldap_groups/integration.py +1 -1
  226. reconcile/ocm/types.py +35 -56
  227. reconcile/ocm_aws_infrastructure_access.py +1 -1
  228. reconcile/ocm_clusters.py +4 -4
  229. reconcile/ocm_labels/integration.py +3 -2
  230. reconcile/ocm_machine_pools.py +33 -27
  231. reconcile/openshift_base.py +122 -10
  232. reconcile/openshift_cluster_bots.py +5 -5
  233. reconcile/openshift_groups.py +5 -0
  234. reconcile/openshift_limitranges.py +1 -1
  235. reconcile/openshift_namespace_labels.py +1 -1
  236. reconcile/openshift_namespaces.py +97 -101
  237. reconcile/openshift_resources_base.py +10 -5
  238. reconcile/openshift_rhcs_certs.py +77 -40
  239. reconcile/openshift_rolebindings.py +230 -130
  240. reconcile/openshift_saas_deploy.py +6 -7
  241. reconcile/openshift_saas_deploy_change_tester.py +9 -7
  242. reconcile/openshift_saas_deploy_trigger_cleaner.py +3 -5
  243. reconcile/openshift_serviceaccount_tokens.py +8 -7
  244. reconcile/openshift_tekton_resources.py +1 -1
  245. reconcile/openshift_upgrade_watcher.py +4 -4
  246. reconcile/openshift_users.py +5 -3
  247. reconcile/oum/labelset.py +5 -3
  248. reconcile/oum/models.py +1 -4
  249. reconcile/oum/providers.py +1 -1
  250. reconcile/prometheus_rules_tester/integration.py +4 -4
  251. reconcile/quay_mirror.py +1 -1
  252. reconcile/queries.py +131 -0
  253. reconcile/requests_sender.py +8 -3
  254. reconcile/resource_scraper.py +1 -5
  255. reconcile/rhidp/common.py +5 -5
  256. reconcile/rhidp/sso_client/base.py +19 -10
  257. reconcile/saas_auto_promotions_manager/merge_request_manager/renderer.py +1 -1
  258. reconcile/saas_auto_promotions_manager/subscriber.py +4 -3
  259. reconcile/sendgrid_teammates.py +20 -9
  260. reconcile/skupper_network/integration.py +2 -2
  261. reconcile/slack_usergroups.py +35 -14
  262. reconcile/sql_query.py +1 -0
  263. reconcile/status.py +2 -2
  264. reconcile/status_board.py +6 -6
  265. reconcile/statuspage/atlassian.py +7 -7
  266. reconcile/statuspage/integrations/maintenances.py +4 -3
  267. reconcile/statuspage/page.py +4 -9
  268. reconcile/statuspage/status.py +5 -8
  269. reconcile/templates/rosa-classic-cluster-creation.sh.j2 +4 -0
  270. reconcile/templates/rosa-hcp-cluster-creation.sh.j2 +3 -0
  271. reconcile/templating/lib/merge_request_manager.py +2 -2
  272. reconcile/templating/lib/rendering.py +3 -3
  273. reconcile/templating/renderer.py +12 -13
  274. reconcile/terraform_aws_route53.py +18 -8
  275. reconcile/terraform_cloudflare_dns.py +3 -3
  276. reconcile/terraform_cloudflare_resources.py +12 -13
  277. reconcile/terraform_cloudflare_users.py +3 -2
  278. reconcile/terraform_init/integration.py +187 -23
  279. reconcile/terraform_repo.py +16 -12
  280. reconcile/terraform_resources.py +18 -10
  281. reconcile/terraform_tgw_attachments.py +27 -19
  282. reconcile/terraform_users.py +29 -21
  283. reconcile/terraform_vpc_peerings.py +16 -4
  284. reconcile/terraform_vpc_resources/integration.py +32 -2
  285. reconcile/typed_queries/app_interface_roles.py +10 -0
  286. reconcile/typed_queries/aws_account_tags.py +41 -0
  287. reconcile/typed_queries/cost_report/app_names.py +1 -1
  288. reconcile/typed_queries/cost_report/cost_namespaces.py +2 -2
  289. reconcile/typed_queries/saas_files.py +13 -13
  290. reconcile/typed_queries/status_board.py +2 -2
  291. reconcile/unleash_feature_toggles/integration.py +4 -2
  292. reconcile/utils/acs/base.py +6 -3
  293. reconcile/utils/acs/policies.py +2 -2
  294. reconcile/utils/aggregated_list.py +4 -3
  295. reconcile/utils/aws_api.py +51 -20
  296. reconcile/utils/aws_api_typed/api.py +38 -9
  297. reconcile/utils/aws_api_typed/cloudformation.py +149 -0
  298. reconcile/utils/aws_api_typed/logs.py +73 -0
  299. reconcile/utils/aws_api_typed/organization.py +4 -2
  300. reconcile/utils/binary.py +7 -12
  301. reconcile/utils/datetime_util.py +67 -0
  302. reconcile/utils/deadmanssnitch_api.py +1 -1
  303. reconcile/utils/differ.py +2 -3
  304. reconcile/utils/early_exit_cache.py +11 -12
  305. reconcile/utils/expiration.py +7 -3
  306. reconcile/utils/external_resource_spec.py +24 -1
  307. reconcile/utils/filtering.py +1 -1
  308. reconcile/utils/gitlab_api.py +7 -5
  309. reconcile/utils/glitchtip/client.py +6 -2
  310. reconcile/utils/glitchtip/models.py +25 -28
  311. reconcile/utils/gpg.py +5 -3
  312. reconcile/utils/gql.py +4 -7
  313. reconcile/utils/helm.py +2 -1
  314. reconcile/utils/helpers.py +1 -1
  315. reconcile/utils/imap_client.py +1 -1
  316. reconcile/utils/instrumented_wrappers.py +1 -1
  317. reconcile/utils/internal_groups/client.py +2 -2
  318. reconcile/utils/internal_groups/models.py +8 -17
  319. reconcile/utils/jenkins_api.py +24 -1
  320. reconcile/utils/jinja2/utils.py +6 -8
  321. reconcile/utils/jira_client.py +82 -63
  322. reconcile/utils/jjb_client.py +59 -43
  323. reconcile/utils/jobcontroller/controller.py +2 -2
  324. reconcile/utils/jobcontroller/models.py +17 -1
  325. reconcile/utils/json.py +74 -0
  326. reconcile/utils/ldap_client.py +4 -3
  327. reconcile/utils/lean_terraform_client.py +3 -1
  328. reconcile/utils/membershipsources/app_interface_resolver.py +4 -2
  329. reconcile/utils/membershipsources/models.py +16 -23
  330. reconcile/utils/membershipsources/resolver.py +4 -2
  331. reconcile/utils/merge_request_manager/merge_request_manager.py +4 -4
  332. reconcile/utils/merge_request_manager/parser.py +6 -6
  333. reconcile/utils/metrics.py +5 -5
  334. reconcile/utils/models.py +304 -82
  335. reconcile/utils/mr/__init__.py +3 -1
  336. reconcile/utils/mr/app_interface_reporter.py +6 -3
  337. reconcile/utils/mr/aws_access.py +1 -1
  338. reconcile/utils/mr/base.py +7 -13
  339. reconcile/utils/mr/clusters_updates.py +4 -2
  340. reconcile/utils/mr/notificator.py +3 -3
  341. reconcile/utils/mr/ocm_upgrade_scheduler_org_updates.py +4 -1
  342. reconcile/utils/mr/promote_qontract.py +28 -12
  343. reconcile/utils/mr/update_access_report_base.py +3 -4
  344. reconcile/utils/mr/user_maintenance.py +7 -6
  345. reconcile/utils/oc.py +445 -336
  346. reconcile/utils/oc_filters.py +3 -3
  347. reconcile/utils/ocm/addons.py +0 -1
  348. reconcile/utils/ocm/base.py +27 -20
  349. reconcile/utils/ocm/cluster_groups.py +1 -1
  350. reconcile/utils/ocm/identity_providers.py +2 -2
  351. reconcile/utils/ocm/labels.py +1 -1
  352. reconcile/utils/ocm/ocm.py +81 -71
  353. reconcile/utils/ocm/products.py +9 -3
  354. reconcile/utils/ocm/search_filters.py +3 -6
  355. reconcile/utils/ocm/service_log.py +4 -6
  356. reconcile/utils/ocm/sre_capability_labels.py +20 -13
  357. reconcile/utils/ocm_base_client.py +4 -4
  358. reconcile/utils/openshift_resource.py +83 -52
  359. reconcile/utils/openssl.py +2 -2
  360. reconcile/utils/output.py +3 -2
  361. reconcile/utils/pagerduty_api.py +10 -7
  362. reconcile/utils/promotion_state.py +6 -11
  363. reconcile/utils/raw_github_api.py +11 -8
  364. reconcile/utils/repo_owners.py +21 -29
  365. reconcile/utils/rhcsv2_certs.py +138 -35
  366. reconcile/utils/rosa/session.py +16 -0
  367. reconcile/utils/runtime/integration.py +2 -3
  368. reconcile/utils/runtime/meta.py +2 -1
  369. reconcile/utils/runtime/runner.py +2 -2
  370. reconcile/utils/saasherder/interfaces.py +13 -20
  371. reconcile/utils/saasherder/models.py +25 -21
  372. reconcile/utils/saasherder/saasherder.py +60 -32
  373. reconcile/utils/secret_reader.py +6 -6
  374. reconcile/utils/sharding.py +1 -1
  375. reconcile/utils/slack_api.py +26 -4
  376. reconcile/utils/sloth.py +224 -0
  377. reconcile/utils/sqs_gateway.py +16 -11
  378. reconcile/utils/state.py +2 -1
  379. reconcile/utils/structs.py +4 -4
  380. reconcile/utils/terraform_client.py +32 -29
  381. reconcile/utils/terrascript_aws_client.py +658 -480
  382. reconcile/utils/three_way_diff_strategy.py +1 -1
  383. reconcile/utils/throughput.py +1 -1
  384. reconcile/utils/unleash/server.py +2 -8
  385. reconcile/utils/vault.py +44 -41
  386. reconcile/utils/vcs.py +8 -8
  387. reconcile/vault_replication.py +119 -58
  388. reconcile/vpc_peerings_validator.py +2 -2
  389. tools/app_interface_reporter.py +4 -4
  390. tools/cli_commands/cost_report/cost_management_api.py +3 -3
  391. tools/cli_commands/cost_report/view.py +7 -6
  392. tools/cli_commands/erv2.py +1 -1
  393. tools/cli_commands/gpg_encrypt.py +4 -1
  394. tools/cli_commands/systems_and_tools.py +5 -1
  395. tools/qontract_cli.py +36 -21
  396. tools/sre_checkpoints/util.py +5 -3
  397. tools/template_validation.py +3 -1
  398. reconcile/gql_definitions/ocm_oidc_idp/__init__.py +0 -0
  399. reconcile/gql_definitions/ocm_subscription_labels/__init__.py +0 -0
  400. reconcile/jenkins/__init__.py +0 -0
  401. reconcile/jenkins/types.py +0 -77
  402. {qontract_reconcile-0.10.2.dev299.dist-info → qontract_reconcile-0.10.2.dev430.dist-info}/WHEEL +0 -0
  403. {qontract_reconcile-0.10.2.dev299.dist-info → qontract_reconcile-0.10.2.dev430.dist-info}/entry_points.txt +0 -0
@@ -94,14 +94,6 @@ class GroupPermissionHandler:
94
94
  desired_state: dict[str, GroupSpec],
95
95
  current_state: dict[str, GroupSpec],
96
96
  ) -> None:
97
- # gather list of app-interface managed repos
98
- instance = queries.get_gitlab_instance()
99
- managed_repos = {
100
- f"{instance['url']}/{project_request['group']}/{r}"
101
- for project_request in instance.get("projectRequests", [])
102
- for r in project_request.get("projects", [])
103
- }
104
-
105
97
  # get the diff data
106
98
  diff_data = diff_mappings(
107
99
  current=current_state,
@@ -112,11 +104,10 @@ class GroupPermissionHandler:
112
104
  errors: list[Exception] = []
113
105
  for repo in diff_data.add:
114
106
  project = self.gl.get_project(repo)
115
- if not project and repo in managed_repos:
116
- logging.info(
117
- f"New app-interface managed repository {repo} hasn't been created yet - skipping"
118
- )
107
+ if not project:
108
+ logging.info(f"{repo} hasn't been created yet - skipping")
119
109
  continue
110
+
120
111
  if not self.can_share_project(project):
121
112
  errors.append(
122
113
  GroupAccessLevelError(
@@ -136,8 +127,13 @@ class GroupPermissionHandler:
136
127
  group_id=self.group.id,
137
128
  access_level=self.access_level,
138
129
  )
130
+
139
131
  for repo in diff_data.change:
140
132
  project = self.gl.get_project(repo)
133
+ if not project:
134
+ logging.info(f"{repo} hasn't been created yet - skipping")
135
+ continue
136
+
141
137
  if not self.can_share_project(project):
142
138
  errors.append(
143
139
  GroupAccessLevelError(
@@ -69,7 +69,9 @@ class GlitchtipProjectAlertsIntegration(
69
69
  return QONTRACT_INTEGRATION
70
70
 
71
71
  def get_early_exit_desired_state(self) -> dict[str, Any] | None:
72
- return {"projects": [c.dict() for c in self.get_projects(gql.get_api().query)]}
72
+ return {
73
+ "projects": [c.model_dump() for c in self.get_projects(gql.get_api().query)]
74
+ }
73
75
 
74
76
  def get_projects(self, query_func: Callable) -> list[GlitchtipProjectV1]:
75
77
  return glitchtip_project_query(query_func=query_func).glitchtip_projects or []
@@ -1,5 +1,5 @@
1
1
  """
2
- Generated by qenerate plugin=pydantic_v1. DO NOT MODIFY MANUALLY!
2
+ Generated by qenerate plugin=pydantic_v2. DO NOT MODIFY MANUALLY!
3
3
  """
4
4
  from collections.abc import Callable # noqa: F401 # pylint: disable=W0611
5
5
  from datetime import datetime # noqa: F401 # pylint: disable=W0611
@@ -12,7 +12,7 @@ from typing import ( # noqa: F401 # pylint: disable=W0611
12
12
 
13
13
  from pydantic import ( # noqa: F401 # pylint: disable=W0611
14
14
  BaseModel,
15
- Extra,
15
+ ConfigDict,
16
16
  Field,
17
17
  Json,
18
18
  )
@@ -22,17 +22,17 @@ from reconcile.gql_definitions.fragments.vault_secret import VaultSecret
22
22
 
23
23
  DEFINITION = """
24
24
  fragment VaultSecret on VaultSecret_v1 {
25
- path
26
- field
27
- version
28
- format
25
+ path
26
+ field
27
+ version
28
+ format
29
29
  }
30
30
 
31
31
  query AcsInstance {
32
32
  instances: acs_instance_v1 {
33
33
  url
34
34
  credentials {
35
- ... VaultSecret
35
+ ...VaultSecret
36
36
  }
37
37
  authProvider {
38
38
  name
@@ -44,9 +44,9 @@ query AcsInstance {
44
44
 
45
45
 
46
46
  class ConfiguredBaseModel(BaseModel):
47
- class Config:
48
- smart_union=True
49
- extra=Extra.forbid
47
+ model_config = ConfigDict(
48
+ extra='forbid'
49
+ )
50
50
 
51
51
 
52
52
  class AcsInstanceAuthProviderV1(ConfiguredBaseModel):
@@ -1,5 +1,5 @@
1
1
  """
2
- Generated by qenerate plugin=pydantic_v1. DO NOT MODIFY MANUALLY!
2
+ Generated by qenerate plugin=pydantic_v2. DO NOT MODIFY MANUALLY!
3
3
  """
4
4
  from collections.abc import Callable # noqa: F401 # pylint: disable=W0611
5
5
  from datetime import datetime # noqa: F401 # pylint: disable=W0611
@@ -12,7 +12,7 @@ from typing import ( # noqa: F401 # pylint: disable=W0611
12
12
 
13
13
  from pydantic import ( # noqa: F401 # pylint: disable=W0611
14
14
  BaseModel,
15
- Extra,
15
+ ConfigDict,
16
16
  Field,
17
17
  Json,
18
18
  )
@@ -68,9 +68,9 @@ query AcsPolicy {
68
68
 
69
69
 
70
70
  class ConfiguredBaseModel(BaseModel):
71
- class Config:
72
- smart_union=True
73
- extra=Extra.forbid
71
+ model_config = ConfigDict(
72
+ extra='forbid'
73
+ )
74
74
 
75
75
 
76
76
  class AcsPolicyScopeV1(ConfiguredBaseModel):
@@ -1,5 +1,5 @@
1
1
  """
2
- Generated by qenerate plugin=pydantic_v1. DO NOT MODIFY MANUALLY!
2
+ Generated by qenerate plugin=pydantic_v2. DO NOT MODIFY MANUALLY!
3
3
  """
4
4
  from collections.abc import Callable # noqa: F401 # pylint: disable=W0611
5
5
  from datetime import datetime # noqa: F401 # pylint: disable=W0611
@@ -12,14 +12,14 @@ from typing import ( # noqa: F401 # pylint: disable=W0611
12
12
 
13
13
  from pydantic import ( # noqa: F401 # pylint: disable=W0611
14
14
  BaseModel,
15
- Extra,
15
+ ConfigDict,
16
16
  Field,
17
17
  Json,
18
18
  )
19
19
 
20
20
 
21
21
  DEFINITION = """
22
- query AcsRbac {
22
+ query AcsRbac {
23
23
  acs_rbacs: users_v1 {
24
24
  org_username
25
25
  roles {
@@ -48,9 +48,9 @@ query AcsRbac {
48
48
 
49
49
 
50
50
  class ConfiguredBaseModel(BaseModel):
51
- class Config:
52
- smart_union=True
53
- extra=Extra.forbid
51
+ model_config = ConfigDict(
52
+ extra='forbid'
53
+ )
54
54
 
55
55
 
56
56
  class OidcPermissionV1(ConfiguredBaseModel):
@@ -1,5 +1,5 @@
1
1
  """
2
- Generated by qenerate plugin=pydantic_v1. DO NOT MODIFY MANUALLY!
2
+ Generated by qenerate plugin=pydantic_v2. DO NOT MODIFY MANUALLY!
3
3
  """
4
4
  from collections.abc import Callable # noqa: F401 # pylint: disable=W0611
5
5
  from datetime import datetime # noqa: F401 # pylint: disable=W0611
@@ -12,7 +12,7 @@ from typing import ( # noqa: F401 # pylint: disable=W0611
12
12
 
13
13
  from pydantic import ( # noqa: F401 # pylint: disable=W0611
14
14
  BaseModel,
15
- Extra,
15
+ ConfigDict,
16
16
  Field,
17
17
  Json,
18
18
  )
@@ -26,16 +26,16 @@ fragment AUSOCMOrganization on OpenShiftClusterManager_v1 {
26
26
  name
27
27
  labels
28
28
  environment {
29
- ... OCMEnvironment
29
+ ...OCMEnvironment
30
30
  }
31
31
  orgId
32
32
  accessTokenClientId
33
33
  accessTokenUrl
34
34
  accessTokenClientSecret {
35
- ... VaultSecret
35
+ ...VaultSecret
36
36
  }
37
37
  disable {
38
- ... DisableAutomations
38
+ ...DisableAutomations
39
39
  }
40
40
  blockedVersions
41
41
  addonManagedUpgrades
@@ -46,7 +46,7 @@ fragment AUSOCMOrganization on OpenShiftClusterManager_v1 {
46
46
  instance {
47
47
  name
48
48
  token {
49
- ... VaultSecret
49
+ ...VaultSecret
50
50
  }
51
51
  }
52
52
  name
@@ -58,11 +58,11 @@ fragment AUSOCMOrganization on OpenShiftClusterManager_v1 {
58
58
  name
59
59
  }
60
60
  publishVersionData {
61
- ... MinimalOCMOrganization
61
+ ...MinimalOCMOrganization
62
62
  }
63
63
  }
64
64
  publishVersionData {
65
- ... MinimalOCMOrganization
65
+ ...MinimalOCMOrganization
66
66
  }
67
67
  sectors {
68
68
  name
@@ -82,7 +82,7 @@ fragment AUSOCMOrganization on OpenShiftClusterManager_v1 {
82
82
  id
83
83
  }
84
84
  upgradePolicy {
85
- ... ClusterUpgradePolicyV1
85
+ ...ClusterUpgradePolicyV1
86
86
  }
87
87
  }
88
88
  ausClusterHealthChecks {
@@ -113,41 +113,41 @@ fragment MinimalOCMOrganization on OpenShiftClusterManager_v1 {
113
113
  }
114
114
 
115
115
  fragment OCMEnvironment on OpenShiftClusterManagerEnvironment_v1 {
116
- name
117
- description
118
- labels
119
- url
120
- accessTokenClientId
121
- accessTokenUrl
122
- accessTokenClientSecret {
123
- ... VaultSecret
124
- }
116
+ name
117
+ description
118
+ labels
119
+ url
120
+ accessTokenClientId
121
+ accessTokenUrl
122
+ accessTokenClientSecret {
123
+ ...VaultSecret
124
+ }
125
125
  }
126
126
 
127
127
  fragment VaultSecret on VaultSecret_v1 {
128
- path
129
- field
130
- version
131
- format
128
+ path
129
+ field
130
+ version
131
+ format
132
132
  }
133
133
 
134
134
  query AUSClusters($name: String) {
135
135
  clusters: clusters_v1(name: $name) {
136
136
  name
137
137
  ocm {
138
- ... AUSOCMOrganization
138
+ ...AUSOCMOrganization
139
139
  }
140
140
  upgradePolicy {
141
- ... ClusterUpgradePolicyV1
141
+ ...ClusterUpgradePolicyV1
142
142
  }
143
143
  spec {
144
- product
145
- id
146
- external_id
147
- version
144
+ product
145
+ id
146
+ external_id
147
+ version
148
148
  }
149
149
  disable {
150
- integrations
150
+ integrations
151
151
  }
152
152
  }
153
153
  }
@@ -155,9 +155,9 @@ query AUSClusters($name: String) {
155
155
 
156
156
 
157
157
  class ConfiguredBaseModel(BaseModel):
158
- class Config:
159
- smart_union=True
160
- extra=Extra.forbid
158
+ model_config = ConfigDict(
159
+ extra='forbid'
160
+ )
161
161
 
162
162
 
163
163
  class ClusterSpecV1(ConfiguredBaseModel):
@@ -1,5 +1,5 @@
1
1
  """
2
- Generated by qenerate plugin=pydantic_v1. DO NOT MODIFY MANUALLY!
2
+ Generated by qenerate plugin=pydantic_v2. DO NOT MODIFY MANUALLY!
3
3
  """
4
4
  from collections.abc import Callable # noqa: F401 # pylint: disable=W0611
5
5
  from datetime import datetime # noqa: F401 # pylint: disable=W0611
@@ -12,7 +12,7 @@ from typing import ( # noqa: F401 # pylint: disable=W0611
12
12
 
13
13
  from pydantic import ( # noqa: F401 # pylint: disable=W0611
14
14
  BaseModel,
15
- Extra,
15
+ ConfigDict,
16
16
  Field,
17
17
  Json,
18
18
  )
@@ -25,16 +25,16 @@ fragment AUSOCMOrganization on OpenShiftClusterManager_v1 {
25
25
  name
26
26
  labels
27
27
  environment {
28
- ... OCMEnvironment
28
+ ...OCMEnvironment
29
29
  }
30
30
  orgId
31
31
  accessTokenClientId
32
32
  accessTokenUrl
33
33
  accessTokenClientSecret {
34
- ... VaultSecret
34
+ ...VaultSecret
35
35
  }
36
36
  disable {
37
- ... DisableAutomations
37
+ ...DisableAutomations
38
38
  }
39
39
  blockedVersions
40
40
  addonManagedUpgrades
@@ -45,7 +45,7 @@ fragment AUSOCMOrganization on OpenShiftClusterManager_v1 {
45
45
  instance {
46
46
  name
47
47
  token {
48
- ... VaultSecret
48
+ ...VaultSecret
49
49
  }
50
50
  }
51
51
  name
@@ -57,11 +57,11 @@ fragment AUSOCMOrganization on OpenShiftClusterManager_v1 {
57
57
  name
58
58
  }
59
59
  publishVersionData {
60
- ... MinimalOCMOrganization
60
+ ...MinimalOCMOrganization
61
61
  }
62
62
  }
63
63
  publishVersionData {
64
- ... MinimalOCMOrganization
64
+ ...MinimalOCMOrganization
65
65
  }
66
66
  sectors {
67
67
  name
@@ -81,7 +81,7 @@ fragment AUSOCMOrganization on OpenShiftClusterManager_v1 {
81
81
  id
82
82
  }
83
83
  upgradePolicy {
84
- ... ClusterUpgradePolicyV1
84
+ ...ClusterUpgradePolicyV1
85
85
  }
86
86
  }
87
87
  ausClusterHealthChecks {
@@ -112,36 +112,36 @@ fragment MinimalOCMOrganization on OpenShiftClusterManager_v1 {
112
112
  }
113
113
 
114
114
  fragment OCMEnvironment on OpenShiftClusterManagerEnvironment_v1 {
115
- name
116
- description
117
- labels
118
- url
119
- accessTokenClientId
120
- accessTokenUrl
121
- accessTokenClientSecret {
122
- ... VaultSecret
123
- }
115
+ name
116
+ description
117
+ labels
118
+ url
119
+ accessTokenClientId
120
+ accessTokenUrl
121
+ accessTokenClientSecret {
122
+ ...VaultSecret
123
+ }
124
124
  }
125
125
 
126
126
  fragment VaultSecret on VaultSecret_v1 {
127
- path
128
- field
129
- version
130
- format
127
+ path
128
+ field
129
+ version
130
+ format
131
131
  }
132
132
 
133
133
  query AUSOrganizations($name: String) {
134
134
  organizations: ocm_instances_v1(name: $name) {
135
- ... AUSOCMOrganization
135
+ ...AUSOCMOrganization
136
136
  }
137
137
  }
138
138
  """
139
139
 
140
140
 
141
141
  class ConfiguredBaseModel(BaseModel):
142
- class Config:
143
- smart_union=True
144
- extra=Extra.forbid
142
+ model_config = ConfigDict(
143
+ extra='forbid'
144
+ )
145
145
 
146
146
 
147
147
  class AUSOrganizationsQueryData(ConfiguredBaseModel):
@@ -1,5 +1,5 @@
1
1
  """
2
- Generated by qenerate plugin=pydantic_v1. DO NOT MODIFY MANUALLY!
2
+ Generated by qenerate plugin=pydantic_v2. DO NOT MODIFY MANUALLY!
3
3
  """
4
4
  from collections.abc import Callable # noqa: F401 # pylint: disable=W0611
5
5
  from datetime import datetime # noqa: F401 # pylint: disable=W0611
@@ -12,7 +12,7 @@ from typing import ( # noqa: F401 # pylint: disable=W0611
12
12
 
13
13
  from pydantic import ( # noqa: F401 # pylint: disable=W0611
14
14
  BaseModel,
15
- Extra,
15
+ ConfigDict,
16
16
  Field,
17
17
  Json,
18
18
  )
@@ -20,8 +20,7 @@ from pydantic import ( # noqa: F401 # pylint: disable=W0611
20
20
 
21
21
  DEFINITION = """
22
22
  query OnboardingStatus {
23
- apps: apps_v1
24
- {
23
+ apps: apps_v1 {
25
24
  onboardingStatus
26
25
  }
27
26
  }
@@ -29,9 +28,9 @@ query OnboardingStatus {
29
28
 
30
29
 
31
30
  class ConfiguredBaseModel(BaseModel):
32
- class Config:
33
- smart_union=True
34
- extra=Extra.forbid
31
+ model_config = ConfigDict(
32
+ extra='forbid'
33
+ )
35
34
 
36
35
 
37
36
  class AppV1(ConfiguredBaseModel):
@@ -1,5 +1,5 @@
1
1
  """
2
- Generated by qenerate plugin=pydantic_v1. DO NOT MODIFY MANUALLY!
2
+ Generated by qenerate plugin=pydantic_v2. DO NOT MODIFY MANUALLY!
3
3
  """
4
4
  from collections.abc import Callable # noqa: F401 # pylint: disable=W0611
5
5
  from datetime import datetime # noqa: F401 # pylint: disable=W0611
@@ -12,7 +12,7 @@ from typing import ( # noqa: F401 # pylint: disable=W0611
12
12
 
13
13
  from pydantic import ( # noqa: F401 # pylint: disable=W0611
14
14
  BaseModel,
15
- Extra,
15
+ ConfigDict,
16
16
  Field,
17
17
  Json,
18
18
  )
@@ -38,9 +38,9 @@ query AppSRETektonAccessRevalidationRoles {
38
38
 
39
39
 
40
40
  class ConfiguredBaseModel(BaseModel):
41
- class Config:
42
- smart_union=True
43
- extra=Extra.forbid
41
+ model_config = ConfigDict(
42
+ extra='forbid'
43
+ )
44
44
 
45
45
 
46
46
  class NamespaceV1(ConfiguredBaseModel):
@@ -1,5 +1,5 @@
1
1
  """
2
- Generated by qenerate plugin=pydantic_v1. DO NOT MODIFY MANUALLY!
2
+ Generated by qenerate plugin=pydantic_v2. DO NOT MODIFY MANUALLY!
3
3
  """
4
4
  from collections.abc import Callable # noqa: F401 # pylint: disable=W0611
5
5
  from datetime import datetime # noqa: F401 # pylint: disable=W0611
@@ -12,7 +12,7 @@ from typing import ( # noqa: F401 # pylint: disable=W0611
12
12
 
13
13
  from pydantic import ( # noqa: F401 # pylint: disable=W0611
14
14
  BaseModel,
15
- Extra,
15
+ ConfigDict,
16
16
  Field,
17
17
  Json,
18
18
  )
@@ -40,9 +40,9 @@ query AppSRETektonAccessRevalidationUsers {
40
40
 
41
41
 
42
42
  class ConfiguredBaseModel(BaseModel):
43
- class Config:
44
- smart_union=True
45
- extra=Extra.forbid
43
+ model_config = ConfigDict(
44
+ extra='forbid'
45
+ )
46
46
 
47
47
 
48
48
  class ClusterV1(ConfiguredBaseModel):
@@ -1,5 +1,5 @@
1
1
  """
2
- Generated by qenerate plugin=pydantic_v1. DO NOT MODIFY MANUALLY!
2
+ Generated by qenerate plugin=pydantic_v2. DO NOT MODIFY MANUALLY!
3
3
  """
4
4
  from collections.abc import Callable # noqa: F401 # pylint: disable=W0611
5
5
  from datetime import datetime # noqa: F401 # pylint: disable=W0611
@@ -12,7 +12,7 @@ from typing import ( # noqa: F401 # pylint: disable=W0611
12
12
 
13
13
  from pydantic import ( # noqa: F401 # pylint: disable=W0611
14
14
  BaseModel,
15
- Extra,
15
+ ConfigDict,
16
16
  Field,
17
17
  Json,
18
18
  )
@@ -28,7 +28,7 @@ fragment CommonJumphostFields on ClusterJumpHost_v1 {
28
28
  port
29
29
  remotePort
30
30
  identity {
31
- ... VaultSecret
31
+ ...VaultSecret
32
32
  }
33
33
  }
34
34
 
@@ -52,10 +52,10 @@ fragment OcConnectionCluster on Cluster_v1 {
52
52
  }
53
53
 
54
54
  fragment VaultSecret on VaultSecret_v1 {
55
- path
56
- field
57
- version
58
- format
55
+ path
56
+ field
57
+ version
58
+ format
59
59
  }
60
60
 
61
61
  query AutomatedActionsInstances {
@@ -132,6 +132,21 @@ query AutomatedActionsInstances {
132
132
  identifier
133
133
  }
134
134
  }
135
+ ... on AutomatedActionOpenshiftTriggerCronjob_v1 {
136
+ openshift_trigger_cronjob_arguments: arguments {
137
+ namespace {
138
+ name
139
+ delete
140
+ cluster {
141
+ name
142
+ disable {
143
+ integrations
144
+ }
145
+ }
146
+ }
147
+ cronjob
148
+ }
149
+ }
135
150
  ... on AutomatedActionOpenshiftWorkloadDelete_v1 {
136
151
  openshift_workload_delete_arguments: arguments {
137
152
  namespace {
@@ -172,9 +187,9 @@ query AutomatedActionsInstances {
172
187
 
173
188
 
174
189
  class ConfiguredBaseModel(BaseModel):
175
- class Config:
176
- smart_union=True
177
- extra=Extra.forbid
190
+ model_config = ConfigDict(
191
+ extra='forbid'
192
+ )
178
193
 
179
194
 
180
195
  class NamespaceV1(ConfiguredBaseModel):
@@ -297,11 +312,35 @@ class DisableClusterAutomationsV1(ConfiguredBaseModel):
297
312
  integrations: Optional[list[str]] = Field(..., alias="integrations")
298
313
 
299
314
 
300
- class AutomatedActionOpenshiftWorkloadDeleteArgumentV1_NamespaceV1_ClusterV1(ConfiguredBaseModel):
315
+ class AutomatedActionOpenshiftTriggerCronjobArgumentV1_NamespaceV1_ClusterV1(ConfiguredBaseModel):
301
316
  name: str = Field(..., alias="name")
302
317
  disable: Optional[DisableClusterAutomationsV1] = Field(..., alias="disable")
303
318
 
304
319
 
320
+ class AutomatedActionOpenshiftTriggerCronjobArgumentV1_NamespaceV1(ConfiguredBaseModel):
321
+ name: str = Field(..., alias="name")
322
+ delete: Optional[bool] = Field(..., alias="delete")
323
+ cluster: AutomatedActionOpenshiftTriggerCronjobArgumentV1_NamespaceV1_ClusterV1 = Field(..., alias="cluster")
324
+
325
+
326
+ class AutomatedActionOpenshiftTriggerCronjobArgumentV1(ConfiguredBaseModel):
327
+ namespace: AutomatedActionOpenshiftTriggerCronjobArgumentV1_NamespaceV1 = Field(..., alias="namespace")
328
+ cronjob: str = Field(..., alias="cronjob")
329
+
330
+
331
+ class AutomatedActionOpenshiftTriggerCronjobV1(AutomatedActionV1):
332
+ openshift_trigger_cronjob_arguments: list[AutomatedActionOpenshiftTriggerCronjobArgumentV1] = Field(..., alias="openshift_trigger_cronjob_arguments")
333
+
334
+
335
+ class AutomatedActionOpenshiftWorkloadDeleteArgumentV1_NamespaceV1_ClusterV1_DisableClusterAutomationsV1(ConfiguredBaseModel):
336
+ integrations: Optional[list[str]] = Field(..., alias="integrations")
337
+
338
+
339
+ class AutomatedActionOpenshiftWorkloadDeleteArgumentV1_NamespaceV1_ClusterV1(ConfiguredBaseModel):
340
+ name: str = Field(..., alias="name")
341
+ disable: Optional[AutomatedActionOpenshiftWorkloadDeleteArgumentV1_NamespaceV1_ClusterV1_DisableClusterAutomationsV1] = Field(..., alias="disable")
342
+
343
+
305
344
  class AutomatedActionOpenshiftWorkloadDeleteArgumentV1_NamespaceV1(ConfiguredBaseModel):
306
345
  name: str = Field(..., alias="name")
307
346
  delete: Optional[bool] = Field(..., alias="delete")
@@ -347,7 +386,7 @@ class AutomatedActionOpenshiftWorkloadRestartV1(AutomatedActionV1):
347
386
  class AutomatedActionsInstanceV1(ConfiguredBaseModel):
348
387
  name: str = Field(..., alias="name")
349
388
  deployment: NamespaceV1 = Field(..., alias="deployment")
350
- actions: Optional[list[Union[AutomatedActionActionListV1, AutomatedActionExternalResourceFlushElastiCacheV1, AutomatedActionExternalResourceRdsRebootV1, AutomatedActionExternalResourceRdsSnapshotV1, AutomatedActionOpenshiftWorkloadDeleteV1, AutomatedActionOpenshiftWorkloadRestartV1, AutomatedActionV1]]] = Field(..., alias="actions")
389
+ actions: Optional[list[Union[AutomatedActionActionListV1, AutomatedActionExternalResourceFlushElastiCacheV1, AutomatedActionExternalResourceRdsRebootV1, AutomatedActionExternalResourceRdsSnapshotV1, AutomatedActionOpenshiftTriggerCronjobV1, AutomatedActionOpenshiftWorkloadDeleteV1, AutomatedActionOpenshiftWorkloadRestartV1, AutomatedActionV1]]] = Field(..., alias="actions")
351
390
 
352
391
 
353
392
  class AutomatedActionsInstancesQueryData(ConfiguredBaseModel):