status.go 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package kubecost
  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. MaxBatch string `json:"maxBatch"`
  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. CloudConnectionStatus string `json:"cloudConnectionStatus"`
  36. CloudAssets *CloudAssetStatus `json:"cloudAssets,omitempty"`
  37. Reconciliation *ReconciliationStatus `json:"reconciliation,omitempty"`
  38. }
  39. // CloudAssetStatus describes CloudAsset metadata of a CloudStore
  40. type CloudAssetStatus struct {
  41. Coverage Window `json:"coverage"`
  42. LastRun time.Time `json:"lastRun"`
  43. NextRun time.Time `json:"nextRun"`
  44. Progress float64 `json:"progress"`
  45. RefreshRate string `json:"refreshRate"`
  46. Resolution string `json:"resolution"`
  47. StartTime time.Time `json:"startTime"`
  48. }
  49. // ReconciliationStatus describes Reconciliation metadata of a CloudStore
  50. type ReconciliationStatus struct {
  51. Coverage Window `json:"coverage"`
  52. LastRun time.Time `json:"lastRun"`
  53. NextRun time.Time `json:"nextRun"`
  54. Progress float64 `json:"progress"`
  55. RefreshRate string `json:"refreshRate"`
  56. Resolution string `json:"resolution"`
  57. StartTime time.Time `json:"startTime"`
  58. }