package maintenance

import "time"

type ClusterOpsMaintenanceWindowSlot struct {
	StartCronSpec string `json:"start_cron_spec"` // Cron expression of window start time.
	Duration      string `json:"duration"`        // String format of time.Duration, e.g. "1h", "1d".
	Description   string `json:"description"`     // Description of this maintenance window.
} // @name maintenance.ClusterOpsMaintenanceWindowSlot

type ClusterOpsMaintenanceWindow struct {
	ID        uint64 `json:"id"`
	ClusterID string `json:"cluster_id"`

	Windows []ClusterOpsMaintenanceWindowSlot `json:"windows"`
	// Approvers is additional approvers for operation outside maintenance window.
	Approvers []string `json:"approvers"`

	CreatedAt time.Time  `json:"created_at"`
	UpdatedAt *time.Time `json:"updated_at"`
} // @name maintenance.ClusterOpsMaintenanceWindow
