def register_job()

in src/services/clients/scheduler.py [0:0]


    def register_job(self, tenant: Tenant, schedule: str,
                     environment: dict,
                     name: Optional[str] = None,
                     rulesets: list[str] | None = None) -> ScheduledJob:
        _id = self.safe_name(name) if name else \
            self.safe_name_from_tenant(tenant)
        _LOG.info(f'Registering new scheduled job with id \'{_id}\'')
        params = dict(
            rule_name=_id, schedule=schedule,
            description=self._rule_description_from_scratch(tenant, schedule))
        self._put_rule_asserting_valid_schedule_expression(**params)
        _LOG.debug(f'EventBridge rule was created')
        target = BatchRuleTarget(
            _id=TARGET_ID,
            arn=self._batch_client.get_custodian_job_queue_arn(),
            role_arn=self._iam_client.build_role_arn(
                self._environment.event_bridge_service_role()),
        )
        environment[BatchJobEnv.SUBMITTED_AT.value] = '<submitted_at>'
        environment[BatchJobEnv.SCHEDULED_JOB_NAME.value] = _id
        target.set_input_transformer(
            {'submitted_at': '$.time'},
            self._batch_client.build_container_overrides(
                environment=environment, titled=True
            ))
        target.set_params(
            self._batch_client.get_custodian_job_definition_arn(),
            f'{_id}-scheduled-job'
        )
        _ = self._client.put_targets(_id, [target, ])
        _LOG.debug('Batch queue target was added to the created rule')
        _job = ScheduledJob(
            id=_id,
            customer_name=tenant.customer_name,
            tenant_name=tenant.name,
            context=dict(
                schedule=schedule,
                scan_regions=self._scan_regions_from_env(environment),
                scan_rulesets=rulesets,
                is_enabled=True
            ),
        )
        _job.save()
        _LOG.info(f'Scheduled job with name \'{_id}\' was added')
        return _job