status.go 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package opencost
  2. import "time"
  3. // ETLStatus describes ETL metadata
  4. type ETLStatus struct {
  5. Coverage Window `json:"coverage"`
  6. LastRun time.Time `json:"lastRun"`
  7. Progress float64 `json:"progress"`
  8. RefreshRate string `json:"refreshRate"`
  9. Resolution string `json:"resolution"`
  10. MaxPrometheusQueryDuration string `json:"maxPrometheusQueryDuration"`
  11. StartTime time.Time `json:"startTime"`
  12. UTCOffset string `json:"utcOffset"`
  13. Backup *DirectoryStatus `json:"backup,omitempty"`
  14. }
  15. // DirectoryStatus describes metadata of a directory of files
  16. type DirectoryStatus struct {
  17. Path string `json:"path"`
  18. Size string `json:"size"`
  19. LastModified time.Time `json:"lastModified"`
  20. FileCount int `json:"fileCount"`
  21. Files []FileStatus `json:"files"`
  22. }
  23. // FileStatus describes the metadata of a single file
  24. type FileStatus struct {
  25. Name string `json:"name"`
  26. Size string `json:"size"`
  27. LastModified time.Time `json:"lastModified"`
  28. IsRepairing bool `json:"isRepairing"`
  29. Details map[string]string `json:"details,omitempty"`
  30. Errors []string `json:"errors,omitempty"`
  31. Warnings []string `json:"warnings,omitempty"`
  32. }
  33. // CloudStatus describes CloudStore metadata
  34. type CloudStatus struct {
  35. ConnectionStatus string `json:"cloudConnectionStatus"`
  36. ProviderType string `json:"providerType"`
  37. CloudUsage *CloudAssetStatus `json:"cloudUsage,omitempty"`
  38. Reconciliation *ReconciliationStatus `json:"reconciliation,omitempty"`
  39. }
  40. // CloudAssetStatus describes CloudAsset metadata of a CloudStore
  41. type CloudAssetStatus struct {
  42. Coverage Window `json:"coverage"`
  43. LastRun time.Time `json:"lastRun"`
  44. NextRun time.Time `json:"nextRun"`
  45. Progress float64 `json:"progress"`
  46. RefreshRate string `json:"refreshRate"`
  47. Resolution string `json:"resolution"`
  48. StartTime time.Time `json:"startTime"`
  49. }
  50. // ReconciliationStatus describes Reconciliation metadata of a CloudStore
  51. type ReconciliationStatus struct {
  52. Coverage Window `json:"coverage"`
  53. LastRun time.Time `json:"lastRun"`
  54. NextRun time.Time `json:"nextRun"`
  55. Progress float64 `json:"progress"`
  56. RefreshRate string `json:"refreshRate"`
  57. Resolution string `json:"resolution"`
  58. StartTime time.Time `json:"startTime"`
  59. }