source.go 987 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package pricing
  2. import (
  3. "context"
  4. "github.com/opencost/opencost/core/pkg/reader"
  5. )
  6. type PricingSource interface {
  7. ClusterPricingSource
  8. NetworkPricingSource
  9. NodePricingSource
  10. PersistentVolumePricingSource
  11. ServicePricingSource
  12. GetPricingSet(context.Context) (*PricingSet, error)
  13. SourceKind() string
  14. SourceName() string
  15. }
  16. type ClusterPricingSource interface {
  17. NewClusterPricingReader(ctx context.Context) (reader.Reader[*ClusterPricing], error)
  18. }
  19. type NetworkPricingSource interface {
  20. NewNetworkPricingReader(ctx context.Context) (reader.Reader[*NetworkPricing], error)
  21. }
  22. type NodePricingSource interface {
  23. NewNodePricingReader(ctx context.Context) (reader.Reader[*NodePricing], error)
  24. }
  25. type PersistentVolumePricingSource interface {
  26. NewPersistentVolumePricingReader(ctx context.Context) (reader.Reader[*PersistentVolumePricing], error)
  27. }
  28. type ServicePricingSource interface {
  29. NewServicePricingReader(ctx context.Context) (reader.Reader[*ServicePricing], error)
  30. }