Skip to content

ScheduleConfig

kedro_azureml_pipeline.config.ScheduleConfig

Bases: BaseModel

Schedule trigger configuration requiring exactly one of cron or recurrence.

Parameters

Name Type Description Default
cron CronScheduleConfig or None

Cron-based trigger.

required
recurrence RecurrenceScheduleConfig or None

Recurrence-based trigger.

required

See Also

CronScheduleConfig : Cron trigger details. RecurrenceScheduleConfig : Recurrence trigger details. build_trigger : Converts this config to Azure ML trigger.

Source Code

Show/Hide source
class ScheduleConfig(BaseModel):
    """Schedule trigger configuration requiring exactly one of ``cron`` or ``recurrence``.

    Parameters
    ----------
    cron : CronScheduleConfig or None
        Cron-based trigger.
    recurrence : RecurrenceScheduleConfig or None
        Recurrence-based trigger.

    See Also
    --------
    [CronScheduleConfig][kedro_azureml_pipeline.config.CronScheduleConfig] : Cron trigger details.
    [RecurrenceScheduleConfig][kedro_azureml_pipeline.config.RecurrenceScheduleConfig] : Recurrence trigger details.
    [build_trigger][kedro_azureml_pipeline.scheduler.build_trigger] : Converts this config to Azure ML trigger.
    """

    model_config = ConfigDict(extra="forbid")

    cron: CronScheduleConfig | None = Field(default=None, description="Cron-based trigger.")
    recurrence: RecurrenceScheduleConfig | None = Field(default=None, description="Recurrence-based trigger.")

    @model_validator(mode="after")
    def _validate_exactly_one_trigger(self) -> "ScheduleConfig":
        """Ensure exactly one of ``cron`` or ``recurrence`` is set.

        Returns
        -------
        ScheduleConfig
            The validated instance.

        Raises
        ------
        ValueError
            If both or neither trigger is set.
        """
        if self.cron and self.recurrence:
            raise ValueError("ScheduleConfig must have exactly one of 'cron' or 'recurrence', not both")
        if not self.cron and not self.recurrence:
            raise ValueError("ScheduleConfig must have exactly one of 'cron' or 'recurrence'")
        return self