qontract-reconcile 0.10.2.dev361__py3-none-any.whl → 0.10.2.dev474__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 (371) hide show
  1. {qontract_reconcile-0.10.2.dev361.dist-info → qontract_reconcile-0.10.2.dev474.dist-info}/METADATA +14 -13
  2. {qontract_reconcile-0.10.2.dev361.dist-info → qontract_reconcile-0.10.2.dev474.dist-info}/RECORD +371 -364
  3. {qontract_reconcile-0.10.2.dev361.dist-info → qontract_reconcile-0.10.2.dev474.dist-info}/WHEEL +1 -1
  4. reconcile/acs_rbac.py +2 -2
  5. reconcile/aus/advanced_upgrade_service.py +18 -12
  6. reconcile/aus/aus_sts_gate_handler.py +59 -0
  7. reconcile/aus/base.py +137 -34
  8. reconcile/aus/cluster_version_data.py +15 -5
  9. reconcile/aus/models.py +3 -1
  10. reconcile/aus/ocm_addons_upgrade_scheduler_org.py +1 -0
  11. reconcile/aus/ocm_upgrade_scheduler.py +8 -1
  12. reconcile/aus/ocm_upgrade_scheduler_org.py +20 -5
  13. reconcile/aus/version_gate_approver.py +1 -16
  14. reconcile/aus/version_gates/sts_version_gate_handler.py +5 -72
  15. reconcile/automated_actions/config/integration.py +16 -4
  16. reconcile/aws_account_manager/integration.py +21 -9
  17. reconcile/aws_account_manager/reconciler.py +3 -3
  18. reconcile/aws_account_manager/utils.py +1 -1
  19. reconcile/aws_ami_cleanup/integration.py +8 -12
  20. reconcile/aws_ami_share.py +69 -62
  21. reconcile/aws_cloudwatch_log_retention/integration.py +155 -126
  22. reconcile/aws_ecr_image_pull_secrets.py +1 -1
  23. reconcile/aws_iam_keys.py +1 -0
  24. reconcile/aws_saml_idp/integration.py +12 -4
  25. reconcile/aws_saml_roles/integration.py +30 -23
  26. reconcile/aws_version_sync/integration.py +6 -12
  27. reconcile/change_owners/README.md +1 -1
  28. reconcile/change_owners/bundle.py +3 -3
  29. reconcile/change_owners/change_log_tracking.py +3 -2
  30. reconcile/change_owners/change_owners.py +108 -42
  31. reconcile/change_owners/decision.py +1 -1
  32. reconcile/change_owners/diff.py +0 -2
  33. reconcile/checkpoint.py +11 -3
  34. reconcile/cli.py +94 -11
  35. reconcile/dashdotdb_dora.py +5 -12
  36. reconcile/dashdotdb_slo.py +1 -1
  37. reconcile/database_access_manager.py +123 -117
  38. reconcile/dynatrace_token_provider/integration.py +1 -1
  39. reconcile/endpoints_discovery/integration.py +4 -1
  40. reconcile/endpoints_discovery/merge_request.py +1 -1
  41. reconcile/endpoints_discovery/merge_request_manager.py +8 -8
  42. reconcile/external_resources/factories.py +4 -6
  43. reconcile/external_resources/integration.py +1 -1
  44. reconcile/external_resources/manager.py +8 -6
  45. reconcile/external_resources/meta.py +0 -1
  46. reconcile/external_resources/metrics.py +1 -1
  47. reconcile/external_resources/model.py +19 -15
  48. reconcile/external_resources/reconciler.py +7 -4
  49. reconcile/external_resources/secrets_sync.py +6 -10
  50. reconcile/external_resources/state.py +26 -16
  51. reconcile/fleet_labeler/integration.py +1 -1
  52. reconcile/gabi_authorized_users.py +5 -2
  53. reconcile/gcp_image_mirror.py +2 -2
  54. reconcile/github_org.py +1 -1
  55. reconcile/github_owners.py +4 -0
  56. reconcile/gitlab_housekeeping.py +13 -15
  57. reconcile/gitlab_members.py +6 -12
  58. reconcile/gitlab_owners.py +15 -11
  59. reconcile/gitlab_permissions.py +8 -12
  60. reconcile/glitchtip_project_alerts/integration.py +3 -1
  61. reconcile/gql_definitions/acs/acs_instances.py +5 -5
  62. reconcile/gql_definitions/acs/acs_policies.py +5 -5
  63. reconcile/gql_definitions/acs/acs_rbac.py +5 -5
  64. reconcile/gql_definitions/advanced_upgrade_service/aus_clusters.py +5 -5
  65. reconcile/gql_definitions/advanced_upgrade_service/aus_organization.py +5 -5
  66. reconcile/gql_definitions/app_interface_metrics_exporter/onboarding_status.py +5 -5
  67. reconcile/gql_definitions/app_sre_tekton_access_revalidation/roles.py +5 -5
  68. reconcile/gql_definitions/app_sre_tekton_access_revalidation/users.py +5 -5
  69. reconcile/gql_definitions/automated_actions/instance.py +46 -7
  70. reconcile/gql_definitions/aws_account_manager/aws_accounts.py +14 -5
  71. reconcile/gql_definitions/aws_ami_cleanup/aws_accounts.py +15 -5
  72. reconcile/gql_definitions/aws_cloudwatch_log_retention/aws_accounts.py +27 -66
  73. reconcile/gql_definitions/aws_saml_idp/aws_accounts.py +15 -5
  74. reconcile/gql_definitions/aws_saml_roles/aws_accounts.py +15 -5
  75. reconcile/gql_definitions/aws_saml_roles/roles.py +5 -5
  76. reconcile/gql_definitions/aws_version_sync/clusters.py +5 -5
  77. reconcile/gql_definitions/aws_version_sync/namespaces.py +5 -5
  78. reconcile/gql_definitions/change_owners/queries/change_types.py +5 -5
  79. reconcile/gql_definitions/change_owners/queries/self_service_roles.py +5 -5
  80. reconcile/gql_definitions/cluster_auth_rhidp/clusters.py +5 -5
  81. reconcile/gql_definitions/common/alerting_services_settings.py +5 -5
  82. reconcile/gql_definitions/common/app_code_component_repos.py +5 -5
  83. reconcile/gql_definitions/common/app_interface_custom_messages.py +5 -5
  84. reconcile/gql_definitions/common/app_interface_dms_settings.py +5 -5
  85. reconcile/gql_definitions/common/app_interface_repo_settings.py +5 -5
  86. reconcile/gql_definitions/common/app_interface_roles.py +5 -5
  87. reconcile/gql_definitions/common/app_interface_state_settings.py +5 -5
  88. reconcile/gql_definitions/common/app_interface_vault_settings.py +5 -5
  89. reconcile/gql_definitions/common/app_quay_repos_escalation_policies.py +5 -5
  90. reconcile/gql_definitions/common/apps.py +5 -5
  91. reconcile/gql_definitions/common/aws_vpc_requests.py +18 -5
  92. reconcile/gql_definitions/common/aws_vpcs.py +5 -5
  93. reconcile/gql_definitions/common/clusters.py +7 -5
  94. reconcile/gql_definitions/common/clusters_minimal.py +5 -5
  95. reconcile/gql_definitions/common/clusters_with_dms.py +5 -5
  96. reconcile/gql_definitions/common/clusters_with_peering.py +5 -5
  97. reconcile/gql_definitions/common/github_orgs.py +5 -5
  98. reconcile/gql_definitions/common/jira_settings.py +5 -5
  99. reconcile/gql_definitions/common/jiralert_settings.py +5 -5
  100. reconcile/gql_definitions/common/ldap_settings.py +5 -5
  101. reconcile/gql_definitions/common/namespaces.py +5 -5
  102. reconcile/gql_definitions/common/namespaces_minimal.py +7 -5
  103. reconcile/gql_definitions/common/ocm_env_telemeter.py +5 -5
  104. reconcile/gql_definitions/common/ocm_environments.py +5 -5
  105. reconcile/gql_definitions/common/pagerduty_instances.py +5 -5
  106. reconcile/gql_definitions/common/pgp_reencryption_settings.py +5 -5
  107. reconcile/gql_definitions/common/pipeline_providers.py +5 -5
  108. reconcile/gql_definitions/common/quay_instances.py +5 -5
  109. reconcile/gql_definitions/common/quay_orgs.py +5 -5
  110. reconcile/gql_definitions/common/reserved_networks.py +5 -5
  111. reconcile/gql_definitions/common/rhcs_provider_settings.py +5 -5
  112. reconcile/gql_definitions/common/saas_files.py +5 -5
  113. reconcile/gql_definitions/common/saas_target_namespaces.py +5 -5
  114. reconcile/gql_definitions/common/saasherder_settings.py +5 -5
  115. reconcile/gql_definitions/common/slack_workspaces.py +5 -5
  116. reconcile/gql_definitions/common/smtp_client_settings.py +5 -5
  117. reconcile/gql_definitions/common/state_aws_account.py +5 -5
  118. reconcile/gql_definitions/common/users.py +5 -5
  119. reconcile/gql_definitions/common/users_with_paths.py +5 -5
  120. reconcile/gql_definitions/cost_report/app_names.py +5 -5
  121. reconcile/gql_definitions/cost_report/cost_namespaces.py +5 -5
  122. reconcile/gql_definitions/cost_report/settings.py +5 -5
  123. reconcile/gql_definitions/dashdotdb_slo/slo_documents_query.py +5 -5
  124. reconcile/gql_definitions/dynatrace_token_provider/dynatrace_bootstrap_tokens.py +5 -5
  125. reconcile/gql_definitions/dynatrace_token_provider/token_specs.py +5 -5
  126. reconcile/gql_definitions/email_sender/apps.py +5 -5
  127. reconcile/gql_definitions/email_sender/emails.py +5 -5
  128. reconcile/gql_definitions/email_sender/users.py +5 -5
  129. reconcile/gql_definitions/endpoints_discovery/apps.py +5 -5
  130. reconcile/gql_definitions/external_resources/aws_accounts.py +5 -5
  131. reconcile/gql_definitions/external_resources/external_resources_modules.py +5 -5
  132. reconcile/gql_definitions/external_resources/external_resources_namespaces.py +38 -7
  133. reconcile/gql_definitions/external_resources/external_resources_settings.py +5 -5
  134. reconcile/gql_definitions/external_resources/fragments/external_resources_module_overrides.py +5 -5
  135. reconcile/gql_definitions/fleet_labeler/fleet_labels.py +5 -5
  136. reconcile/gql_definitions/fragments/aus_organization.py +5 -5
  137. reconcile/gql_definitions/fragments/aws_account_common.py +7 -5
  138. reconcile/gql_definitions/fragments/aws_account_managed.py +5 -5
  139. reconcile/gql_definitions/fragments/aws_account_sso.py +5 -5
  140. reconcile/gql_definitions/fragments/aws_infra_management_account.py +5 -5
  141. reconcile/gql_definitions/fragments/aws_organization.py +33 -0
  142. reconcile/gql_definitions/fragments/aws_vpc.py +5 -5
  143. reconcile/gql_definitions/fragments/aws_vpc_request.py +12 -5
  144. reconcile/gql_definitions/fragments/container_image_mirror.py +5 -5
  145. reconcile/gql_definitions/fragments/deploy_resources.py +5 -5
  146. reconcile/gql_definitions/fragments/disable.py +5 -5
  147. reconcile/gql_definitions/fragments/email_service.py +5 -5
  148. reconcile/gql_definitions/fragments/email_user.py +5 -5
  149. reconcile/gql_definitions/fragments/jumphost_common_fields.py +5 -5
  150. reconcile/gql_definitions/fragments/membership_source.py +5 -5
  151. reconcile/gql_definitions/fragments/minimal_ocm_organization.py +5 -5
  152. reconcile/gql_definitions/fragments/oc_connection_cluster.py +5 -5
  153. reconcile/gql_definitions/fragments/ocm_environment.py +5 -5
  154. reconcile/gql_definitions/fragments/pipeline_provider_retention.py +5 -5
  155. reconcile/gql_definitions/fragments/prometheus_instance.py +5 -5
  156. reconcile/gql_definitions/fragments/resource_limits_requirements.py +5 -5
  157. reconcile/gql_definitions/fragments/resource_requests_requirements.py +5 -5
  158. reconcile/gql_definitions/fragments/resource_values.py +5 -5
  159. reconcile/gql_definitions/fragments/saas_slo_document.py +5 -5
  160. reconcile/gql_definitions/fragments/saas_target_namespace.py +5 -5
  161. reconcile/gql_definitions/fragments/serviceaccount_token.py +5 -5
  162. reconcile/gql_definitions/fragments/terraform_state.py +5 -5
  163. reconcile/gql_definitions/fragments/upgrade_policy.py +5 -5
  164. reconcile/gql_definitions/fragments/user.py +5 -5
  165. reconcile/gql_definitions/fragments/vault_secret.py +5 -5
  166. reconcile/gql_definitions/gcp/gcp_docker_repos.py +5 -5
  167. reconcile/gql_definitions/gcp/gcp_projects.py +5 -5
  168. reconcile/gql_definitions/gitlab_members/gitlab_instances.py +5 -5
  169. reconcile/gql_definitions/gitlab_members/permissions.py +5 -5
  170. reconcile/gql_definitions/glitchtip/glitchtip_instance.py +5 -5
  171. reconcile/gql_definitions/glitchtip/glitchtip_project.py +5 -5
  172. reconcile/gql_definitions/glitchtip_project_alerts/glitchtip_project.py +5 -5
  173. reconcile/gql_definitions/integrations/integrations.py +5 -5
  174. reconcile/gql_definitions/introspection.json +775 -136
  175. reconcile/gql_definitions/jenkins_configs/jenkins_configs.py +5 -5
  176. reconcile/gql_definitions/jenkins_configs/jenkins_instances.py +5 -5
  177. reconcile/gql_definitions/jira/jira_servers.py +5 -5
  178. reconcile/gql_definitions/jira_permissions_validator/jira_boards_for_permissions_validator.py +9 -5
  179. reconcile/gql_definitions/jumphosts/jumphosts.py +5 -5
  180. reconcile/gql_definitions/ldap_groups/roles.py +5 -5
  181. reconcile/gql_definitions/ldap_groups/settings.py +5 -5
  182. reconcile/gql_definitions/maintenance/maintenances.py +5 -5
  183. reconcile/gql_definitions/membershipsources/roles.py +5 -5
  184. reconcile/gql_definitions/ocm_labels/clusters.py +5 -5
  185. reconcile/gql_definitions/ocm_labels/organizations.py +5 -5
  186. reconcile/gql_definitions/openshift_cluster_bots/clusters.py +5 -5
  187. reconcile/gql_definitions/openshift_groups/managed_groups.py +5 -5
  188. reconcile/gql_definitions/openshift_groups/managed_roles.py +5 -5
  189. reconcile/gql_definitions/openshift_serviceaccount_tokens/tokens.py +5 -5
  190. reconcile/gql_definitions/quay_membership/quay_membership.py +5 -5
  191. reconcile/gql_definitions/rhcs/certs.py +25 -79
  192. reconcile/gql_definitions/rhcs/openshift_resource_rhcs_cert.py +43 -0
  193. reconcile/gql_definitions/rhidp/organizations.py +5 -5
  194. reconcile/gql_definitions/service_dependencies/jenkins_instance_fragment.py +5 -5
  195. reconcile/gql_definitions/service_dependencies/service_dependencies.py +5 -5
  196. reconcile/gql_definitions/sharding/aws_accounts.py +5 -5
  197. reconcile/gql_definitions/sharding/ocm_organization.py +5 -5
  198. reconcile/gql_definitions/skupper_network/site_controller_template.py +5 -5
  199. reconcile/gql_definitions/skupper_network/skupper_networks.py +5 -5
  200. reconcile/gql_definitions/slack_usergroups/clusters.py +5 -5
  201. reconcile/gql_definitions/slack_usergroups/permissions.py +5 -5
  202. reconcile/gql_definitions/slack_usergroups/users.py +5 -5
  203. reconcile/gql_definitions/slo_documents/slo_documents.py +5 -5
  204. reconcile/gql_definitions/status_board/status_board.py +5 -5
  205. reconcile/gql_definitions/statuspage/statuspages.py +5 -5
  206. reconcile/gql_definitions/templating/template_collection.py +5 -5
  207. reconcile/gql_definitions/templating/templates.py +5 -5
  208. reconcile/gql_definitions/terraform_cloudflare_dns/app_interface_cloudflare_dns_settings.py +5 -5
  209. reconcile/gql_definitions/terraform_cloudflare_dns/terraform_cloudflare_zones.py +5 -5
  210. reconcile/gql_definitions/terraform_cloudflare_resources/terraform_cloudflare_accounts.py +5 -5
  211. reconcile/gql_definitions/terraform_cloudflare_resources/terraform_cloudflare_resources.py +5 -5
  212. reconcile/gql_definitions/terraform_cloudflare_users/app_interface_setting_cloudflare_and_vault.py +5 -5
  213. reconcile/gql_definitions/terraform_cloudflare_users/terraform_cloudflare_roles.py +5 -5
  214. reconcile/gql_definitions/terraform_init/aws_accounts.py +19 -5
  215. reconcile/gql_definitions/terraform_repo/terraform_repo.py +5 -5
  216. reconcile/gql_definitions/terraform_resources/database_access_manager.py +5 -5
  217. reconcile/gql_definitions/terraform_resources/terraform_resources_namespaces.py +37 -7
  218. reconcile/gql_definitions/terraform_tgw_attachments/aws_accounts.py +15 -5
  219. reconcile/gql_definitions/unleash_feature_toggles/feature_toggles.py +5 -5
  220. reconcile/gql_definitions/vault_instances/vault_instances.py +5 -5
  221. reconcile/gql_definitions/vault_policies/vault_policies.py +5 -5
  222. reconcile/gql_definitions/vpc_peerings_validator/vpc_peerings_validator.py +8 -5
  223. reconcile/gql_definitions/vpc_peerings_validator/vpc_peerings_validator_peered_cluster_fragment.py +6 -5
  224. reconcile/integrations_manager.py +3 -3
  225. reconcile/jenkins_worker_fleets.py +10 -8
  226. reconcile/jira_permissions_validator.py +237 -122
  227. reconcile/ldap_groups/integration.py +1 -1
  228. reconcile/ocm/types.py +35 -57
  229. reconcile/ocm_aws_infrastructure_access.py +1 -1
  230. reconcile/ocm_clusters.py +4 -4
  231. reconcile/ocm_labels/integration.py +3 -2
  232. reconcile/ocm_machine_pools.py +33 -27
  233. reconcile/openshift_base.py +113 -4
  234. reconcile/openshift_cluster_bots.py +1 -1
  235. reconcile/openshift_namespace_labels.py +1 -1
  236. reconcile/openshift_namespaces.py +96 -101
  237. reconcile/openshift_resources_base.py +6 -2
  238. reconcile/openshift_rhcs_certs.py +74 -37
  239. reconcile/openshift_rolebindings.py +7 -11
  240. reconcile/openshift_saas_deploy.py +4 -5
  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 +2 -2
  244. reconcile/openshift_upgrade_watcher.py +4 -4
  245. reconcile/oum/labelset.py +5 -3
  246. reconcile/oum/models.py +1 -4
  247. reconcile/prometheus_rules_tester/integration.py +3 -3
  248. reconcile/quay_base.py +25 -6
  249. reconcile/quay_membership.py +55 -29
  250. reconcile/quay_mirror.py +1 -1
  251. reconcile/quay_mirror_org.py +6 -4
  252. reconcile/quay_permissions.py +81 -75
  253. reconcile/quay_repos.py +35 -37
  254. reconcile/queries.py +132 -1
  255. reconcile/rhidp/common.py +3 -5
  256. reconcile/rhidp/sso_client/base.py +16 -5
  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/skupper_network/integration.py +2 -2
  260. reconcile/slack_usergroups.py +35 -14
  261. reconcile/sql_query.py +1 -0
  262. reconcile/status_board.py +6 -6
  263. reconcile/statuspage/atlassian.py +7 -7
  264. reconcile/statuspage/integrations/maintenances.py +4 -3
  265. reconcile/statuspage/page.py +4 -9
  266. reconcile/statuspage/status.py +5 -8
  267. reconcile/templates/rosa-classic-cluster-creation.sh.j2 +1 -1
  268. reconcile/templates/rosa-hcp-cluster-creation.sh.j2 +1 -1
  269. reconcile/templating/lib/rendering.py +3 -3
  270. reconcile/templating/renderer.py +2 -2
  271. reconcile/templating/validator.py +4 -4
  272. reconcile/terraform_aws_route53.py +7 -1
  273. reconcile/terraform_cloudflare_dns.py +3 -3
  274. reconcile/terraform_cloudflare_resources.py +5 -5
  275. reconcile/terraform_cloudflare_users.py +3 -2
  276. reconcile/terraform_init/integration.py +187 -23
  277. reconcile/terraform_repo.py +16 -12
  278. reconcile/terraform_resources.py +6 -6
  279. reconcile/terraform_tgw_attachments.py +27 -19
  280. reconcile/terraform_users.py +7 -0
  281. reconcile/terraform_vpc_peerings.py +14 -3
  282. reconcile/terraform_vpc_resources/integration.py +20 -8
  283. reconcile/terraform_vpc_resources/merge_request.py +12 -2
  284. reconcile/terraform_vpc_resources/merge_request_manager.py +43 -19
  285. reconcile/typed_queries/aws_account_tags.py +41 -0
  286. reconcile/typed_queries/cost_report/app_names.py +1 -1
  287. reconcile/typed_queries/cost_report/cost_namespaces.py +2 -2
  288. reconcile/typed_queries/saas_files.py +20 -15
  289. reconcile/typed_queries/status_board.py +2 -2
  290. reconcile/unleash_feature_toggles/integration.py +4 -2
  291. reconcile/utils/acs/base.py +6 -3
  292. reconcile/utils/acs/policies.py +2 -2
  293. reconcile/utils/aws_api.py +51 -20
  294. reconcile/utils/aws_api_typed/api.py +38 -9
  295. reconcile/utils/aws_api_typed/cloudformation.py +149 -0
  296. reconcile/utils/aws_api_typed/logs.py +73 -0
  297. reconcile/utils/aws_api_typed/organization.py +4 -2
  298. reconcile/utils/binary.py +7 -12
  299. reconcile/utils/datetime_util.py +67 -0
  300. reconcile/utils/deadmanssnitch_api.py +1 -1
  301. reconcile/utils/differ.py +2 -3
  302. reconcile/utils/early_exit_cache.py +11 -12
  303. reconcile/utils/environ.py +5 -0
  304. reconcile/utils/expiration.py +7 -3
  305. reconcile/utils/external_resource_spec.py +2 -0
  306. reconcile/utils/filtering.py +1 -1
  307. reconcile/utils/gitlab_api.py +19 -5
  308. reconcile/utils/glitchtip/client.py +6 -2
  309. reconcile/utils/glitchtip/models.py +25 -28
  310. reconcile/utils/gql.py +4 -7
  311. reconcile/utils/helpers.py +1 -1
  312. reconcile/utils/instrumented_wrappers.py +1 -1
  313. reconcile/utils/internal_groups/client.py +2 -2
  314. reconcile/utils/internal_groups/models.py +8 -17
  315. reconcile/utils/jinja2/utils.py +6 -101
  316. reconcile/utils/jira_client.py +82 -63
  317. reconcile/utils/jjb_client.py +26 -13
  318. reconcile/utils/jobcontroller/controller.py +2 -2
  319. reconcile/utils/jobcontroller/models.py +17 -1
  320. reconcile/utils/json.py +43 -1
  321. reconcile/utils/membershipsources/app_interface_resolver.py +4 -2
  322. reconcile/utils/membershipsources/models.py +16 -23
  323. reconcile/utils/membershipsources/resolver.py +4 -2
  324. reconcile/utils/merge_request_manager/merge_request_manager.py +4 -4
  325. reconcile/utils/merge_request_manager/parser.py +6 -6
  326. reconcile/utils/metrics.py +5 -5
  327. reconcile/utils/models.py +304 -82
  328. reconcile/utils/mr/app_interface_reporter.py +2 -2
  329. reconcile/utils/mr/notificator.py +3 -3
  330. reconcile/utils/mr/update_access_report_base.py +3 -4
  331. reconcile/utils/mr/user_maintenance.py +3 -2
  332. reconcile/utils/oc.py +252 -201
  333. reconcile/utils/oc_filters.py +3 -3
  334. reconcile/utils/ocm/addons.py +0 -1
  335. reconcile/utils/ocm/base.py +17 -20
  336. reconcile/utils/ocm/cluster_groups.py +1 -1
  337. reconcile/utils/ocm/identity_providers.py +2 -2
  338. reconcile/utils/ocm/labels.py +1 -1
  339. reconcile/utils/ocm/products.py +8 -8
  340. reconcile/utils/ocm/search_filters.py +3 -6
  341. reconcile/utils/ocm/service_log.py +4 -6
  342. reconcile/utils/ocm/sre_capability_labels.py +20 -13
  343. reconcile/utils/openshift_resource.py +8 -3
  344. reconcile/utils/pagerduty_api.py +10 -7
  345. reconcile/utils/promotion_state.py +6 -11
  346. reconcile/utils/quay_api.py +74 -87
  347. reconcile/utils/raw_github_api.py +1 -1
  348. reconcile/utils/rhcsv2_certs.py +86 -23
  349. reconcile/utils/rosa/session.py +16 -0
  350. reconcile/utils/runtime/integration.py +2 -3
  351. reconcile/utils/runtime/runner.py +2 -2
  352. reconcile/utils/saasherder/interfaces.py +13 -20
  353. reconcile/utils/saasherder/models.py +23 -20
  354. reconcile/utils/saasherder/saasherder.py +50 -27
  355. reconcile/utils/slack_api.py +2 -2
  356. reconcile/utils/sloth.py +171 -2
  357. reconcile/utils/structs.py +1 -1
  358. reconcile/utils/terraform_client.py +5 -4
  359. reconcile/utils/terrascript_aws_client.py +274 -124
  360. reconcile/utils/unleash/server.py +2 -8
  361. reconcile/utils/vault.py +5 -12
  362. reconcile/utils/vcs.py +8 -8
  363. reconcile/vault_replication.py +107 -42
  364. reconcile/vpc_peerings_validator.py +13 -0
  365. tools/app_interface_reporter.py +4 -4
  366. tools/cli_commands/cost_report/cost_management_api.py +3 -3
  367. tools/cli_commands/cost_report/view.py +7 -6
  368. tools/cli_commands/erv2.py +1 -1
  369. tools/qontract_cli.py +28 -17
  370. tools/template_validation.py +3 -1
  371. {qontract_reconcile-0.10.2.dev361.dist-info → qontract_reconcile-0.10.2.dev474.dist-info}/entry_points.txt +0 -0
@@ -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
  )
@@ -44,9 +44,9 @@ query UsersWithPaths {
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 AWSAccountV1(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
  )
@@ -31,9 +31,9 @@ query AppNames {
31
31
 
32
32
 
33
33
  class ConfiguredBaseModel(BaseModel):
34
- class Config:
35
- smart_union=True
36
- extra=Extra.forbid
34
+ model_config = ConfigDict(
35
+ extra='forbid'
36
+ )
37
37
 
38
38
 
39
39
  class AppV1_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 CostNamespaces($filter: JSON) {
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 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
  )
@@ -41,9 +41,9 @@ query CostReportAppInterfaceSettings {
41
41
 
42
42
 
43
43
  class ConfiguredBaseModel(BaseModel):
44
- class Config:
45
- smart_union=True
46
- extra=Extra.forbid
44
+ model_config = ConfigDict(
45
+ extra='forbid'
46
+ )
47
47
 
48
48
 
49
49
  class CostReportSettingsV1(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
  )
@@ -81,9 +81,9 @@ query SLODocuments {
81
81
 
82
82
 
83
83
  class ConfiguredBaseModel(BaseModel):
84
- class Config:
85
- smart_union=True
86
- extra=Extra.forbid
84
+ model_config = ConfigDict(
85
+ extra='forbid'
86
+ )
87
87
 
88
88
 
89
89
  class SLODocumentsQueryData(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
  )
@@ -43,9 +43,9 @@ query DynatraceEnvironment {
43
43
 
44
44
 
45
45
  class ConfiguredBaseModel(BaseModel):
46
- class Config:
47
- smart_union=True
48
- extra=Extra.forbid
46
+ model_config = ConfigDict(
47
+ extra='forbid'
48
+ )
49
49
 
50
50
 
51
51
  class DynatraceEnvironmentV1(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 DynatraceTokenProviderTokenSpecs {
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 DynatraceAPITokenV1(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
  )
@@ -36,9 +36,9 @@ query EmailApps {
36
36
 
37
37
 
38
38
  class ConfiguredBaseModel(BaseModel):
39
- class Config:
40
- smart_union=True
41
- extra=Extra.forbid
39
+ model_config = ConfigDict(
40
+ extra='forbid'
41
+ )
42
42
 
43
43
 
44
44
  class EmailAppsQueryData(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 Emails {
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 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
  )
@@ -34,9 +34,9 @@ query EmailUsers {
34
34
 
35
35
 
36
36
  class ConfiguredBaseModel(BaseModel):
37
- class Config:
38
- smart_union=True
39
- extra=Extra.forbid
37
+ model_config = ConfigDict(
38
+ extra='forbid'
39
+ )
40
40
 
41
41
 
42
42
  class EmailUsersQueryData(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
  )
@@ -82,9 +82,9 @@ query EndPointsDiscoveryApps {
82
82
 
83
83
 
84
84
  class ConfiguredBaseModel(BaseModel):
85
- class Config:
86
- smart_union=True
87
- extra=Extra.forbid
85
+ model_config = ConfigDict(
86
+ extra='forbid'
87
+ )
88
88
 
89
89
 
90
90
  class AppEndPointsV1(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 AWSExternalResourcesAccounts($filter: JSON) {
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 AWSAccountV1(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
  )
@@ -57,9 +57,9 @@ query ExternalResourcesModules {
57
57
 
58
58
 
59
59
  class ConfiguredBaseModel(BaseModel):
60
- class Config:
61
- smart_union=True
62
- extra=Extra.forbid
60
+ model_config = ConfigDict(
61
+ extra='forbid'
62
+ )
63
63
 
64
64
 
65
65
  class ExternalResourcesChannelV1(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
  )
@@ -158,6 +158,20 @@ query ExternalResourcesNamespaces {
158
158
  ...ExternalResourcesModuleOverrides
159
159
  }
160
160
  }
161
+ ... on NamespaceTerraformResourceRDSProxy_v1 {
162
+ region
163
+ identifier
164
+ defaults
165
+ overrides
166
+ output_resource_name
167
+ annotations
168
+ tags
169
+ managed_by_erv2
170
+ delete
171
+ module_overrides {
172
+ ...ExternalResourcesModuleOverrides
173
+ }
174
+ }
161
175
  ... on NamespaceTerraformResourceS3_v1 {
162
176
  region
163
177
  identifier
@@ -358,6 +372,7 @@ query ExternalResourcesNamespaces {
358
372
  identifier
359
373
  defaults
360
374
  es_identifier
375
+ policy
361
376
  output_resource_name
362
377
  annotations
363
378
  tags
@@ -560,6 +575,7 @@ query ExternalResourcesNamespaces {
560
575
  name
561
576
  labels
562
577
  servicePhase
578
+ costCenter
563
579
  }
564
580
  app {
565
581
  path
@@ -594,9 +610,9 @@ query ExternalResourcesNamespaces {
594
610
 
595
611
 
596
612
  class ConfiguredBaseModel(BaseModel):
597
- class Config:
598
- smart_union=True
599
- extra=Extra.forbid
613
+ model_config = ConfigDict(
614
+ extra='forbid'
615
+ )
600
616
 
601
617
 
602
618
  class NamespaceExternalResourceV1(ConfiguredBaseModel):
@@ -679,6 +695,19 @@ class NamespaceTerraformResourceRDSV1(NamespaceTerraformResourceAWSV1):
679
695
  module_overrides: Optional[ExternalResourcesModuleOverrides] = Field(..., alias="module_overrides")
680
696
 
681
697
 
698
+ class NamespaceTerraformResourceRDSProxyV1(NamespaceTerraformResourceAWSV1):
699
+ region: Optional[str] = Field(..., alias="region")
700
+ identifier: str = Field(..., alias="identifier")
701
+ defaults: str = Field(..., alias="defaults")
702
+ overrides: Optional[str] = Field(..., alias="overrides")
703
+ output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
704
+ annotations: Optional[str] = Field(..., alias="annotations")
705
+ tags: Optional[str] = Field(..., alias="tags")
706
+ managed_by_erv2: Optional[bool] = Field(..., alias="managed_by_erv2")
707
+ delete: Optional[bool] = Field(..., alias="delete")
708
+ module_overrides: Optional[ExternalResourcesModuleOverrides] = Field(..., alias="module_overrides")
709
+
710
+
682
711
  class AWSS3EventNotificationV1(ConfiguredBaseModel):
683
712
  destination_type: str = Field(..., alias="destination_type")
684
713
  destination: str = Field(..., alias="destination")
@@ -906,6 +935,7 @@ class NamespaceTerraformResourceKinesisV1(NamespaceTerraformResourceAWSV1):
906
935
  identifier: str = Field(..., alias="identifier")
907
936
  defaults: str = Field(..., alias="defaults")
908
937
  es_identifier: Optional[str] = Field(..., alias="es_identifier")
938
+ policy: Optional[str] = Field(..., alias="policy")
909
939
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
910
940
  annotations: Optional[str] = Field(..., alias="annotations")
911
941
  tags: Optional[str] = Field(..., alias="tags")
@@ -1140,20 +1170,21 @@ class NamespaceTerraformResourceMskV1(NamespaceTerraformResourceAWSV1):
1140
1170
 
1141
1171
  class NamespaceTerraformProviderResourceAWSV1(NamespaceExternalResourceV1):
1142
1172
  provisioner: AWSAccountV1 = Field(..., alias="provisioner")
1143
- resources: list[Union[NamespaceTerraformResourceRDSV1, NamespaceTerraformResourceRosaAuthenticatorV1, NamespaceTerraformResourceALBV1, NamespaceTerraformResourceS3V1, NamespaceTerraformResourceElastiCacheV1, NamespaceTerraformResourceCloudWatchV1, NamespaceTerraformResourceASGV1, NamespaceTerraformResourceRoleV1, NamespaceTerraformResourceKMSV1, NamespaceTerraformResourceMskV1, NamespaceTerraformResourceSNSTopicV1, NamespaceTerraformResourceServiceAccountV1, NamespaceTerraformResourceS3SQSV1, NamespaceTerraformResourceRosaAuthenticatorVPCEV1, NamespaceTerraformResourceS3CloudFrontV1, NamespaceTerraformResourceElasticSearchV1, NamespaceTerraformResourceACMV1, NamespaceTerraformResourceKinesisV1, NamespaceTerraformResourceRoute53ZoneV1, NamespaceTerraformResourceSQSV1, NamespaceTerraformResourceDynamoDBV1, NamespaceTerraformResourceECRV1, NamespaceTerraformResourceS3CloudFrontPublicKeyV1, NamespaceTerraformResourceSecretsManagerV1, NamespaceTerraformResourceSecretsManagerServiceAccountV1, NamespaceTerraformResourceAWSV1]] = Field(..., alias="resources")
1173
+ resources: list[Union[NamespaceTerraformResourceRDSV1, NamespaceTerraformResourceRosaAuthenticatorV1, NamespaceTerraformResourceALBV1, NamespaceTerraformResourceS3V1, NamespaceTerraformResourceElastiCacheV1, NamespaceTerraformResourceCloudWatchV1, NamespaceTerraformResourceASGV1, NamespaceTerraformResourceRDSProxyV1, NamespaceTerraformResourceRoleV1, NamespaceTerraformResourceKMSV1, NamespaceTerraformResourceMskV1, NamespaceTerraformResourceSNSTopicV1, NamespaceTerraformResourceServiceAccountV1, NamespaceTerraformResourceS3SQSV1, NamespaceTerraformResourceKinesisV1, NamespaceTerraformResourceRosaAuthenticatorVPCEV1, NamespaceTerraformResourceS3CloudFrontV1, NamespaceTerraformResourceElasticSearchV1, NamespaceTerraformResourceACMV1, NamespaceTerraformResourceRoute53ZoneV1, NamespaceTerraformResourceSQSV1, NamespaceTerraformResourceDynamoDBV1, NamespaceTerraformResourceECRV1, NamespaceTerraformResourceS3CloudFrontPublicKeyV1, NamespaceTerraformResourceSecretsManagerV1, NamespaceTerraformResourceSecretsManagerServiceAccountV1, NamespaceTerraformResourceAWSV1]] = Field(..., alias="resources")
1144
1174
 
1145
1175
 
1146
1176
  class EnvironmentV1(ConfiguredBaseModel):
1147
1177
  name: str = Field(..., alias="name")
1148
1178
  labels: str = Field(..., alias="labels")
1149
1179
  service_phase: str = Field(..., alias="servicePhase")
1180
+ cost_center: Optional[str] = Field(..., alias="costCenter")
1150
1181
 
1151
1182
 
1152
1183
  class AppV1(ConfiguredBaseModel):
1153
1184
  path: str = Field(..., alias="path")
1154
1185
  name: str = Field(..., alias="name")
1155
1186
  app_code: str = Field(..., alias="appCode")
1156
- cost_center: str = Field(..., alias="costCenter")
1187
+ cost_center: Optional[str] = Field(..., alias="costCenter")
1157
1188
 
1158
1189
 
1159
1190
  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
  )
@@ -61,9 +61,9 @@ query ExternalResourcesSettings {
61
61
 
62
62
 
63
63
  class ConfiguredBaseModel(BaseModel):
64
- class Config:
65
- smart_union=True
66
- extra=Extra.forbid
64
+ model_config = ConfigDict(
65
+ extra='forbid'
66
+ )
67
67
 
68
68
 
69
69
  class AWSAccountV1(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
  )
@@ -21,9 +21,9 @@ from reconcile.gql_definitions.fragments.deploy_resources import DeployResources
21
21
 
22
22
 
23
23
  class ConfiguredBaseModel(BaseModel):
24
- class Config:
25
- smart_union=True
26
- extra=Extra.forbid
24
+ model_config = ConfigDict(
25
+ extra='forbid'
26
+ )
27
27
 
28
28
 
29
29
  class ExternalResourcesModuleOverrides(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
  )
@@ -67,9 +67,9 @@ query FleetLabelSpecs {
67
67
 
68
68
 
69
69
  class ConfiguredBaseModel(BaseModel):
70
- class Config:
71
- smart_union=True
72
- extra=Extra.forbid
70
+ model_config = ConfigDict(
71
+ extra='forbid'
72
+ )
73
73
 
74
74
 
75
75
  class OpenShiftClusterManagerEnvironmentV1(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,9 +25,9 @@ from reconcile.gql_definitions.fragments.vault_secret import VaultSecret
25
25
 
26
26
 
27
27
  class ConfiguredBaseModel(BaseModel):
28
- class Config:
29
- smart_union=True
30
- extra=Extra.forbid
28
+ model_config = ConfigDict(
29
+ extra='forbid'
30
+ )
31
31
 
32
32
 
33
33
  class ClusterAddonV1(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,18 +12,19 @@ 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
+ from reconcile.gql_definitions.fragments.aws_organization import AWSOrganization
20
21
  from reconcile.gql_definitions.fragments.vault_secret import VaultSecret
21
22
 
22
23
 
23
24
  class ConfiguredBaseModel(BaseModel):
24
- class Config:
25
- smart_union=True
26
- extra=Extra.forbid
25
+ model_config = ConfigDict(
26
+ extra='forbid'
27
+ )
27
28
 
28
29
 
29
30
  class OwnerV1(ConfiguredBaseModel):
@@ -59,3 +60,4 @@ class AWSAccountCommon(ConfiguredBaseModel):
59
60
  delete_keys: Optional[list[str]] = Field(..., alias="deleteKeys")
60
61
  premium_support: bool = Field(..., alias="premiumSupport")
61
62
  partition: Optional[str] = Field(..., alias="partition")
63
+ organization: Optional[AWSOrganization] = Field(..., alias="organization")