qontract-reconcile 0.10.2.dev236__tar.gz → 0.10.2.dev237__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/PKG-INFO +1 -2
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/README.md +0 -1
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/cli.py +0 -9
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/aws_api.py +2 -515
- qontract_reconcile-0.10.2.dev236/reconcile/aws_garbage_collector.py +0 -12
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/pyproject.toml +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/acs_policies.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/acs_rbac.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aus/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aus/advanced_upgrade_service.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aus/aus_label_source.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aus/base.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aus/cluster_version_data.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aus/healthchecks.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aus/metrics.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aus/models.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aus/node_pool_spec.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aus/ocm_addons_upgrade_scheduler_org.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aus/ocm_upgrade_scheduler.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aus/ocm_upgrade_scheduler_org.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aus/upgrades.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aus/version_gate_approver.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aus/version_gates/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aus/version_gates/handler.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aus/version_gates/ingress_gate_handler.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aus/version_gates/ocp_gate_handler.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aus/version_gates/sts_version_gate_handler.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/automated_actions/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/automated_actions/config/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/automated_actions/config/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aws_account_manager/README.md +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aws_account_manager/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aws_account_manager/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aws_account_manager/merge_request_manager.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aws_account_manager/metrics.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aws_account_manager/reconciler.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aws_account_manager/utils.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aws_ami_cleanup/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aws_ami_cleanup/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aws_ami_share.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aws_cloudwatch_log_retention/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aws_cloudwatch_log_retention/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aws_ecr_image_pull_secrets.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aws_iam_keys.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aws_iam_password_reset.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aws_saml_idp/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aws_saml_idp/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aws_saml_roles/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aws_saml_roles/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aws_support_cases_sos.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aws_version_sync/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aws_version_sync/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aws_version_sync/merge_request_manager/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aws_version_sync/merge_request_manager/merge_request.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aws_version_sync/merge_request_manager/merge_request_manager.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aws_version_sync/utils.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/blackbox_exporter_endpoint_monitoring.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/change_owners/README.md +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/change_owners/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/change_owners/approver.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/change_owners/bundle.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/change_owners/change_log_tracking.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/change_owners/change_owners.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/change_owners/change_types.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/change_owners/changes.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/change_owners/decision.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/change_owners/diff.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/change_owners/implicit_ownership.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/change_owners/self_service_roles.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/change_owners/tester.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/checkpoint.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/closedbox_endpoint_monitoring_base.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/cluster_auth_rhidp/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/cluster_auth_rhidp/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/cluster_deployment_mapper.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/dashdotdb_base.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/dashdotdb_cso.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/dashdotdb_dora.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/dashdotdb_dvo.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/dashdotdb_slo.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/database_access_manager.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/deadmanssnitch.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/dynatrace_token_provider/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/dynatrace_token_provider/dependencies.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/dynatrace_token_provider/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/dynatrace_token_provider/metrics.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/dynatrace_token_provider/model.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/dynatrace_token_provider/ocm.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/dynatrace_token_provider/validate.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/email_sender.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/endpoints_discovery/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/endpoints_discovery/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/endpoints_discovery/merge_request.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/endpoints_discovery/merge_request_manager.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/external_resources/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/external_resources/aws.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/external_resources/factories.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/external_resources/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/external_resources/integration_secrets_sync.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/external_resources/manager.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/external_resources/meta.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/external_resources/metrics.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/external_resources/model.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/external_resources/reconciler.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/external_resources/secrets_sync.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/external_resources/state.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/fleet_labeler/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/fleet_labeler/dependencies.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/fleet_labeler/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/fleet_labeler/merge_request.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/fleet_labeler/meta.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/fleet_labeler/metrics.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/fleet_labeler/ocm.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/fleet_labeler/validate.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/fleet_labeler/vcs.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gabi_authorized_users.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gcp_image_mirror.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/github_org.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/github_owners.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/github_repo_invites.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/github_repo_permissions_validator.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/github_validator.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gitlab_fork_compliance.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gitlab_housekeeping.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gitlab_labeler.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gitlab_members.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gitlab_mr_sqs_consumer.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gitlab_owners.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gitlab_permissions.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gitlab_projects.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/glitchtip/README.md +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/glitchtip/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/glitchtip/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/glitchtip/reconciler.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/glitchtip_project_alerts/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/glitchtip_project_alerts/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/glitchtip_project_dsn/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/glitchtip_project_dsn/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/acs/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/acs/acs_instances.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/acs/acs_policies.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/acs/acs_rbac.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/advanced_upgrade_service/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/advanced_upgrade_service/aus_clusters.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/advanced_upgrade_service/aus_organization.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/app_interface_metrics_exporter/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/app_interface_metrics_exporter/onboarding_status.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/app_sre_tekton_access_revalidation/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/app_sre_tekton_access_revalidation/roles.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/app_sre_tekton_access_revalidation/users.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/automated_actions/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/automated_actions/instance.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/aws_account_manager/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/aws_account_manager/aws_accounts.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/aws_ami_cleanup/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/aws_ami_cleanup/aws_accounts.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/aws_cloudwatch_log_retention/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/aws_cloudwatch_log_retention/aws_accounts.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/aws_saml_idp/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/aws_saml_idp/aws_accounts.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/aws_saml_roles/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/aws_saml_roles/aws_accounts.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/aws_saml_roles/roles.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/aws_version_sync/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/aws_version_sync/clusters.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/aws_version_sync/namespaces.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/change_owners/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/change_owners/queries/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/change_owners/queries/change_types.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/change_owners/queries/self_service_roles.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/cluster_auth_rhidp/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/cluster_auth_rhidp/clusters.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/common/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/common/alerting_services_settings.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/common/app_code_component_repos.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/common/app_interface_custom_messages.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/common/app_interface_dms_settings.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/common/app_interface_repo_settings.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/common/app_interface_state_settings.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/common/app_interface_vault_settings.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/common/app_quay_repos_escalation_policies.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/common/apps.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/common/aws_vpc_requests.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/common/aws_vpcs.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/common/clusters.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/common/clusters_minimal.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/common/clusters_with_dms.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/common/clusters_with_peering.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/common/github_orgs.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/common/jira_settings.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/common/jiralert_settings.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/common/ldap_settings.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/common/namespaces.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/common/namespaces_minimal.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/common/ocm_env_telemeter.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/common/ocm_environments.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/common/pagerduty_instances.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/common/pgp_reencryption_settings.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/common/pipeline_providers.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/common/quay_instances.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/common/quay_orgs.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/common/reserved_networks.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/common/rhcs_provider_settings.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/common/saas_files.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/common/saas_target_namespaces.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/common/saasherder_settings.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/common/slack_workspaces.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/common/smtp_client_settings.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/common/state_aws_account.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/common/users.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/common/users_with_paths.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/cost_report/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/cost_report/app_names.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/cost_report/cost_namespaces.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/cost_report/settings.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/dashdotdb_slo/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/dashdotdb_slo/slo_documents_query.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/dynatrace_token_provider/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/dynatrace_token_provider/dynatrace_bootstrap_tokens.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/dynatrace_token_provider/token_specs.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/email_sender/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/email_sender/apps.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/email_sender/emails.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/email_sender/users.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/endpoints_discovery/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/endpoints_discovery/apps.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/external_resources/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/external_resources/aws_accounts.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/external_resources/external_resources_modules.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/external_resources/external_resources_namespaces.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/external_resources/external_resources_settings.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/external_resources/fragments/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/external_resources/fragments/external_resources_module_overrides.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/fleet_labeler/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/fleet_labeler/fleet_labels.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/fragments/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/fragments/aus_organization.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/fragments/aws_account_common.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/fragments/aws_account_managed.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/fragments/aws_account_sso.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/fragments/aws_infra_management_account.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/fragments/aws_vpc.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/fragments/aws_vpc_request.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/fragments/aws_vpc_request_subnet.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/fragments/container_image_mirror.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/fragments/deploy_resources.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/fragments/disable.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/fragments/email_service.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/fragments/email_user.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/fragments/jumphost_common_fields.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/fragments/membership_source.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/fragments/minimal_ocm_organization.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/fragments/oc_connection_cluster.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/fragments/ocm_environment.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/fragments/pipeline_provider_retention.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/fragments/prometheus_instance.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/fragments/resource_limits_requirements.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/fragments/resource_requests_requirements.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/fragments/resource_values.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/fragments/saas_slo_document.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/fragments/saas_target_namespace.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/fragments/serviceaccount_token.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/fragments/terraform_state.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/fragments/upgrade_policy.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/fragments/user.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/fragments/vault_secret.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/gcp/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/gcp/gcp_docker_repos.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/gcp/gcp_projects.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/gitlab_members/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/gitlab_members/gitlab_instances.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/gitlab_members/permissions.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/glitchtip/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/glitchtip/glitchtip_instance.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/glitchtip/glitchtip_project.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/glitchtip_project_alerts/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/glitchtip_project_alerts/glitchtip_project.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/integrations/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/integrations/integrations.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/introspection.json +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/jenkins_configs/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/jenkins_configs/jenkins_configs.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/jenkins_configs/jenkins_instances.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/jira/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/jira/jira_servers.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/jira_permissions_validator/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/jira_permissions_validator/jira_boards_for_permissions_validator.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/jumphosts/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/jumphosts/jumphosts.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/ldap_groups/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/ldap_groups/roles.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/ldap_groups/settings.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/maintenance/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/maintenance/maintenances.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/membershipsources/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/membershipsources/roles.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/ocm_labels/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/ocm_labels/clusters.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/ocm_labels/organizations.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/ocm_oidc_idp/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/ocm_subscription_labels/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/openshift_cluster_bots/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/openshift_cluster_bots/clusters.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/openshift_groups/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/openshift_groups/managed_groups.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/openshift_groups/managed_roles.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/openshift_serviceaccount_tokens/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/openshift_serviceaccount_tokens/tokens.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/quay_membership/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/quay_membership/quay_membership.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/rhcs/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/rhcs/certs.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/rhidp/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/rhidp/organizations.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/service_dependencies/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/service_dependencies/jenkins_instance_fragment.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/service_dependencies/service_dependencies.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/sharding/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/sharding/aws_accounts.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/sharding/ocm_organization.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/skupper_network/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/skupper_network/site_controller_template.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/skupper_network/skupper_networks.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/slack_usergroups/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/slack_usergroups/clusters.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/slack_usergroups/permissions.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/slack_usergroups/users.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/slo_documents/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/slo_documents/slo_documents.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/status_board/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/status_board/status_board.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/statuspage/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/statuspage/statuspages.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/templating/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/templating/template_collection.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/templating/templates.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/terraform_cloudflare_dns/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/terraform_cloudflare_dns/app_interface_cloudflare_dns_settings.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/terraform_cloudflare_dns/terraform_cloudflare_zones.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/terraform_cloudflare_resources/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/terraform_cloudflare_resources/terraform_cloudflare_accounts.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/terraform_cloudflare_resources/terraform_cloudflare_resources.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/terraform_cloudflare_users/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/terraform_cloudflare_users/app_interface_setting_cloudflare_and_vault.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/terraform_cloudflare_users/terraform_cloudflare_roles.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/terraform_init/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/terraform_init/aws_accounts.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/terraform_repo/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/terraform_repo/terraform_repo.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/terraform_resources/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/terraform_resources/database_access_manager.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/terraform_resources/terraform_resources_namespaces.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/terraform_tgw_attachments/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/terraform_tgw_attachments/aws_accounts.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/unleash_feature_toggles/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/unleash_feature_toggles/feature_toggles.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/vault_instances/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/vault_instances/vault_instances.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/vault_policies/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/vault_policies/vault_policies.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/vpc_peerings_validator/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/vpc_peerings_validator/vpc_peerings_validator.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/gql_definitions/vpc_peerings_validator/vpc_peerings_validator_peered_cluster_fragment.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/integrations_manager.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/jenkins/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/jenkins/types.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/jenkins_base.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/jenkins_job_builder.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/jenkins_job_builds_cleaner.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/jenkins_job_cleaner.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/jenkins_roles.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/jenkins_webhooks.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/jenkins_webhooks_cleaner.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/jenkins_worker_fleets.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/jira_permissions_validator.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/jira_watcher.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/ldap_groups/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/ldap_groups/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/ldap_users.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/mr_client_gateway.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/ocm/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/ocm/types.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/ocm_additional_routers.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/ocm_addons.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/ocm_addons_upgrade_tests_trigger.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/ocm_aws_infrastructure_access.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/ocm_clusters.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/ocm_external_configuration_labels.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/ocm_github_idp.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/ocm_groups.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/ocm_internal_notifications/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/ocm_internal_notifications/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/ocm_labels/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/ocm_labels/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/ocm_machine_pools.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/ocm_update_recommended_version.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/ocm_upgrade_scheduler_org_updater.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/openshift_base.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/openshift_cluster_bots.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/openshift_clusterrolebindings.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/openshift_groups.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/openshift_limitranges.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/openshift_namespace_labels.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/openshift_namespaces.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/openshift_network_policies.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/openshift_prometheus_rules.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/openshift_resourcequotas.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/openshift_resources.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/openshift_resources_base.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/openshift_rhcs_certs.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/openshift_rolebindings.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/openshift_routes.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/openshift_saas_deploy.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/openshift_saas_deploy_change_tester.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/openshift_saas_deploy_trigger_base.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/openshift_saas_deploy_trigger_cleaner.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/openshift_saas_deploy_trigger_configs.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/openshift_saas_deploy_trigger_images.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/openshift_saas_deploy_trigger_moving_commits.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/openshift_saas_deploy_trigger_upstream_jobs.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/openshift_serviceaccount_tokens.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/openshift_tekton_resources.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/openshift_upgrade_watcher.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/openshift_users.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/openshift_vault_secrets.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/oum/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/oum/base.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/oum/labelset.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/oum/metrics.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/oum/models.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/oum/providers.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/oum/standalone.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/prometheus_rules_tester/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/prometheus_rules_tester/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/quay_base.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/quay_membership.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/quay_mirror.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/quay_mirror_org.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/quay_permissions.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/quay_repos.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/queries.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/query_validator.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/requests_sender.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/resource_scraper.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/resource_template_tester.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/rhidp/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/rhidp/common.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/rhidp/metrics.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/rhidp/ocm_oidc_idp/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/rhidp/ocm_oidc_idp/base.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/rhidp/ocm_oidc_idp/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/rhidp/ocm_oidc_idp/metrics.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/rhidp/sso_client/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/rhidp/sso_client/base.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/rhidp/sso_client/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/rhidp/sso_client/metrics.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/run_integration.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/saas_auto_promotions_manager/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/saas_auto_promotions_manager/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/saas_auto_promotions_manager/merge_request_manager/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/saas_auto_promotions_manager/merge_request_manager/batcher.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/saas_auto_promotions_manager/merge_request_manager/desired_state.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/saas_auto_promotions_manager/merge_request_manager/merge_request.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/saas_auto_promotions_manager/merge_request_manager/merge_request_manager_v2.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/saas_auto_promotions_manager/merge_request_manager/metrics.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/saas_auto_promotions_manager/merge_request_manager/mr_parser.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/saas_auto_promotions_manager/merge_request_manager/open_merge_requests.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/saas_auto_promotions_manager/merge_request_manager/renderer.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/saas_auto_promotions_manager/meta.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/saas_auto_promotions_manager/publisher.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/saas_auto_promotions_manager/s3_exporter.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/saas_auto_promotions_manager/subscriber.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/saas_auto_promotions_manager/utils/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/saas_auto_promotions_manager/utils/saas_files_inventory.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/saas_file_validator.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/sendgrid_teammates.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/service_dependencies.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/signalfx_endpoint_monitoring.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/skupper_network/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/skupper_network/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/skupper_network/models.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/skupper_network/reconciler.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/skupper_network/site_controller.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/slack_base.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/slack_usergroups.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/sql_query.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/status.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/status_board.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/statuspage/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/statuspage/atlassian.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/statuspage/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/statuspage/integrations/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/statuspage/integrations/components.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/statuspage/integrations/maintenances.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/statuspage/page.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/statuspage/state.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/statuspage/status.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/templates/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/templates/aws_access_key_email.j2 +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/templates/email.yml.j2 +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/templates/jira-checkpoint-missinginfo.j2 +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/templates/rosa-classic-cluster-creation.sh.j2 +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/templates/rosa-hcp-cluster-creation.sh.j2 +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/templating/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/templating/lib/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/templating/lib/merge_request_manager.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/templating/lib/model.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/templating/lib/rendering.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/templating/renderer.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/templating/validator.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/terraform_aws_route53.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/terraform_cloudflare_dns.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/terraform_cloudflare_resources.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/terraform_cloudflare_users.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/terraform_init/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/terraform_init/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/terraform_init/merge_request.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/terraform_init/merge_request_manager.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/terraform_repo.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/terraform_resources.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/terraform_tgw_attachments.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/terraform_users.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/terraform_vpc_peerings.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/terraform_vpc_resources/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/terraform_vpc_resources/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/terraform_vpc_resources/merge_request.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/terraform_vpc_resources/merge_request_manager.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/alerting_services_settings.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/app_interface_custom_messages.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/app_interface_deadmanssnitch_settings.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/app_interface_metrics_exporter/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/app_interface_metrics_exporter/onboarding_status.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/app_interface_metrics_exporter/terraform_repo.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/app_interface_repo_url.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/app_interface_state_settings.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/app_interface_vault_settings.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/app_quay_repos_escalation_policies.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/apps.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/aws_cloudwatch_log_retention/aws_accounts.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/aws_vpc_requests.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/aws_vpcs.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/cloudflare.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/clusters.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/clusters_minimal.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/clusters_with_dms.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/clusters_with_peering.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/cost_report/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/cost_report/app_names.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/cost_report/cost_namespaces.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/cost_report/settings.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/dynatrace.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/dynatrace_environments.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/dynatrace_token_provider_token_specs.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/external_resources.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/fleet_labels.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/get_state_aws_account.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/github_orgs.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/gitlab_instances.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/glitchtip.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/jenkins.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/jira.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/jira_settings.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/jiralert_settings.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/ldap_settings.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/namespaces.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/namespaces_minimal.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/ocm.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/pagerduty_instances.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/quay.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/repos.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/reserved_networks.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/rhcs_provider_settings.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/saas_files.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/slack.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/slo_documents.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/smtp.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/status_board.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/tekton_pipeline_providers.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/terraform_namespaces.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/terraform_tgw_attachments/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/terraform_tgw_attachments/aws_accounts.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/unleash.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/users.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/users_with_paths.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/typed_queries/vault.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/unleash_feature_toggles/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/unleash_feature_toggles/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/acs/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/acs/base.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/acs/policies.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/acs/rbac.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/aggregated_list.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/amtool.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/aws_api_typed/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/aws_api_typed/account.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/aws_api_typed/api.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/aws_api_typed/dynamodb.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/aws_api_typed/iam.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/aws_api_typed/organization.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/aws_api_typed/s3.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/aws_api_typed/service_quotas.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/aws_api_typed/sts.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/aws_api_typed/support.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/aws_helper.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/batches.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/binary.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/cloud_resource_best_practice/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/cloud_resource_best_practice/aws_rds.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/clusterhealth/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/clusterhealth/providerbase.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/clusterhealth/telemeter.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/config.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/constants.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/deadmanssnitch_api.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/defer.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/differ.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/disabled_integrations.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/dnsutils.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/dynatrace/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/dynatrace/client.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/early_exit_cache.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/elasticsearch_exceptions.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/environ.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/exceptions.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/expiration.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/extended_early_exit.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/external_resource_spec.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/external_resources.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/filtering.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/git.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/github_api.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/gitlab_api.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/glitchtip/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/glitchtip/client.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/glitchtip/models.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/gpg.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/gql.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/grouping.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/helm.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/helpers.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/imap_client.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/instrumented_wrappers.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/internal_groups/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/internal_groups/client.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/internal_groups/models.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/jenkins_api.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/jinja2/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/jinja2/extensions.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/jinja2/filters.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/jinja2/utils.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/jira_client.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/jjb_client.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/jobcontroller/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/jobcontroller/controller.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/jobcontroller/models.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/jsonpath.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/jump_host.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/keycloak.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/ldap_client.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/lean_terraform_client.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/make.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/membershipsources/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/membershipsources/app_interface_resolver.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/membershipsources/models.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/membershipsources/resolver.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/merge_request_manager/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/merge_request_manager/merge_request_manager.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/merge_request_manager/parser.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/metrics.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/models.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/mr/README.md +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/mr/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/mr/app_interface_reporter.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/mr/app_sre_tekton_access_report.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/mr/aws_access.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/mr/base.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/mr/clusters_updates.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/mr/glitchtip_access_reporter.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/mr/labels.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/mr/notificator.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/mr/ocm_update_recommended_version.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/mr/ocm_upgrade_scheduler_org_updates.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/mr/promote_qontract.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/mr/update_access_report_base.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/mr/user_maintenance.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/oauth2_backend_application_session.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/oc.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/oc_connection_parameters.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/oc_filters.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/oc_map.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/ocm/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/ocm/addons.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/ocm/base.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/ocm/cluster_groups.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/ocm/clusters.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/ocm/identity_providers.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/ocm/label_sources.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/ocm/labels.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/ocm/manifests.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/ocm/ocm.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/ocm/products.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/ocm/search_filters.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/ocm/service_log.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/ocm/sre_capability_labels.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/ocm/status_board.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/ocm/subscriptions.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/ocm/syncsets.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/ocm/upgrades.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/ocm_base_client.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/openshift_resource.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/openssl.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/output.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/pagerduty_api.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/parse_dhms_duration.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/password_validator.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/prometheus.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/promotion_state.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/promtool.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/quay_api.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/quay_mirror.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/raw_github_api.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/repo_owners.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/rest_api_base.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/rhcsv2_certs.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/rosa/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/rosa/rosa_cli.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/rosa/session.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/ruamel.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/runtime/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/runtime/desired_state_diff.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/runtime/environment.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/runtime/integration.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/runtime/meta.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/runtime/runner.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/runtime/sharding.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/saasherder/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/saasherder/interfaces.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/saasherder/models.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/saasherder/saasherder.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/secret_reader.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/semver_helper.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/sharding.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/slack_api.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/slo_document_manager.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/smtp_client.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/sqs_gateway.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/state.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/structs.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/terraform/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/terraform/config.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/terraform/config_client.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/terraform_client.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/terrascript/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/terrascript/cloudflare_client.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/terrascript/cloudflare_resources.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/terrascript/models.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/terrascript/resources.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/terrascript_aws_client.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/three_way_diff_strategy.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/throughput.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/unleash/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/unleash/client.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/unleash/server.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/vault.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/vaultsecretref.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/vcs.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/vault_replication.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/vpc_peerings_validator.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/tools/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/tools/alert_report.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/tools/app_interface_metrics_exporter.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/tools/app_interface_reporter.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/tools/app_sre_tekton_access_reporter.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/tools/app_sre_tekton_access_revalidation.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/tools/cli_commands/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/tools/cli_commands/container_images_report.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/tools/cli_commands/cost_report/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/tools/cli_commands/cost_report/aws.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/tools/cli_commands/cost_report/cost_management_api.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/tools/cli_commands/cost_report/model.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/tools/cli_commands/cost_report/openshift.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/tools/cli_commands/cost_report/openshift_cost_optimization.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/tools/cli_commands/cost_report/response.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/tools/cli_commands/cost_report/util.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/tools/cli_commands/cost_report/view.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/tools/cli_commands/erv2.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/tools/cli_commands/gpg_encrypt.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/tools/cli_commands/systems_and_tools.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/tools/glitchtip_access_reporter.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/tools/glitchtip_access_revalidation.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/tools/qontract_cli.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/tools/saas_metrics_exporter/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/tools/saas_metrics_exporter/commit_distance/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/tools/saas_metrics_exporter/commit_distance/channel.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/tools/saas_metrics_exporter/commit_distance/commit_distance.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/tools/saas_metrics_exporter/commit_distance/metrics.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/tools/saas_metrics_exporter/main.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/tools/saas_promotion_state/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/tools/saas_promotion_state/saas_promotion_state.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/tools/sre_checkpoints/__init__.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/tools/sre_checkpoints/util.py +0 -0
- {qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/tools/template_validation.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: qontract-reconcile
|
3
|
-
Version: 0.10.2.
|
3
|
+
Version: 0.10.2.dev237
|
4
4
|
Summary: Collection of tools to reconcile services with their desired state as defined in the app-interface DB.
|
5
5
|
Project-URL: homepage, https://github.com/app-sre/qontract-reconcile
|
6
6
|
Project-URL: repository, https://github.com/app-sre/qontract-reconcile
|
@@ -109,7 +109,6 @@ OpenShift templates can be found [here](/openshift/qontract-reconcile.yaml). In
|
|
109
109
|
aws-cloudwatch-log-retention Set up retention period for Cloudwatch logs.
|
110
110
|
aws-ecr-image-pull-secrets Generate AWS ECR image pull secrets and
|
111
111
|
store them in Vault.
|
112
|
-
aws-garbage-collector Delete orphan AWS resources.
|
113
112
|
aws-iam-keys Delete IAM access keys by access key ID.
|
114
113
|
aws-iam-password-reset Reset IAM user password by user reference.
|
115
114
|
aws-saml-idp Manage the SAML IDP config for all AWS
|
@@ -44,7 +44,6 @@ OpenShift templates can be found [here](/openshift/qontract-reconcile.yaml). In
|
|
44
44
|
aws-cloudwatch-log-retention Set up retention period for Cloudwatch logs.
|
45
45
|
aws-ecr-image-pull-secrets Generate AWS ECR image pull secrets and
|
46
46
|
store them in Vault.
|
47
|
-
aws-garbage-collector Delete orphan AWS resources.
|
48
47
|
aws-iam-keys Delete IAM access keys by access key ID.
|
49
48
|
aws-iam-password-reset Reset IAM user password by user reference.
|
50
49
|
aws-saml-idp Manage the SAML IDP config for all AWS
|
@@ -1236,15 +1236,6 @@ def gitlab_mr_sqs_consumer(ctx: click.Context, gitlab_project_id: str) -> None:
|
|
1236
1236
|
run_integration(reconcile.gitlab_mr_sqs_consumer, ctx, gitlab_project_id)
|
1237
1237
|
|
1238
1238
|
|
1239
|
-
@integration.command(short_help="Delete orphan AWS resources.")
|
1240
|
-
@threaded()
|
1241
|
-
@click.pass_context
|
1242
|
-
def aws_garbage_collector(ctx: click.Context, thread_pool_size: int) -> None:
|
1243
|
-
import reconcile.aws_garbage_collector
|
1244
|
-
|
1245
|
-
run_integration(reconcile.aws_garbage_collector, ctx, thread_pool_size)
|
1246
|
-
|
1247
|
-
|
1248
1239
|
@integration.command(short_help="Delete IAM access keys by access key ID.")
|
1249
1240
|
@threaded()
|
1250
1241
|
@account_name
|
{qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/utils/aws_api.py
RENAMED
@@ -2,14 +2,12 @@ import logging
|
|
2
2
|
import operator
|
3
3
|
import os
|
4
4
|
import re
|
5
|
-
import time
|
6
5
|
from collections.abc import (
|
7
6
|
Iterable,
|
8
7
|
Iterator,
|
9
8
|
Mapping,
|
10
9
|
Sequence,
|
11
10
|
)
|
12
|
-
from datetime import datetime
|
13
11
|
from functools import lru_cache
|
14
12
|
from threading import Lock
|
15
13
|
from typing import (
|
@@ -21,7 +19,6 @@ from typing import (
|
|
21
19
|
overload,
|
22
20
|
)
|
23
21
|
|
24
|
-
import botocore
|
25
22
|
from boto3 import Session
|
26
23
|
from botocore.client import BaseClient
|
27
24
|
from botocore.config import Config
|
@@ -142,13 +139,6 @@ RESOURCE_NAME = Literal[
|
|
142
139
|
"s3",
|
143
140
|
"sqs",
|
144
141
|
]
|
145
|
-
RESOURCE_TYPE = Literal[
|
146
|
-
"dynamodb",
|
147
|
-
"rds",
|
148
|
-
"rds_snapshots",
|
149
|
-
"s3",
|
150
|
-
"sqs",
|
151
|
-
]
|
152
142
|
|
153
143
|
|
154
144
|
class AWSApi:
|
@@ -169,17 +159,10 @@ class AWSApi:
|
|
169
159
|
self.secret_reader = secret_reader
|
170
160
|
else:
|
171
161
|
self.secret_reader = SecretReader(settings=settings)
|
172
|
-
self.
|
162
|
+
self.init_sessions(accounts)
|
173
163
|
if init_ecr_auth_tokens:
|
174
164
|
self.init_ecr_auth_tokens(accounts)
|
175
165
|
self._lock = Lock()
|
176
|
-
self.resource_types: list[RESOURCE_TYPE] = [
|
177
|
-
"s3",
|
178
|
-
"sqs",
|
179
|
-
"dynamodb",
|
180
|
-
"rds",
|
181
|
-
"rds_snapshots",
|
182
|
-
]
|
183
166
|
|
184
167
|
# store the app-interface accounts in a dictionary indexed by name
|
185
168
|
self.accounts = {acc["name"]: acc for acc in accounts}
|
@@ -208,7 +191,7 @@ class AWSApi:
|
|
208
191
|
if init_users:
|
209
192
|
self.init_users()
|
210
193
|
|
211
|
-
def
|
194
|
+
def init_sessions(self, accounts: Iterable[awsh.Account]) -> None:
|
212
195
|
results = threaded.run(
|
213
196
|
awsh.get_tf_secrets,
|
214
197
|
accounts,
|
@@ -216,7 +199,6 @@ class AWSApi:
|
|
216
199
|
secret_reader=self.secret_reader,
|
217
200
|
)
|
218
201
|
self.sessions: dict[str, Session] = {}
|
219
|
-
self.resources: dict[str, Any] = {}
|
220
202
|
for account_name, secret in results:
|
221
203
|
account = awsh.get_account(accounts, account_name)
|
222
204
|
access_key = secret["aws_access_key_id"]
|
@@ -235,7 +217,6 @@ class AWSApi:
|
|
235
217
|
region_name=region_name,
|
236
218
|
)
|
237
219
|
self.sessions[account_name] = session
|
238
|
-
self.resources[account_name] = {}
|
239
220
|
|
240
221
|
def __enter__(self) -> Self:
|
241
222
|
return self
|
@@ -490,121 +471,6 @@ class AWSApi:
|
|
490
471
|
users = [u["UserName"] for u in users]
|
491
472
|
self.users[account] = users
|
492
473
|
|
493
|
-
def map_resources(self) -> None:
|
494
|
-
threaded.run(self.map_resource, self.resource_types, self.thread_pool_size)
|
495
|
-
|
496
|
-
def map_resource(self, resource_type: str) -> None:
|
497
|
-
match resource_type:
|
498
|
-
case "s3":
|
499
|
-
self.map_s3_resources()
|
500
|
-
case "sqs":
|
501
|
-
self.map_sqs_resources()
|
502
|
-
case "dynamodb":
|
503
|
-
self.map_dynamodb_resources()
|
504
|
-
case "rds":
|
505
|
-
self.map_rds_resources()
|
506
|
-
case "rds_snapshots":
|
507
|
-
self.map_rds_snapshots()
|
508
|
-
case "route53":
|
509
|
-
self.map_route53_resources()
|
510
|
-
case "ecr":
|
511
|
-
self.map_ecr_resources()
|
512
|
-
case _:
|
513
|
-
raise InvalidResourceTypeError(resource_type)
|
514
|
-
|
515
|
-
def map_s3_resources(self) -> None:
|
516
|
-
for account, s in self.sessions.items():
|
517
|
-
s3 = self.get_session_client(s, "s3")
|
518
|
-
buckets_list = s3.list_buckets()
|
519
|
-
if "Buckets" not in buckets_list:
|
520
|
-
continue
|
521
|
-
buckets = [b["Name"] for b in buckets_list["Buckets"]]
|
522
|
-
self.set_resouces(account, "s3", buckets)
|
523
|
-
buckets_without_owner = self.get_resources_without_owner(account, buckets)
|
524
|
-
unfiltered_buckets = self.custom_s3_filter(
|
525
|
-
account, s3, buckets_without_owner
|
526
|
-
)
|
527
|
-
self.set_resouces(account, "s3_no_owner", unfiltered_buckets)
|
528
|
-
|
529
|
-
def map_sqs_resources(self) -> None:
|
530
|
-
for account, s in self.sessions.items():
|
531
|
-
sqs = self.get_session_client(s, "sqs")
|
532
|
-
queues_list = sqs.list_queues()
|
533
|
-
if "QueueUrls" not in queues_list:
|
534
|
-
continue
|
535
|
-
queues = queues_list["QueueUrls"]
|
536
|
-
self.set_resouces(account, "sqs", queues)
|
537
|
-
queues_without_owner = self.get_resources_without_owner(account, queues)
|
538
|
-
unfiltered_queues = self.custom_sqs_filter(
|
539
|
-
account, sqs, queues_without_owner
|
540
|
-
)
|
541
|
-
self.set_resouces(account, "sqs_no_owner", unfiltered_queues)
|
542
|
-
|
543
|
-
def map_dynamodb_resources(self) -> None:
|
544
|
-
for account, s in self.sessions.items():
|
545
|
-
dynamodb = self.get_session_client(s, "dynamodb")
|
546
|
-
tables = self.paginate(dynamodb, "list_tables", "TableNames")
|
547
|
-
self.set_resouces(account, "dynamodb", tables)
|
548
|
-
tables_without_owner = self.get_resources_without_owner(account, tables)
|
549
|
-
unfiltered_tables = self.custom_dynamodb_filter(
|
550
|
-
account, s, dynamodb, tables_without_owner
|
551
|
-
)
|
552
|
-
self.set_resouces(account, "dynamodb_no_owner", unfiltered_tables)
|
553
|
-
|
554
|
-
def map_rds_resources(self) -> None:
|
555
|
-
for account, s in self.sessions.items():
|
556
|
-
rds = self.get_session_client(s, "rds")
|
557
|
-
results = self.paginate(rds, "describe_db_instances", "DBInstances")
|
558
|
-
instances = [t["DBInstanceIdentifier"] for t in results]
|
559
|
-
self.set_resouces(account, "rds", instances)
|
560
|
-
instances_without_owner = self.get_resources_without_owner(
|
561
|
-
account, instances
|
562
|
-
)
|
563
|
-
unfiltered_instances = self.custom_rds_filter(
|
564
|
-
account, rds, instances_without_owner
|
565
|
-
)
|
566
|
-
self.set_resouces(account, "rds_no_owner", unfiltered_instances)
|
567
|
-
|
568
|
-
def map_rds_snapshots(self) -> None:
|
569
|
-
self.wait_for_resource("rds")
|
570
|
-
for account, s in self.sessions.items():
|
571
|
-
rds = self.get_session_client(s, "rds")
|
572
|
-
results = self.paginate(rds, "describe_db_snapshots", "DBSnapshots")
|
573
|
-
snapshots = [t["DBSnapshotIdentifier"] for t in results]
|
574
|
-
self.set_resouces(account, "rds_snapshots", snapshots)
|
575
|
-
snapshots_without_db = [
|
576
|
-
t["DBSnapshotIdentifier"]
|
577
|
-
for t in results
|
578
|
-
if t["DBInstanceIdentifier"] not in self.resources[account]["rds"]
|
579
|
-
]
|
580
|
-
unfiltered_snapshots = self.custom_rds_snapshot_filter(
|
581
|
-
account, rds, snapshots_without_db
|
582
|
-
)
|
583
|
-
self.set_resouces(account, "rds_snapshots_no_owner", unfiltered_snapshots)
|
584
|
-
|
585
|
-
def map_route53_resources(self) -> None:
|
586
|
-
for account, s in self.sessions.items():
|
587
|
-
client = self.get_session_client(s, "route53")
|
588
|
-
results = self.paginate(client, "list_hosted_zones", "HostedZones")
|
589
|
-
zones = list(results)
|
590
|
-
for zone in zones:
|
591
|
-
results = self.paginate(
|
592
|
-
client,
|
593
|
-
"list_resource_record_sets",
|
594
|
-
"ResourceRecordSets",
|
595
|
-
{"HostedZoneId": zone["Id"]},
|
596
|
-
)
|
597
|
-
zone["records"] = results
|
598
|
-
self.set_resouces(account, "route53", zones)
|
599
|
-
|
600
|
-
def map_ecr_resources(self) -> None:
|
601
|
-
for account, s in self.sessions.items():
|
602
|
-
client = self.get_session_client(s, "ecr")
|
603
|
-
repositories = self.paginate(
|
604
|
-
client=client, method="describe_repositories", key="repositories"
|
605
|
-
)
|
606
|
-
self.set_resouces(account, "ecr", repositories)
|
607
|
-
|
608
474
|
@staticmethod
|
609
475
|
def paginate(
|
610
476
|
client: BaseClient, method: str, key: str, params: Mapping | None = None
|
@@ -620,246 +486,6 @@ class AWSApi:
|
|
620
486
|
for values in page.get(key, [])
|
621
487
|
]
|
622
488
|
|
623
|
-
def wait_for_resource(self, resource: str) -> None:
|
624
|
-
"""wait_for_resource waits until the specified resource type
|
625
|
-
is ready for all accounts.
|
626
|
-
When we have more resource types then threads,
|
627
|
-
this function will need to change to a dependency graph."""
|
628
|
-
wait = True
|
629
|
-
while wait:
|
630
|
-
wait = False
|
631
|
-
for account in self.sessions:
|
632
|
-
if self.resources[account].get(resource) is None:
|
633
|
-
wait = True
|
634
|
-
if wait:
|
635
|
-
time.sleep(2)
|
636
|
-
|
637
|
-
def set_resouces(self, account: str, key: str, value: Any) -> None:
|
638
|
-
with self._lock:
|
639
|
-
self.resources[account][key] = value
|
640
|
-
|
641
|
-
def get_resources_without_owner(
|
642
|
-
self, account: str, resources: Iterable[str]
|
643
|
-
) -> list[str]:
|
644
|
-
return [r for r in resources if not self.has_owner(account, r)]
|
645
|
-
|
646
|
-
def has_owner(self, account: str, resource: str) -> bool:
|
647
|
-
has_owner = False
|
648
|
-
for u in self.users[account]:
|
649
|
-
if resource.lower().startswith(u.lower()):
|
650
|
-
has_owner = True
|
651
|
-
break
|
652
|
-
if "://" in resource:
|
653
|
-
if resource.split("/")[-1].startswith(u.lower()):
|
654
|
-
has_owner = True
|
655
|
-
break
|
656
|
-
return has_owner
|
657
|
-
|
658
|
-
def custom_s3_filter(
|
659
|
-
self, account: str, s3: S3Client, buckets: Iterable[str]
|
660
|
-
) -> list[str]:
|
661
|
-
type = "s3 bucket"
|
662
|
-
unfiltered_buckets = []
|
663
|
-
for b in buckets:
|
664
|
-
try:
|
665
|
-
tags = s3.get_bucket_tagging(Bucket=b)
|
666
|
-
except botocore.exceptions.ClientError:
|
667
|
-
tags = {} # type: ignore
|
668
|
-
if not self.should_filter(account, type, b, tags, "TagSet"):
|
669
|
-
unfiltered_buckets.append(b)
|
670
|
-
|
671
|
-
return unfiltered_buckets
|
672
|
-
|
673
|
-
def custom_sqs_filter(
|
674
|
-
self, account: str, sqs: SQSClient, queues: Iterable[str]
|
675
|
-
) -> list[str]:
|
676
|
-
type = "sqs queue"
|
677
|
-
unfiltered_queues = []
|
678
|
-
for q in queues:
|
679
|
-
tags = sqs.list_queue_tags(QueueUrl=q)
|
680
|
-
if not self.should_filter(account, type, q, tags, "Tags"):
|
681
|
-
unfiltered_queues.append(q)
|
682
|
-
|
683
|
-
return unfiltered_queues
|
684
|
-
|
685
|
-
def custom_dynamodb_filter(
|
686
|
-
self,
|
687
|
-
account: str,
|
688
|
-
session: Session,
|
689
|
-
dynamodb: DynamoDBClient,
|
690
|
-
tables: Iterable[str],
|
691
|
-
) -> list[str]:
|
692
|
-
type = "dynamodb table"
|
693
|
-
dynamodb_resource = self._get_session_resource(session, "dynamodb")
|
694
|
-
unfiltered_tables = []
|
695
|
-
for t in tables:
|
696
|
-
table_arn = dynamodb_resource.Table(t).table_arn
|
697
|
-
tags = dynamodb.list_tags_of_resource(ResourceArn=table_arn)
|
698
|
-
if not self.should_filter(account, type, t, tags, "Tags"):
|
699
|
-
unfiltered_tables.append(t)
|
700
|
-
|
701
|
-
return unfiltered_tables
|
702
|
-
|
703
|
-
def custom_rds_filter(
|
704
|
-
self, account: str, rds: RDSClient, instances: Iterable[str]
|
705
|
-
) -> list[str]:
|
706
|
-
type = "rds instance"
|
707
|
-
unfiltered_instances = []
|
708
|
-
for i in instances:
|
709
|
-
instance = rds.describe_db_instances(DBInstanceIdentifier=i)
|
710
|
-
instance_arn = instance["DBInstances"][0]["DBInstanceArn"]
|
711
|
-
tags = rds.list_tags_for_resource(ResourceName=instance_arn)
|
712
|
-
if not self.should_filter(account, type, i, tags, "TagList"):
|
713
|
-
unfiltered_instances.append(i)
|
714
|
-
|
715
|
-
return unfiltered_instances
|
716
|
-
|
717
|
-
def custom_rds_snapshot_filter(
|
718
|
-
self, account: str, rds: RDSClient, snapshots: Iterable[str]
|
719
|
-
) -> list[str]:
|
720
|
-
type = "rds snapshots"
|
721
|
-
unfiltered_snapshots = []
|
722
|
-
for s in snapshots:
|
723
|
-
snapshot = rds.describe_db_snapshots(DBSnapshotIdentifier=s)
|
724
|
-
snapshot_arn = snapshot["DBSnapshots"][0]["DBSnapshotArn"]
|
725
|
-
tags = rds.list_tags_for_resource(ResourceName=snapshot_arn)
|
726
|
-
if not self.should_filter(account, type, s, tags, "TagList"):
|
727
|
-
unfiltered_snapshots.append(s)
|
728
|
-
|
729
|
-
return unfiltered_snapshots
|
730
|
-
|
731
|
-
def should_filter(
|
732
|
-
self,
|
733
|
-
account: str,
|
734
|
-
resource_type: str,
|
735
|
-
resource_name: str,
|
736
|
-
resource_tags: Mapping,
|
737
|
-
tags_key: str,
|
738
|
-
) -> bool:
|
739
|
-
if self.resource_has_special_name(account, resource_type, resource_name):
|
740
|
-
return True
|
741
|
-
if tags_key in resource_tags:
|
742
|
-
tags = resource_tags[tags_key]
|
743
|
-
if self.resource_has_special_tags(
|
744
|
-
account, resource_type, resource_name, tags
|
745
|
-
):
|
746
|
-
return True
|
747
|
-
|
748
|
-
return False
|
749
|
-
|
750
|
-
@staticmethod
|
751
|
-
def resource_has_special_name(account: str, type: str, resource: str) -> bool:
|
752
|
-
skip_msg = f"[{account}] skipping {type} " + "({} related) {}"
|
753
|
-
|
754
|
-
ignore_names = {
|
755
|
-
"production": ["prod"],
|
756
|
-
"stage": ["stage", "staging"],
|
757
|
-
"terraform": ["terraform", "-tf-"],
|
758
|
-
}
|
759
|
-
|
760
|
-
for msg, tags in ignore_names.items():
|
761
|
-
for tag in tags:
|
762
|
-
if tag.lower() in resource.lower():
|
763
|
-
logging.debug(skip_msg.format(msg, resource))
|
764
|
-
return True
|
765
|
-
|
766
|
-
return False
|
767
|
-
|
768
|
-
def resource_has_special_tags(
|
769
|
-
self, account: str, type: str, resource: str, tags: Mapping | list[Mapping]
|
770
|
-
) -> bool:
|
771
|
-
skip_msg = f"[{account}] skipping {type} " + "({}={}) {}"
|
772
|
-
|
773
|
-
ignore_tags = {
|
774
|
-
"ENV": ["prod", "stage", "staging"],
|
775
|
-
"environment": ["prod", "stage", "staging"],
|
776
|
-
"owner": ["app-sre"],
|
777
|
-
"managed_by_integration": ["terraform_resources", "terraform_users"],
|
778
|
-
"aws_gc_hands_off": ["true"],
|
779
|
-
}
|
780
|
-
|
781
|
-
for tag, ignore_values in ignore_tags.items():
|
782
|
-
for ignore_value in ignore_values:
|
783
|
-
value = self.get_tag_value(tags, tag)
|
784
|
-
if ignore_value.lower() in value.lower():
|
785
|
-
logging.debug(skip_msg.format(tag, value, resource))
|
786
|
-
return True
|
787
|
-
|
788
|
-
return False
|
789
|
-
|
790
|
-
@staticmethod
|
791
|
-
def get_tag_value(tags: Mapping | list[Mapping], tag: str) -> str:
|
792
|
-
if isinstance(tags, dict):
|
793
|
-
return tags.get(tag, "")
|
794
|
-
if isinstance(tags, list):
|
795
|
-
for t in tags:
|
796
|
-
if t["Key"] == tag:
|
797
|
-
return t["Value"]
|
798
|
-
|
799
|
-
return ""
|
800
|
-
|
801
|
-
def delete_resources_without_owner(self, dry_run: bool) -> None:
|
802
|
-
for account, s in self.sessions.items():
|
803
|
-
for rt in self.resource_types:
|
804
|
-
for r in self.resources[account].get(rt + "_no_owner", []):
|
805
|
-
logging.info(["delete_resource", account, rt, r])
|
806
|
-
if not dry_run:
|
807
|
-
self.delete_resource(s, rt, r)
|
808
|
-
|
809
|
-
def delete_resource(
|
810
|
-
self, session: Session, resource_type: RESOURCE_TYPE, resource_name: str
|
811
|
-
) -> None:
|
812
|
-
match resource_type:
|
813
|
-
case "s3":
|
814
|
-
self.delete_bucket(
|
815
|
-
self._get_session_resource(session, resource_type), resource_name
|
816
|
-
)
|
817
|
-
case "sqs":
|
818
|
-
self.delete_queue(
|
819
|
-
self.get_session_client(session, resource_type), resource_name
|
820
|
-
)
|
821
|
-
case "dynamodb":
|
822
|
-
self.delete_table(
|
823
|
-
self._get_session_resource(session, resource_type), resource_name
|
824
|
-
)
|
825
|
-
case "rds":
|
826
|
-
self.delete_instance(
|
827
|
-
self.get_session_client(session, resource_type), resource_name
|
828
|
-
)
|
829
|
-
case "rds_snapshots":
|
830
|
-
self.delete_snapshot(
|
831
|
-
self.get_session_client(session, "rds"), resource_name
|
832
|
-
)
|
833
|
-
case _:
|
834
|
-
raise InvalidResourceTypeError(resource_type)
|
835
|
-
|
836
|
-
@staticmethod
|
837
|
-
def delete_bucket(s3: S3ServiceResource, bucket_name: str) -> None:
|
838
|
-
bucket = s3.Bucket(bucket_name)
|
839
|
-
bucket.object_versions.delete()
|
840
|
-
bucket.delete()
|
841
|
-
|
842
|
-
@staticmethod
|
843
|
-
def delete_queue(sqs: SQSClient, queue_url: str) -> None:
|
844
|
-
sqs.delete_queue(QueueUrl=queue_url)
|
845
|
-
|
846
|
-
@staticmethod
|
847
|
-
def delete_table(dynamodb: DynamoDBServiceResource, table_name: str) -> None:
|
848
|
-
table = dynamodb.Table(table_name)
|
849
|
-
table.delete()
|
850
|
-
|
851
|
-
@staticmethod
|
852
|
-
def delete_instance(rds: RDSClient, instance_name: str) -> None:
|
853
|
-
rds.delete_db_instance(
|
854
|
-
DBInstanceIdentifier=instance_name,
|
855
|
-
SkipFinalSnapshot=True,
|
856
|
-
DeleteAutomatedBackups=True,
|
857
|
-
)
|
858
|
-
|
859
|
-
@staticmethod
|
860
|
-
def delete_snapshot(rds: RDSClient, snapshot_identifier: str) -> None:
|
861
|
-
rds.delete_db_snapshot(DBSnapshotIdentifier=snapshot_identifier)
|
862
|
-
|
863
489
|
@staticmethod
|
864
490
|
def determine_key_type(iam: IAMClient, user: str) -> str:
|
865
491
|
tags = iam.list_user_tags(UserName=user)["Tags"]
|
@@ -1875,145 +1501,6 @@ class AWSApi:
|
|
1875
1501
|
ns_records = self._extract_records(resource_records)
|
1876
1502
|
return ns_records
|
1877
1503
|
|
1878
|
-
def get_route53_zones(self) -> dict[str, list[dict[str, str]]]:
|
1879
|
-
"""
|
1880
|
-
Return a list of (str, dict) representing Route53 DNS zones per account
|
1881
|
-
|
1882
|
-
:return: route53 dns zones per account
|
1883
|
-
:rtype: list of (str, dict)
|
1884
|
-
"""
|
1885
|
-
return {
|
1886
|
-
account: self.resources.get(account, {}).get("route53", [])
|
1887
|
-
for account, _ in self.sessions.items()
|
1888
|
-
}
|
1889
|
-
|
1890
|
-
def create_route53_zone(self, account_name: str, zone_name: str) -> None:
|
1891
|
-
"""
|
1892
|
-
Create a Route53 DNS zone
|
1893
|
-
|
1894
|
-
:param account_name: the account name to operate on
|
1895
|
-
:param zone_name: name of the zone to create
|
1896
|
-
:type account_name: str
|
1897
|
-
:type zone_name: str
|
1898
|
-
"""
|
1899
|
-
session = self.get_session(account_name)
|
1900
|
-
client = self.get_session_client(session, "route53")
|
1901
|
-
|
1902
|
-
try:
|
1903
|
-
caller_ref = f"{datetime.now()}"
|
1904
|
-
client.create_hosted_zone(
|
1905
|
-
Name=zone_name,
|
1906
|
-
CallerReference=caller_ref,
|
1907
|
-
HostedZoneConfig={
|
1908
|
-
"Comment": "Managed by App-Interface",
|
1909
|
-
},
|
1910
|
-
)
|
1911
|
-
except client.exceptions.InvalidDomainName:
|
1912
|
-
logging.error(f"[{account_name}] invalid domain name {zone_name}")
|
1913
|
-
except client.exceptions.HostedZoneAlreadyExists:
|
1914
|
-
logging.error(f"[{account_name}] hosted zone already exists: {zone_name}")
|
1915
|
-
except client.exceptions.TooManyHostedZones:
|
1916
|
-
logging.error(f"[{account_name}] too many hosted zones in account")
|
1917
|
-
except Exception as e:
|
1918
|
-
logging.error(f"[{account_name}] unhandled exception: {e}")
|
1919
|
-
|
1920
|
-
def delete_route53_zone(self, account_name: str, zone_id: str) -> None:
|
1921
|
-
"""
|
1922
|
-
Delete a Route53 DNS zone
|
1923
|
-
|
1924
|
-
:param account_name: the account name to operate on
|
1925
|
-
:param zone_id: aws zone id of the zone to delete
|
1926
|
-
:type account_name: str
|
1927
|
-
:type zone_id: str
|
1928
|
-
"""
|
1929
|
-
session = self.get_session(account_name)
|
1930
|
-
client = self.get_session_client(session, "route53")
|
1931
|
-
|
1932
|
-
try:
|
1933
|
-
client.delete_hosted_zone(Id=zone_id)
|
1934
|
-
except client.exceptions.NoSuchHostedZone:
|
1935
|
-
logging.error(
|
1936
|
-
f"[{account_name}] Error trying to delete unknown DNS zone {zone_id}"
|
1937
|
-
)
|
1938
|
-
except client.exceptions.HostedZoneNotEmpty:
|
1939
|
-
logging.error(
|
1940
|
-
f"[{account_name}] Cannot delete DNS zone that is not empty {zone_id}"
|
1941
|
-
)
|
1942
|
-
except Exception as e:
|
1943
|
-
logging.error(f"[{account_name}] unhandled exception: {e}")
|
1944
|
-
|
1945
|
-
def delete_route53_record(
|
1946
|
-
self, account_name: str, zone_id: str, awsdata: ResourceRecordSetTypeDef
|
1947
|
-
) -> None:
|
1948
|
-
"""
|
1949
|
-
Delete a Route53 DNS zone record
|
1950
|
-
|
1951
|
-
:param account_name: the account name to operate on
|
1952
|
-
:param zone_id: aws zone id of the zone to operate on
|
1953
|
-
:param awsdata: aws record data of the record to delete
|
1954
|
-
:type account_name: str
|
1955
|
-
:type zone_id: str
|
1956
|
-
:type awsdata: dict
|
1957
|
-
"""
|
1958
|
-
session = self.get_session(account_name)
|
1959
|
-
client = self.get_session_client(session, "route53")
|
1960
|
-
|
1961
|
-
try:
|
1962
|
-
client.change_resource_record_sets(
|
1963
|
-
HostedZoneId=zone_id,
|
1964
|
-
ChangeBatch={
|
1965
|
-
"Changes": [
|
1966
|
-
{
|
1967
|
-
"Action": "DELETE",
|
1968
|
-
"ResourceRecordSet": awsdata,
|
1969
|
-
}
|
1970
|
-
]
|
1971
|
-
},
|
1972
|
-
)
|
1973
|
-
except client.exceptions.NoSuchHostedZone:
|
1974
|
-
logging.error(
|
1975
|
-
f"[{account_name}] Error trying to delete record: "
|
1976
|
-
f"unknown DNS zone {zone_id}"
|
1977
|
-
)
|
1978
|
-
except Exception as e:
|
1979
|
-
logging.error(f"[{account_name}] unhandled exception: {e}")
|
1980
|
-
|
1981
|
-
def upsert_route53_record(
|
1982
|
-
self, account_name: str, zone_id: str, recordset: ResourceRecordSetTypeDef
|
1983
|
-
) -> None:
|
1984
|
-
"""
|
1985
|
-
Upsert a Route53 DNS zone record
|
1986
|
-
|
1987
|
-
:param account_name: the account name to operate on
|
1988
|
-
:param zone_id: aws zone id of the zone to operate on
|
1989
|
-
:param recordset: aws record data of the record to create or update
|
1990
|
-
:type account_name: str
|
1991
|
-
:type zone_id: str
|
1992
|
-
:type recordset: dict
|
1993
|
-
"""
|
1994
|
-
session = self.get_session(account_name)
|
1995
|
-
client = self.get_session_client(session, "route53")
|
1996
|
-
|
1997
|
-
try:
|
1998
|
-
client.change_resource_record_sets(
|
1999
|
-
HostedZoneId=zone_id,
|
2000
|
-
ChangeBatch={
|
2001
|
-
"Changes": [
|
2002
|
-
{
|
2003
|
-
"Action": "UPSERT",
|
2004
|
-
"ResourceRecordSet": recordset,
|
2005
|
-
}
|
2006
|
-
]
|
2007
|
-
},
|
2008
|
-
)
|
2009
|
-
except client.exceptions.NoSuchHostedZone:
|
2010
|
-
logging.error(
|
2011
|
-
f"[{account_name}] Error trying to delete record: "
|
2012
|
-
f"unknown DNS zone {zone_id}"
|
2013
|
-
)
|
2014
|
-
except Exception as e:
|
2015
|
-
logging.error(f"[{account_name}] unhandled exception: {e}")
|
2016
|
-
|
2017
1504
|
def get_image_id(
|
2018
1505
|
self, account_name: str, region_name: str, tags: Iterable[AmiTag]
|
2019
1506
|
) -> str | None:
|
@@ -1,12 +0,0 @@
|
|
1
|
-
from reconcile import queries
|
2
|
-
from reconcile.utils.aws_api import AWSApi
|
3
|
-
|
4
|
-
QONTRACT_INTEGRATION = "aws-garbage-collector"
|
5
|
-
|
6
|
-
|
7
|
-
def run(dry_run: bool, thread_pool_size: int = 10) -> None:
|
8
|
-
accounts = [a for a in queries.get_aws_accounts() if a.get("garbageCollection")]
|
9
|
-
settings = queries.get_app_interface_settings()
|
10
|
-
with AWSApi(thread_pool_size, accounts, settings=settings) as aws:
|
11
|
-
aws.map_resources()
|
12
|
-
aws.delete_resources_without_owner(dry_run)
|
File without changes
|
File without changes
|
{qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/acs_policies.py
RENAMED
File without changes
|
File without changes
|
{qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aus/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aus/healthchecks.py
RENAMED
File without changes
|
{qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aus/metrics.py
RENAMED
File without changes
|
{qontract_reconcile-0.10.2.dev236 → qontract_reconcile-0.10.2.dev237}/reconcile/aus/models.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|