qontract-reconcile 0.10.2.dev334__py3-none-any.whl → 0.10.2.dev439__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.

Potentially problematic release.


This version of qontract-reconcile might be problematic. Click here for more details.

Files changed (370) hide show
  1. {qontract_reconcile-0.10.2.dev334.dist-info → qontract_reconcile-0.10.2.dev439.dist-info}/METADATA +13 -12
  2. {qontract_reconcile-0.10.2.dev334.dist-info → qontract_reconcile-0.10.2.dev439.dist-info}/RECORD +366 -361
  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 +3 -3
  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 +6 -12
  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 +11 -3
  28. reconcile/cli.py +111 -18
  29. reconcile/dashdotdb_dora.py +5 -12
  30. reconcile/dashdotdb_slo.py +1 -1
  31. reconcile/database_access_manager.py +123 -117
  32. reconcile/dynatrace_token_provider/integration.py +1 -1
  33. reconcile/endpoints_discovery/integration.py +4 -1
  34. reconcile/endpoints_discovery/merge_request.py +1 -1
  35. reconcile/endpoints_discovery/merge_request_manager.py +9 -11
  36. reconcile/external_resources/factories.py +5 -12
  37. reconcile/external_resources/integration.py +1 -1
  38. reconcile/external_resources/manager.py +8 -5
  39. reconcile/external_resources/meta.py +0 -1
  40. reconcile/external_resources/metrics.py +1 -1
  41. reconcile/external_resources/model.py +20 -20
  42. reconcile/external_resources/reconciler.py +7 -4
  43. reconcile/external_resources/secrets_sync.py +8 -11
  44. reconcile/external_resources/state.py +26 -16
  45. reconcile/fleet_labeler/integration.py +1 -1
  46. reconcile/gabi_authorized_users.py +8 -5
  47. reconcile/gcp_image_mirror.py +2 -2
  48. reconcile/github_org.py +1 -1
  49. reconcile/github_owners.py +4 -0
  50. reconcile/gitlab_housekeeping.py +13 -15
  51. reconcile/gitlab_members.py +6 -12
  52. reconcile/gitlab_mr_sqs_consumer.py +2 -2
  53. reconcile/gitlab_owners.py +15 -11
  54. reconcile/gitlab_permissions.py +8 -12
  55. reconcile/glitchtip_project_alerts/integration.py +3 -1
  56. reconcile/gql_definitions/acs/acs_instances.py +10 -10
  57. reconcile/gql_definitions/acs/acs_policies.py +5 -5
  58. reconcile/gql_definitions/acs/acs_rbac.py +6 -6
  59. reconcile/gql_definitions/advanced_upgrade_service/aus_clusters.py +32 -32
  60. reconcile/gql_definitions/advanced_upgrade_service/aus_organization.py +26 -26
  61. reconcile/gql_definitions/app_interface_metrics_exporter/onboarding_status.py +6 -7
  62. reconcile/gql_definitions/app_sre_tekton_access_revalidation/roles.py +5 -5
  63. reconcile/gql_definitions/app_sre_tekton_access_revalidation/users.py +5 -5
  64. reconcile/gql_definitions/automated_actions/instance.py +51 -12
  65. reconcile/gql_definitions/aws_account_manager/aws_accounts.py +11 -11
  66. reconcile/gql_definitions/aws_ami_cleanup/aws_accounts.py +20 -10
  67. reconcile/gql_definitions/aws_cloudwatch_log_retention/aws_accounts.py +28 -68
  68. reconcile/gql_definitions/aws_saml_idp/aws_accounts.py +20 -10
  69. reconcile/gql_definitions/aws_saml_roles/aws_accounts.py +20 -10
  70. reconcile/gql_definitions/aws_saml_roles/roles.py +5 -5
  71. reconcile/gql_definitions/aws_version_sync/clusters.py +10 -10
  72. reconcile/gql_definitions/aws_version_sync/namespaces.py +5 -5
  73. reconcile/gql_definitions/change_owners/queries/change_types.py +5 -5
  74. reconcile/gql_definitions/change_owners/queries/self_service_roles.py +9 -9
  75. reconcile/gql_definitions/cluster_auth_rhidp/clusters.py +18 -18
  76. reconcile/gql_definitions/common/alerting_services_settings.py +9 -9
  77. reconcile/gql_definitions/common/app_code_component_repos.py +5 -5
  78. reconcile/gql_definitions/common/app_interface_custom_messages.py +5 -5
  79. reconcile/gql_definitions/common/app_interface_dms_settings.py +5 -5
  80. reconcile/gql_definitions/common/app_interface_repo_settings.py +5 -5
  81. reconcile/gql_definitions/common/app_interface_roles.py +120 -0
  82. reconcile/gql_definitions/common/app_interface_state_settings.py +10 -10
  83. reconcile/gql_definitions/common/app_interface_vault_settings.py +5 -5
  84. reconcile/gql_definitions/common/app_quay_repos_escalation_policies.py +5 -5
  85. reconcile/gql_definitions/common/apps.py +5 -5
  86. reconcile/gql_definitions/common/aws_vpc_requests.py +22 -9
  87. reconcile/gql_definitions/common/aws_vpcs.py +11 -11
  88. reconcile/gql_definitions/common/clusters.py +37 -35
  89. reconcile/gql_definitions/common/clusters_minimal.py +14 -14
  90. reconcile/gql_definitions/common/clusters_with_dms.py +6 -6
  91. reconcile/gql_definitions/common/clusters_with_peering.py +29 -30
  92. reconcile/gql_definitions/common/github_orgs.py +10 -10
  93. reconcile/gql_definitions/common/jira_settings.py +10 -10
  94. reconcile/gql_definitions/common/jiralert_settings.py +5 -5
  95. reconcile/gql_definitions/common/ldap_settings.py +5 -5
  96. reconcile/gql_definitions/common/namespaces.py +42 -44
  97. reconcile/gql_definitions/common/namespaces_minimal.py +15 -13
  98. reconcile/gql_definitions/common/ocm_env_telemeter.py +12 -12
  99. reconcile/gql_definitions/common/ocm_environments.py +19 -19
  100. reconcile/gql_definitions/common/pagerduty_instances.py +9 -9
  101. reconcile/gql_definitions/common/pgp_reencryption_settings.py +6 -6
  102. reconcile/gql_definitions/common/pipeline_providers.py +29 -29
  103. reconcile/gql_definitions/common/quay_instances.py +5 -5
  104. reconcile/gql_definitions/common/quay_orgs.py +5 -5
  105. reconcile/gql_definitions/common/reserved_networks.py +5 -5
  106. reconcile/gql_definitions/common/rhcs_provider_settings.py +5 -5
  107. reconcile/gql_definitions/common/saas_files.py +44 -44
  108. reconcile/gql_definitions/common/saas_target_namespaces.py +10 -10
  109. reconcile/gql_definitions/common/saasherder_settings.py +5 -5
  110. reconcile/gql_definitions/common/slack_workspaces.py +5 -5
  111. reconcile/gql_definitions/common/smtp_client_settings.py +19 -19
  112. reconcile/gql_definitions/common/state_aws_account.py +7 -8
  113. reconcile/gql_definitions/common/users.py +5 -5
  114. reconcile/gql_definitions/common/users_with_paths.py +5 -5
  115. reconcile/gql_definitions/cost_report/app_names.py +5 -5
  116. reconcile/gql_definitions/cost_report/cost_namespaces.py +5 -5
  117. reconcile/gql_definitions/cost_report/settings.py +9 -9
  118. reconcile/gql_definitions/dashdotdb_slo/slo_documents_query.py +43 -43
  119. reconcile/gql_definitions/dynatrace_token_provider/dynatrace_bootstrap_tokens.py +10 -10
  120. reconcile/gql_definitions/dynatrace_token_provider/token_specs.py +5 -5
  121. reconcile/gql_definitions/email_sender/apps.py +5 -5
  122. reconcile/gql_definitions/email_sender/emails.py +8 -8
  123. reconcile/gql_definitions/email_sender/users.py +6 -6
  124. reconcile/gql_definitions/endpoints_discovery/apps.py +10 -10
  125. reconcile/gql_definitions/external_resources/aws_accounts.py +9 -9
  126. reconcile/gql_definitions/external_resources/external_resources_modules.py +23 -23
  127. reconcile/gql_definitions/external_resources/external_resources_namespaces.py +494 -410
  128. reconcile/gql_definitions/external_resources/external_resources_settings.py +28 -26
  129. reconcile/gql_definitions/external_resources/fragments/external_resources_module_overrides.py +5 -5
  130. reconcile/gql_definitions/fleet_labeler/fleet_labels.py +40 -40
  131. reconcile/gql_definitions/fragments/aus_organization.py +5 -5
  132. reconcile/gql_definitions/fragments/aws_account_common.py +7 -5
  133. reconcile/gql_definitions/fragments/aws_account_managed.py +5 -5
  134. reconcile/gql_definitions/fragments/aws_account_sso.py +5 -5
  135. reconcile/gql_definitions/fragments/aws_infra_management_account.py +5 -5
  136. reconcile/gql_definitions/fragments/{aws_vpc_request_subnet.py → aws_organization.py} +12 -8
  137. reconcile/gql_definitions/fragments/aws_vpc.py +5 -5
  138. reconcile/gql_definitions/fragments/aws_vpc_request.py +12 -5
  139. reconcile/gql_definitions/fragments/container_image_mirror.py +5 -5
  140. reconcile/gql_definitions/fragments/deploy_resources.py +5 -5
  141. reconcile/gql_definitions/fragments/disable.py +5 -5
  142. reconcile/gql_definitions/fragments/email_service.py +5 -5
  143. reconcile/gql_definitions/fragments/email_user.py +5 -5
  144. reconcile/gql_definitions/fragments/jumphost_common_fields.py +5 -5
  145. reconcile/gql_definitions/fragments/membership_source.py +5 -5
  146. reconcile/gql_definitions/fragments/minimal_ocm_organization.py +5 -5
  147. reconcile/gql_definitions/fragments/oc_connection_cluster.py +5 -5
  148. reconcile/gql_definitions/fragments/ocm_environment.py +5 -5
  149. reconcile/gql_definitions/fragments/pipeline_provider_retention.py +5 -5
  150. reconcile/gql_definitions/fragments/prometheus_instance.py +5 -5
  151. reconcile/gql_definitions/fragments/resource_limits_requirements.py +5 -5
  152. reconcile/gql_definitions/fragments/resource_requests_requirements.py +5 -5
  153. reconcile/gql_definitions/fragments/resource_values.py +5 -5
  154. reconcile/gql_definitions/fragments/saas_slo_document.py +5 -5
  155. reconcile/gql_definitions/fragments/saas_target_namespace.py +5 -5
  156. reconcile/gql_definitions/fragments/serviceaccount_token.py +5 -5
  157. reconcile/gql_definitions/fragments/terraform_state.py +5 -5
  158. reconcile/gql_definitions/fragments/upgrade_policy.py +5 -5
  159. reconcile/gql_definitions/fragments/user.py +5 -5
  160. reconcile/gql_definitions/fragments/vault_secret.py +5 -5
  161. reconcile/gql_definitions/gcp/gcp_docker_repos.py +9 -9
  162. reconcile/gql_definitions/gcp/gcp_projects.py +9 -9
  163. reconcile/gql_definitions/gitlab_members/gitlab_instances.py +9 -9
  164. reconcile/gql_definitions/gitlab_members/permissions.py +9 -9
  165. reconcile/gql_definitions/glitchtip/glitchtip_instance.py +9 -9
  166. reconcile/gql_definitions/glitchtip/glitchtip_project.py +11 -11
  167. reconcile/gql_definitions/glitchtip_project_alerts/glitchtip_project.py +9 -9
  168. reconcile/gql_definitions/integrations/integrations.py +48 -51
  169. reconcile/gql_definitions/introspection.json +3207 -1683
  170. reconcile/gql_definitions/jenkins_configs/jenkins_configs.py +11 -11
  171. reconcile/gql_definitions/jenkins_configs/jenkins_instances.py +10 -10
  172. reconcile/gql_definitions/jira/jira_servers.py +5 -5
  173. reconcile/gql_definitions/jira_permissions_validator/jira_boards_for_permissions_validator.py +14 -10
  174. reconcile/gql_definitions/jumphosts/jumphosts.py +13 -13
  175. reconcile/gql_definitions/ldap_groups/roles.py +5 -5
  176. reconcile/gql_definitions/ldap_groups/settings.py +9 -9
  177. reconcile/gql_definitions/maintenance/maintenances.py +5 -5
  178. reconcile/gql_definitions/membershipsources/roles.py +5 -5
  179. reconcile/gql_definitions/ocm_labels/clusters.py +18 -19
  180. reconcile/gql_definitions/ocm_labels/organizations.py +5 -5
  181. reconcile/gql_definitions/openshift_cluster_bots/clusters.py +22 -22
  182. reconcile/gql_definitions/openshift_groups/managed_groups.py +5 -5
  183. reconcile/gql_definitions/openshift_groups/managed_roles.py +6 -6
  184. reconcile/gql_definitions/openshift_serviceaccount_tokens/tokens.py +10 -10
  185. reconcile/gql_definitions/quay_membership/quay_membership.py +6 -6
  186. reconcile/gql_definitions/rhcs/certs.py +33 -87
  187. reconcile/gql_definitions/rhcs/openshift_resource_rhcs_cert.py +43 -0
  188. reconcile/gql_definitions/rhidp/organizations.py +18 -18
  189. reconcile/gql_definitions/service_dependencies/jenkins_instance_fragment.py +5 -5
  190. reconcile/gql_definitions/service_dependencies/service_dependencies.py +8 -8
  191. reconcile/gql_definitions/sharding/aws_accounts.py +10 -10
  192. reconcile/gql_definitions/sharding/ocm_organization.py +8 -8
  193. reconcile/gql_definitions/skupper_network/site_controller_template.py +5 -5
  194. reconcile/gql_definitions/skupper_network/skupper_networks.py +10 -10
  195. reconcile/gql_definitions/slack_usergroups/clusters.py +5 -5
  196. reconcile/gql_definitions/slack_usergroups/permissions.py +9 -9
  197. reconcile/gql_definitions/slack_usergroups/users.py +5 -5
  198. reconcile/gql_definitions/slo_documents/slo_documents.py +5 -5
  199. reconcile/gql_definitions/status_board/status_board.py +6 -7
  200. reconcile/gql_definitions/statuspage/statuspages.py +9 -9
  201. reconcile/gql_definitions/templating/template_collection.py +5 -5
  202. reconcile/gql_definitions/templating/templates.py +5 -5
  203. reconcile/gql_definitions/terraform_cloudflare_dns/app_interface_cloudflare_dns_settings.py +6 -6
  204. reconcile/gql_definitions/terraform_cloudflare_dns/terraform_cloudflare_zones.py +11 -11
  205. reconcile/gql_definitions/terraform_cloudflare_resources/terraform_cloudflare_accounts.py +11 -11
  206. reconcile/gql_definitions/terraform_cloudflare_resources/terraform_cloudflare_resources.py +20 -25
  207. reconcile/gql_definitions/terraform_cloudflare_users/app_interface_setting_cloudflare_and_vault.py +6 -6
  208. reconcile/gql_definitions/terraform_cloudflare_users/terraform_cloudflare_roles.py +12 -12
  209. reconcile/gql_definitions/terraform_init/aws_accounts.py +23 -9
  210. reconcile/gql_definitions/terraform_repo/terraform_repo.py +9 -9
  211. reconcile/gql_definitions/terraform_resources/database_access_manager.py +5 -5
  212. reconcile/gql_definitions/terraform_resources/terraform_resources_namespaces.py +440 -407
  213. reconcile/gql_definitions/terraform_tgw_attachments/aws_accounts.py +23 -17
  214. reconcile/gql_definitions/unleash_feature_toggles/feature_toggles.py +9 -9
  215. reconcile/gql_definitions/vault_instances/vault_instances.py +61 -61
  216. reconcile/gql_definitions/vault_policies/vault_policies.py +11 -11
  217. reconcile/gql_definitions/vpc_peerings_validator/vpc_peerings_validator.py +8 -8
  218. reconcile/gql_definitions/vpc_peerings_validator/vpc_peerings_validator_peered_cluster_fragment.py +5 -5
  219. reconcile/integrations_manager.py +3 -3
  220. reconcile/jenkins_worker_fleets.py +10 -8
  221. reconcile/jira_permissions_validator.py +237 -122
  222. reconcile/ldap_groups/integration.py +1 -1
  223. reconcile/ocm/types.py +35 -56
  224. reconcile/ocm_aws_infrastructure_access.py +1 -1
  225. reconcile/ocm_clusters.py +4 -4
  226. reconcile/ocm_labels/integration.py +3 -2
  227. reconcile/ocm_machine_pools.py +33 -27
  228. reconcile/openshift_base.py +113 -5
  229. reconcile/openshift_cluster_bots.py +3 -2
  230. reconcile/openshift_namespace_labels.py +1 -1
  231. reconcile/openshift_namespaces.py +97 -101
  232. reconcile/openshift_resources_base.py +6 -2
  233. reconcile/openshift_rhcs_certs.py +74 -37
  234. reconcile/openshift_rolebindings.py +230 -130
  235. reconcile/openshift_saas_deploy.py +6 -7
  236. reconcile/openshift_saas_deploy_change_tester.py +9 -7
  237. reconcile/openshift_saas_deploy_trigger_cleaner.py +3 -5
  238. reconcile/openshift_serviceaccount_tokens.py +2 -2
  239. reconcile/openshift_upgrade_watcher.py +4 -4
  240. reconcile/openshift_users.py +5 -3
  241. reconcile/oum/labelset.py +5 -3
  242. reconcile/oum/models.py +1 -4
  243. reconcile/prometheus_rules_tester/integration.py +3 -3
  244. reconcile/quay_mirror.py +1 -1
  245. reconcile/queries.py +131 -0
  246. reconcile/rhidp/common.py +3 -5
  247. reconcile/rhidp/sso_client/base.py +16 -5
  248. reconcile/saas_auto_promotions_manager/merge_request_manager/renderer.py +1 -1
  249. reconcile/saas_auto_promotions_manager/subscriber.py +4 -3
  250. reconcile/skupper_network/integration.py +2 -2
  251. reconcile/slack_usergroups.py +35 -14
  252. reconcile/sql_query.py +1 -0
  253. reconcile/status_board.py +6 -6
  254. reconcile/statuspage/atlassian.py +7 -7
  255. reconcile/statuspage/integrations/maintenances.py +4 -3
  256. reconcile/statuspage/page.py +4 -9
  257. reconcile/statuspage/status.py +5 -8
  258. reconcile/templates/rosa-classic-cluster-creation.sh.j2 +5 -1
  259. reconcile/templates/rosa-hcp-cluster-creation.sh.j2 +4 -1
  260. reconcile/templating/lib/merge_request_manager.py +2 -2
  261. reconcile/templating/lib/rendering.py +3 -3
  262. reconcile/templating/renderer.py +12 -13
  263. reconcile/terraform_aws_route53.py +7 -1
  264. reconcile/terraform_cloudflare_dns.py +3 -3
  265. reconcile/terraform_cloudflare_resources.py +5 -5
  266. reconcile/terraform_cloudflare_users.py +3 -2
  267. reconcile/terraform_init/integration.py +187 -23
  268. reconcile/terraform_repo.py +16 -12
  269. reconcile/terraform_resources.py +17 -7
  270. reconcile/terraform_tgw_attachments.py +27 -19
  271. reconcile/terraform_users.py +7 -0
  272. reconcile/terraform_vpc_peerings.py +14 -3
  273. reconcile/terraform_vpc_resources/integration.py +20 -8
  274. reconcile/typed_queries/app_interface_roles.py +10 -0
  275. reconcile/typed_queries/aws_account_tags.py +41 -0
  276. reconcile/typed_queries/cost_report/app_names.py +1 -1
  277. reconcile/typed_queries/cost_report/cost_namespaces.py +2 -2
  278. reconcile/typed_queries/saas_files.py +13 -13
  279. reconcile/typed_queries/status_board.py +2 -2
  280. reconcile/unleash_feature_toggles/integration.py +4 -2
  281. reconcile/utils/acs/base.py +6 -3
  282. reconcile/utils/acs/policies.py +2 -2
  283. reconcile/utils/aggregated_list.py +4 -3
  284. reconcile/utils/aws_api.py +51 -20
  285. reconcile/utils/aws_api_typed/api.py +38 -9
  286. reconcile/utils/aws_api_typed/cloudformation.py +149 -0
  287. reconcile/utils/aws_api_typed/logs.py +73 -0
  288. reconcile/utils/aws_api_typed/organization.py +4 -2
  289. reconcile/utils/binary.py +7 -12
  290. reconcile/utils/datetime_util.py +67 -0
  291. reconcile/utils/deadmanssnitch_api.py +1 -1
  292. reconcile/utils/differ.py +2 -3
  293. reconcile/utils/early_exit_cache.py +11 -12
  294. reconcile/utils/expiration.py +7 -3
  295. reconcile/utils/external_resource_spec.py +24 -1
  296. reconcile/utils/filtering.py +1 -1
  297. reconcile/utils/gitlab_api.py +7 -5
  298. reconcile/utils/glitchtip/client.py +6 -2
  299. reconcile/utils/glitchtip/models.py +25 -28
  300. reconcile/utils/gql.py +4 -7
  301. reconcile/utils/helm.py +2 -1
  302. reconcile/utils/helpers.py +1 -1
  303. reconcile/utils/instrumented_wrappers.py +1 -1
  304. reconcile/utils/internal_groups/client.py +2 -2
  305. reconcile/utils/internal_groups/models.py +8 -17
  306. reconcile/utils/jinja2/utils.py +6 -8
  307. reconcile/utils/jira_client.py +82 -63
  308. reconcile/utils/jjb_client.py +28 -15
  309. reconcile/utils/jobcontroller/controller.py +2 -2
  310. reconcile/utils/jobcontroller/models.py +17 -1
  311. reconcile/utils/json.py +74 -0
  312. reconcile/utils/membershipsources/app_interface_resolver.py +4 -2
  313. reconcile/utils/membershipsources/models.py +16 -23
  314. reconcile/utils/membershipsources/resolver.py +4 -2
  315. reconcile/utils/merge_request_manager/merge_request_manager.py +4 -4
  316. reconcile/utils/merge_request_manager/parser.py +6 -6
  317. reconcile/utils/metrics.py +5 -5
  318. reconcile/utils/models.py +304 -82
  319. reconcile/utils/mr/app_interface_reporter.py +2 -2
  320. reconcile/utils/mr/base.py +2 -2
  321. reconcile/utils/mr/notificator.py +3 -3
  322. reconcile/utils/mr/update_access_report_base.py +3 -4
  323. reconcile/utils/mr/user_maintenance.py +3 -2
  324. reconcile/utils/oc.py +249 -203
  325. reconcile/utils/oc_filters.py +3 -3
  326. reconcile/utils/ocm/addons.py +0 -1
  327. reconcile/utils/ocm/base.py +18 -21
  328. reconcile/utils/ocm/cluster_groups.py +1 -1
  329. reconcile/utils/ocm/identity_providers.py +2 -2
  330. reconcile/utils/ocm/labels.py +1 -1
  331. reconcile/utils/ocm/products.py +9 -3
  332. reconcile/utils/ocm/search_filters.py +3 -6
  333. reconcile/utils/ocm/service_log.py +4 -6
  334. reconcile/utils/ocm/sre_capability_labels.py +20 -13
  335. reconcile/utils/openshift_resource.py +10 -5
  336. reconcile/utils/output.py +3 -2
  337. reconcile/utils/pagerduty_api.py +10 -7
  338. reconcile/utils/promotion_state.py +6 -11
  339. reconcile/utils/raw_github_api.py +1 -1
  340. reconcile/utils/rhcsv2_certs.py +138 -35
  341. reconcile/utils/rosa/session.py +16 -0
  342. reconcile/utils/runtime/integration.py +2 -3
  343. reconcile/utils/runtime/runner.py +2 -2
  344. reconcile/utils/saasherder/interfaces.py +13 -20
  345. reconcile/utils/saasherder/models.py +25 -21
  346. reconcile/utils/saasherder/saasherder.py +55 -31
  347. reconcile/utils/slack_api.py +26 -4
  348. reconcile/utils/sloth.py +224 -0
  349. reconcile/utils/sqs_gateway.py +2 -1
  350. reconcile/utils/state.py +2 -1
  351. reconcile/utils/structs.py +1 -1
  352. reconcile/utils/terraform_client.py +5 -4
  353. reconcile/utils/terrascript_aws_client.py +192 -114
  354. reconcile/utils/unleash/server.py +2 -8
  355. reconcile/utils/vault.py +5 -12
  356. reconcile/utils/vcs.py +8 -8
  357. reconcile/vault_replication.py +107 -42
  358. tools/app_interface_reporter.py +4 -4
  359. tools/cli_commands/cost_report/cost_management_api.py +3 -3
  360. tools/cli_commands/cost_report/view.py +7 -6
  361. tools/cli_commands/erv2.py +1 -1
  362. tools/cli_commands/systems_and_tools.py +5 -1
  363. tools/qontract_cli.py +31 -18
  364. tools/template_validation.py +3 -1
  365. reconcile/gql_definitions/cna/__init__.py +0 -0
  366. reconcile/gql_definitions/cna/queries/__init__.py +0 -0
  367. reconcile/gql_definitions/ocm_oidc_idp/__init__.py +0 -0
  368. reconcile/gql_definitions/ocm_subscription_labels/__init__.py +0 -0
  369. {qontract_reconcile-0.10.2.dev334.dist-info → qontract_reconcile-0.10.2.dev439.dist-info}/WHEEL +0 -0
  370. {qontract_reconcile-0.10.2.dev334.dist-info → qontract_reconcile-0.10.2.dev439.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,504 @@ 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
+ policy
376
+ output_resource_name
377
+ annotations
378
+ tags
379
+ }
380
+ ... on NamespaceTerraformResourceS3CloudFrontPublicKey_v1 {
381
+ region
382
+ identifier
383
+ secret {
384
+ ...VaultSecret
357
385
  }
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
386
+ output_resource_name
387
+ annotations
388
+ tags
389
+ }
390
+ ... on NamespaceTerraformResourceALB_v1 {
391
+ region
392
+ identifier
393
+ vpc {
394
+ ...AWSVPC
395
+ }
396
+ certificate_arn
397
+ ingress_cidr_blocks
398
+ idle_timeout
399
+ enable_http2
400
+ ip_address_type
401
+ access_logs
402
+ targets {
403
+ name
404
+ default
405
+ ips
406
+ openshift_service
407
+ protocol
408
+ protocol_version
409
+ }
410
+ rules {
411
+ condition {
412
+ type
413
+ ... on NamespaceTerraformResourceALBConditionHostHeader_v1 {
414
+ host_header
377
415
  }
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
- }
416
+ ... on NamespaceTerraformResourceALBConditionHTTPRequestMethod_v1 {
417
+ http_request_method
412
418
  }
413
- output_resource_name
414
- annotations
415
- }
416
- ... on NamespaceTerraformResourceSecretsManager_v1 {
417
- region
418
- identifier
419
- secret {
420
- ... VaultSecret
419
+ ... on NamespaceTerraformResourceALBConditionPathPattern_v1 {
420
+ path_pattern
421
421
  }
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
422
+ ... on NamespaceTerraformResourceALBConditionSourceIP_v1 {
423
+ source_ip
433
424
  }
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
425
+ }
426
+ action {
427
+ type
428
+ ... on NamespaceTerraformResourceALBActionForward_v1 {
429
+ forward {
430
+ target_group {
431
+ target
432
+ weight
456
433
  }
434
+ }
457
435
  }
458
- output_resource_name
459
- annotations
436
+ ... on NamespaceTerraformResourceALBActionFixedResponse_v1 {
437
+ fixed_response {
438
+ content_type
439
+ message_body
440
+ status_code
441
+ }
442
+ }
443
+ }
460
444
  }
461
- ... on NamespaceTerraformResourceRoute53Zone_v1 {
462
- region
463
- identifier
464
- name
465
- output_resource_name
466
- annotations
467
- records {
445
+ output_resource_name
446
+ annotations
447
+ tags
448
+ }
449
+ ... on NamespaceTerraformResourceSecretsManager_v1 {
450
+ region
451
+ identifier
452
+ secret {
453
+ ...VaultSecret
454
+ }
455
+ output_resource_name
456
+ annotations
457
+ tags
458
+ }
459
+ ... on NamespaceTerraformResourceASG_v1 {
460
+ region
461
+ identifier
462
+ defaults
463
+ cloudinit_configs {
464
+ filename
465
+ content_type
466
+ content
467
+ }
468
+ variables
469
+ overrides
470
+ extra_tags
471
+ image {
472
+ provider
473
+ ... on ASGImageGit_v1 {
474
+ tag_name
475
+ url
476
+ ref
477
+ upstream {
478
+ instance {
468
479
  name
469
- type
470
- ttl
471
- alias {
472
- name
473
- zone_id
474
- evaluate_target_health
480
+ token {
481
+ ...VaultSecret
475
482
  }
476
- weighted_routing_policy {
477
- weight
478
- }
479
- geolocation_routing_policy {
480
- continent
481
- country
482
- subdivision
483
- }
484
- set_identifier
485
- records
483
+ }
484
+ name
486
485
  }
486
+ }
487
+ ... on ASGImageStatic_v1 {
488
+ tag_name
489
+ value
490
+ }
487
491
  }
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
492
+ output_resource_name
493
+ annotations
494
+ tags
495
+ }
496
+ ... on NamespaceTerraformResourceRoute53Zone_v1 {
497
+ region
498
+ identifier
499
+ name
500
+ output_resource_name
501
+ annotations
502
+ tags
503
+ records {
504
+ name
505
+ type
506
+ ttl
507
+ alias {
508
+ name
509
+ zone_id
510
+ evaluate_target_health
511
+ }
512
+ weighted_routing_policy {
513
+ weight
514
+ }
515
+ geolocation_routing_policy {
516
+ continent
517
+ country
518
+ subdivision
519
+ }
520
+ set_identifier
521
+ records
504
522
  }
505
- ... on NamespaceTerraformResourceRosaAuthenticatorVPCE_V1 {
506
- region
507
- identifier
508
- subnet_ids,
509
- vpc_id,
510
- output_resource_name
511
- annotations
512
- defaults
523
+ }
524
+ ... on NamespaceTerraformResourceRosaAuthenticator_V1 {
525
+ region
526
+ identifier
527
+ api_proxy_uri
528
+ cognito_callback_bucket_name
529
+ certificate_arn
530
+ domain_name
531
+ network_interface_ids
532
+ openshift_ingress_load_balancer_arn
533
+ insights_callback_urls
534
+ output_resource_name
535
+ annotations
536
+ tags
537
+ vpc_id
538
+ subnet_ids
539
+ vpce_id
540
+ defaults
541
+ }
542
+ ... on NamespaceTerraformResourceRosaAuthenticatorVPCE_V1 {
543
+ region
544
+ identifier
545
+ subnet_ids
546
+ vpc_id
547
+ output_resource_name
548
+ annotations
549
+ tags
550
+ defaults
551
+ }
552
+ ... on NamespaceTerraformResourceMsk_v1 {
553
+ region
554
+ identifier
555
+ output_resource_name
556
+ defaults
557
+ annotations
558
+ tags
559
+ users {
560
+ name
561
+ secret {
562
+ ...VaultSecret
563
+ }
513
564
  }
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
- }
565
+ managed_by_erv2
566
+ delete
567
+ module_overrides {
568
+ ...ExternalResourcesModuleOverrides
531
569
  }
570
+ }
532
571
  }
533
572
  }
534
573
  }
535
574
  environment {
536
575
  name
537
576
  labels
577
+ servicePhase
538
578
  }
539
579
  app {
540
580
  path
541
581
  name
582
+ appCode
583
+ costCenter
542
584
  }
543
585
  cluster {
544
586
  name
545
587
  serverUrl
546
588
  insecureSkipTLSVerify
547
589
  jumpHost {
548
- ... CommonJumphostFields
590
+ ...CommonJumphostFields
549
591
  }
550
592
  automationToken {
551
- ... VaultSecret
593
+ ...VaultSecret
552
594
  }
553
595
  clusterAdminAutomationToken {
554
- ... VaultSecret
596
+ ...VaultSecret
555
597
  }
556
598
  spec {
557
599
  region
@@ -567,9 +609,9 @@ query ExternalResourcesNamespaces {
567
609
 
568
610
 
569
611
  class ConfiguredBaseModel(BaseModel):
570
- class Config:
571
- smart_union=True
572
- extra=Extra.forbid
612
+ model_config = ConfigDict(
613
+ extra='forbid'
614
+ )
573
615
 
574
616
 
575
617
  class NamespaceExternalResourceV1(ConfiguredBaseModel):
@@ -644,6 +686,7 @@ class NamespaceTerraformResourceRDSV1(NamespaceTerraformResourceAWSV1):
644
686
  reset_password: Optional[str] = Field(..., alias="reset_password")
645
687
  ca_cert: Optional[VaultSecret] = Field(..., alias="ca_cert")
646
688
  annotations: Optional[str] = Field(..., alias="annotations")
689
+ tags: Optional[str] = Field(..., alias="tags")
647
690
  event_notifications: Optional[list[AWSRDSEventNotificationV1]] = Field(..., alias="event_notifications")
648
691
  data_classification: Optional[AWSRDSDataClassificationV1] = Field(..., alias="data_classification")
649
692
  managed_by_erv2: Optional[bool] = Field(..., alias="managed_by_erv2")
@@ -651,6 +694,19 @@ class NamespaceTerraformResourceRDSV1(NamespaceTerraformResourceAWSV1):
651
694
  module_overrides: Optional[ExternalResourcesModuleOverrides] = Field(..., alias="module_overrides")
652
695
 
653
696
 
697
+ class NamespaceTerraformResourceRDSProxyV1(NamespaceTerraformResourceAWSV1):
698
+ region: Optional[str] = Field(..., alias="region")
699
+ identifier: str = Field(..., alias="identifier")
700
+ defaults: str = Field(..., alias="defaults")
701
+ overrides: Optional[str] = Field(..., alias="overrides")
702
+ output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
703
+ annotations: Optional[str] = Field(..., alias="annotations")
704
+ tags: Optional[str] = Field(..., alias="tags")
705
+ managed_by_erv2: Optional[bool] = Field(..., alias="managed_by_erv2")
706
+ delete: Optional[bool] = Field(..., alias="delete")
707
+ module_overrides: Optional[ExternalResourcesModuleOverrides] = Field(..., alias="module_overrides")
708
+
709
+
654
710
  class AWSS3EventNotificationV1(ConfiguredBaseModel):
655
711
  destination_type: str = Field(..., alias="destination_type")
656
712
  destination: str = Field(..., alias="destination")
@@ -671,6 +727,7 @@ class NamespaceTerraformResourceS3V1(NamespaceTerraformResourceAWSV1):
671
727
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
672
728
  storage_class: Optional[str] = Field(..., alias="storage_class")
673
729
  annotations: Optional[str] = Field(..., alias="annotations")
730
+ tags: Optional[str] = Field(..., alias="tags")
674
731
 
675
732
 
676
733
  class NamespaceTerraformResourceElastiCacheV1(NamespaceTerraformResourceAWSV1):
@@ -681,6 +738,7 @@ class NamespaceTerraformResourceElastiCacheV1(NamespaceTerraformResourceAWSV1):
681
738
  overrides: Optional[str] = Field(..., alias="overrides")
682
739
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
683
740
  annotations: Optional[str] = Field(..., alias="annotations")
741
+ tags: Optional[str] = Field(..., alias="tags")
684
742
  managed_by_erv2: Optional[bool] = Field(..., alias="managed_by_erv2")
685
743
  delete: Optional[bool] = Field(..., alias="delete")
686
744
  module_overrides: Optional[ExternalResourcesModuleOverrides] = Field(..., alias="module_overrides")
@@ -703,6 +761,7 @@ class NamespaceTerraformResourceServiceAccountV1(NamespaceTerraformResourceAWSV1
703
761
  user_policy: Optional[str] = Field(..., alias="user_policy")
704
762
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
705
763
  annotations: Optional[str] = Field(..., alias="annotations")
764
+ tags: Optional[str] = Field(..., alias="tags")
706
765
  aws_infrastructure_access: Optional[NamespaceTerraformResourceServiceAccountAWSInfrastructureAccessV1] = Field(..., alias="aws_infrastructure_access")
707
766
 
708
767
 
@@ -711,6 +770,7 @@ class NamespaceTerraformResourceSecretsManagerServiceAccountV1(NamespaceTerrafor
711
770
  secrets_prefix: str = Field(..., alias="secrets_prefix")
712
771
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
713
772
  annotations: Optional[str] = Field(..., alias="annotations")
773
+ tags: Optional[str] = Field(..., alias="tags")
714
774
 
715
775
 
716
776
  class AssumeRoleV1(ConfiguredBaseModel):
@@ -727,6 +787,7 @@ class NamespaceTerraformResourceRoleV1(NamespaceTerraformResourceAWSV1):
727
787
  inline_policy: Optional[str] = Field(..., alias="inline_policy")
728
788
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
729
789
  annotations: Optional[str] = Field(..., alias="annotations")
790
+ tags: Optional[str] = Field(..., alias="tags")
730
791
  managed_by_erv2: Optional[bool] = Field(..., alias="managed_by_erv2")
731
792
  max_session_duration: Optional[int] = Field(..., alias="max_session_duration")
732
793
 
@@ -746,6 +807,7 @@ class NamespaceTerraformResourceSQSV1(NamespaceTerraformResourceAWSV1):
746
807
  identifier: str = Field(..., alias="identifier")
747
808
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
748
809
  annotations: Optional[str] = Field(..., alias="annotations")
810
+ tags: Optional[str] = Field(..., alias="tags")
749
811
  specs: list[SQSQueuesSpecsV1] = Field(..., alias="specs")
750
812
 
751
813
 
@@ -762,6 +824,7 @@ class NamespaceTerraformResourceSNSTopicV1(NamespaceTerraformResourceAWSV1):
762
824
  fifo_topic: Optional[bool] = Field(..., alias="fifo_topic")
763
825
  inline_policy: Optional[str] = Field(..., alias="inline_policy")
764
826
  annotations: Optional[str] = Field(..., alias="annotations")
827
+ tags: Optional[str] = Field(..., alias="tags")
765
828
  subscriptions: Optional[list[NamespaceTerraformResourceSNSSubscriptionV1]] = Field(..., alias="subscriptions")
766
829
 
767
830
 
@@ -780,6 +843,7 @@ class NamespaceTerraformResourceDynamoDBV1(NamespaceTerraformResourceAWSV1):
780
843
  identifier: str = Field(..., alias="identifier")
781
844
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
782
845
  annotations: Optional[str] = Field(..., alias="annotations")
846
+ tags: Optional[str] = Field(..., alias="tags")
783
847
  specs: list[DynamoDBTableSpecsV1] = Field(..., alias="specs")
784
848
 
785
849
 
@@ -789,6 +853,7 @@ class NamespaceTerraformResourceECRV1(NamespaceTerraformResourceAWSV1):
789
853
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
790
854
  public: Optional[bool] = Field(..., alias="public")
791
855
  annotations: Optional[str] = Field(..., alias="annotations")
856
+ tags: Optional[str] = Field(..., alias="tags")
792
857
 
793
858
 
794
859
  class NamespaceTerraformResourceS3CloudFrontV1(NamespaceTerraformResourceAWSV1):
@@ -798,6 +863,7 @@ class NamespaceTerraformResourceS3CloudFrontV1(NamespaceTerraformResourceAWSV1):
798
863
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
799
864
  storage_class: Optional[str] = Field(..., alias="storage_class")
800
865
  annotations: Optional[str] = Field(..., alias="annotations")
866
+ tags: Optional[str] = Field(..., alias="tags")
801
867
 
802
868
 
803
869
  class NamespaceTerraformResourceS3SQSV1(NamespaceTerraformResourceAWSV1):
@@ -808,6 +874,7 @@ class NamespaceTerraformResourceS3SQSV1(NamespaceTerraformResourceAWSV1):
808
874
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
809
875
  storage_class: Optional[str] = Field(..., alias="storage_class")
810
876
  annotations: Optional[str] = Field(..., alias="annotations")
877
+ tags: Optional[str] = Field(..., alias="tags")
811
878
 
812
879
 
813
880
  class NamespaceTerraformResourceCloudWatchV1(NamespaceTerraformResourceAWSV1):
@@ -821,6 +888,7 @@ class NamespaceTerraformResourceCloudWatchV1(NamespaceTerraformResourceAWSV1):
821
888
  module_overrides: Optional[ExternalResourcesModuleOverrides] = Field(..., alias="module_overrides")
822
889
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
823
890
  annotations: Optional[str] = Field(..., alias="annotations")
891
+ tags: Optional[str] = Field(..., alias="tags")
824
892
 
825
893
 
826
894
  class NamespaceTerraformResourceKMSV1(NamespaceTerraformResourceAWSV1):
@@ -830,6 +898,7 @@ class NamespaceTerraformResourceKMSV1(NamespaceTerraformResourceAWSV1):
830
898
  overrides: Optional[str] = Field(..., alias="overrides")
831
899
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
832
900
  annotations: Optional[str] = Field(..., alias="annotations")
901
+ tags: Optional[str] = Field(..., alias="tags")
833
902
  managed_by_erv2: Optional[bool] = Field(..., alias="managed_by_erv2")
834
903
  delete: Optional[bool] = Field(..., alias="delete")
835
904
  module_overrides: Optional[ExternalResourcesModuleOverrides] = Field(..., alias="module_overrides")
@@ -841,6 +910,7 @@ class NamespaceTerraformResourceElasticSearchV1(NamespaceTerraformResourceAWSV1)
841
910
  defaults: str = Field(..., alias="defaults")
842
911
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
843
912
  annotations: Optional[str] = Field(..., alias="annotations")
913
+ tags: Optional[str] = Field(..., alias="tags")
844
914
  publish_log_types: Optional[list[str]] = Field(..., alias="publish_log_types")
845
915
 
846
916
 
@@ -856,6 +926,7 @@ class NamespaceTerraformResourceACMV1(NamespaceTerraformResourceAWSV1):
856
926
  domain: Optional[ACMDomainV1] = Field(..., alias="domain")
857
927
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
858
928
  annotations: Optional[str] = Field(..., alias="annotations")
929
+ tags: Optional[str] = Field(..., alias="tags")
859
930
 
860
931
 
861
932
  class NamespaceTerraformResourceKinesisV1(NamespaceTerraformResourceAWSV1):
@@ -863,8 +934,10 @@ class NamespaceTerraformResourceKinesisV1(NamespaceTerraformResourceAWSV1):
863
934
  identifier: str = Field(..., alias="identifier")
864
935
  defaults: str = Field(..., alias="defaults")
865
936
  es_identifier: Optional[str] = Field(..., alias="es_identifier")
937
+ policy: Optional[str] = Field(..., alias="policy")
866
938
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
867
939
  annotations: Optional[str] = Field(..., alias="annotations")
940
+ tags: Optional[str] = Field(..., alias="tags")
868
941
 
869
942
 
870
943
  class NamespaceTerraformResourceS3CloudFrontPublicKeyV1(NamespaceTerraformResourceAWSV1):
@@ -873,6 +946,7 @@ class NamespaceTerraformResourceS3CloudFrontPublicKeyV1(NamespaceTerraformResour
873
946
  secret: Optional[VaultSecret] = Field(..., alias="secret")
874
947
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
875
948
  annotations: Optional[str] = Field(..., alias="annotations")
949
+ tags: Optional[str] = Field(..., alias="tags")
876
950
 
877
951
 
878
952
  class NamespaceTerraformResourceALBTargetsV1(ConfiguredBaseModel):
@@ -950,6 +1024,7 @@ class NamespaceTerraformResourceALBV1(NamespaceTerraformResourceAWSV1):
950
1024
  rules: list[NamespaceTerraformResourceALBRulesV1] = Field(..., alias="rules")
951
1025
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
952
1026
  annotations: Optional[str] = Field(..., alias="annotations")
1027
+ tags: Optional[str] = Field(..., alias="tags")
953
1028
 
954
1029
 
955
1030
  class NamespaceTerraformResourceSecretsManagerV1(NamespaceTerraformResourceAWSV1):
@@ -958,6 +1033,7 @@ class NamespaceTerraformResourceSecretsManagerV1(NamespaceTerraformResourceAWSV1
958
1033
  secret: Optional[VaultSecret] = Field(..., alias="secret")
959
1034
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
960
1035
  annotations: Optional[str] = Field(..., alias="annotations")
1036
+ tags: Optional[str] = Field(..., alias="tags")
961
1037
 
962
1038
 
963
1039
  class CloudinitConfigV1(ConfiguredBaseModel):
@@ -1003,6 +1079,7 @@ class NamespaceTerraformResourceASGV1(NamespaceTerraformResourceAWSV1):
1003
1079
  image: list[Union[ASGImageGitV1, ASGImageStaticV1, ASGImageV1]] = Field(..., alias="image")
1004
1080
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
1005
1081
  annotations: Optional[str] = Field(..., alias="annotations")
1082
+ tags: Optional[str] = Field(..., alias="tags")
1006
1083
 
1007
1084
 
1008
1085
  class DnsRecordAliasV1(ConfiguredBaseModel):
@@ -1038,6 +1115,7 @@ class NamespaceTerraformResourceRoute53ZoneV1(NamespaceTerraformResourceAWSV1):
1038
1115
  name: str = Field(..., alias="name")
1039
1116
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
1040
1117
  annotations: Optional[str] = Field(..., alias="annotations")
1118
+ tags: Optional[str] = Field(..., alias="tags")
1041
1119
  records: Optional[list[DnsRecordV1]] = Field(..., alias="records")
1042
1120
 
1043
1121
 
@@ -1053,6 +1131,7 @@ class NamespaceTerraformResourceRosaAuthenticatorV1(NamespaceTerraformResourceAW
1053
1131
  insights_callback_urls: Optional[list[str]] = Field(..., alias="insights_callback_urls")
1054
1132
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
1055
1133
  annotations: Optional[str] = Field(..., alias="annotations")
1134
+ tags: Optional[str] = Field(..., alias="tags")
1056
1135
  vpc_id: str = Field(..., alias="vpc_id")
1057
1136
  subnet_ids: list[str] = Field(..., alias="subnet_ids")
1058
1137
  vpce_id: Optional[str] = Field(..., alias="vpce_id")
@@ -1066,6 +1145,7 @@ class NamespaceTerraformResourceRosaAuthenticatorVPCEV1(NamespaceTerraformResour
1066
1145
  vpc_id: str = Field(..., alias="vpc_id")
1067
1146
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
1068
1147
  annotations: Optional[str] = Field(..., alias="annotations")
1148
+ tags: Optional[str] = Field(..., alias="tags")
1069
1149
  defaults: str = Field(..., alias="defaults")
1070
1150
 
1071
1151
 
@@ -1080,6 +1160,7 @@ class NamespaceTerraformResourceMskV1(NamespaceTerraformResourceAWSV1):
1080
1160
  output_resource_name: Optional[str] = Field(..., alias="output_resource_name")
1081
1161
  defaults: str = Field(..., alias="defaults")
1082
1162
  annotations: Optional[str] = Field(..., alias="annotations")
1163
+ tags: Optional[str] = Field(..., alias="tags")
1083
1164
  users: Optional[list[MskSecretParametersV1]] = Field(..., alias="users")
1084
1165
  managed_by_erv2: Optional[bool] = Field(..., alias="managed_by_erv2")
1085
1166
  delete: Optional[bool] = Field(..., alias="delete")
@@ -1088,17 +1169,20 @@ class NamespaceTerraformResourceMskV1(NamespaceTerraformResourceAWSV1):
1088
1169
 
1089
1170
  class NamespaceTerraformProviderResourceAWSV1(NamespaceExternalResourceV1):
1090
1171
  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")
1172
+ 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")
1092
1173
 
1093
1174
 
1094
1175
  class EnvironmentV1(ConfiguredBaseModel):
1095
1176
  name: str = Field(..., alias="name")
1096
1177
  labels: str = Field(..., alias="labels")
1178
+ service_phase: str = Field(..., alias="servicePhase")
1097
1179
 
1098
1180
 
1099
1181
  class AppV1(ConfiguredBaseModel):
1100
1182
  path: str = Field(..., alias="path")
1101
1183
  name: str = Field(..., alias="name")
1184
+ app_code: str = Field(..., alias="appCode")
1185
+ cost_center: str = Field(..., alias="costCenter")
1102
1186
 
1103
1187
 
1104
1188
  class ClusterSpecV1(ConfiguredBaseModel):