uffizzi_core 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (240) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +201 -0
  3. data/README.md +46 -0
  4. data/Rakefile +31 -0
  5. data/app/assets/config/uffizzi_core_manifest.js +1 -0
  6. data/app/assets/stylesheets/uffizzi_core/application.css +15 -0
  7. data/app/clients/uffizzi_core/amazon_registry_client.rb +18 -0
  8. data/app/clients/uffizzi_core/azure_registry_client/request_result.rb +5 -0
  9. data/app/clients/uffizzi_core/azure_registry_client.rb +42 -0
  10. data/app/clients/uffizzi_core/controller_client/request_result.rb +5 -0
  11. data/app/clients/uffizzi_core/controller_client.rb +106 -0
  12. data/app/clients/uffizzi_core/docker_hub_client/request_result.rb +7 -0
  13. data/app/clients/uffizzi_core/docker_hub_client.rb +139 -0
  14. data/app/clients/uffizzi_core/github/app_client.rb +19 -0
  15. data/app/clients/uffizzi_core/github/installation_client.rb +11 -0
  16. data/app/clients/uffizzi_core/github/user_client.rb +51 -0
  17. data/app/clients/uffizzi_core/google_registry_client/request_result.rb +5 -0
  18. data/app/clients/uffizzi_core/google_registry_client.rb +42 -0
  19. data/app/contexts/uffizzi_core/base_context.rb +12 -0
  20. data/app/contexts/uffizzi_core/project_context.rb +13 -0
  21. data/app/contexts/uffizzi_core/webhooks_context.rb +9 -0
  22. data/app/controllers/concerns/uffizzi_core/auth_management.rb +23 -0
  23. data/app/controllers/concerns/uffizzi_core/authorization_concern.rb +38 -0
  24. data/app/controllers/concerns/uffizzi_core/dependency_injection_concern.rb +19 -0
  25. data/app/controllers/uffizzi_core/api/cli/v1/account/application_controller.rb +7 -0
  26. data/app/controllers/uffizzi_core/api/cli/v1/account/credentials_controller.rb +55 -0
  27. data/app/controllers/uffizzi_core/api/cli/v1/application_controller.rb +5 -0
  28. data/app/controllers/uffizzi_core/api/cli/v1/projects/application_controller.rb +11 -0
  29. data/app/controllers/uffizzi_core/api/cli/v1/projects/compose_files_controller.rb +93 -0
  30. data/app/controllers/uffizzi_core/api/cli/v1/projects/deployments/activity_items_controller.rb +36 -0
  31. data/app/controllers/uffizzi_core/api/cli/v1/projects/deployments/application_controller.rb +7 -0
  32. data/app/controllers/uffizzi_core/api/cli/v1/projects/deployments/containers/application_controller.rb +8 -0
  33. data/app/controllers/uffizzi_core/api/cli/v1/projects/deployments/containers/logs_controller.rb +27 -0
  34. data/app/controllers/uffizzi_core/api/cli/v1/projects/deployments/containers_controller.rb +24 -0
  35. data/app/controllers/uffizzi_core/api/cli/v1/projects/deployments/events_controller.rb +29 -0
  36. data/app/controllers/uffizzi_core/api/cli/v1/projects/deployments_controller.rb +148 -0
  37. data/app/controllers/uffizzi_core/api/cli/v1/projects/secrets_controller.rb +69 -0
  38. data/app/controllers/uffizzi_core/api/cli/v1/projects_controller.rb +19 -0
  39. data/app/controllers/uffizzi_core/api/cli/v1/sessions_controller.rb +43 -0
  40. data/app/controllers/uffizzi_core/application_controller.rb +51 -0
  41. data/app/errors/uffizzi_core/compose_file/build_error.rb +4 -0
  42. data/app/errors/uffizzi_core/compose_file/credential_error.rb +4 -0
  43. data/app/errors/uffizzi_core/compose_file/not_found_error.rb +4 -0
  44. data/app/errors/uffizzi_core/compose_file/parse_error.rb +4 -0
  45. data/app/errors/uffizzi_core/compose_file/secrets_error.rb +4 -0
  46. data/app/errors/uffizzi_core/deployment_not_found_error.rb +10 -0
  47. data/app/forms/uffizzi_core/api/cli/v1/account/credential/create_form.rb +26 -0
  48. data/app/forms/uffizzi_core/api/cli/v1/compose_file/check_credentials_form.rb +21 -0
  49. data/app/forms/uffizzi_core/api/cli/v1/compose_file/cli_form.rb +39 -0
  50. data/app/forms/uffizzi_core/api/cli/v1/compose_file/create_form.rb +13 -0
  51. data/app/forms/uffizzi_core/api/cli/v1/compose_file/template_form.rb +44 -0
  52. data/app/forms/uffizzi_core/api/cli/v1/compose_file/update_form.rb +9 -0
  53. data/app/forms/uffizzi_core/api/cli/v1/config_file/create_form.rb +11 -0
  54. data/app/forms/uffizzi_core/api/cli/v1/deployment/create_form.rb +91 -0
  55. data/app/forms/uffizzi_core/api/cli/v1/project/delete_secret_form.rb +27 -0
  56. data/app/forms/uffizzi_core/api/cli/v1/project/update_form.rb +40 -0
  57. data/app/forms/uffizzi_core/api/cli/v1/session_create_form.rb +29 -0
  58. data/app/forms/uffizzi_core/api/cli/v1/template/create_form.rb +65 -0
  59. data/app/forms/uffizzi_core/application_form.rb +11 -0
  60. data/app/forms/uffizzi_core/application_form_without_active_record.rb +17 -0
  61. data/app/forms/uffizzi_core/mass_assignment_control_concern.rb +22 -0
  62. data/app/helpers/uffizzi_core/application_helper.rb +6 -0
  63. data/app/jobs/uffizzi_core/account/create_credential_job.rb +10 -0
  64. data/app/jobs/uffizzi_core/activity_item/docker/update_digest_job.rb +11 -0
  65. data/app/jobs/uffizzi_core/application_job.rb +7 -0
  66. data/app/jobs/uffizzi_core/config_file/apply_job.rb +31 -0
  67. data/app/jobs/uffizzi_core/credential/docker_hub/create_webhook_job.rb +15 -0
  68. data/app/jobs/uffizzi_core/deployment/create_credential_job.rb +32 -0
  69. data/app/jobs/uffizzi_core/deployment/create_credentials_job.rb +17 -0
  70. data/app/jobs/uffizzi_core/deployment/create_job.rb +15 -0
  71. data/app/jobs/uffizzi_core/deployment/create_webhooks_job.rb +13 -0
  72. data/app/jobs/uffizzi_core/deployment/delete_credential_job.rb +13 -0
  73. data/app/jobs/uffizzi_core/deployment/delete_job.rb +11 -0
  74. data/app/jobs/uffizzi_core/deployment/deploy_containers_job.rb +27 -0
  75. data/app/jobs/uffizzi_core/deployment/manage_deploy_activity_item_job.rb +19 -0
  76. data/app/jobs/uffizzi_core/deployment/send_github_preview_message_job.rb +13 -0
  77. data/app/lib/uffizzi_core/rbac/user_access_service.rb +21 -0
  78. data/app/mailers/uffizzi_core/application_mailer.rb +8 -0
  79. data/app/models/concerns/uffizzi_core/hashid_concern.rb +25 -0
  80. data/app/models/concerns/uffizzi_core/state_machine_concern.rb +16 -0
  81. data/app/models/uffizzi_core/account.rb +101 -0
  82. data/app/models/uffizzi_core/activity_item/docker.rb +4 -0
  83. data/app/models/uffizzi_core/activity_item/github.rb +4 -0
  84. data/app/models/uffizzi_core/activity_item/memory_limit.rb +4 -0
  85. data/app/models/uffizzi_core/activity_item.rb +58 -0
  86. data/app/models/uffizzi_core/application_record.rb +7 -0
  87. data/app/models/uffizzi_core/build.rb +39 -0
  88. data/app/models/uffizzi_core/comment.rb +16 -0
  89. data/app/models/uffizzi_core/compose_file.rb +57 -0
  90. data/app/models/uffizzi_core/config_file.rb +24 -0
  91. data/app/models/uffizzi_core/container.rb +100 -0
  92. data/app/models/uffizzi_core/container_config_file.rb +8 -0
  93. data/app/models/uffizzi_core/continuous_preview.rb +4 -0
  94. data/app/models/uffizzi_core/coupon.rb +5 -0
  95. data/app/models/uffizzi_core/credential/amazon.rb +4 -0
  96. data/app/models/uffizzi_core/credential/azure.rb +4 -0
  97. data/app/models/uffizzi_core/credential/docker_hub.rb +4 -0
  98. data/app/models/uffizzi_core/credential/github.rb +4 -0
  99. data/app/models/uffizzi_core/credential/google.rb +4 -0
  100. data/app/models/uffizzi_core/credential.rb +64 -0
  101. data/app/models/uffizzi_core/database.rb +4 -0
  102. data/app/models/uffizzi_core/database_offering.rb +4 -0
  103. data/app/models/uffizzi_core/deployment.rb +77 -0
  104. data/app/models/uffizzi_core/event.rb +13 -0
  105. data/app/models/uffizzi_core/invitation.rb +27 -0
  106. data/app/models/uffizzi_core/membership.rb +16 -0
  107. data/app/models/uffizzi_core/payment.rb +11 -0
  108. data/app/models/uffizzi_core/price.rb +9 -0
  109. data/app/models/uffizzi_core/product.rb +11 -0
  110. data/app/models/uffizzi_core/project.rb +66 -0
  111. data/app/models/uffizzi_core/rating.rb +20 -0
  112. data/app/models/uffizzi_core/repo/amazon.rb +4 -0
  113. data/app/models/uffizzi_core/repo/azure.rb +4 -0
  114. data/app/models/uffizzi_core/repo/docker_hub.rb +4 -0
  115. data/app/models/uffizzi_core/repo/github.rb +4 -0
  116. data/app/models/uffizzi_core/repo/google.rb +4 -0
  117. data/app/models/uffizzi_core/repo.rb +39 -0
  118. data/app/models/uffizzi_core/role.rb +17 -0
  119. data/app/models/uffizzi_core/template.rb +19 -0
  120. data/app/models/uffizzi_core/user.rb +62 -0
  121. data/app/models/uffizzi_core/user_project.rb +14 -0
  122. data/app/policies/uffizzi_core/api/cli/v1/account/credentials_policy.rb +11 -0
  123. data/app/policies/uffizzi_core/api/cli/v1/projects/compose_files_policy.rb +15 -0
  124. data/app/policies/uffizzi_core/api/cli/v1/projects/deployments/activity_items_policy.rb +7 -0
  125. data/app/policies/uffizzi_core/api/cli/v1/projects/deployments/containers_policy.rb +7 -0
  126. data/app/policies/uffizzi_core/api/cli/v1/projects/deployments/events_policy.rb +7 -0
  127. data/app/policies/uffizzi_core/api/cli/v1/projects/deployments_policy.rb +23 -0
  128. data/app/policies/uffizzi_core/api/cli/v1/projects/secrets_policy.rb +15 -0
  129. data/app/policies/uffizzi_core/api/cli/v1/projects_policy.rb +7 -0
  130. data/app/policies/uffizzi_core/application_policy.rb +12 -0
  131. data/app/repositories/uffizzi_core/activity_item_repo.rb +9 -0
  132. data/app/repositories/uffizzi_core/basic_order_repo.rb +11 -0
  133. data/app/repositories/uffizzi_core/build_repo.rb +23 -0
  134. data/app/repositories/uffizzi_core/comment_repo.rb +11 -0
  135. data/app/repositories/uffizzi_core/compose_file_repo.rb +11 -0
  136. data/app/repositories/uffizzi_core/config_file_repo.rb +40 -0
  137. data/app/repositories/uffizzi_core/container_repo.rb +25 -0
  138. data/app/repositories/uffizzi_core/credential_repo.rb +36 -0
  139. data/app/repositories/uffizzi_core/deployment_repo.rb +23 -0
  140. data/app/repositories/uffizzi_core/event_repo.rb +9 -0
  141. data/app/repositories/uffizzi_core/membership_repo.rb +10 -0
  142. data/app/repositories/uffizzi_core/price_repo.rb +11 -0
  143. data/app/repositories/uffizzi_core/product_repo.rb +11 -0
  144. data/app/repositories/uffizzi_core/project_repo.rb +10 -0
  145. data/app/repositories/uffizzi_core/repo_repo.rb +10 -0
  146. data/app/repositories/uffizzi_core/template_repo.rb +87 -0
  147. data/app/repositories/uffizzi_core/usage_repo.rb +9 -0
  148. data/app/repositories/uffizzi_core/user_repo.rb +11 -0
  149. data/app/responders/uffizzi_core/json_responder.rb +13 -0
  150. data/app/serializers/uffizzi_core/api/cli/v1/account/credential_serializer.rb +9 -0
  151. data/app/serializers/uffizzi_core/api/cli/v1/project_serializer.rb +7 -0
  152. data/app/serializers/uffizzi_core/api/cli/v1/projects/compose_file_serializer.rb +7 -0
  153. data/app/serializers/uffizzi_core/api/cli/v1/projects/deployment_serializer/container_serializer.rb +23 -0
  154. data/app/serializers/uffizzi_core/api/cli/v1/projects/deployment_serializer/user_serializer.rb +11 -0
  155. data/app/serializers/uffizzi_core/api/cli/v1/projects/deployment_serializer.rb +74 -0
  156. data/app/serializers/uffizzi_core/api/cli/v1/projects/deployments/activity_item_serializer.rb +24 -0
  157. data/app/serializers/uffizzi_core/api/cli/v1/projects/deployments/container_serializer/container_config_file_serializer/config_file_serializer.rb +6 -0
  158. data/app/serializers/uffizzi_core/api/cli/v1/projects/deployments/container_serializer/container_config_file_serializer.rb +7 -0
  159. data/app/serializers/uffizzi_core/api/cli/v1/projects/deployments/container_serializer.rb +30 -0
  160. data/app/serializers/uffizzi_core/api/cli/v1/user_serializer/account_serializer.rb +5 -0
  161. data/app/serializers/uffizzi_core/api/cli/v1/user_serializer.rb +7 -0
  162. data/app/serializers/uffizzi_core/base_serializer.rb +7 -0
  163. data/app/serializers/uffizzi_core/controller/create_credential/credential_serializer.rb +17 -0
  164. data/app/serializers/uffizzi_core/controller/create_deployment/deployment_serializer.rb +5 -0
  165. data/app/serializers/uffizzi_core/controller/deploy_containers/container_serializer.rb +53 -0
  166. data/app/serializers/uffizzi_core/controller/deploy_containers/credential_serializer.rb +5 -0
  167. data/app/services/uffizzi_core/account_service.rb +21 -0
  168. data/app/services/uffizzi_core/activity_item_service.rb +98 -0
  169. data/app/services/uffizzi_core/amazon/credential_service.rb +31 -0
  170. data/app/services/uffizzi_core/amazon_service.rb +45 -0
  171. data/app/services/uffizzi_core/azure/credential_service.rb +18 -0
  172. data/app/services/uffizzi_core/cli/compose_file_service.rb +203 -0
  173. data/app/services/uffizzi_core/compose_file/builders/config_files_builder_service.rb +31 -0
  174. data/app/services/uffizzi_core/compose_file/builders/container_builder_service.rb +225 -0
  175. data/app/services/uffizzi_core/compose_file/builders/docker_repo_builder_service.rb +25 -0
  176. data/app/services/uffizzi_core/compose_file/builders/github_repo_builder_service.rb +59 -0
  177. data/app/services/uffizzi_core/compose_file/builders/template_builder_service.rb +45 -0
  178. data/app/services/uffizzi_core/compose_file/builders/variables_builder_service.rb +58 -0
  179. data/app/services/uffizzi_core/compose_file/config_files_service.rb +52 -0
  180. data/app/services/uffizzi_core/compose_file/config_option_service.rb +37 -0
  181. data/app/services/uffizzi_core/compose_file/configs_options_service.rb +26 -0
  182. data/app/services/uffizzi_core/compose_file/container_service.rb +64 -0
  183. data/app/services/uffizzi_core/compose_file/continuous_preview_options_service.rb +57 -0
  184. data/app/services/uffizzi_core/compose_file/dependencies_service.rb +55 -0
  185. data/app/services/uffizzi_core/compose_file/errors_service.rb +46 -0
  186. data/app/services/uffizzi_core/compose_file/github_dependencies_service.rb +38 -0
  187. data/app/services/uffizzi_core/compose_file/ingress_options_service.rb +49 -0
  188. data/app/services/uffizzi_core/compose_file/secrets_options_service.rb +28 -0
  189. data/app/services/uffizzi_core/compose_file/services_options/build_service.rb +93 -0
  190. data/app/services/uffizzi_core/compose_file/services_options/command_service.rb +18 -0
  191. data/app/services/uffizzi_core/compose_file/services_options/configs_service.rb +51 -0
  192. data/app/services/uffizzi_core/compose_file/services_options/deploy_service.rb +44 -0
  193. data/app/services/uffizzi_core/compose_file/services_options/entrypoint_service.rb +18 -0
  194. data/app/services/uffizzi_core/compose_file/services_options/env_file_service.rb +34 -0
  195. data/app/services/uffizzi_core/compose_file/services_options/environment_service.rb +20 -0
  196. data/app/services/uffizzi_core/compose_file/services_options/image_service.rb +89 -0
  197. data/app/services/uffizzi_core/compose_file/services_options/secrets_service.rb +35 -0
  198. data/app/services/uffizzi_core/compose_file/services_options_service.rb +55 -0
  199. data/app/services/uffizzi_core/compose_file/template_service.rb +55 -0
  200. data/app/services/uffizzi_core/compose_file/update_service.rb +29 -0
  201. data/app/services/uffizzi_core/compose_file/variables_service.rb +25 -0
  202. data/app/services/uffizzi_core/compose_file_service.rb +33 -0
  203. data/app/services/uffizzi_core/container_service.rb +57 -0
  204. data/app/services/uffizzi_core/controller_service.rb +80 -0
  205. data/app/services/uffizzi_core/credential_service.rb +44 -0
  206. data/app/services/uffizzi_core/deployment_service.rb +274 -0
  207. data/app/services/uffizzi_core/docker_hub/credential_service.rb +15 -0
  208. data/app/services/uffizzi_core/docker_hub_service.rb +77 -0
  209. data/app/services/uffizzi_core/github/app_service.rb +51 -0
  210. data/app/services/uffizzi_core/github/credential_service.rb +124 -0
  211. data/app/services/uffizzi_core/github/message_service.rb +20 -0
  212. data/app/services/uffizzi_core/github_service.rb +28 -0
  213. data/app/services/uffizzi_core/google/credential_service.rb +18 -0
  214. data/app/services/uffizzi_core/logs_service.rb +33 -0
  215. data/app/services/uffizzi_core/manage_activity_items_service.rb +166 -0
  216. data/app/services/uffizzi_core/project_service.rb +38 -0
  217. data/app/services/uffizzi_core/repo_service.rb +178 -0
  218. data/app/services/uffizzi_core/response_service.rb +13 -0
  219. data/app/services/uffizzi_core/template_service.rb +21 -0
  220. data/app/services/uffizzi_core/token_service.rb +19 -0
  221. data/app/services/uffizzi_core/user_access_service.rb +14 -0
  222. data/app/utils/uffizzi_core/converters.rb +33 -0
  223. data/app/validators/uffizzi_core/email_validator.rb +9 -0
  224. data/app/validators/uffizzi_core/environment_variable_list_validator.rb +15 -0
  225. data/app/validators/uffizzi_core/image_command_args_validator.rb +21 -0
  226. data/config/initializers/rswag_api.rb +15 -0
  227. data/config/initializers/rswag_ui.rb +15 -0
  228. data/config/initializers/swagger_yard.rb +17 -0
  229. data/config/locales/en.activerecord.yml +18 -0
  230. data/config/locales/en.yml +61 -0
  231. data/config/routes.rb +55 -0
  232. data/db/migrate/20220218121438_create_uffizzi_core_tables.rb +375 -0
  233. data/db/migrate/20220325113342_add_name_to_uffizzi_containers.rb +7 -0
  234. data/db/seeds.rb +16 -0
  235. data/lib/tasks/uffizzi_core_tasks.rake +14 -0
  236. data/lib/uffizzi_core/engine.rb +15 -0
  237. data/lib/uffizzi_core/version.rb +5 -0
  238. data/lib/uffizzi_core.rb +60 -0
  239. data/swagger/v1/swagger.json +1278 -0
  240. metadata +935 -0
@@ -0,0 +1,1278 @@
1
+ {
2
+ "swagger": "2.0",
3
+ "info": {
4
+ "title": "Uffizzi docs",
5
+ "description": "Your API does this",
6
+ "version": "1.0"
7
+ },
8
+ "host": "lvh.me:7000",
9
+ "basePath": "/",
10
+ "schemes": [
11
+ "http"
12
+ ],
13
+ "paths": {
14
+ "/api/cli/v1/account/credentials": {
15
+ "post": {
16
+ "tags": [
17
+ "Account/Credential"
18
+ ],
19
+ "operationId": "Account/Credential-create",
20
+ "parameters": [
21
+ {
22
+ "name": "credential",
23
+ "description": "credential",
24
+ "required": true,
25
+ "in": "body",
26
+ "schema": {
27
+ "type": "object",
28
+ "properties": {
29
+ "username": {
30
+ "type": "string"
31
+ },
32
+ "password": {
33
+ "type": "string"
34
+ },
35
+ "type": {
36
+ "type": "string"
37
+ }
38
+ }
39
+ }
40
+ }
41
+ ],
42
+ "responses": {
43
+ "default": {
44
+ "description": "Create account credential",
45
+ "examples": {
46
+ "application/json": "type can be one of UffizziCore::Credential::Amazon, UffizziCore::Credential::Azure, UffizziCore::Credential::DockerHub, UffizziCore::Credential::Google"
47
+ }
48
+ },
49
+ "201": {
50
+ "description": "Created successfully",
51
+ "schema": {
52
+ "type": "object",
53
+ "properties": {
54
+ "id": {
55
+ "type": "integer"
56
+ },
57
+ "username": {
58
+ "type": "string"
59
+ },
60
+ "password": {
61
+ "type": "string"
62
+ },
63
+ "type": {
64
+ "type": "string"
65
+ },
66
+ "state": {
67
+ "type": "string"
68
+ }
69
+ }
70
+ }
71
+ },
72
+ "422": {
73
+ "description": "Unprocessable entity",
74
+ "schema": {
75
+ "type": "object",
76
+ "additionalProperties": {
77
+ "type": "errors"
78
+ }
79
+ }
80
+ }
81
+ },
82
+ "description": "Create account credential",
83
+ "summary": "Create account credential",
84
+ "x-controller": "uffizzi_core/api/cli/v1/account/credentials",
85
+ "x-action": "create"
86
+ }
87
+ },
88
+ "/api/cli/v1/account/credentials/{type}": {
89
+ "delete": {
90
+ "tags": [
91
+ "Account/Credential"
92
+ ],
93
+ "operationId": "Account/Credential-destroy",
94
+ "parameters": [
95
+ {
96
+ "name": "type",
97
+ "description": "Type of the credential",
98
+ "required": true,
99
+ "in": "path",
100
+ "type": "string"
101
+ }
102
+ ],
103
+ "responses": {
104
+ "204": {
105
+ "description": "No Content"
106
+ },
107
+ "401": {
108
+ "description": "Not authorized"
109
+ },
110
+ "404": {
111
+ "description": "Not found",
112
+ "schema": {
113
+ "type": "object",
114
+ "properties": {
115
+ "errors": {
116
+ "type": "object",
117
+ "properties": {
118
+ "title": {
119
+ "type": "string"
120
+ }
121
+ }
122
+ }
123
+ }
124
+ }
125
+ }
126
+ },
127
+ "description": "Delete account credential",
128
+ "summary": "Delete account credential",
129
+ "x-controller": "uffizzi_core/api/cli/v1/account/credentials",
130
+ "x-action": "destroy"
131
+ }
132
+ },
133
+ "/api/cli/v1/projects/{project_slug}/compose_file": {
134
+ "get": {
135
+ "tags": [
136
+ "ComposeFile"
137
+ ],
138
+ "operationId": "ComposeFile-show",
139
+ "parameters": [
140
+ {
141
+ "name": "project_slug",
142
+ "description": "The project slug",
143
+ "required": true,
144
+ "in": "path",
145
+ "type": "string"
146
+ }
147
+ ],
148
+ "responses": {
149
+ "200": {
150
+ "description": "OK",
151
+ "schema": {
152
+ "$ref": "#/definitions/ComposeFile"
153
+ }
154
+ },
155
+ "401": {
156
+ "description": "Not authorized"
157
+ },
158
+ "404": {
159
+ "description": "Not found",
160
+ "schema": {
161
+ "type": "object",
162
+ "properties": {
163
+ "errors": {
164
+ "type": "object",
165
+ "properties": {
166
+ "title": {
167
+ "type": "string"
168
+ }
169
+ }
170
+ }
171
+ }
172
+ }
173
+ }
174
+ },
175
+ "description": "Get the compose file for the project",
176
+ "summary": "Get the compose file for the project",
177
+ "x-controller": "uffizzi_core/api/cli/v1/projects/compose_files",
178
+ "x-action": "show"
179
+ },
180
+ "post": {
181
+ "tags": [
182
+ "ComposeFile"
183
+ ],
184
+ "operationId": "ComposeFile-create",
185
+ "parameters": [
186
+ {
187
+ "name": "params",
188
+ "description": "params",
189
+ "required": true,
190
+ "in": "body",
191
+ "schema": {
192
+ "type": "object",
193
+ "properties": {
194
+ "compose_file": {
195
+ "type": "object",
196
+ "properties": {
197
+ "path": {
198
+ "type": "string"
199
+ },
200
+ "source": {
201
+ "type": "string"
202
+ },
203
+ "content": {
204
+ "type": "string"
205
+ }
206
+ }
207
+ },
208
+ "dependencies": {
209
+ "type": "array",
210
+ "items": {
211
+ "type": "object",
212
+ "properties": {
213
+ "path": {
214
+ "type": "string"
215
+ },
216
+ "source": {
217
+ "type": "string"
218
+ },
219
+ "content": {
220
+ "type": "string"
221
+ }
222
+ }
223
+ }
224
+ }
225
+ }
226
+ }
227
+ },
228
+ {
229
+ "name": "project_slug",
230
+ "description": "The project slug",
231
+ "required": true,
232
+ "in": "path",
233
+ "type": "string"
234
+ }
235
+ ],
236
+ "responses": {
237
+ "201": {
238
+ "description": "OK",
239
+ "schema": {
240
+ "$ref": "#/definitions/ComposeFile"
241
+ }
242
+ },
243
+ "422": {
244
+ "description": "Invalid compose file",
245
+ "schema": {
246
+ "$ref": "#/definitions/ComposeFile"
247
+ }
248
+ },
249
+ "401": {
250
+ "description": "Not authorized"
251
+ }
252
+ },
253
+ "description": "Create a compose file for the project",
254
+ "summary": "Create a compose file for the project",
255
+ "x-controller": "uffizzi_core/api/cli/v1/projects/compose_files",
256
+ "x-action": "create"
257
+ },
258
+ "delete": {
259
+ "tags": [
260
+ "ComposeFile"
261
+ ],
262
+ "operationId": "ComposeFile-destroy",
263
+ "parameters": [
264
+ {
265
+ "name": "project_slug",
266
+ "description": "The project slug",
267
+ "required": true,
268
+ "in": "path",
269
+ "type": "string"
270
+ }
271
+ ],
272
+ "responses": {
273
+ "204": {
274
+ "description": "No Content"
275
+ },
276
+ "401": {
277
+ "description": "Not authorized"
278
+ }
279
+ },
280
+ "description": "Delete the compose file for the project",
281
+ "summary": "Delete the compose file for the project",
282
+ "x-controller": "uffizzi_core/api/cli/v1/projects/compose_files",
283
+ "x-action": "destroy"
284
+ }
285
+ },
286
+ "/api/cli/v1/projects/{project_slug}/deployments/{deployment_id}/containers/{container_name}/logs": {
287
+ "get": {
288
+ "tags": [
289
+ "Project/Deployment/Container/Log"
290
+ ],
291
+ "operationId": "Project/Deployment/Container/Log-index",
292
+ "parameters": [
293
+ {
294
+ "name": "container_name",
295
+ "description": "The name of the container",
296
+ "required": true,
297
+ "in": "path",
298
+ "type": "integer"
299
+ },
300
+ {
301
+ "name": "deployment_id",
302
+ "description": "The id of the deployment",
303
+ "required": true,
304
+ "in": "path",
305
+ "type": "integer"
306
+ },
307
+ {
308
+ "name": "project_slug",
309
+ "description": "The slug of the project",
310
+ "required": true,
311
+ "in": "path",
312
+ "type": "string"
313
+ }
314
+ ],
315
+ "responses": {
316
+ "200": {
317
+ "description": "OK",
318
+ "schema": {
319
+ "type": "object",
320
+ "properties": {
321
+ "logs": {
322
+ "type": "array",
323
+ "items": {
324
+ "type": "object",
325
+ "properties": {
326
+ "insert_id": {
327
+ "type": "string"
328
+ },
329
+ "payload": {
330
+ "type": "string"
331
+ }
332
+ }
333
+ }
334
+ }
335
+ }
336
+ }
337
+ },
338
+ "404": {
339
+ "description": "Not found",
340
+ "schema": {
341
+ "type": "object",
342
+ "properties": {
343
+ "errors": {
344
+ "type": "object",
345
+ "properties": {
346
+ "title": {
347
+ "type": "string"
348
+ }
349
+ }
350
+ }
351
+ }
352
+ }
353
+ },
354
+ "401": {
355
+ "description": "Not authorized"
356
+ }
357
+ },
358
+ "x-controller": "uffizzi_core/api/cli/v1/projects/deployments/containers/logs",
359
+ "x-action": "index"
360
+ }
361
+ },
362
+ "/api/cli/v1/projects/{project_slug}/deployments/{deployment_id}/containers": {
363
+ "get": {
364
+ "tags": [
365
+ "Container"
366
+ ],
367
+ "operationId": "Container-index",
368
+ "parameters": [
369
+ {
370
+ "name": "deployment_id",
371
+ "description": "The id of the deployment",
372
+ "required": true,
373
+ "in": "path",
374
+ "type": "integer"
375
+ },
376
+ {
377
+ "name": "project_slug",
378
+ "description": "The project slug",
379
+ "required": true,
380
+ "in": "path",
381
+ "type": "string"
382
+ }
383
+ ],
384
+ "responses": {
385
+ "200": {
386
+ "description": "OK",
387
+ "schema": {
388
+ "$ref": "#/definitions/Container"
389
+ }
390
+ },
391
+ "401": {
392
+ "description": "Not authorized"
393
+ },
394
+ "404": {
395
+ "description": "Not found"
396
+ }
397
+ },
398
+ "description": "Get a list of container services for a deployment",
399
+ "summary": "Get a list of container services for a deployment",
400
+ "x-controller": "uffizzi_core/api/cli/v1/projects/deployments/containers",
401
+ "x-action": "index"
402
+ }
403
+ },
404
+ "/api/cli/v1/projects/{project_slug}/deployments/{deployment_id}/events": {
405
+ "get": {
406
+ "tags": [
407
+ "Event"
408
+ ],
409
+ "operationId": "Event-index",
410
+ "parameters": [
411
+ {
412
+ "name": "deployment_id",
413
+ "description": "The id of the deployment",
414
+ "required": true,
415
+ "in": "path",
416
+ "type": "integer"
417
+ },
418
+ {
419
+ "name": "project_slug",
420
+ "description": "The project_slug for the project",
421
+ "required": true,
422
+ "in": "path",
423
+ "type": "string"
424
+ }
425
+ ],
426
+ "responses": {
427
+ "200": {
428
+ "description": "OK",
429
+ "schema": {
430
+ "type": "object",
431
+ "properties": {
432
+ "events": {
433
+ "type": "array",
434
+ "items": {
435
+ "type": "object",
436
+ "properties": {
437
+ "first_timestamp": {
438
+ "type": "string"
439
+ },
440
+ "last_timestamp": {
441
+ "type": "string"
442
+ },
443
+ "reason": {
444
+ "type": "string"
445
+ },
446
+ "message": {
447
+ "type": "string"
448
+ }
449
+ }
450
+ }
451
+ }
452
+ }
453
+ }
454
+ },
455
+ "401": {
456
+ "description": "Not authorized"
457
+ },
458
+ "404": {
459
+ "description": "Not found"
460
+ }
461
+ },
462
+ "description": "Get the events associated with deployment",
463
+ "summary": "Get the events associated with deployment",
464
+ "x-controller": "uffizzi_core/api/cli/v1/projects/deployments/events",
465
+ "x-action": "index"
466
+ }
467
+ },
468
+ "/api/cli/v1/projects/{project_slug}/deployments": {
469
+ "get": {
470
+ "tags": [
471
+ "Deployment"
472
+ ],
473
+ "operationId": "Deployment-index",
474
+ "parameters": [
475
+ {
476
+ "name": "project_slug",
477
+ "description": "The project slug",
478
+ "required": true,
479
+ "in": "path",
480
+ "type": "string"
481
+ }
482
+ ],
483
+ "responses": {
484
+ "200": {
485
+ "description": "OK",
486
+ "schema": {
487
+ "type": "array",
488
+ "items": {
489
+ "$ref": "#/definitions/Deployment"
490
+ }
491
+ }
492
+ },
493
+ "401": {
494
+ "description": "Not authorized"
495
+ }
496
+ },
497
+ "description": "Get a list of active deployements for a project",
498
+ "summary": "Get a list of active deployements for a project",
499
+ "x-controller": "uffizzi_core/api/cli/v1/projects/deployments",
500
+ "x-action": "index"
501
+ },
502
+ "post": {
503
+ "tags": [
504
+ "Deployment"
505
+ ],
506
+ "operationId": "Deployment-create",
507
+ "parameters": [
508
+ {
509
+ "name": "params",
510
+ "description": "params",
511
+ "required": true,
512
+ "in": "body",
513
+ "schema": {
514
+ "type": "object",
515
+ "properties": {
516
+ "compose_file": {
517
+ "type": "object",
518
+ "properties": {
519
+ "path": {
520
+ "type": "string"
521
+ },
522
+ "source": {
523
+ "type": "string"
524
+ },
525
+ "content": {
526
+ "type": "string"
527
+ }
528
+ }
529
+ },
530
+ "dependencies": {
531
+ "type": "array",
532
+ "items": {
533
+ "type": "object",
534
+ "properties": {
535
+ "path": {
536
+ "type": "string"
537
+ },
538
+ "source": {
539
+ "type": "string"
540
+ },
541
+ "content": {
542
+ "type": "string"
543
+ }
544
+ }
545
+ }
546
+ }
547
+ }
548
+ }
549
+ },
550
+ {
551
+ "name": "project_slug",
552
+ "description": "The project slug",
553
+ "required": true,
554
+ "in": "path",
555
+ "type": "string"
556
+ }
557
+ ],
558
+ "responses": {
559
+ "201": {
560
+ "description": "OK",
561
+ "schema": {
562
+ "$ref": "#/definitions/Deployment"
563
+ }
564
+ },
565
+ "422": {
566
+ "description": "Unprocessable Entity",
567
+ "schema": {
568
+ "type": "object",
569
+ "properties": {
570
+ "errors": {
571
+ "type": "object",
572
+ "properties": {
573
+ "state": {
574
+ "type": "string"
575
+ }
576
+ }
577
+ }
578
+ }
579
+ }
580
+ },
581
+ "404": {
582
+ "description": "Not found",
583
+ "schema": {
584
+ "type": "object",
585
+ "properties": {
586
+ "errors": {
587
+ "type": "object",
588
+ "properties": {
589
+ "title": {
590
+ "type": "string"
591
+ }
592
+ }
593
+ }
594
+ }
595
+ }
596
+ },
597
+ "401": {
598
+ "description": "Not authorized"
599
+ }
600
+ },
601
+ "description": "Create a deployment from a compose file",
602
+ "summary": "Create a deployment from a compose file",
603
+ "x-controller": "uffizzi_core/api/cli/v1/projects/deployments",
604
+ "x-action": "create"
605
+ }
606
+ },
607
+ "/api/cli/v1/projects/{project_slug}/deployments/{id}": {
608
+ "get": {
609
+ "tags": [
610
+ "Deployment"
611
+ ],
612
+ "operationId": "Deployment-show",
613
+ "parameters": [
614
+ {
615
+ "name": "id",
616
+ "description": "Scope response to id",
617
+ "required": true,
618
+ "in": "path",
619
+ "type": "string"
620
+ },
621
+ {
622
+ "name": "project_slug",
623
+ "description": "The project slug",
624
+ "required": true,
625
+ "in": "path",
626
+ "type": "string"
627
+ }
628
+ ],
629
+ "responses": {
630
+ "200": {
631
+ "description": "OK",
632
+ "schema": {
633
+ "$ref": "#/definitions/Deployment"
634
+ }
635
+ },
636
+ "404": {
637
+ "description": "Not found",
638
+ "schema": {
639
+ "type": "object",
640
+ "properties": {
641
+ "errors": {
642
+ "type": "object",
643
+ "properties": {
644
+ "title": {
645
+ "type": "string"
646
+ }
647
+ }
648
+ }
649
+ }
650
+ }
651
+ },
652
+ "401": {
653
+ "description": "Not authorized"
654
+ }
655
+ },
656
+ "description": "Get deployment information by id",
657
+ "summary": "Get deployment information by id",
658
+ "x-controller": "uffizzi_core/api/cli/v1/projects/deployments",
659
+ "x-action": "show"
660
+ },
661
+ "delete": {
662
+ "tags": [
663
+ "Deployment"
664
+ ],
665
+ "operationId": "Deployment-destroy",
666
+ "parameters": [
667
+ {
668
+ "name": "id",
669
+ "description": "Scope response to id",
670
+ "required": true,
671
+ "in": "path",
672
+ "type": "string"
673
+ },
674
+ {
675
+ "name": "project_slug",
676
+ "description": "The project slug",
677
+ "required": true,
678
+ "in": "path",
679
+ "type": "string"
680
+ }
681
+ ],
682
+ "responses": {
683
+ "204": {
684
+ "description": "No Content"
685
+ },
686
+ "401": {
687
+ "description": "Not authorized"
688
+ }
689
+ },
690
+ "description": "Disable deployment by id",
691
+ "summary": "Disable deployment by id",
692
+ "x-controller": "uffizzi_core/api/cli/v1/projects/deployments",
693
+ "x-action": "destroy"
694
+ }
695
+ },
696
+ "/api/cli/v1/projects/{project_slug}/deployments/{id}/deploy_containers": {
697
+ "post": {
698
+ "tags": [
699
+ "Deployment"
700
+ ],
701
+ "operationId": "Deployment-deploy_containers",
702
+ "parameters": [
703
+ {
704
+ "name": "id",
705
+ "description": "The id of the deployment",
706
+ "required": true,
707
+ "in": "path",
708
+ "type": "string"
709
+ },
710
+ {
711
+ "name": "project_slug",
712
+ "description": "The project slug",
713
+ "required": true,
714
+ "in": "path",
715
+ "type": "string"
716
+ }
717
+ ],
718
+ "responses": {
719
+ "204": {
720
+ "description": "No Content"
721
+ },
722
+ "404": {
723
+ "description": "Not found",
724
+ "schema": {
725
+ "type": "object",
726
+ "properties": {
727
+ "errors": {
728
+ "type": "object",
729
+ "properties": {
730
+ "title": {
731
+ "type": "string"
732
+ }
733
+ }
734
+ }
735
+ }
736
+ }
737
+ },
738
+ "401": {
739
+ "description": "Not authorized"
740
+ }
741
+ },
742
+ "x-controller": "uffizzi_core/api/cli/v1/projects/deployments",
743
+ "x-action": "deploy_containers"
744
+ }
745
+ },
746
+ "/api/cli/v1/projects/{project_slug}/secrets": {
747
+ "get": {
748
+ "tags": [
749
+ "Project/Secrets"
750
+ ],
751
+ "operationId": "Project/Secrets-index",
752
+ "parameters": [
753
+ {
754
+ "name": "project_slug",
755
+ "description": "project_slug",
756
+ "required": true,
757
+ "in": "path",
758
+ "type": "string"
759
+ }
760
+ ],
761
+ "responses": {
762
+ "200": {
763
+ "description": "OK",
764
+ "schema": {
765
+ "type": "object",
766
+ "properties": {
767
+ "secrets": {
768
+ "type": "array",
769
+ "items": {
770
+ "type": "object",
771
+ "properties": {
772
+ "name": {
773
+ "type": "string"
774
+ }
775
+ }
776
+ }
777
+ }
778
+ }
779
+ }
780
+ },
781
+ "401": {
782
+ "description": "Not authorized"
783
+ }
784
+ },
785
+ "description": "Get secrets for the project",
786
+ "summary": "Get secrets for the project",
787
+ "x-controller": "uffizzi_core/api/cli/v1/projects/secrets",
788
+ "x-action": "index"
789
+ }
790
+ },
791
+ "/api/cli/v1/projects/{project_slug}/secrets/bulk_create": {
792
+ "post": {
793
+ "tags": [
794
+ "Project/Secrets"
795
+ ],
796
+ "operationId": "Project/Secrets-bulk_create",
797
+ "parameters": [
798
+ {
799
+ "name": "project_slug",
800
+ "description": "project_slug",
801
+ "required": true,
802
+ "in": "path",
803
+ "type": "string"
804
+ },
805
+ {
806
+ "name": "secrets",
807
+ "description": "secrets",
808
+ "required": true,
809
+ "in": "body",
810
+ "schema": {
811
+ "type": "object",
812
+ "properties": {
813
+ "secrets": {
814
+ "type": "array",
815
+ "items": {
816
+ "type": "object",
817
+ "properties": {
818
+ "name": {
819
+ "type": "string"
820
+ },
821
+ "value": {
822
+ "type": "string"
823
+ }
824
+ }
825
+ }
826
+ }
827
+ }
828
+ }
829
+ }
830
+ ],
831
+ "responses": {
832
+ "201": {
833
+ "description": "Created",
834
+ "schema": {
835
+ "type": "object",
836
+ "properties": {
837
+ "secrets": {
838
+ "type": "array",
839
+ "items": {
840
+ "type": "object",
841
+ "properties": {
842
+ "name": {
843
+ "type": "string"
844
+ }
845
+ }
846
+ }
847
+ }
848
+ }
849
+ }
850
+ },
851
+ "422": {
852
+ "description": "A compose file already exists for this project"
853
+ },
854
+ "401": {
855
+ "description": "Not authorized"
856
+ }
857
+ },
858
+ "description": "Add secret to project",
859
+ "summary": "Add secret to project",
860
+ "x-controller": "uffizzi_core/api/cli/v1/projects/secrets",
861
+ "x-action": "bulk_create"
862
+ }
863
+ },
864
+ "/api/cli/v1/projects/{project_slug}/secrets/{id}": {
865
+ "delete": {
866
+ "tags": [
867
+ "Project/Secrets"
868
+ ],
869
+ "operationId": "Project/Secrets-destroy",
870
+ "parameters": [
871
+ {
872
+ "name": "id",
873
+ "description": "Scope response to id",
874
+ "required": true,
875
+ "in": "path",
876
+ "type": "string"
877
+ },
878
+ {
879
+ "name": "project_slug",
880
+ "description": "project_slug",
881
+ "required": true,
882
+ "in": "path",
883
+ "type": "string"
884
+ }
885
+ ],
886
+ "responses": {
887
+ "200": {
888
+ "description": "OK",
889
+ "schema": {
890
+ "$ref": "#/definitions/Project"
891
+ }
892
+ },
893
+ "422": {
894
+ "description": "Delete a secret from project by secret id"
895
+ },
896
+ "401": {
897
+ "description": "Not authorized"
898
+ }
899
+ },
900
+ "description": "Delete a secret from project by secret id",
901
+ "summary": "Delete a secret from project by secret id",
902
+ "x-controller": "uffizzi_core/api/cli/v1/projects/secrets",
903
+ "x-action": "destroy"
904
+ }
905
+ },
906
+ "/api/cli/v1/projects": {
907
+ "get": {
908
+ "tags": [
909
+ "Project"
910
+ ],
911
+ "operationId": "Project-index",
912
+ "parameters": [
913
+
914
+ ],
915
+ "responses": {
916
+ "200": {
917
+ "description": "OK",
918
+ "schema": {
919
+ "type": "object",
920
+ "properties": {
921
+ "projects": {
922
+ "type": "array",
923
+ "items": {
924
+ "type": "object",
925
+ "properties": {
926
+ "slug": {
927
+ "type": "string"
928
+ }
929
+ }
930
+ }
931
+ }
932
+ }
933
+ }
934
+ },
935
+ "401": {
936
+ "description": "Not authorized"
937
+ }
938
+ },
939
+ "description": "Get projects of current user",
940
+ "summary": "Get projects of current user",
941
+ "x-controller": "uffizzi_core/api/cli/v1/projects",
942
+ "x-action": "index"
943
+ }
944
+ },
945
+ "/api/cli/v1/session": {
946
+ "post": {
947
+ "tags": [
948
+ "Uffizzi"
949
+ ],
950
+ "operationId": "Uffizzi-create",
951
+ "parameters": [
952
+ {
953
+ "name": "user",
954
+ "description": "user",
955
+ "required": true,
956
+ "in": "body",
957
+ "schema": {
958
+ "type": "object",
959
+ "properties": {
960
+ "email": {
961
+ "type": "string"
962
+ },
963
+ "password": {
964
+ "type": "string"
965
+ }
966
+ }
967
+ }
968
+ }
969
+ ],
970
+ "responses": {
971
+ "201": {
972
+ "description": "Created successfully",
973
+ "schema": {
974
+ "type": "object",
975
+ "properties": {
976
+ "user": {
977
+ "type": "object",
978
+ "properties": {
979
+ "accounts": {
980
+ "type": "array",
981
+ "items": {
982
+ "type": "object",
983
+ "properties": {
984
+ "id": {
985
+ "type": "integer"
986
+ },
987
+ "state": {
988
+ "type": "string"
989
+ }
990
+ }
991
+ }
992
+ }
993
+ }
994
+ }
995
+ }
996
+ }
997
+ },
998
+ "422": {
999
+ "description": "Unprocessable entity",
1000
+ "schema": {
1001
+ "type": "object",
1002
+ "properties": {
1003
+ "errors": {
1004
+ "type": "object",
1005
+ "properties": {
1006
+ "password": {
1007
+ "type": "string"
1008
+ }
1009
+ }
1010
+ }
1011
+ }
1012
+ }
1013
+ }
1014
+ },
1015
+ "description": "Create session",
1016
+ "summary": "Create session",
1017
+ "x-controller": "uffizzi_core/api/cli/v1/sessions",
1018
+ "x-action": "create"
1019
+ },
1020
+ "delete": {
1021
+ "tags": [
1022
+ "Uffizzi"
1023
+ ],
1024
+ "operationId": "Uffizzi-destroy",
1025
+ "parameters": [
1026
+
1027
+ ],
1028
+ "responses": {
1029
+ "204": {
1030
+ "description": "No Content"
1031
+ }
1032
+ },
1033
+ "description": "Destroy session",
1034
+ "summary": "Destroy session",
1035
+ "x-controller": "uffizzi_core/api/cli/v1/sessions",
1036
+ "x-action": "destroy"
1037
+ }
1038
+ }
1039
+ },
1040
+ "tags": [
1041
+ {
1042
+ "name": "Account/Credential",
1043
+ "description": ""
1044
+ },
1045
+ {
1046
+ "name": "ComposeFile",
1047
+ "description": ""
1048
+ },
1049
+ {
1050
+ "name": "Container",
1051
+ "description": ""
1052
+ },
1053
+ {
1054
+ "name": "Deployment",
1055
+ "description": ""
1056
+ },
1057
+ {
1058
+ "name": "Event",
1059
+ "description": ""
1060
+ },
1061
+ {
1062
+ "name": "Project",
1063
+ "description": ""
1064
+ },
1065
+ {
1066
+ "name": "Project/Deployment/Container/Log",
1067
+ "description": ""
1068
+ },
1069
+ {
1070
+ "name": "Project/Secrets",
1071
+ "description": ""
1072
+ },
1073
+ {
1074
+ "name": "Uffizzi",
1075
+ "description": ""
1076
+ }
1077
+ ],
1078
+ "securityDefinitions": {
1079
+ },
1080
+ "definitions": {
1081
+ "UffizziCore_ActivityItem": {
1082
+ "type": "object",
1083
+ "properties": {
1084
+ "id": {
1085
+ "type": "integer"
1086
+ },
1087
+ "namespace": {
1088
+ "type": "string"
1089
+ },
1090
+ "name": {
1091
+ "type": "string"
1092
+ },
1093
+ "tag": {
1094
+ "type": "string"
1095
+ },
1096
+ "branch": {
1097
+ "type": "string"
1098
+ },
1099
+ "type": {
1100
+ "type": "string"
1101
+ },
1102
+ "container_id": {
1103
+ "type": "string"
1104
+ },
1105
+ "commit": {
1106
+ "type": "string"
1107
+ },
1108
+ "commit_message": {
1109
+ "type": "string"
1110
+ },
1111
+ "build_id": {
1112
+ "type": "integer"
1113
+ },
1114
+ "created_at": {
1115
+ "type": "string",
1116
+ "format": "date"
1117
+ },
1118
+ "updated_at": {
1119
+ "type": "string",
1120
+ "format": "date"
1121
+ },
1122
+ "data": {
1123
+ "type": "object"
1124
+ },
1125
+ "digest": {
1126
+ "type": "string"
1127
+ },
1128
+ "meta": {
1129
+ "type": "object"
1130
+ }
1131
+ },
1132
+ "required": [
1133
+ "name"
1134
+ ]
1135
+ },
1136
+ "ComposeFile": {
1137
+ "type": "object",
1138
+ "properties": {
1139
+ "id": {
1140
+ "type": "integer"
1141
+ },
1142
+ "source": {
1143
+ "type": "string"
1144
+ },
1145
+ "path": {
1146
+ "type": "string"
1147
+ },
1148
+ "content": {
1149
+ "type": "string"
1150
+ },
1151
+ "auto_deploy": {
1152
+ "type": "boolean"
1153
+ },
1154
+ "state": {
1155
+ "type": "string"
1156
+ },
1157
+ "payload": {
1158
+ "type": "string"
1159
+ }
1160
+ },
1161
+ "required": [
1162
+ "content"
1163
+ ]
1164
+ },
1165
+ "UffizziCore_ConfigFile": {
1166
+ "type": "object",
1167
+ "properties": {
1168
+ "filename": {
1169
+ "type": "string"
1170
+ },
1171
+ "kind": {
1172
+ "type": "string"
1173
+ },
1174
+ "payload": {
1175
+ "type": "string"
1176
+ },
1177
+ "source": {
1178
+ "type": "string"
1179
+ }
1180
+ }
1181
+ },
1182
+ "Container": {
1183
+ "type": "object",
1184
+ "properties": {
1185
+ "id": {
1186
+ "type": "integer"
1187
+ },
1188
+ "name": {
1189
+ "type": "string"
1190
+ },
1191
+ "memory_limit": {
1192
+ "type": "integer"
1193
+ },
1194
+ "memory_request": {
1195
+ "type": "integer"
1196
+ },
1197
+ "continuously_deploy": {
1198
+ "type": "string"
1199
+ },
1200
+ "variables": {
1201
+ "type": "object"
1202
+ },
1203
+ "secret_variables": {
1204
+ "type": "object"
1205
+ },
1206
+ "container_config_files": {
1207
+ "$ref": "#/definitions/ConfigFile"
1208
+ }
1209
+ }
1210
+ },
1211
+ "Deployment": {
1212
+ "type": "object",
1213
+ "properties": {
1214
+ "id": {
1215
+ "type": "integer"
1216
+ },
1217
+ "project_id": {
1218
+ "type": "integer"
1219
+ },
1220
+ "kind": {
1221
+ "type": "string"
1222
+ },
1223
+ "state": {
1224
+ "type": "string"
1225
+ },
1226
+ "preview_url": {
1227
+ "type": "string"
1228
+ },
1229
+ "tag": {
1230
+ "type": "string"
1231
+ },
1232
+ "branch": {
1233
+ "type": "string"
1234
+ },
1235
+ "commit": {
1236
+ "type": "string"
1237
+ },
1238
+ "image_id": {
1239
+ "type": "string"
1240
+ },
1241
+ "created_at": {
1242
+ "type": "string",
1243
+ "format": "date-time"
1244
+ },
1245
+ "updated_at": {
1246
+ "type": "string",
1247
+ "format": "date-time"
1248
+ },
1249
+ "ingress_container_ready": {
1250
+ "type": "boolean"
1251
+ },
1252
+ "ingress_container_state": {
1253
+ "type": "string"
1254
+ },
1255
+ "creation_source": {
1256
+ "type": "string"
1257
+ },
1258
+ "contaners": {
1259
+ "type": "array",
1260
+ "items": {
1261
+ "type": "string"
1262
+ }
1263
+ },
1264
+ "deployed_by": {
1265
+ "type": "object"
1266
+ }
1267
+ }
1268
+ },
1269
+ "UffizziCore_Project": {
1270
+ "type": "object",
1271
+ "properties": {
1272
+ "slug": {
1273
+ "type": "string"
1274
+ }
1275
+ }
1276
+ }
1277
+ }
1278
+ }