occi-core 4.3.6 → 5.0.0.alpha.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (359) hide show
  1. checksums.yaml +4 -4
  2. data/.fasterer.yml +3 -0
  3. data/.gitignore +9 -16
  4. data/.rspec +1 -1
  5. data/.rubocop.yml +69 -0
  6. data/.travis.yml +27 -0
  7. data/AUTHORS +8 -6
  8. data/CHANGELOG.md +0 -0
  9. data/Gemfile +1 -1
  10. data/LICENSE +1 -1
  11. data/README.md +25 -170
  12. data/Rakefile +25 -17
  13. data/examples/initialize_model.rb +10 -0
  14. data/examples/parse_action_instance_json.rb +15 -0
  15. data/examples/parse_action_instance_text.rb +15 -0
  16. data/examples/parse_categories_json.rb +15 -0
  17. data/examples/parse_categories_text.rb +15 -0
  18. data/examples/parse_instance_json.rb +15 -0
  19. data/examples/parse_instance_text.rb +15 -0
  20. data/examples/parse_model_json.rb +9 -0
  21. data/examples/parse_model_text.rb +9 -0
  22. data/examples/render_action_instance_json.rb +17 -0
  23. data/examples/render_action_instance_text.rb +17 -0
  24. data/examples/render_instance_json.rb +20 -0
  25. data/examples/render_instance_text.rb +20 -0
  26. data/examples/render_model_json.rb +12 -0
  27. data/examples/render_model_text.rb +12 -0
  28. data/examples/rendering/action_instance.json +6 -0
  29. data/examples/rendering/action_instance.txt +2 -0
  30. data/examples/rendering/categories.json +78 -0
  31. data/examples/rendering/categories.txt +4 -0
  32. data/examples/rendering/instance.json +70 -0
  33. data/examples/rendering/instance.txt +12 -0
  34. data/examples/rendering/model.alt.json +1716 -0
  35. data/examples/rendering/model.json +785 -0
  36. data/examples/rendering/model.txt +68 -0
  37. data/lib/occi/core/action.rb +12 -26
  38. data/lib/occi/core/action_instance.rb +109 -65
  39. data/lib/occi/core/attribute.rb +136 -0
  40. data/lib/occi/core/attribute_definition.rb +269 -0
  41. data/lib/occi/core/category.rb +110 -83
  42. data/lib/occi/core/collection.rb +255 -0
  43. data/lib/occi/core/constants.rb +14 -0
  44. data/lib/occi/core/entity.rb +301 -195
  45. data/lib/occi/core/errors/.gitkeep +0 -0
  46. data/lib/occi/core/errors/attribute_definition_error.rb +11 -0
  47. data/lib/occi/core/errors/attribute_validation_error.rb +13 -0
  48. data/lib/occi/core/errors/category_validation_error.rb +13 -0
  49. data/lib/occi/core/errors/collection_lookup_error.rb +11 -0
  50. data/lib/occi/core/errors/instance_validation_error.rb +13 -0
  51. data/lib/occi/core/errors/mandatory_argument_error.rb +11 -0
  52. data/lib/occi/core/errors/model_lookup_error.rb +11 -0
  53. data/lib/occi/core/errors/parser_error.rb +11 -0
  54. data/lib/occi/core/errors/parsing_error.rb +11 -0
  55. data/lib/occi/core/errors/renderer_error.rb +11 -0
  56. data/lib/occi/core/errors/rendering_error.rb +11 -0
  57. data/lib/occi/core/errors/validation_error.rb +11 -0
  58. data/lib/occi/core/errors.rb +9 -0
  59. data/lib/occi/core/helpers/.gitkeep +0 -0
  60. data/lib/occi/core/helpers/argument_validator.rb +27 -0
  61. data/lib/occi/core/helpers/attributes_accessor.rb +22 -0
  62. data/lib/occi/core/helpers/error_handler.rb +29 -0
  63. data/lib/occi/core/helpers/hash_dereferencer.rb +149 -0
  64. data/lib/occi/core/helpers/identifier_validator.rb +135 -0
  65. data/lib/occi/core/helpers/instance_attribute_resetter.rb +131 -0
  66. data/lib/occi/core/helpers/instance_attributes_accessor.rb +30 -0
  67. data/lib/occi/core/helpers/locatable.rb +40 -0
  68. data/lib/occi/core/helpers/parser_dereferencer.rb +96 -0
  69. data/lib/occi/core/helpers/raw_json_parser.rb +18 -0
  70. data/lib/occi/core/helpers/renderable.rb +93 -0
  71. data/lib/occi/core/helpers/yaml_summoner.rb +44 -0
  72. data/lib/occi/core/helpers.rb +13 -0
  73. data/lib/occi/core/instance_builder.rb +162 -0
  74. data/lib/occi/core/kind.rb +100 -132
  75. data/lib/occi/core/link.rb +47 -72
  76. data/lib/occi/core/mixin.rb +76 -61
  77. data/lib/occi/core/model.rb +341 -0
  78. data/lib/occi/core/parsers/.gitkeep +0 -0
  79. data/lib/occi/core/parsers/base_parser.rb +168 -0
  80. data/lib/occi/core/parsers/json/.gitkeep +0 -0
  81. data/lib/occi/core/parsers/json/action_instance.rb +36 -0
  82. data/lib/occi/core/parsers/json/category.rb +113 -0
  83. data/lib/occi/core/parsers/json/entity.rb +156 -0
  84. data/lib/occi/core/parsers/json/validator/.gitkeep +0 -0
  85. data/lib/occi/core/parsers/json/validator/action-instance.json +3 -0
  86. data/lib/occi/core/parsers/json/validator/entity-collection.json +3 -0
  87. data/lib/occi/core/parsers/json/validator/link-collection.json +3 -0
  88. data/lib/occi/core/parsers/json/validator/link.json +3 -0
  89. data/lib/occi/core/parsers/json/validator/locations.json +3 -0
  90. data/lib/occi/core/parsers/json/validator/mixin-collection.json +3 -0
  91. data/lib/occi/core/parsers/json/validator/model.json +3 -0
  92. data/lib/occi/core/parsers/json/validator/occi-schema.json +277 -0
  93. data/lib/occi/core/parsers/json/validator/resource-collection.json +3 -0
  94. data/lib/occi/core/parsers/json/validator/resource.json +3 -0
  95. data/lib/occi/core/parsers/json/validator.rb +87 -0
  96. data/lib/occi/core/parsers/json_parser.rb +128 -0
  97. data/lib/occi/core/parsers/text/.gitkeep +0 -0
  98. data/lib/occi/core/parsers/text/category.rb +183 -0
  99. data/lib/occi/core/parsers/text/constants.rb +89 -0
  100. data/lib/occi/core/parsers/text/entity.rb +257 -0
  101. data/lib/occi/core/parsers/text/location.rb +48 -0
  102. data/lib/occi/core/parsers/text_parser.rb +257 -0
  103. data/lib/occi/core/parsers.rb +18 -0
  104. data/lib/occi/core/renderer_factory.rb +213 -0
  105. data/lib/occi/core/renderers/.gitkeep +0 -0
  106. data/lib/occi/core/renderers/base_renderer.rb +81 -0
  107. data/lib/occi/core/renderers/json/.gitkeep +0 -0
  108. data/lib/occi/core/renderers/json/action_instance.rb +24 -0
  109. data/lib/occi/core/renderers/json/attributes.rb +50 -0
  110. data/lib/occi/core/renderers/json/base.rb +46 -0
  111. data/lib/occi/core/renderers/json/category.rb +85 -0
  112. data/lib/occi/core/renderers/json/collection.rb +52 -0
  113. data/lib/occi/core/renderers/json/instance.rb +39 -0
  114. data/lib/occi/core/renderers/json/link.rb +48 -0
  115. data/lib/occi/core/renderers/json/model.rb +26 -0
  116. data/lib/occi/core/renderers/json/resource.rb +27 -0
  117. data/lib/occi/core/renderers/json_renderer.rb +72 -0
  118. data/lib/occi/core/renderers/text/.gitkeep +0 -0
  119. data/lib/occi/core/renderers/text/action_instance.rb +36 -0
  120. data/lib/occi/core/renderers/text/attributes.rb +87 -0
  121. data/lib/occi/core/renderers/text/base.rb +82 -0
  122. data/lib/occi/core/renderers/text/category.rb +183 -0
  123. data/lib/occi/core/renderers/text/collection.rb +65 -0
  124. data/lib/occi/core/renderers/text/instance.rb +44 -0
  125. data/lib/occi/core/renderers/text/link.rb +40 -0
  126. data/lib/occi/core/renderers/text/model.rb +41 -0
  127. data/lib/occi/core/renderers/text/resource.rb +109 -0
  128. data/lib/occi/core/renderers/text_renderer.rb +72 -0
  129. data/lib/occi/core/renderers.rb +20 -0
  130. data/lib/occi/core/resource.rb +93 -57
  131. data/lib/occi/core/utils/.gitkeep +0 -0
  132. data/lib/occi/core/version.rb +17 -0
  133. data/lib/occi/core/warehouse/actions/.gitkeep +0 -0
  134. data/lib/occi/core/warehouse/actions/attributes/.gitkeep +0 -0
  135. data/lib/occi/core/warehouse/kinds/.gitkeep +0 -0
  136. data/lib/occi/core/warehouse/kinds/attributes/.gitkeep +0 -0
  137. data/lib/occi/core/warehouse/kinds/attributes/occi.core.id.yml +7 -0
  138. data/lib/occi/core/warehouse/kinds/attributes/occi.core.source.yml +7 -0
  139. data/lib/occi/core/warehouse/kinds/attributes/occi.core.summary.yml +7 -0
  140. data/lib/occi/core/warehouse/kinds/attributes/occi.core.target.yml +7 -0
  141. data/lib/occi/core/warehouse/kinds/attributes/occi.core.title.yml +7 -0
  142. data/lib/occi/core/warehouse/kinds/entity.yml +10 -0
  143. data/lib/occi/core/warehouse/kinds/link.yml +10 -0
  144. data/lib/occi/core/warehouse/kinds/resource.yml +9 -0
  145. data/lib/occi/core/warehouse/mixins/.gitkeep +0 -0
  146. data/lib/occi/core/warehouse/mixins/attributes/.gitkeep +0 -0
  147. data/lib/occi/core/warehouse.rb +115 -0
  148. data/lib/occi/core.rb +59 -23
  149. data/lib/occi/infrastructure/compute.rb +5 -122
  150. data/lib/occi/infrastructure/constants.rb +25 -0
  151. data/lib/occi/infrastructure/instance_builder.rb +24 -0
  152. data/lib/occi/infrastructure/mixins/.gitkeep +0 -0
  153. data/lib/occi/infrastructure/mixins/os_tpl.rb +19 -0
  154. data/lib/occi/infrastructure/mixins/resource_tpl.rb +19 -0
  155. data/lib/occi/infrastructure/mixins.rb +12 -0
  156. data/lib/occi/infrastructure/model.rb +27 -0
  157. data/lib/occi/infrastructure/network.rb +5 -104
  158. data/lib/occi/infrastructure/networkinterface.rb +5 -100
  159. data/lib/occi/infrastructure/storage.rb +5 -59
  160. data/lib/occi/infrastructure/storagelink.rb +5 -54
  161. data/lib/occi/infrastructure/version.rb +5 -0
  162. data/lib/occi/infrastructure/warehouse/actions/.gitkeep +0 -0
  163. data/lib/occi/infrastructure/warehouse/actions/attributes/.gitkeep +0 -0
  164. data/lib/occi/infrastructure/warehouse/actions/compute_restart.yml +12 -0
  165. data/lib/occi/infrastructure/warehouse/actions/compute_save.yml +19 -0
  166. data/lib/occi/infrastructure/warehouse/actions/compute_start.yml +4 -0
  167. data/lib/occi/infrastructure/warehouse/actions/compute_stop.yml +12 -0
  168. data/lib/occi/infrastructure/warehouse/actions/compute_suspend.yml +12 -0
  169. data/lib/occi/infrastructure/warehouse/actions/network_down.yml +4 -0
  170. data/lib/occi/infrastructure/warehouse/actions/network_up.yml +4 -0
  171. data/lib/occi/infrastructure/warehouse/actions/networkinterface_down.yml +4 -0
  172. data/lib/occi/infrastructure/warehouse/actions/networkinterface_up.yml +4 -0
  173. data/lib/occi/infrastructure/warehouse/actions/storage_backup.yml +4 -0
  174. data/lib/occi/infrastructure/warehouse/actions/storage_offline.yml +4 -0
  175. data/lib/occi/infrastructure/warehouse/actions/storage_online.yml +4 -0
  176. data/lib/occi/infrastructure/warehouse/actions/storage_resize.yml +12 -0
  177. data/lib/occi/infrastructure/warehouse/actions/storage_snapshot.yml +4 -0
  178. data/lib/occi/infrastructure/warehouse/actions/storagelink_offline.yml +4 -0
  179. data/lib/occi/infrastructure/warehouse/actions/storagelink_online.yml +4 -0
  180. data/lib/occi/infrastructure/warehouse/kinds/.gitkeep +0 -0
  181. data/lib/occi/infrastructure/warehouse/kinds/attributes/.gitkeep +0 -0
  182. data/lib/occi/infrastructure/warehouse/kinds/attributes/occi.compute.architecture.yml +7 -0
  183. data/lib/occi/infrastructure/warehouse/kinds/attributes/occi.compute.cores.yml +7 -0
  184. data/lib/occi/infrastructure/warehouse/kinds/attributes/occi.compute.hostname.yml +7 -0
  185. data/lib/occi/infrastructure/warehouse/kinds/attributes/occi.compute.memory.yml +7 -0
  186. data/lib/occi/infrastructure/warehouse/kinds/attributes/occi.compute.speed.yml +7 -0
  187. data/lib/occi/infrastructure/warehouse/kinds/attributes/occi.compute.state.yml +7 -0
  188. data/lib/occi/infrastructure/warehouse/kinds/attributes/occi.network.label.yml +7 -0
  189. data/lib/occi/infrastructure/warehouse/kinds/attributes/occi.network.state.yml +7 -0
  190. data/lib/occi/infrastructure/warehouse/kinds/attributes/occi.network.vlan.yml +7 -0
  191. data/lib/occi/infrastructure/warehouse/kinds/attributes/occi.networkinterface.interface.yml +7 -0
  192. data/lib/occi/infrastructure/warehouse/kinds/attributes/occi.networkinterface.mac.yml +7 -0
  193. data/lib/occi/infrastructure/warehouse/kinds/attributes/occi.networkinterface.state.yml +7 -0
  194. data/lib/occi/infrastructure/warehouse/kinds/attributes/occi.storage.size.yml +7 -0
  195. data/lib/occi/infrastructure/warehouse/kinds/attributes/occi.storage.state.yml +7 -0
  196. data/lib/occi/infrastructure/warehouse/kinds/attributes/occi.storagelink.deviceid.yml +7 -0
  197. data/lib/occi/infrastructure/warehouse/kinds/attributes/occi.storagelink.mountpoint.yml +7 -0
  198. data/lib/occi/infrastructure/warehouse/kinds/attributes/occi.storagelink.state.yml +7 -0
  199. data/lib/occi/infrastructure/warehouse/kinds/compute.yml +19 -0
  200. data/lib/occi/infrastructure/warehouse/kinds/network.yml +13 -0
  201. data/lib/occi/infrastructure/warehouse/kinds/networkinterface.yml +13 -0
  202. data/lib/occi/infrastructure/warehouse/kinds/storage.yml +15 -0
  203. data/lib/occi/infrastructure/warehouse/kinds/storagelink.yml +13 -0
  204. data/lib/occi/infrastructure/warehouse/mixins/.gitkeep +0 -0
  205. data/lib/occi/infrastructure/warehouse/mixins/attributes/.gitkeep +0 -0
  206. data/lib/occi/infrastructure/warehouse/mixins/attributes/occi.network.address.yml +7 -0
  207. data/lib/occi/infrastructure/warehouse/mixins/attributes/occi.network.allocation.yml +7 -0
  208. data/lib/occi/infrastructure/warehouse/mixins/attributes/occi.network.gateway.yml +7 -0
  209. data/lib/occi/infrastructure/warehouse/mixins/attributes/occi.networkinterface.address.yml +7 -0
  210. data/lib/occi/infrastructure/warehouse/mixins/attributes/occi.networkinterface.allocation.yml +7 -0
  211. data/lib/occi/infrastructure/warehouse/mixins/attributes/occi.networkinterface.gateway.yml +7 -0
  212. data/lib/occi/infrastructure/warehouse/mixins/ipnetwork.yml +11 -0
  213. data/lib/occi/infrastructure/warehouse/mixins/ipnetworkinterface.yml +11 -0
  214. data/lib/occi/infrastructure/warehouse.rb +20 -0
  215. data/lib/occi/infrastructure-ext.rb +35 -0
  216. data/lib/occi/infrastructure.rb +34 -19
  217. data/lib/occi/infrastructure_ext/constants.rb +20 -0
  218. data/lib/occi/infrastructure_ext/instance_builder.rb +22 -0
  219. data/lib/occi/infrastructure_ext/ipreservation.rb +9 -0
  220. data/lib/occi/infrastructure_ext/mixins/.gitkeep +0 -0
  221. data/lib/occi/infrastructure_ext/mixins/availability_zone.rb +19 -0
  222. data/lib/occi/infrastructure_ext/mixins.rb +12 -0
  223. data/lib/occi/infrastructure_ext/model.rb +26 -0
  224. data/lib/occi/infrastructure_ext/securitygroup.rb +9 -0
  225. data/lib/occi/infrastructure_ext/securitygrouplink.rb +9 -0
  226. data/lib/occi/infrastructure_ext/version.rb +5 -0
  227. data/lib/occi/infrastructure_ext/warehouse/actions/.gitkeep +0 -0
  228. data/lib/occi/infrastructure_ext/warehouse/actions/attributes/.gitkeep +0 -0
  229. data/lib/occi/infrastructure_ext/warehouse/actions/ipreservation_down.yml +4 -0
  230. data/lib/occi/infrastructure_ext/warehouse/actions/ipreservation_up.yml +4 -0
  231. data/lib/occi/infrastructure_ext/warehouse/kinds/.gitkeep +0 -0
  232. data/lib/occi/infrastructure_ext/warehouse/kinds/attributes/.gitkeep +0 -0
  233. data/lib/occi/infrastructure_ext/warehouse/kinds/attributes/occi.ipreservation.address.yml +7 -0
  234. data/lib/occi/infrastructure_ext/warehouse/kinds/attributes/occi.ipreservation.state.yml +7 -0
  235. data/lib/occi/infrastructure_ext/warehouse/kinds/attributes/occi.ipreservation.used.yml +7 -0
  236. data/lib/occi/infrastructure_ext/warehouse/kinds/attributes/occi.securitygroup.rules.yml +7 -0
  237. data/lib/occi/infrastructure_ext/warehouse/kinds/attributes/occi.securitygroup.state.yml +7 -0
  238. data/lib/occi/infrastructure_ext/warehouse/kinds/attributes/occi.securitygrouplink.state.yml +7 -0
  239. data/lib/occi/infrastructure_ext/warehouse/kinds/ipreservation.yml +13 -0
  240. data/lib/occi/infrastructure_ext/warehouse/kinds/securitygroup.yml +9 -0
  241. data/lib/occi/infrastructure_ext/warehouse/kinds/securitygrouplink.yml +8 -0
  242. data/lib/occi/infrastructure_ext/warehouse/mixins/.gitkeep +0 -0
  243. data/lib/occi/infrastructure_ext/warehouse/mixins/attributes/.gitkeep +0 -0
  244. data/lib/occi/infrastructure_ext/warehouse.rb +20 -0
  245. data/lib/occi/monkey_island/boolean.rb +6 -0
  246. data/lib/occi/monkey_island/hash.rb +4 -0
  247. data/occi-core.gemspec +26 -26
  248. metadata +312 -243
  249. data/.yardopts +0 -1
  250. data/config/occi.yml +0 -4
  251. data/lib/occi/collection.rb +0 -265
  252. data/lib/occi/core/actions.rb +0 -21
  253. data/lib/occi/core/attributes.rb +0 -411
  254. data/lib/occi/core/categories.rb +0 -64
  255. data/lib/occi/core/dependencies.rb +0 -7
  256. data/lib/occi/core/entities.rb +0 -48
  257. data/lib/occi/core/kinds.rb +0 -22
  258. data/lib/occi/core/links.rb +0 -37
  259. data/lib/occi/core/mixins.rb +0 -37
  260. data/lib/occi/core/properties.rb +0 -108
  261. data/lib/occi/core/resources.rb +0 -14
  262. data/lib/occi/errors/attribute_definitions_converted_error.rb +0 -5
  263. data/lib/occi/errors/attribute_missing_error.rb +0 -5
  264. data/lib/occi/errors/attribute_name_invalid_error.rb +0 -5
  265. data/lib/occi/errors/attribute_not_defined_error.rb +0 -5
  266. data/lib/occi/errors/attribute_property_type_error.rb +0 -5
  267. data/lib/occi/errors/attribute_type_error.rb +0 -5
  268. data/lib/occi/errors/category_not_defined_error.rb +0 -5
  269. data/lib/occi/errors/kind_not_defined_error.rb +0 -5
  270. data/lib/occi/errors/parser_input_error.rb +0 -5
  271. data/lib/occi/errors/parser_type_error.rb +0 -5
  272. data/lib/occi/errors.rb +0 -1
  273. data/lib/occi/extensions/hashie.rb +0 -25
  274. data/lib/occi/helpers/comparators/action_instance.rb +0 -22
  275. data/lib/occi/helpers/comparators/attributes.rb +0 -22
  276. data/lib/occi/helpers/comparators/categories.rb +0 -22
  277. data/lib/occi/helpers/comparators/category.rb +0 -22
  278. data/lib/occi/helpers/comparators/collection.rb +0 -40
  279. data/lib/occi/helpers/comparators/entities.rb +0 -22
  280. data/lib/occi/helpers/comparators/entity.rb +0 -22
  281. data/lib/occi/helpers/comparators/properties.rb +0 -26
  282. data/lib/occi/helpers/comparators.rb +0 -1
  283. data/lib/occi/helpers/inspect.rb +0 -12
  284. data/lib/occi/infrastructure/network/ipnetwork.rb +0 -28
  285. data/lib/occi/infrastructure/networkinterface/ipnetworkinterface.rb +0 -28
  286. data/lib/occi/infrastructure/os_tpl.rb +0 -20
  287. data/lib/occi/infrastructure/resource_tpl.rb +0 -20
  288. data/lib/occi/log.rb +0 -71
  289. data/lib/occi/model.rb +0 -87
  290. data/lib/occi/parser/json.rb +0 -38
  291. data/lib/occi/parser/text/constants.rb +0 -89
  292. data/lib/occi/parser/text.rb +0 -280
  293. data/lib/occi/parser.rb +0 -144
  294. data/lib/occi/settings.rb +0 -10
  295. data/lib/occi/version.rb +0 -3
  296. data/lib/occi-core.rb +0 -53
  297. data/spec/helpers/to_plain.rb +0 -39
  298. data/spec/helpers/yaml_hash.rb +0 -32
  299. data/spec/occi/collection_samples/collection1.json +0 -1
  300. data/spec/occi/collection_samples/directory2/collection2.json +0 -1
  301. data/spec/occi/collection_spec.rb +0 -1003
  302. data/spec/occi/core/action_instance_spec.rb +0 -317
  303. data/spec/occi/core/action_spec.rb +0 -71
  304. data/spec/occi/core/attributes_spec.rb +0 -665
  305. data/spec/occi/core/categories_spec.rb +0 -28
  306. data/spec/occi/core/category_spec.rb +0 -216
  307. data/spec/occi/core/entities_spec.rb +0 -160
  308. data/spec/occi/core/entity_spec.rb +0 -374
  309. data/spec/occi/core/kind_spec.rb +0 -182
  310. data/spec/occi/core/link_spec.rb +0 -52
  311. data/spec/occi/core/links_spec.rb +0 -132
  312. data/spec/occi/core/mixin_spec.rb +0 -38
  313. data/spec/occi/core/mixins_spec.rb +0 -107
  314. data/spec/occi/core/properties_spec.rb +0 -171
  315. data/spec/occi/core/resource_spec.rb +0 -42
  316. data/spec/occi/core_spec.rb +0 -12
  317. data/spec/occi/infrastructure/compute_spec.rb +0 -229
  318. data/spec/occi/infrastructure/network_spec.rb +0 -96
  319. data/spec/occi/infrastructure/networkinterface_spec.rb +0 -96
  320. data/spec/occi/infrastructure/storage_spec.rb +0 -33
  321. data/spec/occi/infrastructure/storagelink_spec.rb +0 -45
  322. data/spec/occi/log_spec.rb +0 -117
  323. data/spec/occi/model_spec.rb +0 -256
  324. data/spec/occi/parser/json_samples/test.json +0 -49
  325. data/spec/occi/parser/text_samples/occi_categories.body_plain.expected +0 -2
  326. data/spec/occi/parser/text_samples/occi_categories.expected +0 -2
  327. data/spec/occi/parser/text_samples/occi_categories.parse_headers.expected +0 -2
  328. data/spec/occi/parser/text_samples/occi_categories.text +0 -2
  329. data/spec/occi/parser/text_samples/occi_compute_rocci_server.expected +0 -11
  330. data/spec/occi/parser/text_samples/occi_compute_rocci_server.text +0 -10
  331. data/spec/occi/parser/text_samples/occi_link_resource_instance.body_plain.expected +0 -7
  332. data/spec/occi/parser/text_samples/occi_link_resource_instance.expected +0 -7
  333. data/spec/occi/parser/text_samples/occi_link_resource_instance.parse.expected +0 -7
  334. data/spec/occi/parser/text_samples/occi_link_resource_instance.text +0 -7
  335. data/spec/occi/parser/text_samples/occi_link_simple.expected +0 -7
  336. data/spec/occi/parser/text_samples/occi_link_simple.text +0 -1
  337. data/spec/occi/parser/text_samples/occi_link_w_attributes.expected +0 -7
  338. data/spec/occi/parser/text_samples/occi_link_w_attributes.text +0 -7
  339. data/spec/occi/parser/text_samples/occi_link_w_category.expected +0 -7
  340. data/spec/occi/parser/text_samples/occi_link_w_category.text +0 -3
  341. data/spec/occi/parser/text_samples/occi_model_categories.expected +0 -3
  342. data/spec/occi/parser/text_samples/occi_model_rocci_server.text +0 -51
  343. data/spec/occi/parser/text_samples/occi_network_rocci_server.body_plain.expected +0 -11
  344. data/spec/occi/parser/text_samples/occi_network_rocci_server.expected +0 -11
  345. data/spec/occi/parser/text_samples/occi_network_rocci_server.resource.header.expected +0 -9
  346. data/spec/occi/parser/text_samples/occi_network_rocci_server.resource.rack.expected +0 -9
  347. data/spec/occi/parser/text_samples/occi_network_rocci_server.text +0 -11
  348. data/spec/occi/parser/text_samples/occi_resource_custom_class_w_attributes.parse.expected +0 -15
  349. data/spec/occi/parser/text_samples/occi_resource_custom_class_w_attributes.text +0 -15
  350. data/spec/occi/parser/text_samples/occi_resource_w_attributes.text +0 -11
  351. data/spec/occi/parser/text_samples/occi_resource_w_inline_links.expected +0 -1
  352. data/spec/occi/parser/text_samples/occi_resource_w_inline_links.text +0 -16
  353. data/spec/occi/parser/text_samples/occi_resource_w_inline_links_only.text +0 -13
  354. data/spec/occi/parser/text_samples/occi_storage_rocci_server.expected +0 -9
  355. data/spec/occi/parser/text_samples/occi_storage_rocci_server.text +0 -9
  356. data/spec/occi/parser/text_spec.rb +0 -320
  357. data/spec/occi/parser_spec.rb +0 -259
  358. data/spec/occi-core_spec.rb +0 -31
  359. data/spec/spec_helper.rb +0 -18
@@ -0,0 +1,785 @@
1
+ {
2
+ "actions": [
3
+ {
4
+ "attributes": {
5
+ "method": {
6
+ "default": "cold",
7
+ "description": "Restart method",
8
+ "mutable": true,
9
+ "pattern": "(?-mix:^(graceful|warm|cold)$)",
10
+ "required": false,
11
+ "type": "string"
12
+ }
13
+ },
14
+ "scheme": "http://schemas.ogf.org/occi/infrastructure/compute/action#",
15
+ "term": "restart",
16
+ "title": "Restart compute via the specified method"
17
+ },
18
+ {
19
+ "attributes": {
20
+ "method": {
21
+ "default": "deffered",
22
+ "description": "Save method",
23
+ "mutable": true,
24
+ "pattern": "(?-mix:^(hot|deffered)$)",
25
+ "required": false,
26
+ "type": "string"
27
+ },
28
+ "name": {
29
+ "description": "Name of the copy",
30
+ "mutable": true,
31
+ "pattern": "(?-mix:^[[:alnum:]]+$)",
32
+ "required": false,
33
+ "type": "string"
34
+ }
35
+ },
36
+ "scheme": "http://schemas.ogf.org/occi/infrastructure/compute/action#",
37
+ "term": "save",
38
+ "title": "Makes an independent copy of the compute instance"
39
+ },
40
+ {
41
+ "scheme": "http://schemas.ogf.org/occi/infrastructure/compute/action#",
42
+ "term": "start",
43
+ "title": "Change compute status to active"
44
+ },
45
+ {
46
+ "attributes": {
47
+ "method": {
48
+ "default": "poweroff",
49
+ "description": "Stop method",
50
+ "mutable": true,
51
+ "pattern": "(?-mix:^(graceful|acpioff|poweroff)$)",
52
+ "required": false,
53
+ "type": "string"
54
+ }
55
+ },
56
+ "scheme": "http://schemas.ogf.org/occi/infrastructure/compute/action#",
57
+ "term": "stop",
58
+ "title": "Change compute status to inactive"
59
+ },
60
+ {
61
+ "attributes": {
62
+ "method": {
63
+ "default": "suspend",
64
+ "description": "Suspend method",
65
+ "mutable": true,
66
+ "pattern": "(?-mix:^(hibernate|suspend)$)",
67
+ "required": false,
68
+ "type": "string"
69
+ }
70
+ },
71
+ "scheme": "http://schemas.ogf.org/occi/infrastructure/compute/action#",
72
+ "term": "suspend",
73
+ "title": "Change compute status to suspended"
74
+ },
75
+ {
76
+ "scheme": "http://schemas.ogf.org/occi/infrastructure/network/action#",
77
+ "term": "down",
78
+ "title": "Change network status to inactive"
79
+ },
80
+ {
81
+ "scheme": "http://schemas.ogf.org/occi/infrastructure/network/action#",
82
+ "term": "up",
83
+ "title": "Change network status to active"
84
+ },
85
+ {
86
+ "scheme": "http://schemas.ogf.org/occi/infrastructure/networkinterface/action#",
87
+ "term": "down",
88
+ "title": "Change networkinterface status to inactive"
89
+ },
90
+ {
91
+ "scheme": "http://schemas.ogf.org/occi/infrastructure/networkinterface/action#",
92
+ "term": "up",
93
+ "title": "Change networkinterface status to active"
94
+ },
95
+ {
96
+ "scheme": "http://schemas.ogf.org/occi/infrastructure/storage/action#",
97
+ "term": "backup",
98
+ "title": "Make a backup of the storage instance"
99
+ },
100
+ {
101
+ "scheme": "http://schemas.ogf.org/occi/infrastructure/storage/action#",
102
+ "term": "offline",
103
+ "title": "Change storage status to offline"
104
+ },
105
+ {
106
+ "scheme": "http://schemas.ogf.org/occi/infrastructure/storage/action#",
107
+ "term": "online",
108
+ "title": "Change storage status to online"
109
+ },
110
+ {
111
+ "attributes": {
112
+ "size": {
113
+ "description": "Amount of storage in GBs.",
114
+ "mutable": true,
115
+ "required": true,
116
+ "type": "number"
117
+ }
118
+ },
119
+ "scheme": "http://schemas.ogf.org/occi/infrastructure/storage/action#",
120
+ "term": "resize",
121
+ "title": "Change the resize of the storage instance"
122
+ },
123
+ {
124
+ "scheme": "http://schemas.ogf.org/occi/infrastructure/storage/action#",
125
+ "term": "snapshot",
126
+ "title": "Make a snapshot of the storage instance"
127
+ },
128
+ {
129
+ "scheme": "http://schemas.ogf.org/occi/infrastructure/storagelink/action#",
130
+ "term": "offline",
131
+ "title": "Change storagelink status to inactive"
132
+ },
133
+ {
134
+ "scheme": "http://schemas.ogf.org/occi/infrastructure/storagelink/action#",
135
+ "term": "online",
136
+ "title": "Change storagelink status to active"
137
+ },
138
+ {
139
+ "scheme": "http://schemas.ogf.org/occi/infrastructure/ipreservation/action#",
140
+ "term": "down",
141
+ "title": "Change ipreservation status to inactive"
142
+ },
143
+ {
144
+ "scheme": "http://schemas.ogf.org/occi/infrastructure/ipreservation/action#",
145
+ "term": "up",
146
+ "title": "Change ipreservation status to active"
147
+ }
148
+ ],
149
+ "kinds": [
150
+ {
151
+ "attributes": {
152
+ "occi.core.id": {
153
+ "description": "Identifier assigned to this entity sub-type instance.",
154
+ "mutable": false,
155
+ "pattern": "(?-mix:^[[:alnum:]]([[:alnum:]]|-|_)*$)",
156
+ "required": true,
157
+ "type": "string"
158
+ },
159
+ "occi.core.title": {
160
+ "description": "Title assigned to this entity sub-type instance.",
161
+ "mutable": true,
162
+ "pattern": "(?-mix:^[[:word:]]([[:blank:]]|[[:word:]]|\\-)*$)",
163
+ "required": false,
164
+ "type": "string"
165
+ }
166
+ },
167
+ "location": "/entity/",
168
+ "scheme": "http://schemas.ogf.org/occi/core#",
169
+ "term": "entity",
170
+ "title": "OCCI Core Entity"
171
+ },
172
+ {
173
+ "attributes": {
174
+ "occi.core.id": {
175
+ "description": "Identifier assigned to this entity sub-type instance.",
176
+ "mutable": false,
177
+ "pattern": "(?-mix:^[[:alnum:]]([[:alnum:]]|-|_)*$)",
178
+ "required": true,
179
+ "type": "string"
180
+ },
181
+ "occi.core.source": {
182
+ "description": "Source resource sub-type instance of this link sub-type instance.",
183
+ "mutable": true,
184
+ "required": true,
185
+ "type": "string"
186
+ },
187
+ "occi.core.target": {
188
+ "description": "Target resource sub-type instance of this link sub-type instance.",
189
+ "mutable": true,
190
+ "required": true,
191
+ "type": "string"
192
+ },
193
+ "occi.core.title": {
194
+ "description": "Title assigned to this entity sub-type instance.",
195
+ "mutable": true,
196
+ "pattern": "(?-mix:^[[:word:]]([[:blank:]]|[[:word:]]|\\-)*$)",
197
+ "required": false,
198
+ "type": "string"
199
+ }
200
+ },
201
+ "location": "/link/",
202
+ "parent": "http://schemas.ogf.org/occi/core#entity",
203
+ "scheme": "http://schemas.ogf.org/occi/core#",
204
+ "term": "link",
205
+ "title": "OCCI Core Link"
206
+ },
207
+ {
208
+ "attributes": {
209
+ "occi.core.id": {
210
+ "description": "Identifier assigned to this entity sub-type instance.",
211
+ "mutable": false,
212
+ "pattern": "(?-mix:^[[:alnum:]]([[:alnum:]]|-|_)*$)",
213
+ "required": true,
214
+ "type": "string"
215
+ },
216
+ "occi.core.summary": {
217
+ "description": "Brief textual description of this entity sub-type instance.",
218
+ "mutable": true,
219
+ "pattern": "(?-mix:^.*$)",
220
+ "required": false,
221
+ "type": "string"
222
+ },
223
+ "occi.core.title": {
224
+ "description": "Title assigned to this entity sub-type instance.",
225
+ "mutable": true,
226
+ "pattern": "(?-mix:^[[:word:]]([[:blank:]]|[[:word:]]|\\-)*$)",
227
+ "required": false,
228
+ "type": "string"
229
+ }
230
+ },
231
+ "location": "/resource/",
232
+ "parent": "http://schemas.ogf.org/occi/core#entity",
233
+ "scheme": "http://schemas.ogf.org/occi/core#",
234
+ "term": "resource",
235
+ "title": "OCCI Core Resource"
236
+ },
237
+ {
238
+ "actions": [
239
+ "http://schemas.ogf.org/occi/infrastructure/compute/action#start",
240
+ "http://schemas.ogf.org/occi/infrastructure/compute/action#stop",
241
+ "http://schemas.ogf.org/occi/infrastructure/compute/action#restart",
242
+ "http://schemas.ogf.org/occi/infrastructure/compute/action#suspend",
243
+ "http://schemas.ogf.org/occi/infrastructure/compute/action#save"
244
+ ],
245
+ "attributes": {
246
+ "occi.compute.architecture": {
247
+ "default": "x64",
248
+ "description": "Compute platform architecture.",
249
+ "mutable": true,
250
+ "pattern": "(?-mix:^(x86|x64)$)",
251
+ "required": false,
252
+ "type": "string"
253
+ },
254
+ "occi.compute.cores": {
255
+ "description": "Number of compute processor cores.",
256
+ "mutable": true,
257
+ "required": false,
258
+ "type": "number"
259
+ },
260
+ "occi.compute.hostname": {
261
+ "description": "Compute FQDN.",
262
+ "mutable": true,
263
+ "required": false,
264
+ "type": "string"
265
+ },
266
+ "occi.compute.memory": {
267
+ "description": "Amount of compute memory in GBs.",
268
+ "mutable": true,
269
+ "required": false,
270
+ "type": "number"
271
+ },
272
+ "occi.compute.speed": {
273
+ "description": "Relative speed of the compute instance.",
274
+ "mutable": true,
275
+ "required": false,
276
+ "type": "number"
277
+ },
278
+ "occi.compute.state": {
279
+ "default": "inactive",
280
+ "description": "Compute instance state.",
281
+ "mutable": false,
282
+ "pattern": "(?-mix:^(active|inactive|error|waiting|suspended)$)",
283
+ "required": true,
284
+ "type": "string"
285
+ },
286
+ "occi.core.id": {
287
+ "description": "Identifier assigned to this entity sub-type instance.",
288
+ "mutable": false,
289
+ "pattern": "(?-mix:^[[:alnum:]]([[:alnum:]]|-|_)*$)",
290
+ "required": true,
291
+ "type": "string"
292
+ },
293
+ "occi.core.summary": {
294
+ "description": "Brief textual description of this entity sub-type instance.",
295
+ "mutable": true,
296
+ "pattern": "(?-mix:^.*$)",
297
+ "required": false,
298
+ "type": "string"
299
+ },
300
+ "occi.core.title": {
301
+ "description": "Title assigned to this entity sub-type instance.",
302
+ "mutable": true,
303
+ "pattern": "(?-mix:^[[:word:]]([[:blank:]]|[[:word:]]|\\-)*$)",
304
+ "required": false,
305
+ "type": "string"
306
+ }
307
+ },
308
+ "location": "/compute/",
309
+ "parent": "http://schemas.ogf.org/occi/core#resource",
310
+ "scheme": "http://schemas.ogf.org/occi/infrastructure#",
311
+ "term": "compute",
312
+ "title": "OCCI Infrastructure Compute"
313
+ },
314
+ {
315
+ "actions": [
316
+ "http://schemas.ogf.org/occi/infrastructure/network/action#up",
317
+ "http://schemas.ogf.org/occi/infrastructure/network/action#down"
318
+ ],
319
+ "attributes": {
320
+ "occi.core.id": {
321
+ "description": "Identifier assigned to this entity sub-type instance.",
322
+ "mutable": false,
323
+ "pattern": "(?-mix:^[[:alnum:]]([[:alnum:]]|-|_)*$)",
324
+ "required": true,
325
+ "type": "string"
326
+ },
327
+ "occi.core.summary": {
328
+ "description": "Brief textual description of this entity sub-type instance.",
329
+ "mutable": true,
330
+ "pattern": "(?-mix:^.*$)",
331
+ "required": false,
332
+ "type": "string"
333
+ },
334
+ "occi.core.title": {
335
+ "description": "Title assigned to this entity sub-type instance.",
336
+ "mutable": true,
337
+ "pattern": "(?-mix:^[[:word:]]([[:blank:]]|[[:word:]]|\\-)*$)",
338
+ "required": false,
339
+ "type": "string"
340
+ },
341
+ "occi.network.label": {
342
+ "description": "Label of the network instance.",
343
+ "mutable": true,
344
+ "required": false,
345
+ "type": "string"
346
+ },
347
+ "occi.network.state": {
348
+ "default": "inactive",
349
+ "description": "Network instance state.",
350
+ "mutable": false,
351
+ "pattern": "(?-mix:^(active|inactive|error)$)",
352
+ "required": true,
353
+ "type": "string"
354
+ },
355
+ "occi.network.vlan": {
356
+ "description": "VLAN identifier or a tag.",
357
+ "mutable": true,
358
+ "required": false,
359
+ "type": "number"
360
+ }
361
+ },
362
+ "location": "/network/",
363
+ "parent": "http://schemas.ogf.org/occi/core#resource",
364
+ "scheme": "http://schemas.ogf.org/occi/infrastructure#",
365
+ "term": "network",
366
+ "title": "OCCI Infrastructure Network"
367
+ },
368
+ {
369
+ "actions": [
370
+ "http://schemas.ogf.org/occi/infrastructure/networkinterface/action#up",
371
+ "http://schemas.ogf.org/occi/infrastructure/networkinterface/action#down"
372
+ ],
373
+ "attributes": {
374
+ "occi.core.id": {
375
+ "description": "Identifier assigned to this entity sub-type instance.",
376
+ "mutable": false,
377
+ "pattern": "(?-mix:^[[:alnum:]]([[:alnum:]]|-|_)*$)",
378
+ "required": true,
379
+ "type": "string"
380
+ },
381
+ "occi.core.source": {
382
+ "description": "Source resource sub-type instance of this link sub-type instance.",
383
+ "mutable": true,
384
+ "required": true,
385
+ "type": "string"
386
+ },
387
+ "occi.core.target": {
388
+ "description": "Target resource sub-type instance of this link sub-type instance.",
389
+ "mutable": true,
390
+ "required": true,
391
+ "type": "string"
392
+ },
393
+ "occi.core.title": {
394
+ "description": "Title assigned to this entity sub-type instance.",
395
+ "mutable": true,
396
+ "pattern": "(?-mix:^[[:word:]]([[:blank:]]|[[:word:]]|\\-)*$)",
397
+ "required": false,
398
+ "type": "string"
399
+ },
400
+ "occi.networkinterface.interface": {
401
+ "description": "Network interface name.",
402
+ "mutable": false,
403
+ "pattern": "(?-mix:^[[:alnum:]]+$)",
404
+ "required": false,
405
+ "type": "string"
406
+ },
407
+ "occi.networkinterface.mac": {
408
+ "description": "Network interface MAC address.",
409
+ "mutable": false,
410
+ "pattern": "(?-mix:^([0-9a-fA-F]{2}[:-]){5}([0-9a-fA-F]{2})$)",
411
+ "required": false,
412
+ "type": "string"
413
+ },
414
+ "occi.networkinterface.state": {
415
+ "default": "inactive",
416
+ "description": "Networkinterface instance state.",
417
+ "mutable": false,
418
+ "pattern": "(?-mix:^(active|inactive|error)$)",
419
+ "required": true,
420
+ "type": "string"
421
+ }
422
+ },
423
+ "location": "/link/networkinterface/",
424
+ "parent": "http://schemas.ogf.org/occi/core#link",
425
+ "scheme": "http://schemas.ogf.org/occi/infrastructure#",
426
+ "term": "networkinterface",
427
+ "title": "OCCI Infrastructure NetworkInterface"
428
+ },
429
+ {
430
+ "actions": [
431
+ "http://schemas.ogf.org/occi/infrastructure/storage/action#online",
432
+ "http://schemas.ogf.org/occi/infrastructure/storage/action#offline",
433
+ "http://schemas.ogf.org/occi/infrastructure/storage/action#backup",
434
+ "http://schemas.ogf.org/occi/infrastructure/storage/action#snapshot",
435
+ "http://schemas.ogf.org/occi/infrastructure/storage/action#resize"
436
+ ],
437
+ "attributes": {
438
+ "occi.core.id": {
439
+ "description": "Identifier assigned to this entity sub-type instance.",
440
+ "mutable": false,
441
+ "pattern": "(?-mix:^[[:alnum:]]([[:alnum:]]|-|_)*$)",
442
+ "required": true,
443
+ "type": "string"
444
+ },
445
+ "occi.core.summary": {
446
+ "description": "Brief textual description of this entity sub-type instance.",
447
+ "mutable": true,
448
+ "pattern": "(?-mix:^.*$)",
449
+ "required": false,
450
+ "type": "string"
451
+ },
452
+ "occi.core.title": {
453
+ "description": "Title assigned to this entity sub-type instance.",
454
+ "mutable": true,
455
+ "pattern": "(?-mix:^[[:word:]]([[:blank:]]|[[:word:]]|\\-)*$)",
456
+ "required": false,
457
+ "type": "string"
458
+ },
459
+ "occi.storage.size": {
460
+ "description": "Amount of storage in GBs.",
461
+ "mutable": true,
462
+ "required": false,
463
+ "type": "number"
464
+ },
465
+ "occi.storage.state": {
466
+ "default": "offline",
467
+ "description": "Storage instance state.",
468
+ "mutable": false,
469
+ "pattern": "(?-mix:^(online|offline|backup|snapshot|resize|degraded)$)",
470
+ "required": true,
471
+ "type": "string"
472
+ }
473
+ },
474
+ "location": "/storage/",
475
+ "parent": "http://schemas.ogf.org/occi/core#resource",
476
+ "scheme": "http://schemas.ogf.org/occi/infrastructure#",
477
+ "term": "storage",
478
+ "title": "OCCI Infrastructure Storage"
479
+ },
480
+ {
481
+ "actions": [
482
+ "http://schemas.ogf.org/occi/infrastructure/storagelink/action#online",
483
+ "http://schemas.ogf.org/occi/infrastructure/storagelink/action#offline"
484
+ ],
485
+ "attributes": {
486
+ "occi.core.id": {
487
+ "description": "Identifier assigned to this entity sub-type instance.",
488
+ "mutable": false,
489
+ "pattern": "(?-mix:^[[:alnum:]]([[:alnum:]]|-|_)*$)",
490
+ "required": true,
491
+ "type": "string"
492
+ },
493
+ "occi.core.source": {
494
+ "description": "Source resource sub-type instance of this link sub-type instance.",
495
+ "mutable": true,
496
+ "required": true,
497
+ "type": "string"
498
+ },
499
+ "occi.core.target": {
500
+ "description": "Target resource sub-type instance of this link sub-type instance.",
501
+ "mutable": true,
502
+ "required": true,
503
+ "type": "string"
504
+ },
505
+ "occi.core.title": {
506
+ "description": "Title assigned to this entity sub-type instance.",
507
+ "mutable": true,
508
+ "pattern": "(?-mix:^[[:word:]]([[:blank:]]|[[:word:]]|\\-)*$)",
509
+ "required": false,
510
+ "type": "string"
511
+ },
512
+ "occi.storagelink.deviceid": {
513
+ "description": "Block device ID.",
514
+ "mutable": false,
515
+ "pattern": "(?-mix:^[[:alnum:]]+$)",
516
+ "required": false,
517
+ "type": "string"
518
+ },
519
+ "occi.storagelink.mountpoint": {
520
+ "description": "Block device mount point.",
521
+ "mutable": false,
522
+ "required": false,
523
+ "type": "string"
524
+ },
525
+ "occi.storagelink.state": {
526
+ "default": "inactive",
527
+ "description": "Storagelink instance state.",
528
+ "mutable": false,
529
+ "pattern": "(?-mix:^(active|inactive|error|waiting)$)",
530
+ "required": true,
531
+ "type": "string"
532
+ }
533
+ },
534
+ "location": "/link/storagelink/",
535
+ "parent": "http://schemas.ogf.org/occi/core#link",
536
+ "scheme": "http://schemas.ogf.org/occi/infrastructure#",
537
+ "term": "storagelink",
538
+ "title": "OCCI Infrastructure StorageLink"
539
+ },
540
+ {
541
+ "actions": [
542
+ "http://schemas.ogf.org/occi/infrastructure/ipreservation/action#up",
543
+ "http://schemas.ogf.org/occi/infrastructure/ipreservation/action#down"
544
+ ],
545
+ "attributes": {
546
+ "occi.core.id": {
547
+ "description": "Identifier assigned to this entity sub-type instance.",
548
+ "mutable": false,
549
+ "pattern": "(?-mix:^[[:alnum:]]([[:alnum:]]|-|_)*$)",
550
+ "required": true,
551
+ "type": "string"
552
+ },
553
+ "occi.core.summary": {
554
+ "description": "Brief textual description of this entity sub-type instance.",
555
+ "mutable": true,
556
+ "pattern": "(?-mix:^.*$)",
557
+ "required": false,
558
+ "type": "string"
559
+ },
560
+ "occi.core.title": {
561
+ "description": "Title assigned to this entity sub-type instance.",
562
+ "mutable": true,
563
+ "pattern": "(?-mix:^[[:word:]]([[:blank:]]|[[:word:]]|\\-)*$)",
564
+ "required": false,
565
+ "type": "string"
566
+ },
567
+ "occi.ipreservation.address": {
568
+ "description": "IP address (v4 or v6) assigned to this reservation.",
569
+ "mutable": true,
570
+ "required": true,
571
+ "type": "string"
572
+ },
573
+ "occi.ipreservation.state": {
574
+ "default": "inactive",
575
+ "description": "IPReservation instance state.",
576
+ "mutable": false,
577
+ "pattern": "(?-mix:^(active|inactive|error)$)",
578
+ "required": true,
579
+ "type": "string"
580
+ },
581
+ "occi.ipreservation.used": {
582
+ "default": false,
583
+ "description": "Status of the IPReservation instance.",
584
+ "mutable": false,
585
+ "required": true,
586
+ "type": "boolean"
587
+ },
588
+ "occi.network.label": {
589
+ "description": "Label of the network instance.",
590
+ "mutable": true,
591
+ "required": false,
592
+ "type": "string"
593
+ },
594
+ "occi.network.state": {
595
+ "default": "inactive",
596
+ "description": "Network instance state.",
597
+ "mutable": false,
598
+ "pattern": "(?-mix:^(active|inactive|error)$)",
599
+ "required": true,
600
+ "type": "string"
601
+ },
602
+ "occi.network.vlan": {
603
+ "description": "VLAN identifier or a tag.",
604
+ "mutable": true,
605
+ "required": false,
606
+ "type": "number"
607
+ }
608
+ },
609
+ "location": "/ipreservation/",
610
+ "parent": "http://schemas.ogf.org/occi/infrastructure#network",
611
+ "scheme": "http://schemas.ogf.org/occi/infrastructure#",
612
+ "term": "ipreservation",
613
+ "title": "OCCI Infrastructure IP Reservation"
614
+ },
615
+ {
616
+ "attributes": {
617
+ "occi.core.id": {
618
+ "description": "Identifier assigned to this entity sub-type instance.",
619
+ "mutable": false,
620
+ "pattern": "(?-mix:^[[:alnum:]]([[:alnum:]]|-|_)*$)",
621
+ "required": true,
622
+ "type": "string"
623
+ },
624
+ "occi.core.summary": {
625
+ "description": "Brief textual description of this entity sub-type instance.",
626
+ "mutable": true,
627
+ "pattern": "(?-mix:^.*$)",
628
+ "required": false,
629
+ "type": "string"
630
+ },
631
+ "occi.core.title": {
632
+ "description": "Title assigned to this entity sub-type instance.",
633
+ "mutable": true,
634
+ "pattern": "(?-mix:^[[:word:]]([[:blank:]]|[[:word:]]|\\-)*$)",
635
+ "required": false,
636
+ "type": "string"
637
+ },
638
+ "occi.securitygroup.rules": {
639
+ "description": "Status of the IPReservation instance.",
640
+ "mutable": true,
641
+ "required": true,
642
+ "type": "array"
643
+ },
644
+ "occi.securitygroup.state": {
645
+ "default": "inactive",
646
+ "description": "SecurityGroup instance state.",
647
+ "mutable": false,
648
+ "pattern": "(?-mix:^(active|inactive|error)$)",
649
+ "required": true,
650
+ "type": "string"
651
+ }
652
+ },
653
+ "location": "/securitygroup/",
654
+ "parent": "http://schemas.ogf.org/occi/core#resource",
655
+ "scheme": "http://schemas.ogf.org/occi/infrastructure#",
656
+ "term": "securitygroup",
657
+ "title": "OCCI Infrastructure Security Group"
658
+ },
659
+ {
660
+ "attributes": {
661
+ "occi.core.id": {
662
+ "description": "Identifier assigned to this entity sub-type instance.",
663
+ "mutable": false,
664
+ "pattern": "(?-mix:^[[:alnum:]]([[:alnum:]]|-|_)*$)",
665
+ "required": true,
666
+ "type": "string"
667
+ },
668
+ "occi.core.source": {
669
+ "description": "Source resource sub-type instance of this link sub-type instance.",
670
+ "mutable": true,
671
+ "required": true,
672
+ "type": "string"
673
+ },
674
+ "occi.core.target": {
675
+ "description": "Target resource sub-type instance of this link sub-type instance.",
676
+ "mutable": true,
677
+ "required": true,
678
+ "type": "string"
679
+ },
680
+ "occi.core.title": {
681
+ "description": "Title assigned to this entity sub-type instance.",
682
+ "mutable": true,
683
+ "pattern": "(?-mix:^[[:word:]]([[:blank:]]|[[:word:]]|\\-)*$)",
684
+ "required": false,
685
+ "type": "string"
686
+ },
687
+ "occi.securitygrouplink.state": {
688
+ "default": "inactive",
689
+ "description": "SecurityGroupLink instance state.",
690
+ "mutable": false,
691
+ "pattern": "(?-mix:^(active|inactive|error)$)",
692
+ "required": true,
693
+ "type": "string"
694
+ }
695
+ },
696
+ "location": "/link/securitygrouplink/",
697
+ "parent": "http://schemas.ogf.org/occi/core#link",
698
+ "scheme": "http://schemas.ogf.org/occi/infrastructure#",
699
+ "term": "securitygrouplink",
700
+ "title": "OCCI Infrastructure Security Group link"
701
+ }
702
+ ],
703
+ "mixins": [
704
+ {
705
+ "applies": [
706
+ "http://schemas.ogf.org/occi/infrastructure#network"
707
+ ],
708
+ "attributes": {
709
+ "occi.network.address": {
710
+ "description": "IP address (v4 or v6) assigned to this instance.",
711
+ "mutable": true,
712
+ "required": false,
713
+ "type": "string"
714
+ },
715
+ "occi.network.allocation": {
716
+ "default": "static",
717
+ "description": "Network address allocation mechanism.",
718
+ "mutable": true,
719
+ "pattern": "(?-mix:^(dynamic|static)$)",
720
+ "required": false,
721
+ "type": "string"
722
+ },
723
+ "occi.network.gateway": {
724
+ "description": "IP address (v4 or v6) of the pre-configured gateway.",
725
+ "mutable": true,
726
+ "required": false,
727
+ "type": "string"
728
+ }
729
+ },
730
+ "location": "/mixin/ipnetwork/",
731
+ "scheme": "http://schemas.ogf.org/occi/infrastructure/network#",
732
+ "term": "ipnetwork",
733
+ "title": "OCCI IP Network mixin"
734
+ },
735
+ {
736
+ "applies": [
737
+ "http://schemas.ogf.org/occi/infrastructure#networkinterface"
738
+ ],
739
+ "attributes": {
740
+ "occi.networkinterface.address": {
741
+ "description": "IP address (v4 or v6) assigned to this instance.",
742
+ "mutable": true,
743
+ "required": false,
744
+ "type": "string"
745
+ },
746
+ "occi.networkinterface.allocation": {
747
+ "default": "static",
748
+ "description": "Network address allocation mechanism.",
749
+ "mutable": true,
750
+ "pattern": "(?-mix:^(dynamic|static)$)",
751
+ "required": false,
752
+ "type": "string"
753
+ },
754
+ "occi.networkinterface.gateway": {
755
+ "description": "IP address (v4 or v6) of the pre-configured gateway.",
756
+ "mutable": true,
757
+ "required": false,
758
+ "type": "string"
759
+ }
760
+ },
761
+ "location": "/mixin/ipnetworkinterface/",
762
+ "scheme": "http://schemas.ogf.org/occi/infrastructure/networkinterface#",
763
+ "term": "ipnetworkinterface",
764
+ "title": "OCCI IP NetworkInterface mixin"
765
+ },
766
+ {
767
+ "location": "/mixin/os_tpl/",
768
+ "scheme": "http://schemas.ogf.org/occi/infrastructure#",
769
+ "term": "os_tpl",
770
+ "title": "OS or Appliance template (parent mixin)"
771
+ },
772
+ {
773
+ "location": "/mixin/resource_tpl/",
774
+ "scheme": "http://schemas.ogf.org/occi/infrastructure#",
775
+ "term": "resource_tpl",
776
+ "title": "Resource template providing flavor/sizing information (parent mixin)"
777
+ },
778
+ {
779
+ "location": "/mixin/availability_zone/",
780
+ "scheme": "http://schemas.ogf.org/occi/infrastructure#",
781
+ "term": "availability_zone",
782
+ "title": "OCCI Availability Zone mixin"
783
+ }
784
+ ]
785
+ }