package task

import (
	"context"

	"github.com/tidbcloud/infra-provider/regional-server/api/v1alpha1"
)

type BucketVendorQueryer interface {
	GetDataplanePermissionStatus(ctx context.Context, bucket *v1alpha1.Bucket, dpid string) (*BucketDataplanePermissionStatus, error)
	GetLifecycleRulesStatus(ctx context.Context, bucket *v1alpha1.Bucket) (*BucketLifecycleRulesStatus, error)
	GetBucketAccessPath(ctx context.Context, bucket *v1alpha1.Bucket) (string, error)
}

type BucketDataplanePermissionStatus string

const (
	BucketDataplanePermissionStatusNotExists BucketDataplanePermissionStatus = "NotExists"
	BucketDataplanePermissionStatusPending   BucketDataplanePermissionStatus = "Pending"
	BucketDataplanePermissionStatusAccepted  BucketDataplanePermissionStatus = "Accepted"
	BucketDataplanePermissionStatusSynced    BucketDataplanePermissionStatus = "Synced"
)

type BucketLifecycleRulesStatus string

const (
	BucketLifecycleRulesStatusUnsynced BucketLifecycleRulesStatus = "Unsynced"
	BucketLifecycleRulesStatusSynced   BucketLifecycleRulesStatus = "Synced"
)
