//go:generate ${GOBIN}/dummygen -d=api_dummy.go -package=monitoring ${GO_MODULE}/pkg/service/monitoring MonitoringServiceAPI
package monitoring

import (
	"context"

	monent "github.com/tidbcloud/devops/entity/monitoring"
)

type ComponentDiffServiceAPI interface {
	CheckComponentDiff(ctx context.Context) error
	ListComponentDiffReports(ctx context.Context, typ monent.ComponentDifferenceReportType) ([]monent.ComponentDifferenceReportMetadata, error)
	GetComponentDiffReport(ctx context.Context, typ monent.ComponentDifferenceReportType, name string) (*monent.ComponentDifferenceReportMetadata, *monent.ComponentDifferenceReport, error)
}

type CertificateServiceAPI interface {
	ListClusterCertificates(ctx context.Context, region string) ([]*monent.Certificate, error)
	CheckCertificate(ctx context.Context) error
}

type IdleReminderServiceAPI interface {
	NotifyWeeklyIdleReport(ctx context.Context) error
	NotifyJiraReport(ctx context.Context) error
}

type MonitoringServiceAPI interface {
	CertificateServiceAPI
	ComponentDiffServiceAPI
	IdleReminderServiceAPI
}
