def _register_validators()

in cli/src/pcluster/config/cluster_config.py [0:0]


    def _register_validators(self, context: ValidatorContext = None):
        super()._register_validators(context)
        self._register_validator(
            DuplicateNameValidator,
            name_list=[compute_resource.name for compute_resource in self.compute_resources],
            resource_name="Compute resource",
        )
        self._register_validator(
            MaxCountValidator,
            resources_length=len(self.compute_resources),
            max_length=MAX_COMPUTE_RESOURCES_PER_QUEUE,
            resource_name="ComputeResources per Queue",
        )
        self._register_validator(
            QueueSubnetsValidator,
            queue_name=self.name,
            subnet_ids=self.networking.subnet_ids,
            az_subnet_ids_mapping=self.networking.az_subnet_ids_mapping,
        )
        self._register_validator(
            SlurmNodePrioritiesWarningValidator,
            queue_name=self.name,
            compute_resources=self.compute_resources,
        )
        if any(isinstance(compute_resource, SlurmComputeResource) for compute_resource in self.compute_resources):
            self._register_validator(
                SingleInstanceTypeSubnetValidator,
                queue_name=self.name,
                subnet_ids=self.networking.subnet_ids,
            )
        if self.custom_slurm_settings:
            self._register_validator(
                CustomSlurmSettingsValidator,
                custom_settings=[self.custom_slurm_settings],
                deny_list=SLURM_SETTINGS_DENY_LIST["Queue"]["Global"],
                settings_level=CustomSlurmSettingLevel.QUEUE,
            )
        for compute_resource in self.compute_resources:
            self._register_validator(
                EfaSecurityGroupValidator,
                efa_enabled=compute_resource.efa.enabled,
                security_groups=self.networking.security_groups,
                additional_security_groups=self.networking.additional_security_groups,
            )
            self._register_validator(
                EfaPlacementGroupValidator,
                efa_enabled=compute_resource.efa.enabled,
                placement_group_key=self.get_placement_group_settings_for_compute_resource(compute_resource).get("key"),
                placement_group_disabled=self.get_chosen_placement_group_setting_for_compute_resource(
                    compute_resource
                ).enabled
                is False,
                multi_az_enabled=self.multi_az_enabled,
                capacity_type=self.capacity_type,
            )
            self._register_validator(
                ComputeResourceSizeValidator,
                min_count=compute_resource.min_count,
                max_count=compute_resource.max_count,
                capacity_type=self.capacity_type,
            )
            if compute_resource.custom_slurm_settings:
                self._register_validator(
                    CustomSlurmSettingsValidator,
                    custom_settings=[compute_resource.custom_slurm_settings],
                    deny_list=SLURM_SETTINGS_DENY_LIST["ComputeResource"]["Global"],
                    settings_level=CustomSlurmSettingLevel.COMPUTE_RESOURCE,
                )
            for instance_type in compute_resource.instance_types:
                cr_target = compute_resource.capacity_reservation_target or self.capacity_reservation_target
                self._register_validator(
                    CapacityTypeValidator,
                    capacity_type=self.capacity_type,
                    instance_type=instance_type,
                    capacity_reservation_id=cr_target.capacity_reservation_id if cr_target else None,
                )
                self._register_validator(FeatureRegionValidator, feature=self.capacity_type, region=None)