services:
  automatic_updates.route_subscriber:
    class: Drupal\automatic_updates\Routing\RouteSubscriber
    tags:
      - { name: event_subscriber }
  automatic_updates.readiness_validation_manager:
    class: Drupal\automatic_updates\Validation\ReadinessValidationManager
    arguments:
      - '@keyvalue.expirable'
      - '@datetime.time'
      - '@event_dispatcher'
      - '@automatic_updates.updater'
      - '@automatic_updates.cron_updater'
      - 24
    tags:
      - { name: event_subscriber }
  automatic_updates.updater:
    class: Drupal\automatic_updates\Updater
    arguments:
      - '@config.factory'
      - '@package_manager.path_locator'
      - '@package_manager.beginner'
      - '@package_manager.stager'
      - '@package_manager.committer'
      - '@file_system'
      - '@event_dispatcher'
      - '@tempstore.shared'
      - '@datetime.time'
      - '@PhpTuf\ComposerStager\Infrastructure\Factory\Path\PathFactoryInterface'
      - '@package_manager.failure_marker'
    calls:
      - ['setLogger', ['@logger.channel.automatic_updates']]
  automatic_updates.cron_updater:
    class: Drupal\automatic_updates\CronUpdater
    arguments:
      - '@automatic_updates.release_chooser'
      - '@logger.factory'
      - '@plugin.manager.mail'
      - '@language_manager'
      - '@state'
      - '@config.factory'
      - '@package_manager.path_locator'
      - '@package_manager.beginner'
      - '@package_manager.stager'
      - '@package_manager.committer'
      - '@file_system'
      - '@event_dispatcher'
      - '@tempstore.shared'
      - '@datetime.time'
      - '@PhpTuf\ComposerStager\Infrastructure\Factory\Path\PathFactoryInterface'
      - '@package_manager.failure_marker'
    calls:
      - ['setLogger', ['@logger.channel.automatic_updates']]
  automatic_updates.staged_projects_validator:
    class: Drupal\automatic_updates\Validator\StagedProjectsValidator
    arguments:
      - '@string_translation'
    tags:
      - { name: event_subscriber }
  automatic_updates.release_chooser:
    class: Drupal\automatic_updates\ReleaseChooser
    arguments:
      - '@automatic_updates.validator.version_policy'
  automatic_updates.composer_executable_validator:
    class: Drupal\automatic_updates\Validator\PackageManagerReadinessCheck
    arguments:
      - '@package_manager.validator.composer_executable'
    tags:
      - { name: event_subscriber }
  automatic_updates.settings_validator:
    class: Drupal\automatic_updates\Validator\PackageManagerReadinessCheck
    arguments:
      - '@package_manager.validator.settings'
    tags:
      - { name: event_subscriber }
  automatic_updates.validator.composer_settings:
    class: Drupal\automatic_updates\Validator\PackageManagerReadinessCheck
    arguments:
      - '@package_manager.validator.composer_settings'
    tags:
      - { name: event_subscriber }
  automatic_updates.disk_space_validator:
    class: Drupal\automatic_updates\Validator\PackageManagerReadinessCheck
    arguments:
      - '@package_manager.validator.disk_space'
    tags:
      - { name: event_subscriber }
  automatic_updates.pending_updates_validator:
    class: Drupal\automatic_updates\Validator\PackageManagerReadinessCheck
    arguments:
      - '@package_manager.validator.pending_updates'
    tags:
      - { name: event_subscriber }
  automatic_updates.validator.file_system_permissions:
    class: Drupal\automatic_updates\Validator\PackageManagerReadinessCheck
    arguments:
      - '@package_manager.validator.file_system'
    tags:
      - { name: event_subscriber }
  automatic_updates.validator.multisite:
    class: Drupal\automatic_updates\Validator\PackageManagerReadinessCheck
    arguments:
      - '@package_manager.validator.multisite'
    tags:
      - { name: event_subscriber }
  automatic_updates.validator.symlink:
    class: Drupal\automatic_updates\Validator\PackageManagerReadinessCheck
    arguments:
      - '@package_manager.validator.symlink'
    tags:
      - { name: event_subscriber }
  automatic_updates.validator.patches:
    class: Drupal\automatic_updates\Validator\PackageManagerReadinessCheck
    arguments:
      - '@package_manager.validator.patches'
    tags:
      - { name: event_subscriber }
  automatic_updates.cron_frequency_validator:
    class: Drupal\automatic_updates\Validator\CronFrequencyValidator
    arguments:
      - '@config.factory'
      - '@module_handler'
      - '@state'
      - '@datetime.time'
      - '@string_translation'
      - '@automatic_updates.cron_updater'
    tags:
      - { name: event_subscriber }
  automatic_updates.validator.staged_database_updates:
    class: Drupal\automatic_updates\Validator\StagedDatabaseUpdateValidator
    arguments:
      - '@package_manager.path_locator'
      - '@extension.list.module'
      - '@extension.list.theme'
      - '@string_translation'
    tags:
      - { name: event_subscriber }
  automatic_updates.validator.xdebug:
    class: Drupal\automatic_updates\Validator\XdebugValidator
    tags:
      - { name: event_subscriber }
  automatic_updates.validator.version_policy:
    class: Drupal\automatic_updates\Validator\VersionPolicyValidator
    arguments:
      - '@class_resolver'
    tags:
      - { name: event_subscriber }
  automatic_updates.config_subscriber:
    class: Drupal\automatic_updates\EventSubscriber\ConfigSubscriber
    tags:
      - { name: event_subscriber }
  automatic_updates.validator.scaffold_file_permissions:
    class: Drupal\automatic_updates\Validator\ScaffoldFilePermissionsValidator
    arguments:
      - '@package_manager.path_locator'
    tags:
      - { name: event_subscriber }
  logger.channel.automatic_updates:
    parent: logger.channel_base
    arguments: ['automatic_updates']
