progress-schema.json 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. {
  2. "$schema": "http://json-schema.org/draft-07/schema",
  3. "$id": "BuilderProgressSchema",
  4. "title": "Progress schema for builders.",
  5. "type": "object",
  6. "allOf": [
  7. {
  8. "type": "object",
  9. "oneOf": [
  10. {
  11. "type": "object",
  12. "properties": {
  13. "state": {
  14. "type": "string",
  15. "enum": ["stopped"]
  16. }
  17. },
  18. "required": ["state"]
  19. },
  20. {
  21. "type": "object",
  22. "properties": {
  23. "state": {
  24. "type": "string",
  25. "enum": ["waiting"]
  26. },
  27. "status": {
  28. "type": "string"
  29. }
  30. },
  31. "required": ["state"]
  32. },
  33. {
  34. "type": "object",
  35. "properties": {
  36. "state": {
  37. "type": "string",
  38. "enum": ["running"]
  39. },
  40. "current": {
  41. "type": "number",
  42. "minimum": 0
  43. },
  44. "total": {
  45. "type": "number",
  46. "minimum": 0
  47. },
  48. "status": {
  49. "type": "string"
  50. }
  51. },
  52. "required": ["state"]
  53. },
  54. {
  55. "type": "object",
  56. "properties": {
  57. "state": {
  58. "type": "string",
  59. "enum": ["error"]
  60. },
  61. "error": true
  62. },
  63. "required": ["state"]
  64. }
  65. ]
  66. },
  67. {
  68. "type": "object",
  69. "properties": {
  70. "builder": {
  71. "type": "object"
  72. },
  73. "target": {
  74. "type": "object"
  75. },
  76. "id": {
  77. "type": "number"
  78. }
  79. },
  80. "required": ["builder", "id"]
  81. }
  82. ]
  83. }