status.go 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  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. Details map[string]string `json:"details,omitempty"`
  29. Errors []string `json:"errors,omitempty"`
  30. Warnings []string `json:"warnings,omitempty"`
  31. }
  32. // CloudStatus describes CloudStore metadata
  33. type CloudStatus struct {
  34. CloudConnectionStatus string `json:"cloudConnectionStatus"`
  35. CloudAssets *CloudAssetStatus `json:"cloudAssets,omitempty`
  36. Reconciliation *ReconciliationStatus `json:"reconciliation,omitempty"`
  37. }
  38. // CloudAssetStatus describes CloudAsset metadata of a CloudStore
  39. type CloudAssetStatus struct {
  40. Coverage Window `json:"coverage"`
  41. LastRun time.Time `json:"lastRun"`
  42. NextRun time.Time `json:"nextRun"`
  43. Progress float64 `json:"progress"`
  44. RefreshRate string `json:"refreshRate"`
  45. Resolution string `json:"resolution"`
  46. StartTime time.Time `json:"startTime"`
  47. }
  48. // ReconciliationStatus describes Reconcilation metadata of a CloudStore
  49. type ReconciliationStatus struct {
  50. Coverage Window `json:"coverage"`
  51. LastRun time.Time `json:"lastRun"`
  52. NextRun time.Time `json:"nextRun"`
  53. Progress float64 `json:"progress"`
  54. RefreshRate string `json:"refreshRate"`
  55. Resolution string `json:"resolution"`
  56. StartTime time.Time `json:"startTime"`
  57. }