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
@@ -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
  )
@@ -32,7 +32,7 @@ fragment AWSVPC on AWSVPC_v1 {
32
32
  uid
33
33
  terraformUsername
34
34
  automationToken {
35
- ... VaultSecret
35
+ ...VaultSecret
36
36
  }
37
37
  }
38
38
  region
@@ -50,7 +50,7 @@ fragment CommonJumphostFields on ClusterJumpHost_v1 {
50
50
  port
51
51
  remotePort
52
52
  identity {
53
- ... VaultSecret
53
+ ...VaultSecret
54
54
  }
55
55
  }
56
56
 
@@ -79,10 +79,10 @@ fragment ExternalResourcesModuleOverrides on ExternalResourcesModuleOverrides_v1
79
79
  }
80
80
 
81
81
  fragment VaultSecret on VaultSecret_v1 {
82
- path
83
- field
84
- version
85
- format
82
+ path
83
+ field
84
+ version
85
+ format
86
86
  }
87
87
 
88
88
  query ExternalResourcesNamespaces {
@@ -96,462 +96,503 @@ query ExternalResourcesNamespaces {
96
96
  provider
97
97
  ... on NamespaceTerraformProviderResourceAWS_v1 {
98
98
  provisioner {
99
- name
100
- resourcesDefaultRegion
101
- supportedDeploymentRegions
102
- externalResources {
103
- channel
104
- }
99
+ name
100
+ resourcesDefaultRegion
101
+ supportedDeploymentRegions
102
+ externalResources {
103
+ channel
104
+ }
105
105
  }
106
106
  resources {
107
- output_format {
107
+ output_format {
108
108
  provider
109
109
  ... on NamespaceTerraformResourceGenericSecretOutputFormat_v1 {
110
- data
111
- }
110
+ data
112
111
  }
113
- provider
114
- ... on NamespaceTerraformResourceRDS_v1 {
115
- region
116
- identifier
117
- defaults
118
- availability_zone
112
+ }
113
+ provider
114
+ ... on NamespaceTerraformResourceRDS_v1 {
115
+ region
116
+ identifier
117
+ defaults
118
+ availability_zone
119
+ parameter_group
120
+ old_parameter_group
121
+ blue_green_deployment {
122
+ enabled
123
+ switchover
124
+ switchover_timeout
125
+ delete
126
+ target {
127
+ allocated_storage
128
+ engine_version
129
+ instance_class
130
+ iops
119
131
  parameter_group
120
- old_parameter_group
121
- blue_green_deployment {
122
- enabled
123
- switchover
124
- switchover_timeout
125
- delete
126
- target {
127
- allocated_storage
128
- engine_version
129
- instance_class
130
- iops
131
- parameter_group
132
- storage_throughput
133
- storage_type
134
- }
135
- }
136
- overrides
137
- output_resource_name
138
- enhanced_monitoring
139
- replica_source
140
- output_resource_db_name
141
- reset_password
142
- ca_cert {
143
- ... VaultSecret
144
- }
145
- annotations
146
- event_notifications {
147
- destination
148
- source_type
149
- event_categories
150
- }
151
- data_classification {
152
- loss_impact
153
- }
154
- managed_by_erv2
155
- delete
156
- module_overrides {
157
- ... ExternalResourcesModuleOverrides
158
- }
132
+ storage_throughput
133
+ storage_type
134
+ }
159
135
  }
160
- ... on NamespaceTerraformResourceS3_v1 {
161
- region
162
- identifier
163
- defaults
164
- overrides
165
- sqs_identifier
166
- s3_events
167
- event_notifications {
168
- destination_type
169
- destination
170
- event_type
171
- filter_prefix
172
- filter_suffix
173
- }
174
- bucket_policy
175
- output_resource_name
176
- storage_class
177
- annotations
136
+ overrides
137
+ output_resource_name
138
+ enhanced_monitoring
139
+ replica_source
140
+ output_resource_db_name
141
+ reset_password
142
+ ca_cert {
143
+ ...VaultSecret
178
144
  }
179
- ... on NamespaceTerraformResourceElastiCache_v1 {
180
- identifier
181
- defaults
182
- parameter_group
183
- region
184
- overrides
185
- output_resource_name
186
- annotations
187
- managed_by_erv2
188
- delete
189
- module_overrides {
190
- ... ExternalResourcesModuleOverrides
191
- }
145
+ annotations
146
+ tags
147
+ event_notifications {
148
+ destination
149
+ source_type
150
+ event_categories
192
151
  }
193
- ... on NamespaceTerraformResourceServiceAccount_v1 {
194
- identifier
195
- variables
196
- policies
197
- user_policy
198
- output_resource_name
199
- annotations
200
- aws_infrastructure_access {
201
- cluster {
202
- name
203
- }
204
- access_level
205
- assume_role
206
- }
152
+ data_classification {
153
+ loss_impact
207
154
  }
208
- ... on NamespaceTerraformResourceSecretsManagerServiceAccount_v1 {
209
- identifier
210
- secrets_prefix
211
- output_resource_name
212
- annotations
155
+ managed_by_erv2
156
+ delete
157
+ module_overrides {
158
+ ...ExternalResourcesModuleOverrides
213
159
  }
214
- ... on NamespaceTerraformResourceRole_v1 {
215
- identifier
216
- assume_role {
217
- AWS
218
- Service
219
- Federated
220
- }
221
- assume_condition
222
- assume_action
223
- inline_policy
224
- output_resource_name
225
- annotations
226
- managed_by_erv2
227
- max_session_duration
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
228
173
  }
229
- ... on NamespaceTerraformResourceSQS_v1 {
230
- region
231
- identifier
232
- output_resource_name
233
- annotations
234
- specs {
235
- defaults
236
- queues {
237
- key
238
- value
239
- }
240
- }
174
+ }
175
+ ... on NamespaceTerraformResourceS3_v1 {
176
+ region
177
+ identifier
178
+ defaults
179
+ overrides
180
+ sqs_identifier
181
+ s3_events
182
+ event_notifications {
183
+ destination_type
184
+ destination
185
+ event_type
186
+ filter_prefix
187
+ filter_suffix
241
188
  }
242
- ... on NamespaceTerraformResourceSNSTopic_v1 {
243
- defaults
244
- region
245
- identifier
246
- output_resource_name
247
- fifo_topic
248
- inline_policy
249
- annotations
250
- subscriptions
251
- {
252
- protocol
253
- endpoint
254
- }
189
+ bucket_policy
190
+ output_resource_name
191
+ storage_class
192
+ annotations
193
+ tags
194
+ }
195
+ ... on NamespaceTerraformResourceElastiCache_v1 {
196
+ identifier
197
+ defaults
198
+ parameter_group
199
+ region
200
+ overrides
201
+ output_resource_name
202
+ annotations
203
+ tags
204
+ managed_by_erv2
205
+ delete
206
+ module_overrides {
207
+ ...ExternalResourcesModuleOverrides
255
208
  }
256
- ... on NamespaceTerraformResourceDynamoDB_v1 {
257
- region
258
- identifier
259
- output_resource_name
260
- annotations
261
- specs {
262
- defaults
263
- tables {
264
- key
265
- value
266
- }
267
- }
209
+ }
210
+ ... on NamespaceTerraformResourceServiceAccount_v1 {
211
+ identifier
212
+ variables
213
+ policies
214
+ user_policy
215
+ output_resource_name
216
+ annotations
217
+ tags
218
+ aws_infrastructure_access {
219
+ cluster {
220
+ name
221
+ }
222
+ access_level
223
+ assume_role
268
224
  }
269
- ... on NamespaceTerraformResourceECR_v1 {
270
- identifier
271
- region
272
- output_resource_name
273
- public
274
- annotations
225
+ }
226
+ ... on NamespaceTerraformResourceSecretsManagerServiceAccount_v1 {
227
+ identifier
228
+ secrets_prefix
229
+ output_resource_name
230
+ annotations
231
+ tags
232
+ }
233
+ ... on NamespaceTerraformResourceRole_v1 {
234
+ identifier
235
+ assume_role {
236
+ AWS
237
+ Service
238
+ Federated
275
239
  }
276
- ... on NamespaceTerraformResourceS3CloudFront_v1 {
277
- region
278
- identifier
279
- defaults
280
- output_resource_name
281
- storage_class
282
- annotations
240
+ assume_condition
241
+ assume_action
242
+ inline_policy
243
+ output_resource_name
244
+ annotations
245
+ tags
246
+ managed_by_erv2
247
+ max_session_duration
248
+ }
249
+ ... on NamespaceTerraformResourceSQS_v1 {
250
+ region
251
+ identifier
252
+ output_resource_name
253
+ annotations
254
+ tags
255
+ specs {
256
+ defaults
257
+ queues {
258
+ key
259
+ value
260
+ }
283
261
  }
284
- ... on NamespaceTerraformResourceS3SQS_v1 {
285
- region
286
- identifier
287
- defaults
288
- kms_encryption
289
- output_resource_name
290
- storage_class
291
- annotations
262
+ }
263
+ ... on NamespaceTerraformResourceSNSTopic_v1 {
264
+ defaults
265
+ region
266
+ identifier
267
+ output_resource_name
268
+ fifo_topic
269
+ inline_policy
270
+ annotations
271
+ tags
272
+ subscriptions {
273
+ protocol
274
+ endpoint
292
275
  }
293
- ... on NamespaceTerraformResourceCloudWatch_v1 {
294
- region
295
- identifier
296
- defaults
297
- es_identifier
298
- filter_pattern
299
- managed_by_erv2
300
- delete
301
- module_overrides {
302
- ... ExternalResourcesModuleOverrides
303
- }
304
- output_resource_name
305
- annotations
276
+ }
277
+ ... on NamespaceTerraformResourceDynamoDB_v1 {
278
+ region
279
+ identifier
280
+ output_resource_name
281
+ annotations
282
+ tags
283
+ specs {
284
+ defaults
285
+ tables {
286
+ key
287
+ value
288
+ }
306
289
  }
307
- ... on NamespaceTerraformResourceKMS_v1 {
308
- region
309
- identifier
310
- defaults
311
- overrides
312
- output_resource_name
313
- annotations
314
- managed_by_erv2
315
- delete
316
- module_overrides {
317
- ... ExternalResourcesModuleOverrides
318
- }
290
+ }
291
+ ... on NamespaceTerraformResourceECR_v1 {
292
+ identifier
293
+ region
294
+ output_resource_name
295
+ public
296
+ annotations
297
+ tags
298
+ }
299
+ ... on NamespaceTerraformResourceS3CloudFront_v1 {
300
+ region
301
+ identifier
302
+ defaults
303
+ output_resource_name
304
+ storage_class
305
+ annotations
306
+ tags
307
+ }
308
+ ... on NamespaceTerraformResourceS3SQS_v1 {
309
+ region
310
+ identifier
311
+ defaults
312
+ kms_encryption
313
+ output_resource_name
314
+ storage_class
315
+ annotations
316
+ tags
317
+ }
318
+ ... on NamespaceTerraformResourceCloudWatch_v1 {
319
+ region
320
+ identifier
321
+ defaults
322
+ es_identifier
323
+ filter_pattern
324
+ managed_by_erv2
325
+ delete
326
+ module_overrides {
327
+ ...ExternalResourcesModuleOverrides
319
328
  }
320
- ... on NamespaceTerraformResourceElasticSearch_v1 {
321
- region
322
- identifier
323
- defaults
324
- output_resource_name
325
- annotations
326
- publish_log_types
329
+ output_resource_name
330
+ annotations
331
+ tags
332
+ }
333
+ ... on NamespaceTerraformResourceKMS_v1 {
334
+ region
335
+ identifier
336
+ defaults
337
+ overrides
338
+ output_resource_name
339
+ annotations
340
+ tags
341
+ managed_by_erv2
342
+ delete
343
+ module_overrides {
344
+ ...ExternalResourcesModuleOverrides
327
345
  }
328
- ... on NamespaceTerraformResourceACM_v1 {
329
- region
330
- identifier
331
- secret {
332
- ... VaultSecret
333
- }
334
- domain {
335
- domain_name
336
- alternate_names
337
- }
338
- output_resource_name
339
- annotations
346
+ }
347
+ ... on NamespaceTerraformResourceElasticSearch_v1 {
348
+ region
349
+ identifier
350
+ defaults
351
+ output_resource_name
352
+ annotations
353
+ tags
354
+ publish_log_types
355
+ }
356
+ ... on NamespaceTerraformResourceACM_v1 {
357
+ region
358
+ identifier
359
+ secret {
360
+ ...VaultSecret
340
361
  }
341
- ... on NamespaceTerraformResourceKinesis_v1 {
342
- region
343
- identifier
344
- defaults
345
- es_identifier
346
- output_resource_name
347
- annotations
362
+ domain {
363
+ domain_name
364
+ alternate_names
348
365
  }
349
- ... on NamespaceTerraformResourceS3CloudFrontPublicKey_v1 {
350
- region
351
- identifier
352
- secret {
353
- ... VaultSecret
354
- }
355
- output_resource_name
356
- annotations
366
+ output_resource_name
367
+ annotations
368
+ tags
369
+ }
370
+ ... on NamespaceTerraformResourceKinesis_v1 {
371
+ region
372
+ identifier
373
+ defaults
374
+ es_identifier
375
+ output_resource_name
376
+ annotations
377
+ tags
378
+ }
379
+ ... on NamespaceTerraformResourceS3CloudFrontPublicKey_v1 {
380
+ region
381
+ identifier
382
+ secret {
383
+ ...VaultSecret
357
384
  }
358
- ... on NamespaceTerraformResourceALB_v1 {
359
- region
360
- identifier
361
- vpc {
362
- ... AWSVPC
363
- }
364
- certificate_arn
365
- ingress_cidr_blocks
366
- idle_timeout
367
- enable_http2
368
- ip_address_type
369
- access_logs
370
- targets {
371
- name
372
- default
373
- ips
374
- openshift_service
375
- protocol
376
- protocol_version
385
+ output_resource_name
386
+ annotations
387
+ tags
388
+ }
389
+ ... on NamespaceTerraformResourceALB_v1 {
390
+ region
391
+ identifier
392
+ vpc {
393
+ ...AWSVPC
394
+ }
395
+ certificate_arn
396
+ ingress_cidr_blocks
397
+ idle_timeout
398
+ enable_http2
399
+ ip_address_type
400
+ access_logs
401
+ targets {
402
+ name
403
+ default
404
+ ips
405
+ openshift_service
406
+ protocol
407
+ protocol_version
408
+ }
409
+ rules {
410
+ condition {
411
+ type
412
+ ... on NamespaceTerraformResourceALBConditionHostHeader_v1 {
413
+ host_header
377
414
  }
378
- rules {
379
- condition {
380
- type
381
- ... on NamespaceTerraformResourceALBConditionHostHeader_v1 {
382
- host_header
383
- }
384
- ... on NamespaceTerraformResourceALBConditionHTTPRequestMethod_v1 {
385
- http_request_method
386
- }
387
- ... on NamespaceTerraformResourceALBConditionPathPattern_v1 {
388
- path_pattern
389
- }
390
- ... on NamespaceTerraformResourceALBConditionSourceIP_v1 {
391
- source_ip
392
- }
393
- }
394
- action {
395
- type
396
- ... on NamespaceTerraformResourceALBActionForward_v1 {
397
- forward {
398
- target_group {
399
- target
400
- weight
401
- }
402
- }
403
- }
404
- ... on NamespaceTerraformResourceALBActionFixedResponse_v1 {
405
- fixed_response {
406
- content_type
407
- message_body
408
- status_code
409
- }
410
- }
411
- }
415
+ ... on NamespaceTerraformResourceALBConditionHTTPRequestMethod_v1 {
416
+ http_request_method
412
417
  }
413
- output_resource_name
414
- annotations
415
- }
416
- ... on NamespaceTerraformResourceSecretsManager_v1 {
417
- region
418
- identifier
419
- secret {
420
- ... VaultSecret
418
+ ... on NamespaceTerraformResourceALBConditionPathPattern_v1 {
419
+ path_pattern
421
420
  }
422
- output_resource_name
423
- annotations
424
- }
425
- ... on NamespaceTerraformResourceASG_v1 {
426
- region
427
- identifier
428
- defaults
429
- cloudinit_configs {
430
- filename
431
- content_type
432
- content
421
+ ... on NamespaceTerraformResourceALBConditionSourceIP_v1 {
422
+ source_ip
433
423
  }
434
- variables
435
- overrides
436
- extra_tags
437
- image {
438
- provider
439
- ... on ASGImageGit_v1 {
440
- tag_name
441
- url
442
- ref
443
- upstream {
444
- instance {
445
- name
446
- token {
447
- ... VaultSecret
448
- }
449
- }
450
- name
451
- }
452
- }
453
- ... on ASGImageStatic_v1 {
454
- tag_name
455
- value
424
+ }
425
+ action {
426
+ type
427
+ ... on NamespaceTerraformResourceALBActionForward_v1 {
428
+ forward {
429
+ target_group {
430
+ target
431
+ weight
456
432
  }
433
+ }
457
434
  }
458
- output_resource_name
459
- annotations
435
+ ... on NamespaceTerraformResourceALBActionFixedResponse_v1 {
436
+ fixed_response {
437
+ content_type
438
+ message_body
439
+ status_code
440
+ }
441
+ }
442
+ }
460
443
  }
461
- ... on NamespaceTerraformResourceRoute53Zone_v1 {
462
- region
463
- identifier
464
- name
465
- output_resource_name
466
- annotations
467
- records {
444
+ output_resource_name
445
+ annotations
446
+ tags
447
+ }
448
+ ... on NamespaceTerraformResourceSecretsManager_v1 {
449
+ region
450
+ identifier
451
+ secret {
452
+ ...VaultSecret
453
+ }
454
+ output_resource_name
455
+ annotations
456
+ tags
457
+ }
458
+ ... on NamespaceTerraformResourceASG_v1 {
459
+ region
460
+ identifier
461
+ defaults
462
+ cloudinit_configs {
463
+ filename
464
+ content_type
465
+ content
466
+ }
467
+ variables
468
+ overrides
469
+ extra_tags
470
+ image {
471
+ provider
472
+ ... on ASGImageGit_v1 {
473
+ tag_name
474
+ url
475
+ ref
476
+ upstream {
477
+ instance {
468
478
  name
469
- type
470
- ttl
471
- alias {
472
- name
473
- zone_id
474
- evaluate_target_health
479
+ token {
480
+ ...VaultSecret
475
481
  }
476
- weighted_routing_policy {
477
- weight
478
- }
479
- geolocation_routing_policy {
480
- continent
481
- country
482
- subdivision
483
- }
484
- set_identifier
485
- records
482
+ }
483
+ name
486
484
  }
485
+ }
486
+ ... on ASGImageStatic_v1 {
487
+ tag_name
488
+ value
489
+ }
487
490
  }
488
- ... on NamespaceTerraformResourceRosaAuthenticator_V1 {
489
- region
490
- identifier
491
- api_proxy_uri
492
- cognito_callback_bucket_name
493
- certificate_arn
494
- domain_name
495
- network_interface_ids
496
- openshift_ingress_load_balancer_arn
497
- insights_callback_urls
498
- output_resource_name
499
- annotations
500
- vpc_id
501
- subnet_ids
502
- vpce_id
503
- defaults
491
+ output_resource_name
492
+ annotations
493
+ tags
494
+ }
495
+ ... on NamespaceTerraformResourceRoute53Zone_v1 {
496
+ region
497
+ identifier
498
+ name
499
+ output_resource_name
500
+ annotations
501
+ tags
502
+ records {
503
+ name
504
+ type
505
+ ttl
506
+ alias {
507
+ name
508
+ zone_id
509
+ evaluate_target_health
510
+ }
511
+ weighted_routing_policy {
512
+ weight
513
+ }
514
+ geolocation_routing_policy {
515
+ continent
516
+ country
517
+ subdivision
518
+ }
519
+ set_identifier
520
+ records
504
521
  }
505
- ... on NamespaceTerraformResourceRosaAuthenticatorVPCE_V1 {
506
- region
507
- identifier
508
- subnet_ids,
509
- vpc_id,
510
- output_resource_name
511
- annotations
512
- defaults
522
+ }
523
+ ... on NamespaceTerraformResourceRosaAuthenticator_V1 {
524
+ region
525
+ identifier
526
+ api_proxy_uri
527
+ cognito_callback_bucket_name
528
+ certificate_arn
529
+ domain_name
530
+ network_interface_ids
531
+ openshift_ingress_load_balancer_arn
532
+ insights_callback_urls
533
+ output_resource_name
534
+ annotations
535
+ tags
536
+ vpc_id
537
+ subnet_ids
538
+ vpce_id
539
+ defaults
540
+ }
541
+ ... on NamespaceTerraformResourceRosaAuthenticatorVPCE_V1 {
542
+ region
543
+ identifier
544
+ subnet_ids
545
+ vpc_id
546
+ output_resource_name
547
+ annotations
548
+ tags
549
+ defaults
550
+ }
551
+ ... on NamespaceTerraformResourceMsk_v1 {
552
+ region
553
+ identifier
554
+ output_resource_name
555
+ defaults
556
+ annotations
557
+ tags
558
+ users {
559
+ name
560
+ secret {
561
+ ...VaultSecret
562
+ }
513
563
  }
514
- ... on NamespaceTerraformResourceMsk_v1 {
515
- region
516
- identifier
517
- output_resource_name
518
- defaults
519
- annotations
520
- users {
521
- name
522
- secret {
523
- ...VaultSecret
524
- }
525
- }
526
- managed_by_erv2
527
- delete
528
- module_overrides {
529
- ... ExternalResourcesModuleOverrides
530
- }
564
+ managed_by_erv2
565
+ delete
566
+ module_overrides {
567
+ ...ExternalResourcesModuleOverrides
531
568
  }
569
+ }
532
570
  }
533
571
  }
534
572
  }
535
573
  environment {
536
574
  name
537
575
  labels
576
+ servicePhase
538
577
  }
539
578
  app {
540
579
  path
541
580
  name
581
+ appCode
582
+ costCenter
542
583
  }
543
584
  cluster {
544
585
  name
545
586
  serverUrl
546
587
  insecureSkipTLSVerify
547
588
  jumpHost {
548
- ... CommonJumphostFields
589
+ ...CommonJumphostFields
549
590
  }
550
591
  automationToken {
551
- ... VaultSecret
592
+ ...VaultSecret
552
593
  }
553
594
  clusterAdminAutomationToken {
554
- ... VaultSecret
595
+ ...VaultSecret
555
596
  }
556
597
  spec {
557
598
  region
@@ -567,9 +608,9 @@ query ExternalResourcesNamespaces {
567
608
 
568
609
 
569
610
  class ConfiguredBaseModel(BaseModel):
570
- class Config:
571
- smart_union=True
572
- extra=Extra.forbid
611
+ model_config = ConfigDict(
612
+ extra='forbid'
613
+ )
573
614
 
574
615
 
575
616
  class NamespaceExternalResourceV1(ConfiguredBaseModel):
@@ -644,6 +685,7 @@ class NamespaceTerraformResourceRDSV1(NamespaceTerraformResourceAWSV1):
644
685
  reset_password: Optional[str] = Field(..., alias="reset_password")
645
686
  ca_cert: Optional[VaultSecret] = Field(..., alias="ca_cert")
646
687
  annotations: Optional[str] = Field(..., alias="annotations")
688
+ tags: Optional[str] = Field(..., alias="tags")
647
689
  event_notifications: Optional[list[AWSRDSEventNotificationV1]] = Field(..., alias="event_notifications")
648
690
  data_classification: Optional[AWSRDSDataClassificationV1] = Field(..., alias="data_classification")
649
691
  managed_by_erv2: Optional[bool] = Field(..., alias="managed_by_erv2")
@@ -651,6 +693,19 @@ class NamespaceTerraformResourceRDSV1(NamespaceTerraformResourceAWSV1):
651
693
  module_overrides: Optional[ExternalResourcesModuleOverrides] = Field(..., alias="module_overrides")
652
694
 
653
695
 
696
+ class NamespaceTerraformResourceRDSProxyV1(NamespaceTerraformResourceAWSV1):
697
+ region: Optional[str] = Field(..., alias="region")
698
+ identifier: str = Field(..., alias="identifier")
699
+ defaults: str = Field(..., alias="defaults")
700
+ overrides: Optional[str] = Field(..., alias="overrides")
701
+ output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
702
+ annotations: Optional[str] = Field(..., alias="annotations")
703
+ tags: Optional[str] = Field(..., alias="tags")
704
+ managed_by_erv2: Optional[bool] = Field(..., alias="managed_by_erv2")
705
+ delete: Optional[bool] = Field(..., alias="delete")
706
+ module_overrides: Optional[ExternalResourcesModuleOverrides] = Field(..., alias="module_overrides")
707
+
708
+
654
709
  class AWSS3EventNotificationV1(ConfiguredBaseModel):
655
710
  destination_type: str = Field(..., alias="destination_type")
656
711
  destination: str = Field(..., alias="destination")
@@ -671,6 +726,7 @@ class NamespaceTerraformResourceS3V1(NamespaceTerraformResourceAWSV1):
671
726
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
672
727
  storage_class: Optional[str] = Field(..., alias="storage_class")
673
728
  annotations: Optional[str] = Field(..., alias="annotations")
729
+ tags: Optional[str] = Field(..., alias="tags")
674
730
 
675
731
 
676
732
  class NamespaceTerraformResourceElastiCacheV1(NamespaceTerraformResourceAWSV1):
@@ -681,6 +737,7 @@ class NamespaceTerraformResourceElastiCacheV1(NamespaceTerraformResourceAWSV1):
681
737
  overrides: Optional[str] = Field(..., alias="overrides")
682
738
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
683
739
  annotations: Optional[str] = Field(..., alias="annotations")
740
+ tags: Optional[str] = Field(..., alias="tags")
684
741
  managed_by_erv2: Optional[bool] = Field(..., alias="managed_by_erv2")
685
742
  delete: Optional[bool] = Field(..., alias="delete")
686
743
  module_overrides: Optional[ExternalResourcesModuleOverrides] = Field(..., alias="module_overrides")
@@ -703,6 +760,7 @@ class NamespaceTerraformResourceServiceAccountV1(NamespaceTerraformResourceAWSV1
703
760
  user_policy: Optional[str] = Field(..., alias="user_policy")
704
761
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
705
762
  annotations: Optional[str] = Field(..., alias="annotations")
763
+ tags: Optional[str] = Field(..., alias="tags")
706
764
  aws_infrastructure_access: Optional[NamespaceTerraformResourceServiceAccountAWSInfrastructureAccessV1] = Field(..., alias="aws_infrastructure_access")
707
765
 
708
766
 
@@ -711,6 +769,7 @@ class NamespaceTerraformResourceSecretsManagerServiceAccountV1(NamespaceTerrafor
711
769
  secrets_prefix: str = Field(..., alias="secrets_prefix")
712
770
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
713
771
  annotations: Optional[str] = Field(..., alias="annotations")
772
+ tags: Optional[str] = Field(..., alias="tags")
714
773
 
715
774
 
716
775
  class AssumeRoleV1(ConfiguredBaseModel):
@@ -727,6 +786,7 @@ class NamespaceTerraformResourceRoleV1(NamespaceTerraformResourceAWSV1):
727
786
  inline_policy: Optional[str] = Field(..., alias="inline_policy")
728
787
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
729
788
  annotations: Optional[str] = Field(..., alias="annotations")
789
+ tags: Optional[str] = Field(..., alias="tags")
730
790
  managed_by_erv2: Optional[bool] = Field(..., alias="managed_by_erv2")
731
791
  max_session_duration: Optional[int] = Field(..., alias="max_session_duration")
732
792
 
@@ -746,6 +806,7 @@ class NamespaceTerraformResourceSQSV1(NamespaceTerraformResourceAWSV1):
746
806
  identifier: str = Field(..., alias="identifier")
747
807
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
748
808
  annotations: Optional[str] = Field(..., alias="annotations")
809
+ tags: Optional[str] = Field(..., alias="tags")
749
810
  specs: list[SQSQueuesSpecsV1] = Field(..., alias="specs")
750
811
 
751
812
 
@@ -762,6 +823,7 @@ class NamespaceTerraformResourceSNSTopicV1(NamespaceTerraformResourceAWSV1):
762
823
  fifo_topic: Optional[bool] = Field(..., alias="fifo_topic")
763
824
  inline_policy: Optional[str] = Field(..., alias="inline_policy")
764
825
  annotations: Optional[str] = Field(..., alias="annotations")
826
+ tags: Optional[str] = Field(..., alias="tags")
765
827
  subscriptions: Optional[list[NamespaceTerraformResourceSNSSubscriptionV1]] = Field(..., alias="subscriptions")
766
828
 
767
829
 
@@ -780,6 +842,7 @@ class NamespaceTerraformResourceDynamoDBV1(NamespaceTerraformResourceAWSV1):
780
842
  identifier: str = Field(..., alias="identifier")
781
843
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
782
844
  annotations: Optional[str] = Field(..., alias="annotations")
845
+ tags: Optional[str] = Field(..., alias="tags")
783
846
  specs: list[DynamoDBTableSpecsV1] = Field(..., alias="specs")
784
847
 
785
848
 
@@ -789,6 +852,7 @@ class NamespaceTerraformResourceECRV1(NamespaceTerraformResourceAWSV1):
789
852
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
790
853
  public: Optional[bool] = Field(..., alias="public")
791
854
  annotations: Optional[str] = Field(..., alias="annotations")
855
+ tags: Optional[str] = Field(..., alias="tags")
792
856
 
793
857
 
794
858
  class NamespaceTerraformResourceS3CloudFrontV1(NamespaceTerraformResourceAWSV1):
@@ -798,6 +862,7 @@ class NamespaceTerraformResourceS3CloudFrontV1(NamespaceTerraformResourceAWSV1):
798
862
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
799
863
  storage_class: Optional[str] = Field(..., alias="storage_class")
800
864
  annotations: Optional[str] = Field(..., alias="annotations")
865
+ tags: Optional[str] = Field(..., alias="tags")
801
866
 
802
867
 
803
868
  class NamespaceTerraformResourceS3SQSV1(NamespaceTerraformResourceAWSV1):
@@ -808,6 +873,7 @@ class NamespaceTerraformResourceS3SQSV1(NamespaceTerraformResourceAWSV1):
808
873
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
809
874
  storage_class: Optional[str] = Field(..., alias="storage_class")
810
875
  annotations: Optional[str] = Field(..., alias="annotations")
876
+ tags: Optional[str] = Field(..., alias="tags")
811
877
 
812
878
 
813
879
  class NamespaceTerraformResourceCloudWatchV1(NamespaceTerraformResourceAWSV1):
@@ -821,6 +887,7 @@ class NamespaceTerraformResourceCloudWatchV1(NamespaceTerraformResourceAWSV1):
821
887
  module_overrides: Optional[ExternalResourcesModuleOverrides] = Field(..., alias="module_overrides")
822
888
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
823
889
  annotations: Optional[str] = Field(..., alias="annotations")
890
+ tags: Optional[str] = Field(..., alias="tags")
824
891
 
825
892
 
826
893
  class NamespaceTerraformResourceKMSV1(NamespaceTerraformResourceAWSV1):
@@ -830,6 +897,7 @@ class NamespaceTerraformResourceKMSV1(NamespaceTerraformResourceAWSV1):
830
897
  overrides: Optional[str] = Field(..., alias="overrides")
831
898
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
832
899
  annotations: Optional[str] = Field(..., alias="annotations")
900
+ tags: Optional[str] = Field(..., alias="tags")
833
901
  managed_by_erv2: Optional[bool] = Field(..., alias="managed_by_erv2")
834
902
  delete: Optional[bool] = Field(..., alias="delete")
835
903
  module_overrides: Optional[ExternalResourcesModuleOverrides] = Field(..., alias="module_overrides")
@@ -841,6 +909,7 @@ class NamespaceTerraformResourceElasticSearchV1(NamespaceTerraformResourceAWSV1)
841
909
  defaults: str = Field(..., alias="defaults")
842
910
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
843
911
  annotations: Optional[str] = Field(..., alias="annotations")
912
+ tags: Optional[str] = Field(..., alias="tags")
844
913
  publish_log_types: Optional[list[str]] = Field(..., alias="publish_log_types")
845
914
 
846
915
 
@@ -856,6 +925,7 @@ class NamespaceTerraformResourceACMV1(NamespaceTerraformResourceAWSV1):
856
925
  domain: Optional[ACMDomainV1] = Field(..., alias="domain")
857
926
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
858
927
  annotations: Optional[str] = Field(..., alias="annotations")
928
+ tags: Optional[str] = Field(..., alias="tags")
859
929
 
860
930
 
861
931
  class NamespaceTerraformResourceKinesisV1(NamespaceTerraformResourceAWSV1):
@@ -865,6 +935,7 @@ class NamespaceTerraformResourceKinesisV1(NamespaceTerraformResourceAWSV1):
865
935
  es_identifier: Optional[str] = Field(..., alias="es_identifier")
866
936
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
867
937
  annotations: Optional[str] = Field(..., alias="annotations")
938
+ tags: Optional[str] = Field(..., alias="tags")
868
939
 
869
940
 
870
941
  class NamespaceTerraformResourceS3CloudFrontPublicKeyV1(NamespaceTerraformResourceAWSV1):
@@ -873,6 +944,7 @@ class NamespaceTerraformResourceS3CloudFrontPublicKeyV1(NamespaceTerraformResour
873
944
  secret: Optional[VaultSecret] = Field(..., alias="secret")
874
945
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
875
946
  annotations: Optional[str] = Field(..., alias="annotations")
947
+ tags: Optional[str] = Field(..., alias="tags")
876
948
 
877
949
 
878
950
  class NamespaceTerraformResourceALBTargetsV1(ConfiguredBaseModel):
@@ -950,6 +1022,7 @@ class NamespaceTerraformResourceALBV1(NamespaceTerraformResourceAWSV1):
950
1022
  rules: list[NamespaceTerraformResourceALBRulesV1] = Field(..., alias="rules")
951
1023
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
952
1024
  annotations: Optional[str] = Field(..., alias="annotations")
1025
+ tags: Optional[str] = Field(..., alias="tags")
953
1026
 
954
1027
 
955
1028
  class NamespaceTerraformResourceSecretsManagerV1(NamespaceTerraformResourceAWSV1):
@@ -958,6 +1031,7 @@ class NamespaceTerraformResourceSecretsManagerV1(NamespaceTerraformResourceAWSV1
958
1031
  secret: Optional[VaultSecret] = Field(..., alias="secret")
959
1032
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
960
1033
  annotations: Optional[str] = Field(..., alias="annotations")
1034
+ tags: Optional[str] = Field(..., alias="tags")
961
1035
 
962
1036
 
963
1037
  class CloudinitConfigV1(ConfiguredBaseModel):
@@ -1003,6 +1077,7 @@ class NamespaceTerraformResourceASGV1(NamespaceTerraformResourceAWSV1):
1003
1077
  image: list[Union[ASGImageGitV1, ASGImageStaticV1, ASGImageV1]] = Field(..., alias="image")
1004
1078
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
1005
1079
  annotations: Optional[str] = Field(..., alias="annotations")
1080
+ tags: Optional[str] = Field(..., alias="tags")
1006
1081
 
1007
1082
 
1008
1083
  class DnsRecordAliasV1(ConfiguredBaseModel):
@@ -1038,6 +1113,7 @@ class NamespaceTerraformResourceRoute53ZoneV1(NamespaceTerraformResourceAWSV1):
1038
1113
  name: str = Field(..., alias="name")
1039
1114
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
1040
1115
  annotations: Optional[str] = Field(..., alias="annotations")
1116
+ tags: Optional[str] = Field(..., alias="tags")
1041
1117
  records: Optional[list[DnsRecordV1]] = Field(..., alias="records")
1042
1118
 
1043
1119
 
@@ -1053,6 +1129,7 @@ class NamespaceTerraformResourceRosaAuthenticatorV1(NamespaceTerraformResourceAW
1053
1129
  insights_callback_urls: Optional[list[str]] = Field(..., alias="insights_callback_urls")
1054
1130
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
1055
1131
  annotations: Optional[str] = Field(..., alias="annotations")
1132
+ tags: Optional[str] = Field(..., alias="tags")
1056
1133
  vpc_id: str = Field(..., alias="vpc_id")
1057
1134
  subnet_ids: list[str] = Field(..., alias="subnet_ids")
1058
1135
  vpce_id: Optional[str] = Field(..., alias="vpce_id")
@@ -1066,6 +1143,7 @@ class NamespaceTerraformResourceRosaAuthenticatorVPCEV1(NamespaceTerraformResour
1066
1143
  vpc_id: str = Field(..., alias="vpc_id")
1067
1144
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
1068
1145
  annotations: Optional[str] = Field(..., alias="annotations")
1146
+ tags: Optional[str] = Field(..., alias="tags")
1069
1147
  defaults: str = Field(..., alias="defaults")
1070
1148
 
1071
1149
 
@@ -1080,6 +1158,7 @@ class NamespaceTerraformResourceMskV1(NamespaceTerraformResourceAWSV1):
1080
1158
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
1081
1159
  defaults: str = Field(..., alias="defaults")
1082
1160
  annotations: Optional[str] = Field(..., alias="annotations")
1161
+ tags: Optional[str] = Field(..., alias="tags")
1083
1162
  users: Optional[list[MskSecretParametersV1]] = Field(..., alias="users")
1084
1163
  managed_by_erv2: Optional[bool] = Field(..., alias="managed_by_erv2")
1085
1164
  delete: Optional[bool] = Field(..., alias="delete")
@@ -1088,17 +1167,20 @@ class NamespaceTerraformResourceMskV1(NamespaceTerraformResourceAWSV1):
1088
1167
 
1089
1168
  class NamespaceTerraformProviderResourceAWSV1(NamespaceExternalResourceV1):
1090
1169
  provisioner: AWSAccountV1 = Field(..., alias="provisioner")
1091
- 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")
1170
+ resources: list[Union[NamespaceTerraformResourceRDSV1, NamespaceTerraformResourceRosaAuthenticatorV1, NamespaceTerraformResourceALBV1, NamespaceTerraformResourceS3V1, NamespaceTerraformResourceElastiCacheV1, NamespaceTerraformResourceCloudWatchV1, NamespaceTerraformResourceASGV1, NamespaceTerraformResourceRDSProxyV1, NamespaceTerraformResourceRoleV1, NamespaceTerraformResourceKMSV1, NamespaceTerraformResourceMskV1, NamespaceTerraformResourceSNSTopicV1, NamespaceTerraformResourceServiceAccountV1, NamespaceTerraformResourceS3SQSV1, NamespaceTerraformResourceRosaAuthenticatorVPCEV1, NamespaceTerraformResourceS3CloudFrontV1, NamespaceTerraformResourceElasticSearchV1, NamespaceTerraformResourceACMV1, NamespaceTerraformResourceKinesisV1, NamespaceTerraformResourceRoute53ZoneV1, NamespaceTerraformResourceSQSV1, NamespaceTerraformResourceDynamoDBV1, NamespaceTerraformResourceECRV1, NamespaceTerraformResourceS3CloudFrontPublicKeyV1, NamespaceTerraformResourceSecretsManagerV1, NamespaceTerraformResourceSecretsManagerServiceAccountV1, NamespaceTerraformResourceAWSV1]] = Field(..., alias="resources")
1092
1171
 
1093
1172
 
1094
1173
  class EnvironmentV1(ConfiguredBaseModel):
1095
1174
  name: str = Field(..., alias="name")
1096
1175
  labels: str = Field(..., alias="labels")
1176
+ service_phase: str = Field(..., alias="servicePhase")
1097
1177
 
1098
1178
 
1099
1179
  class AppV1(ConfiguredBaseModel):
1100
1180
  path: str = Field(..., alias="path")
1101
1181
  name: str = Field(..., alias="name")
1182
+ app_code: str = Field(..., alias="appCode")
1183
+ cost_center: str = Field(..., alias="costCenter")
1102
1184
 
1103
1185
 
1104
1186
  class ClusterSpecV1(ConfiguredBaseModel):