OpenStack Service Types Authority
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

87 lines
2.7 KiB

  1. {
  2. "$schema": "http://json-schema.org/draft-04/schema#",
  3. "id": "https://specs.openstack.org/openstack/service-types-authority/_downloads/published-schema.json#",
  4. "type": "object",
  5. "required": ["services", "version", "sha", "forward", "reverse"],
  6. "additionalProperties": false,
  7. "properties": {
  8. "version": {
  9. "type": "string",
  10. "description": "DateTime based version in ISO Format (https://tools.ietf.org/html/rfc3339#section-5.6",
  11. "format": "date-time"
  12. },
  13. "sha": {
  14. "type": "string",
  15. "description": "sha of the git commit from which the file was generated",
  16. "pattern": "^[a-f0-9]{40}"
  17. },
  18. "services": {
  19. "type": "array",
  20. "items": {
  21. "$ref": "https://specs.openstack.org/openstack/service-types-authority/_downloads/schema.json#/definitions/service"
  22. }
  23. },
  24. "forward": {
  25. "type": "object",
  26. "description": "Mapping of official service-type to historical aliases",
  27. "patternProperties": {
  28. "^([a-z][a-z-]*[a-z]+|ec2-api)$": {
  29. "type": "array",
  30. "items": {
  31. "type": "string"
  32. },
  33. "description": "Ordered list of historical aliases"
  34. }
  35. },
  36. "additionalProperties": false
  37. },
  38. "reverse": {
  39. "type": "object",
  40. "description": "Reverse mapping of historical alias to official service-type",
  41. "patternProperties": {
  42. "^.*$": {
  43. "type": "string",
  44. "pattern": "^([a-z][a-z-]*[a-z]+|ec2-api)$",
  45. "description": "Official service-type"
  46. }
  47. }
  48. },
  49. "primary_service_by_project": {
  50. "type": "object",
  51. "description": "Mapping of project name to the service data for the primary service",
  52. "patternProperties": {
  53. "^.*$": {
  54. "$ref": "https://specs.openstack.org/openstack/service-types-authority/_downloads/schema.json#/definitions/service"
  55. }
  56. }
  57. },
  58. "all_types_by_service_type": {
  59. "type": "object",
  60. "description": "Mapping of official service-type to official type and aliases",
  61. "patternProperties": {
  62. "^([a-z][a-z-]*[a-z]+|ec2-api)$": {
  63. "type": "array",
  64. "items": {
  65. "type": "string"
  66. },
  67. "description": "Ordered list of official type and historical aliases."
  68. }
  69. },
  70. "additionalProperties": false
  71. },
  72. "service_types_by_project": {
  73. "type": "object",
  74. "description": "Mapping of project name to list of service-types for the project",
  75. "patternProperties": {
  76. "^([a-z][a-z-]*[a-z]+|ec2-api)$": {
  77. "type": "array",
  78. "items": {
  79. "type": "string"
  80. },
  81. "description": "List of service types associated with a project"
  82. }
  83. }
  84. }
  85. }
  86. }