uffizzi-core 0.1.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (257) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +201 -0
  3. data/README.md +52 -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 +141 -0
  14. data/app/clients/uffizzi_core/github_container_registry_client/request_result.rb +7 -0
  15. data/app/clients/uffizzi_core/github_container_registry_client.rb +52 -0
  16. data/app/clients/uffizzi_core/google_registry_client/request_result.rb +5 -0
  17. data/app/clients/uffizzi_core/google_registry_client.rb +42 -0
  18. data/app/contexts/uffizzi_core/base_context.rb +12 -0
  19. data/app/contexts/uffizzi_core/project_context.rb +13 -0
  20. data/app/contexts/uffizzi_core/webhooks_context.rb +9 -0
  21. data/app/controllers/concerns/uffizzi_core/auth_management.rb +23 -0
  22. data/app/controllers/concerns/uffizzi_core/authorization_concern.rb +38 -0
  23. data/app/controllers/concerns/uffizzi_core/dependency_injection_concern.rb +19 -0
  24. data/app/controllers/uffizzi_core/api/cli/v1/account/application_controller.rb +7 -0
  25. data/app/controllers/uffizzi_core/api/cli/v1/account/credentials_controller.rb +91 -0
  26. data/app/controllers/uffizzi_core/api/cli/v1/application_controller.rb +5 -0
  27. data/app/controllers/uffizzi_core/api/cli/v1/projects/application_controller.rb +11 -0
  28. data/app/controllers/uffizzi_core/api/cli/v1/projects/compose_files_controller.rb +93 -0
  29. data/app/controllers/uffizzi_core/api/cli/v1/projects/deployments/activity_items_controller.rb +36 -0
  30. data/app/controllers/uffizzi_core/api/cli/v1/projects/deployments/application_controller.rb +7 -0
  31. data/app/controllers/uffizzi_core/api/cli/v1/projects/deployments/containers/application_controller.rb +8 -0
  32. data/app/controllers/uffizzi_core/api/cli/v1/projects/deployments/containers/logs_controller.rb +27 -0
  33. data/app/controllers/uffizzi_core/api/cli/v1/projects/deployments/containers_controller.rb +24 -0
  34. data/app/controllers/uffizzi_core/api/cli/v1/projects/deployments/events_controller.rb +29 -0
  35. data/app/controllers/uffizzi_core/api/cli/v1/projects/deployments_controller.rb +179 -0
  36. data/app/controllers/uffizzi_core/api/cli/v1/projects/secrets_controller.rb +61 -0
  37. data/app/controllers/uffizzi_core/api/cli/v1/projects_controller.rb +85 -0
  38. data/app/controllers/uffizzi_core/api/cli/v1/sessions_controller.rb +43 -0
  39. data/app/controllers/uffizzi_core/application_controller.rb +57 -0
  40. data/app/errors/uffizzi_core/compose_file/build_error.rb +4 -0
  41. data/app/errors/uffizzi_core/compose_file/credential_error.rb +4 -0
  42. data/app/errors/uffizzi_core/compose_file/parse_error.rb +4 -0
  43. data/app/errors/uffizzi_core/compose_file/secrets_error.rb +4 -0
  44. data/app/errors/uffizzi_core/deployment/image_pull_error.rb +10 -0
  45. data/app/errors/uffizzi_core/deployment_not_found_error.rb +10 -0
  46. data/app/forms/uffizzi_core/api/cli/v1/account/credential/check_credential_form.rb +16 -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 +22 -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 +92 -0
  55. data/app/forms/uffizzi_core/api/cli/v1/deployment/update_form.rb +90 -0
  56. data/app/forms/uffizzi_core/api/cli/v1/project/create_form.rb +7 -0
  57. data/app/forms/uffizzi_core/api/cli/v1/project/update_form.rb +10 -0
  58. data/app/forms/uffizzi_core/api/cli/v1/secret/bulk_assign_form.rb +39 -0
  59. data/app/forms/uffizzi_core/api/cli/v1/session_create_form.rb +29 -0
  60. data/app/forms/uffizzi_core/api/cli/v1/template/create_form.rb +65 -0
  61. data/app/forms/uffizzi_core/application_form.rb +11 -0
  62. data/app/forms/uffizzi_core/application_form_without_active_record.rb +17 -0
  63. data/app/forms/uffizzi_core/mass_assignment_control_concern.rb +22 -0
  64. data/app/helpers/uffizzi_core/application_helper.rb +6 -0
  65. data/app/jobs/uffizzi_core/account/create_credential_job.rb +10 -0
  66. data/app/jobs/uffizzi_core/activity_item/docker/update_digest_job.rb +11 -0
  67. data/app/jobs/uffizzi_core/application_job.rb +7 -0
  68. data/app/jobs/uffizzi_core/config_file/apply_job.rb +31 -0
  69. data/app/jobs/uffizzi_core/credential/docker_hub/create_webhook_job.rb +15 -0
  70. data/app/jobs/uffizzi_core/deployment/create_credential_job.rb +32 -0
  71. data/app/jobs/uffizzi_core/deployment/create_credentials_job.rb +17 -0
  72. data/app/jobs/uffizzi_core/deployment/create_job.rb +15 -0
  73. data/app/jobs/uffizzi_core/deployment/create_webhooks_job.rb +13 -0
  74. data/app/jobs/uffizzi_core/deployment/delete_credential_job.rb +13 -0
  75. data/app/jobs/uffizzi_core/deployment/delete_job.rb +11 -0
  76. data/app/jobs/uffizzi_core/deployment/deploy_containers_job.rb +27 -0
  77. data/app/jobs/uffizzi_core/deployment/manage_deploy_activity_item_job.rb +38 -0
  78. data/app/lib/uffizzi_core/concerns/models/activity_item.rb +39 -0
  79. data/app/lib/uffizzi_core/concerns/models/credential.rb +65 -0
  80. data/app/lib/uffizzi_core/concerns/models/repo.rb +33 -0
  81. data/app/lib/uffizzi_core/rbac/user_access_service.rb +45 -0
  82. data/app/mailers/uffizzi_core/application_mailer.rb +8 -0
  83. data/app/models/concerns/uffizzi_core/hashid_concern.rb +25 -0
  84. data/app/models/concerns/uffizzi_core/state_machine_concern.rb +16 -0
  85. data/app/models/uffizzi_core/account.rb +83 -0
  86. data/app/models/uffizzi_core/activity_item/docker.rb +4 -0
  87. data/app/models/uffizzi_core/activity_item/github.rb +4 -0
  88. data/app/models/uffizzi_core/activity_item/memory_limit.rb +4 -0
  89. data/app/models/uffizzi_core/activity_item.rb +53 -0
  90. data/app/models/uffizzi_core/application_record.rb +7 -0
  91. data/app/models/uffizzi_core/build.rb +39 -0
  92. data/app/models/uffizzi_core/comment.rb +16 -0
  93. data/app/models/uffizzi_core/compose_file.rb +57 -0
  94. data/app/models/uffizzi_core/config_file.rb +24 -0
  95. data/app/models/uffizzi_core/container.rb +100 -0
  96. data/app/models/uffizzi_core/container_config_file.rb +8 -0
  97. data/app/models/uffizzi_core/continuous_preview.rb +4 -0
  98. data/app/models/uffizzi_core/coupon.rb +5 -0
  99. data/app/models/uffizzi_core/credential/amazon.rb +4 -0
  100. data/app/models/uffizzi_core/credential/azure.rb +4 -0
  101. data/app/models/uffizzi_core/credential/docker_hub.rb +4 -0
  102. data/app/models/uffizzi_core/credential/github.rb +4 -0
  103. data/app/models/uffizzi_core/credential/github_container_registry.rb +4 -0
  104. data/app/models/uffizzi_core/credential/google.rb +4 -0
  105. data/app/models/uffizzi_core/credential.rb +61 -0
  106. data/app/models/uffizzi_core/database.rb +4 -0
  107. data/app/models/uffizzi_core/database_offering.rb +4 -0
  108. data/app/models/uffizzi_core/deployment.rb +86 -0
  109. data/app/models/uffizzi_core/event.rb +13 -0
  110. data/app/models/uffizzi_core/invitation.rb +27 -0
  111. data/app/models/uffizzi_core/membership.rb +16 -0
  112. data/app/models/uffizzi_core/payment.rb +11 -0
  113. data/app/models/uffizzi_core/price.rb +9 -0
  114. data/app/models/uffizzi_core/product.rb +11 -0
  115. data/app/models/uffizzi_core/project.rb +67 -0
  116. data/app/models/uffizzi_core/rating.rb +20 -0
  117. data/app/models/uffizzi_core/repo/amazon.rb +4 -0
  118. data/app/models/uffizzi_core/repo/azure.rb +4 -0
  119. data/app/models/uffizzi_core/repo/docker_hub.rb +4 -0
  120. data/app/models/uffizzi_core/repo/github.rb +4 -0
  121. data/app/models/uffizzi_core/repo/github_container_registry.rb +4 -0
  122. data/app/models/uffizzi_core/repo/google.rb +4 -0
  123. data/app/models/uffizzi_core/repo.rb +29 -0
  124. data/app/models/uffizzi_core/role.rb +17 -0
  125. data/app/models/uffizzi_core/secret.rb +9 -0
  126. data/app/models/uffizzi_core/template.rb +19 -0
  127. data/app/models/uffizzi_core/user.rb +62 -0
  128. data/app/models/uffizzi_core/user_project.rb +14 -0
  129. data/app/policies/uffizzi_core/api/cli/v1/account/credentials_policy.rb +19 -0
  130. data/app/policies/uffizzi_core/api/cli/v1/projects/compose_files_policy.rb +15 -0
  131. data/app/policies/uffizzi_core/api/cli/v1/projects/deployments/activity_items_policy.rb +7 -0
  132. data/app/policies/uffizzi_core/api/cli/v1/projects/deployments/containers_policy.rb +7 -0
  133. data/app/policies/uffizzi_core/api/cli/v1/projects/deployments/events_policy.rb +7 -0
  134. data/app/policies/uffizzi_core/api/cli/v1/projects/deployments_policy.rb +27 -0
  135. data/app/policies/uffizzi_core/api/cli/v1/projects/secrets_policy.rb +15 -0
  136. data/app/policies/uffizzi_core/api/cli/v1/projects_policy.rb +19 -0
  137. data/app/policies/uffizzi_core/application_policy.rb +12 -0
  138. data/app/repositories/uffizzi_core/activity_item_repo.rb +9 -0
  139. data/app/repositories/uffizzi_core/basic_order_repo.rb +11 -0
  140. data/app/repositories/uffizzi_core/build_repo.rb +23 -0
  141. data/app/repositories/uffizzi_core/comment_repo.rb +11 -0
  142. data/app/repositories/uffizzi_core/compose_file_repo.rb +11 -0
  143. data/app/repositories/uffizzi_core/config_file_repo.rb +40 -0
  144. data/app/repositories/uffizzi_core/container_repo.rb +25 -0
  145. data/app/repositories/uffizzi_core/credential_repo.rb +31 -0
  146. data/app/repositories/uffizzi_core/deployment_repo.rb +24 -0
  147. data/app/repositories/uffizzi_core/event_repo.rb +9 -0
  148. data/app/repositories/uffizzi_core/membership_repo.rb +10 -0
  149. data/app/repositories/uffizzi_core/price_repo.rb +11 -0
  150. data/app/repositories/uffizzi_core/product_repo.rb +11 -0
  151. data/app/repositories/uffizzi_core/project_repo.rb +10 -0
  152. data/app/repositories/uffizzi_core/repo_repo.rb +10 -0
  153. data/app/repositories/uffizzi_core/template_repo.rb +87 -0
  154. data/app/repositories/uffizzi_core/usage_repo.rb +9 -0
  155. data/app/repositories/uffizzi_core/user_repo.rb +11 -0
  156. data/app/responders/uffizzi_core/json_responder.rb +13 -0
  157. data/app/serializers/uffizzi_core/api/cli/v1/account/credential_serializer.rb +9 -0
  158. data/app/serializers/uffizzi_core/api/cli/v1/project_serializer/compose_file_serializer.rb +7 -0
  159. data/app/serializers/uffizzi_core/api/cli/v1/project_serializer/deployment_serializer.rb +13 -0
  160. data/app/serializers/uffizzi_core/api/cli/v1/project_serializer.rb +30 -0
  161. data/app/serializers/uffizzi_core/api/cli/v1/projects/compose_file_serializer.rb +7 -0
  162. data/app/serializers/uffizzi_core/api/cli/v1/projects/deployment_serializer/container_serializer.rb +32 -0
  163. data/app/serializers/uffizzi_core/api/cli/v1/projects/deployment_serializer/user_serializer.rb +11 -0
  164. data/app/serializers/uffizzi_core/api/cli/v1/projects/deployment_serializer.rb +74 -0
  165. data/app/serializers/uffizzi_core/api/cli/v1/projects/deployments/activity_item_serializer.rb +24 -0
  166. data/app/serializers/uffizzi_core/api/cli/v1/projects/deployments/container_serializer/container_config_file_serializer/config_file_serializer.rb +6 -0
  167. data/app/serializers/uffizzi_core/api/cli/v1/projects/deployments/container_serializer/container_config_file_serializer.rb +7 -0
  168. data/app/serializers/uffizzi_core/api/cli/v1/projects/deployments/container_serializer.rb +30 -0
  169. data/app/serializers/uffizzi_core/api/cli/v1/projects/secret_serializer.rb +5 -0
  170. data/app/serializers/uffizzi_core/api/cli/v1/short_project_serializer.rb +7 -0
  171. data/app/serializers/uffizzi_core/api/cli/v1/user_serializer/account_serializer.rb +5 -0
  172. data/app/serializers/uffizzi_core/api/cli/v1/user_serializer.rb +7 -0
  173. data/app/serializers/uffizzi_core/base_serializer.rb +7 -0
  174. data/app/serializers/uffizzi_core/controller/apply_config_file/config_file_serializer.rb +5 -0
  175. data/app/serializers/uffizzi_core/controller/create_credential/credential_serializer.rb +19 -0
  176. data/app/serializers/uffizzi_core/controller/create_deployment/deployment_serializer.rb +5 -0
  177. data/app/serializers/uffizzi_core/controller/deploy_containers/container_serializer/container_config_file_serializer/config_file_serializer.rb +8 -0
  178. data/app/serializers/uffizzi_core/controller/deploy_containers/container_serializer/container_config_file_serializer.rb +7 -0
  179. data/app/serializers/uffizzi_core/controller/deploy_containers/container_serializer.rb +70 -0
  180. data/app/serializers/uffizzi_core/controller/deploy_containers/credential_serializer.rb +5 -0
  181. data/app/services/uffizzi_core/account_service.rb +21 -0
  182. data/app/services/uffizzi_core/activity_item_service.rb +88 -0
  183. data/app/services/uffizzi_core/amazon/credential_service.rb +31 -0
  184. data/app/services/uffizzi_core/amazon_service.rb +45 -0
  185. data/app/services/uffizzi_core/azure/credential_service.rb +18 -0
  186. data/app/services/uffizzi_core/compose_file/builders/config_files_builder_service.rb +31 -0
  187. data/app/services/uffizzi_core/compose_file/builders/container_builder_service.rb +222 -0
  188. data/app/services/uffizzi_core/compose_file/builders/docker_repo_builder_service.rb +25 -0
  189. data/app/services/uffizzi_core/compose_file/builders/template_builder_service.rb +45 -0
  190. data/app/services/uffizzi_core/compose_file/builders/variables_builder_service.rb +58 -0
  191. data/app/services/uffizzi_core/compose_file/config_files_service.rb +52 -0
  192. data/app/services/uffizzi_core/compose_file/config_option_service.rb +41 -0
  193. data/app/services/uffizzi_core/compose_file/configs_options_service.rb +26 -0
  194. data/app/services/uffizzi_core/compose_file/container_service.rb +68 -0
  195. data/app/services/uffizzi_core/compose_file/continuous_preview_options_service.rb +57 -0
  196. data/app/services/uffizzi_core/compose_file/dependencies_service.rb +56 -0
  197. data/app/services/uffizzi_core/compose_file/errors_service.rb +46 -0
  198. data/app/services/uffizzi_core/compose_file/github_dependencies_service.rb +38 -0
  199. data/app/services/uffizzi_core/compose_file/ingress_options_service.rb +51 -0
  200. data/app/services/uffizzi_core/compose_file/parsers/services/healthcheck_parser_service.rb +73 -0
  201. data/app/services/uffizzi_core/compose_file/secrets_options_service.rb +28 -0
  202. data/app/services/uffizzi_core/compose_file/services_options/command_service.rb +18 -0
  203. data/app/services/uffizzi_core/compose_file/services_options/configs_service.rb +51 -0
  204. data/app/services/uffizzi_core/compose_file/services_options/deploy_service.rb +44 -0
  205. data/app/services/uffizzi_core/compose_file/services_options/entrypoint_service.rb +18 -0
  206. data/app/services/uffizzi_core/compose_file/services_options/env_file_service.rb +34 -0
  207. data/app/services/uffizzi_core/compose_file/services_options/environment_service.rb +20 -0
  208. data/app/services/uffizzi_core/compose_file/services_options/image_service.rb +89 -0
  209. data/app/services/uffizzi_core/compose_file/services_options/secrets_service.rb +35 -0
  210. data/app/services/uffizzi_core/compose_file/services_options_service.rb +57 -0
  211. data/app/services/uffizzi_core/compose_file/template_service.rb +55 -0
  212. data/app/services/uffizzi_core/compose_file/variables_service.rb +25 -0
  213. data/app/services/uffizzi_core/compose_file_service.rb +181 -0
  214. data/app/services/uffizzi_core/container_service.rb +42 -0
  215. data/app/services/uffizzi_core/controller_service.rb +86 -0
  216. data/app/services/uffizzi_core/credential_service.rb +44 -0
  217. data/app/services/uffizzi_core/deployment_service.rb +307 -0
  218. data/app/services/uffizzi_core/docker_hub/credential_service.rb +15 -0
  219. data/app/services/uffizzi_core/docker_hub_service.rb +77 -0
  220. data/app/services/uffizzi_core/github_container_registry/credential_service.rb +24 -0
  221. data/app/services/uffizzi_core/google/credential_service.rb +18 -0
  222. data/app/services/uffizzi_core/logs_service.rb +33 -0
  223. data/app/services/uffizzi_core/manage_activity_items_service.rb +159 -0
  224. data/app/services/uffizzi_core/project_service.rb +48 -0
  225. data/app/services/uffizzi_core/repo_service.rb +43 -0
  226. data/app/services/uffizzi_core/response_service.rb +13 -0
  227. data/app/services/uffizzi_core/starter_template_service.rb +200 -0
  228. data/app/services/uffizzi_core/template_service.rb +21 -0
  229. data/app/services/uffizzi_core/token_service.rb +19 -0
  230. data/app/services/uffizzi_core/user_access_service.rb +14 -0
  231. data/app/services/uffizzi_core/user_generator_service.rb +84 -0
  232. data/app/utils/uffizzi_core/converters.rb +33 -0
  233. data/app/validators/uffizzi_core/email_validator.rb +9 -0
  234. data/app/validators/uffizzi_core/environment_variable_list_validator.rb +15 -0
  235. data/app/validators/uffizzi_core/image_command_args_validator.rb +21 -0
  236. data/config/initializers/rswag_api.rb +15 -0
  237. data/config/initializers/rswag_ui.rb +15 -0
  238. data/config/initializers/swagger_yard.rb +17 -0
  239. data/config/locales/en.activerecord.yml +23 -0
  240. data/config/locales/en.yml +66 -0
  241. data/config/routes.rb +69 -0
  242. data/db/migrate/20220218121438_create_uffizzi_core_tables.rb +375 -0
  243. data/db/migrate/20220309110201_remove_secrets_from_projects.rb +7 -0
  244. data/db/migrate/20220310110150_create_project_secrets.rb +14 -0
  245. data/db/migrate/20220325113342_add_name_to_uffizzi_containers.rb +7 -0
  246. data/db/migrate/20220329123323_rename_project_secrets_to_secrets.rb +7 -0
  247. data/db/migrate/20220329124542_add_resource_to_secrets.rb +7 -0
  248. data/db/migrate/20220329143241_remove_project_ref_from_secrets.rb +7 -0
  249. data/db/migrate/20220419074956_add_health_check_to_containers.rb +7 -0
  250. data/db/migrate/20220525113412_rename_name_to_uffizzi_containers.rb +7 -0
  251. data/db/seeds.rb +16 -0
  252. data/lib/tasks/uffizzi_core_tasks.rake +19 -0
  253. data/lib/uffizzi_core/engine.rb +15 -0
  254. data/lib/uffizzi_core/version.rb +5 -0
  255. data/lib/uffizzi_core.rb +61 -0
  256. data/swagger/v1/swagger.json +1659 -0
  257. metadata +966 -0
@@ -0,0 +1,1659 @@
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
+ "get": {
16
+ "tags": [
17
+ "Account/Credential"
18
+ ],
19
+ "operationId": "Account/Credential-index",
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": "Get a list of accounts credential"
45
+ }
46
+ },
47
+ "description": "Get a list of accounts credential",
48
+ "summary": "Get a list of accounts credential",
49
+ "x-controller": "uffizzi_core/api/cli/v1/account/credentials",
50
+ "x-action": "index"
51
+ },
52
+ "post": {
53
+ "tags": [
54
+ "Account/Credential"
55
+ ],
56
+ "operationId": "Account/Credential-create",
57
+ "parameters": [
58
+ {
59
+ "name": "credential",
60
+ "description": "credential",
61
+ "required": true,
62
+ "in": "body",
63
+ "schema": {
64
+ "type": "object",
65
+ "properties": {
66
+ "username": {
67
+ "type": "string"
68
+ },
69
+ "password": {
70
+ "type": "string"
71
+ },
72
+ "type": {
73
+ "type": "string"
74
+ }
75
+ }
76
+ }
77
+ }
78
+ ],
79
+ "responses": {
80
+ "default": {
81
+ "description": "Create account credential",
82
+ "examples": {
83
+ "application/json": "type can be one of UffizziCore::Credential::Amazon, UffizziCore::Credential::Azure,\nUffizziCore::Credential::DockerHub, UffizziCore::Credential::Google, UffizziCore::Credential::GithubContainerRegistry"
84
+ }
85
+ },
86
+ "201": {
87
+ "description": "Created successfully",
88
+ "schema": {
89
+ "type": "object",
90
+ "properties": {
91
+ "id": {
92
+ "type": "integer"
93
+ },
94
+ "username": {
95
+ "type": "string"
96
+ },
97
+ "password": {
98
+ "type": "string"
99
+ },
100
+ "type": {
101
+ "type": "string"
102
+ },
103
+ "state": {
104
+ "type": "string"
105
+ }
106
+ }
107
+ }
108
+ },
109
+ "422": {
110
+ "description": "Unprocessable entity",
111
+ "schema": {
112
+ "type": "object",
113
+ "additionalProperties": {
114
+ "type": "errors"
115
+ }
116
+ }
117
+ }
118
+ },
119
+ "description": "Create account credential",
120
+ "summary": "Create account credential",
121
+ "x-controller": "uffizzi_core/api/cli/v1/account/credentials",
122
+ "x-action": "create"
123
+ }
124
+ },
125
+ "/api/cli/v1/account/credentials/{type}/check_credential": {
126
+ "get": {
127
+ "tags": [
128
+ "Account/Credential"
129
+ ],
130
+ "operationId": "Account/Credential-check_credential",
131
+ "parameters": [
132
+ {
133
+ "name": "credential",
134
+ "description": "credential",
135
+ "required": true,
136
+ "in": "body",
137
+ "schema": {
138
+ "type": "object",
139
+ "properties": {
140
+ "type": {
141
+ "type": "string"
142
+ }
143
+ }
144
+ }
145
+ },
146
+ {
147
+ "name": "type",
148
+ "description": "Scope response to type",
149
+ "required": true,
150
+ "in": "path",
151
+ "type": "string"
152
+ }
153
+ ],
154
+ "responses": {
155
+ "422": {
156
+ "description": "Unprocessable entity"
157
+ },
158
+ "200": {
159
+ "description": "OK"
160
+ }
161
+ },
162
+ "description": "Check if credential of the type already exists in the account",
163
+ "summary": "Check if credential of the type already exists in the account",
164
+ "x-controller": "uffizzi_core/api/cli/v1/account/credentials",
165
+ "x-action": "check_credential"
166
+ }
167
+ },
168
+ "/api/cli/v1/account/credentials/{type}": {
169
+ "delete": {
170
+ "tags": [
171
+ "Account/Credential"
172
+ ],
173
+ "operationId": "Account/Credential-destroy",
174
+ "parameters": [
175
+ {
176
+ "name": "type",
177
+ "description": "Type of the credential",
178
+ "required": true,
179
+ "in": "path",
180
+ "type": "string"
181
+ }
182
+ ],
183
+ "responses": {
184
+ "204": {
185
+ "description": "No Content"
186
+ },
187
+ "401": {
188
+ "description": "Not authorized"
189
+ },
190
+ "404": {
191
+ "description": "Not found",
192
+ "schema": {
193
+ "type": "object",
194
+ "properties": {
195
+ "errors": {
196
+ "type": "object",
197
+ "properties": {
198
+ "title": {
199
+ "type": "string"
200
+ }
201
+ }
202
+ }
203
+ }
204
+ }
205
+ }
206
+ },
207
+ "description": "Delete account credential",
208
+ "summary": "Delete account credential",
209
+ "x-controller": "uffizzi_core/api/cli/v1/account/credentials",
210
+ "x-action": "destroy"
211
+ }
212
+ },
213
+ "/api/cli/v1/projects/{project_slug}/compose_file": {
214
+ "get": {
215
+ "tags": [
216
+ "ComposeFile"
217
+ ],
218
+ "operationId": "ComposeFile-show",
219
+ "parameters": [
220
+ {
221
+ "name": "project_slug",
222
+ "description": "The project slug",
223
+ "required": true,
224
+ "in": "path",
225
+ "type": "string"
226
+ }
227
+ ],
228
+ "responses": {
229
+ "200": {
230
+ "description": "OK",
231
+ "schema": {
232
+ "$ref": "#/definitions/ComposeFile"
233
+ }
234
+ },
235
+ "401": {
236
+ "description": "Not authorized"
237
+ },
238
+ "404": {
239
+ "description": "Not found",
240
+ "schema": {
241
+ "type": "object",
242
+ "properties": {
243
+ "errors": {
244
+ "type": "object",
245
+ "properties": {
246
+ "title": {
247
+ "type": "string"
248
+ }
249
+ }
250
+ }
251
+ }
252
+ }
253
+ }
254
+ },
255
+ "description": "Get the compose file for the project",
256
+ "summary": "Get the compose file for the project",
257
+ "x-controller": "uffizzi_core/api/cli/v1/projects/compose_files",
258
+ "x-action": "show"
259
+ },
260
+ "post": {
261
+ "tags": [
262
+ "ComposeFile"
263
+ ],
264
+ "operationId": "ComposeFile-create",
265
+ "parameters": [
266
+ {
267
+ "name": "params",
268
+ "description": "params",
269
+ "required": true,
270
+ "in": "body",
271
+ "schema": {
272
+ "type": "object",
273
+ "properties": {
274
+ "compose_file": {
275
+ "type": "object",
276
+ "properties": {
277
+ "path": {
278
+ "type": "string"
279
+ },
280
+ "source": {
281
+ "type": "string"
282
+ },
283
+ "content": {
284
+ "type": "string"
285
+ }
286
+ }
287
+ },
288
+ "dependencies": {
289
+ "type": "array",
290
+ "items": {
291
+ "type": "object",
292
+ "properties": {
293
+ "path": {
294
+ "type": "string"
295
+ },
296
+ "source": {
297
+ "type": "string"
298
+ },
299
+ "content": {
300
+ "type": "string"
301
+ }
302
+ }
303
+ }
304
+ }
305
+ }
306
+ }
307
+ },
308
+ {
309
+ "name": "project_slug",
310
+ "description": "The project slug",
311
+ "required": true,
312
+ "in": "path",
313
+ "type": "string"
314
+ }
315
+ ],
316
+ "responses": {
317
+ "201": {
318
+ "description": "OK",
319
+ "schema": {
320
+ "$ref": "#/definitions/ComposeFile"
321
+ }
322
+ },
323
+ "422": {
324
+ "description": "Invalid compose file",
325
+ "schema": {
326
+ "$ref": "#/definitions/ComposeFile"
327
+ }
328
+ },
329
+ "401": {
330
+ "description": "Not authorized"
331
+ }
332
+ },
333
+ "description": "Create a compose file for the project",
334
+ "summary": "Create a compose file for the project",
335
+ "x-controller": "uffizzi_core/api/cli/v1/projects/compose_files",
336
+ "x-action": "create"
337
+ },
338
+ "delete": {
339
+ "tags": [
340
+ "ComposeFile"
341
+ ],
342
+ "operationId": "ComposeFile-destroy",
343
+ "parameters": [
344
+ {
345
+ "name": "project_slug",
346
+ "description": "The project slug",
347
+ "required": true,
348
+ "in": "path",
349
+ "type": "string"
350
+ }
351
+ ],
352
+ "responses": {
353
+ "204": {
354
+ "description": "No Content"
355
+ },
356
+ "401": {
357
+ "description": "Not authorized"
358
+ }
359
+ },
360
+ "description": "Delete the compose file for the project",
361
+ "summary": "Delete the compose file for the project",
362
+ "x-controller": "uffizzi_core/api/cli/v1/projects/compose_files",
363
+ "x-action": "destroy"
364
+ }
365
+ },
366
+ "/api/cli/v1/projects/{project_slug}/deployments/{deployment_id}/containers/{container_name}/logs": {
367
+ "get": {
368
+ "tags": [
369
+ "Project/Deployment/Container/Log"
370
+ ],
371
+ "operationId": "Project/Deployment/Container/Log-index",
372
+ "parameters": [
373
+ {
374
+ "name": "container_name",
375
+ "description": "The name of the container",
376
+ "required": true,
377
+ "in": "path",
378
+ "type": "integer"
379
+ },
380
+ {
381
+ "name": "deployment_id",
382
+ "description": "The id of the deployment",
383
+ "required": true,
384
+ "in": "path",
385
+ "type": "integer"
386
+ },
387
+ {
388
+ "name": "project_slug",
389
+ "description": "The slug of the project",
390
+ "required": true,
391
+ "in": "path",
392
+ "type": "string"
393
+ }
394
+ ],
395
+ "responses": {
396
+ "200": {
397
+ "description": "OK",
398
+ "schema": {
399
+ "type": "object",
400
+ "properties": {
401
+ "logs": {
402
+ "type": "array",
403
+ "items": {
404
+ "type": "object",
405
+ "properties": {
406
+ "insert_id": {
407
+ "type": "string"
408
+ },
409
+ "payload": {
410
+ "type": "string"
411
+ }
412
+ }
413
+ }
414
+ }
415
+ }
416
+ }
417
+ },
418
+ "404": {
419
+ "description": "Not found",
420
+ "schema": {
421
+ "type": "object",
422
+ "properties": {
423
+ "errors": {
424
+ "type": "object",
425
+ "properties": {
426
+ "title": {
427
+ "type": "string"
428
+ }
429
+ }
430
+ }
431
+ }
432
+ }
433
+ },
434
+ "401": {
435
+ "description": "Not authorized"
436
+ }
437
+ },
438
+ "x-controller": "uffizzi_core/api/cli/v1/projects/deployments/containers/logs",
439
+ "x-action": "index"
440
+ }
441
+ },
442
+ "/api/cli/v1/projects/{project_slug}/deployments/{deployment_id}/containers": {
443
+ "get": {
444
+ "tags": [
445
+ "Container"
446
+ ],
447
+ "operationId": "Container-index",
448
+ "parameters": [
449
+ {
450
+ "name": "deployment_id",
451
+ "description": "The id of the deployment",
452
+ "required": true,
453
+ "in": "path",
454
+ "type": "integer"
455
+ },
456
+ {
457
+ "name": "project_slug",
458
+ "description": "The project slug",
459
+ "required": true,
460
+ "in": "path",
461
+ "type": "string"
462
+ }
463
+ ],
464
+ "responses": {
465
+ "200": {
466
+ "description": "OK",
467
+ "schema": {
468
+ "$ref": "#/definitions/Container"
469
+ }
470
+ },
471
+ "401": {
472
+ "description": "Not authorized"
473
+ },
474
+ "404": {
475
+ "description": "Not found"
476
+ }
477
+ },
478
+ "description": "Get a list of container services for a deployment",
479
+ "summary": "Get a list of container services for a deployment",
480
+ "x-controller": "uffizzi_core/api/cli/v1/projects/deployments/containers",
481
+ "x-action": "index"
482
+ }
483
+ },
484
+ "/api/cli/v1/projects/{project_slug}/deployments/{deployment_id}/events": {
485
+ "get": {
486
+ "tags": [
487
+ "Event"
488
+ ],
489
+ "operationId": "Event-index",
490
+ "parameters": [
491
+ {
492
+ "name": "deployment_id",
493
+ "description": "The id of the deployment",
494
+ "required": true,
495
+ "in": "path",
496
+ "type": "integer"
497
+ },
498
+ {
499
+ "name": "project_slug",
500
+ "description": "The project_slug for the project",
501
+ "required": true,
502
+ "in": "path",
503
+ "type": "string"
504
+ }
505
+ ],
506
+ "responses": {
507
+ "200": {
508
+ "description": "OK",
509
+ "schema": {
510
+ "type": "object",
511
+ "properties": {
512
+ "events": {
513
+ "type": "array",
514
+ "items": {
515
+ "type": "object",
516
+ "properties": {
517
+ "first_timestamp": {
518
+ "type": "string"
519
+ },
520
+ "last_timestamp": {
521
+ "type": "string"
522
+ },
523
+ "reason": {
524
+ "type": "string"
525
+ },
526
+ "message": {
527
+ "type": "string"
528
+ }
529
+ }
530
+ }
531
+ }
532
+ }
533
+ }
534
+ },
535
+ "401": {
536
+ "description": "Not authorized"
537
+ },
538
+ "404": {
539
+ "description": "Not found"
540
+ }
541
+ },
542
+ "description": "Get the events associated with deployment",
543
+ "summary": "Get the events associated with deployment",
544
+ "x-controller": "uffizzi_core/api/cli/v1/projects/deployments/events",
545
+ "x-action": "index"
546
+ }
547
+ },
548
+ "/api/cli/v1/projects/{project_slug}/deployments": {
549
+ "get": {
550
+ "tags": [
551
+ "Deployment"
552
+ ],
553
+ "operationId": "Deployment-index",
554
+ "parameters": [
555
+ {
556
+ "name": "project_slug",
557
+ "description": "The project slug",
558
+ "required": true,
559
+ "in": "path",
560
+ "type": "string"
561
+ }
562
+ ],
563
+ "responses": {
564
+ "200": {
565
+ "description": "OK",
566
+ "schema": {
567
+ "type": "array",
568
+ "items": {
569
+ "$ref": "#/definitions/Deployment"
570
+ }
571
+ }
572
+ },
573
+ "401": {
574
+ "description": "Not authorized"
575
+ }
576
+ },
577
+ "description": "Get a list of active deployements for a project",
578
+ "summary": "Get a list of active deployements for a project",
579
+ "x-controller": "uffizzi_core/api/cli/v1/projects/deployments",
580
+ "x-action": "index"
581
+ },
582
+ "post": {
583
+ "tags": [
584
+ "Deployment"
585
+ ],
586
+ "operationId": "Deployment-create",
587
+ "parameters": [
588
+ {
589
+ "name": "params",
590
+ "description": "params",
591
+ "required": true,
592
+ "in": "body",
593
+ "schema": {
594
+ "type": "object",
595
+ "properties": {
596
+ "compose_file": {
597
+ "type": "object",
598
+ "properties": {
599
+ "path": {
600
+ "type": "string"
601
+ },
602
+ "source": {
603
+ "type": "string"
604
+ },
605
+ "content": {
606
+ "type": "string"
607
+ }
608
+ }
609
+ },
610
+ "dependencies": {
611
+ "type": "array",
612
+ "items": {
613
+ "type": "object",
614
+ "properties": {
615
+ "path": {
616
+ "type": "string"
617
+ },
618
+ "source": {
619
+ "type": "string"
620
+ },
621
+ "content": {
622
+ "type": "string"
623
+ }
624
+ }
625
+ }
626
+ }
627
+ }
628
+ }
629
+ },
630
+ {
631
+ "name": "project_slug",
632
+ "description": "The project slug",
633
+ "required": true,
634
+ "in": "path",
635
+ "type": "string"
636
+ }
637
+ ],
638
+ "responses": {
639
+ "201": {
640
+ "description": "OK",
641
+ "schema": {
642
+ "$ref": "#/definitions/Deployment"
643
+ }
644
+ },
645
+ "422": {
646
+ "description": "Unprocessable Entity",
647
+ "schema": {
648
+ "type": "object",
649
+ "properties": {
650
+ "errors": {
651
+ "type": "object",
652
+ "properties": {
653
+ "state": {
654
+ "type": "string"
655
+ }
656
+ }
657
+ }
658
+ }
659
+ }
660
+ },
661
+ "404": {
662
+ "description": "Not found",
663
+ "schema": {
664
+ "type": "object",
665
+ "properties": {
666
+ "errors": {
667
+ "type": "object",
668
+ "properties": {
669
+ "title": {
670
+ "type": "string"
671
+ }
672
+ }
673
+ }
674
+ }
675
+ }
676
+ },
677
+ "401": {
678
+ "description": "Not authorized"
679
+ }
680
+ },
681
+ "description": "Create a deployment from a compose file",
682
+ "summary": "Create a deployment from a compose file",
683
+ "x-controller": "uffizzi_core/api/cli/v1/projects/deployments",
684
+ "x-action": "create"
685
+ }
686
+ },
687
+ "/api/cli/v1/projects/{project_slug}/deployments/{id}": {
688
+ "get": {
689
+ "tags": [
690
+ "Deployment"
691
+ ],
692
+ "operationId": "Deployment-show",
693
+ "parameters": [
694
+ {
695
+ "name": "id",
696
+ "description": "Scope response to id",
697
+ "required": true,
698
+ "in": "path",
699
+ "type": "string"
700
+ },
701
+ {
702
+ "name": "project_slug",
703
+ "description": "The project slug",
704
+ "required": true,
705
+ "in": "path",
706
+ "type": "string"
707
+ }
708
+ ],
709
+ "responses": {
710
+ "200": {
711
+ "description": "OK",
712
+ "schema": {
713
+ "$ref": "#/definitions/Deployment"
714
+ }
715
+ },
716
+ "404": {
717
+ "description": "Not found",
718
+ "schema": {
719
+ "type": "object",
720
+ "properties": {
721
+ "errors": {
722
+ "type": "object",
723
+ "properties": {
724
+ "title": {
725
+ "type": "string"
726
+ }
727
+ }
728
+ }
729
+ }
730
+ }
731
+ },
732
+ "401": {
733
+ "description": "Not authorized"
734
+ }
735
+ },
736
+ "description": "Get deployment information by id",
737
+ "summary": "Get deployment information by id",
738
+ "x-controller": "uffizzi_core/api/cli/v1/projects/deployments",
739
+ "x-action": "show"
740
+ },
741
+ "delete": {
742
+ "tags": [
743
+ "Deployment"
744
+ ],
745
+ "operationId": "Deployment-destroy",
746
+ "parameters": [
747
+ {
748
+ "name": "id",
749
+ "description": "Scope response to id",
750
+ "required": true,
751
+ "in": "path",
752
+ "type": "string"
753
+ },
754
+ {
755
+ "name": "project_slug",
756
+ "description": "The project slug",
757
+ "required": true,
758
+ "in": "path",
759
+ "type": "string"
760
+ }
761
+ ],
762
+ "responses": {
763
+ "204": {
764
+ "description": "No Content"
765
+ },
766
+ "401": {
767
+ "description": "Not authorized"
768
+ }
769
+ },
770
+ "description": "Disable deployment by id",
771
+ "summary": "Disable deployment by id",
772
+ "x-controller": "uffizzi_core/api/cli/v1/projects/deployments",
773
+ "x-action": "destroy"
774
+ }
775
+ },
776
+ "/api/cli/v1/projects/{project_slug}/deployments/{id}\"": {
777
+ "put": {
778
+ "tags": [
779
+ "Deployment"
780
+ ],
781
+ "operationId": "Deployment-update",
782
+ "parameters": [
783
+ {
784
+ "name": "id",
785
+ "description": "Scope response to id",
786
+ "required": true,
787
+ "in": "path",
788
+ "type": "string"
789
+ },
790
+ {
791
+ "name": "params",
792
+ "description": "params",
793
+ "required": true,
794
+ "in": "body",
795
+ "schema": {
796
+ "type": "object",
797
+ "properties": {
798
+ "compose_file": {
799
+ "type": "object",
800
+ "properties": {
801
+ "path": {
802
+ "type": "string"
803
+ },
804
+ "source": {
805
+ "type": "string"
806
+ },
807
+ "content": {
808
+ "type": "string"
809
+ }
810
+ }
811
+ },
812
+ "dependencies": {
813
+ "type": "array",
814
+ "items": {
815
+ "type": "object",
816
+ "properties": {
817
+ "path": {
818
+ "type": "string"
819
+ },
820
+ "source": {
821
+ "type": "string"
822
+ },
823
+ "content": {
824
+ "type": "string"
825
+ }
826
+ }
827
+ }
828
+ }
829
+ }
830
+ }
831
+ },
832
+ {
833
+ "name": "project_slug",
834
+ "description": "The project slug",
835
+ "required": true,
836
+ "in": "path",
837
+ "type": "string"
838
+ }
839
+ ],
840
+ "responses": {
841
+ "201": {
842
+ "description": "OK",
843
+ "schema": {
844
+ "$ref": "#/definitions/Deployment"
845
+ }
846
+ },
847
+ "422": {
848
+ "description": "Unprocessable Entity",
849
+ "schema": {
850
+ "type": "object",
851
+ "properties": {
852
+ "errors": {
853
+ "type": "object",
854
+ "properties": {
855
+ "state": {
856
+ "type": "string"
857
+ }
858
+ }
859
+ }
860
+ }
861
+ }
862
+ },
863
+ "404": {
864
+ "description": "Not found",
865
+ "schema": {
866
+ "type": "object",
867
+ "properties": {
868
+ "errors": {
869
+ "type": "object",
870
+ "properties": {
871
+ "title": {
872
+ "type": "string"
873
+ }
874
+ }
875
+ }
876
+ }
877
+ }
878
+ },
879
+ "401": {
880
+ "description": "Not authorized"
881
+ }
882
+ },
883
+ "description": "Update the deployment with new compose file",
884
+ "summary": "Update the deployment with new compose file",
885
+ "x-controller": "uffizzi_core/api/cli/v1/projects/deployments",
886
+ "x-action": "update"
887
+ }
888
+ },
889
+ "/api/cli/v1/projects/{project_slug}/deployments/{id}/deploy_containers": {
890
+ "post": {
891
+ "tags": [
892
+ "Deployment"
893
+ ],
894
+ "operationId": "Deployment-deploy_containers",
895
+ "parameters": [
896
+ {
897
+ "name": "id",
898
+ "description": "The id of the deployment",
899
+ "required": true,
900
+ "in": "path",
901
+ "type": "string"
902
+ },
903
+ {
904
+ "name": "project_slug",
905
+ "description": "The project slug",
906
+ "required": true,
907
+ "in": "path",
908
+ "type": "string"
909
+ }
910
+ ],
911
+ "responses": {
912
+ "204": {
913
+ "description": "No Content"
914
+ },
915
+ "404": {
916
+ "description": "Not found",
917
+ "schema": {
918
+ "type": "object",
919
+ "properties": {
920
+ "errors": {
921
+ "type": "object",
922
+ "properties": {
923
+ "title": {
924
+ "type": "string"
925
+ }
926
+ }
927
+ }
928
+ }
929
+ }
930
+ },
931
+ "401": {
932
+ "description": "Not authorized"
933
+ }
934
+ },
935
+ "x-controller": "uffizzi_core/api/cli/v1/projects/deployments",
936
+ "x-action": "deploy_containers"
937
+ }
938
+ },
939
+ "/api/cli/v1/projects/{project_slug}/secrets": {
940
+ "get": {
941
+ "tags": [
942
+ "Project/Secrets"
943
+ ],
944
+ "operationId": "Project/Secrets-index",
945
+ "parameters": [
946
+ {
947
+ "name": "project_slug",
948
+ "description": "project_slug",
949
+ "required": true,
950
+ "in": "path",
951
+ "type": "string"
952
+ }
953
+ ],
954
+ "responses": {
955
+ "200": {
956
+ "description": "OK",
957
+ "schema": {
958
+ "type": "object",
959
+ "properties": {
960
+ "secrets": {
961
+ "type": "array",
962
+ "items": {
963
+ "type": "object",
964
+ "properties": {
965
+ "name": {
966
+ "type": "string"
967
+ },
968
+ "created_at": {
969
+ "type": "string",
970
+ "format": "date"
971
+ },
972
+ "updated_at": {
973
+ "type": "string",
974
+ "format": "date"
975
+ }
976
+ }
977
+ }
978
+ }
979
+ }
980
+ }
981
+ },
982
+ "401": {
983
+ "description": "Not authorized"
984
+ }
985
+ },
986
+ "description": "Get secrets for the project",
987
+ "summary": "Get secrets for the project",
988
+ "x-controller": "uffizzi_core/api/cli/v1/projects/secrets",
989
+ "x-action": "index"
990
+ }
991
+ },
992
+ "/api/cli/v1/projects/{project_slug}/secrets/bulk_create": {
993
+ "post": {
994
+ "tags": [
995
+ "Project/Secrets"
996
+ ],
997
+ "operationId": "Project/Secrets-bulk_create",
998
+ "parameters": [
999
+ {
1000
+ "name": "project_slug",
1001
+ "description": "project_slug",
1002
+ "required": true,
1003
+ "in": "path",
1004
+ "type": "string"
1005
+ },
1006
+ {
1007
+ "name": "secrets",
1008
+ "description": "secrets",
1009
+ "required": true,
1010
+ "in": "body",
1011
+ "schema": {
1012
+ "type": "object",
1013
+ "properties": {
1014
+ "secrets": {
1015
+ "type": "array",
1016
+ "items": {
1017
+ "type": "object",
1018
+ "properties": {
1019
+ "name": {
1020
+ "type": "string"
1021
+ },
1022
+ "value": {
1023
+ "type": "string"
1024
+ }
1025
+ }
1026
+ }
1027
+ }
1028
+ }
1029
+ }
1030
+ }
1031
+ ],
1032
+ "responses": {
1033
+ "201": {
1034
+ "description": "Created",
1035
+ "schema": {
1036
+ "type": "object",
1037
+ "properties": {
1038
+ "secrets": {
1039
+ "type": "array",
1040
+ "items": {
1041
+ "type": "object",
1042
+ "properties": {
1043
+ "name": {
1044
+ "type": "string"
1045
+ },
1046
+ "created_at": {
1047
+ "type": "string",
1048
+ "format": "date"
1049
+ },
1050
+ "updated_at": {
1051
+ "type": "string",
1052
+ "format": "date"
1053
+ }
1054
+ }
1055
+ }
1056
+ }
1057
+ }
1058
+ }
1059
+ },
1060
+ "422": {
1061
+ "description": "A compose file already exists for this project"
1062
+ },
1063
+ "401": {
1064
+ "description": "Not authorized"
1065
+ }
1066
+ },
1067
+ "description": "Add secret to project",
1068
+ "summary": "Add secret to project",
1069
+ "x-controller": "uffizzi_core/api/cli/v1/projects/secrets",
1070
+ "x-action": "bulk_create"
1071
+ }
1072
+ },
1073
+ "/api/cli/v1/projects/{project_slug}/secrets/{secret_name}": {
1074
+ "delete": {
1075
+ "tags": [
1076
+ "Project/Secrets"
1077
+ ],
1078
+ "operationId": "Project/Secrets-destroy",
1079
+ "parameters": [
1080
+ {
1081
+ "name": "project_slug",
1082
+ "description": "project_slug",
1083
+ "required": true,
1084
+ "in": "path",
1085
+ "type": "string"
1086
+ },
1087
+ {
1088
+ "name": "secret_name",
1089
+ "description": "Scope response to secret_name",
1090
+ "required": true,
1091
+ "in": "path",
1092
+ "type": "string"
1093
+ }
1094
+ ],
1095
+ "responses": {
1096
+ "200": {
1097
+ "description": "OK",
1098
+ "schema": {
1099
+ "$ref": "#/definitions/Project"
1100
+ }
1101
+ },
1102
+ "404": {
1103
+ "description": "Delete a secret from project by secret name"
1104
+ },
1105
+ "401": {
1106
+ "description": "Not authorized"
1107
+ }
1108
+ },
1109
+ "description": "Delete a secret from project by secret name",
1110
+ "summary": "Delete a secret from project by secret name",
1111
+ "x-controller": "uffizzi_core/api/cli/v1/projects/secrets",
1112
+ "x-action": "destroy"
1113
+ }
1114
+ },
1115
+ "/api/cli/v1/projects": {
1116
+ "get": {
1117
+ "tags": [
1118
+ "Project"
1119
+ ],
1120
+ "operationId": "Project-index",
1121
+ "parameters": [
1122
+
1123
+ ],
1124
+ "responses": {
1125
+ "200": {
1126
+ "description": "OK",
1127
+ "schema": {
1128
+ "type": "object",
1129
+ "properties": {
1130
+ "projects": {
1131
+ "type": "array",
1132
+ "items": {
1133
+ "type": "object",
1134
+ "properties": {
1135
+ "slug": {
1136
+ "type": "string"
1137
+ },
1138
+ "name": {
1139
+ "type": "string"
1140
+ }
1141
+ }
1142
+ }
1143
+ }
1144
+ }
1145
+ }
1146
+ },
1147
+ "401": {
1148
+ "description": "Not authorized"
1149
+ }
1150
+ },
1151
+ "description": "Get projects of current user",
1152
+ "summary": "Get projects of current user",
1153
+ "x-controller": "uffizzi_core/api/cli/v1/projects",
1154
+ "x-action": "index"
1155
+ },
1156
+ "post": {
1157
+ "tags": [
1158
+ "Project"
1159
+ ],
1160
+ "operationId": "Project-create",
1161
+ "parameters": [
1162
+ {
1163
+ "name": "params",
1164
+ "description": "params",
1165
+ "required": true,
1166
+ "in": "body",
1167
+ "schema": {
1168
+ "type": "object",
1169
+ "properties": {
1170
+ "name": {
1171
+ "type": "string"
1172
+ },
1173
+ "slug": {
1174
+ "type": "string"
1175
+ },
1176
+ "description": {
1177
+ "type": "string"
1178
+ }
1179
+ }
1180
+ }
1181
+ }
1182
+ ],
1183
+ "responses": {
1184
+ "200": {
1185
+ "description": "OK",
1186
+ "schema": {
1187
+ "type": "object",
1188
+ "properties": {
1189
+ "project": {
1190
+ "$ref": "#/definitions/Project"
1191
+ }
1192
+ }
1193
+ }
1194
+ },
1195
+ "404": {
1196
+ "description": "Not Found"
1197
+ },
1198
+ "401": {
1199
+ "description": "Not authorized"
1200
+ },
1201
+ "422": {
1202
+ "description": "Unprocessable entity",
1203
+ "schema": {
1204
+ "type": "object",
1205
+ "properties": {
1206
+ "errors": {
1207
+ "type": "object",
1208
+ "properties": {
1209
+ "password": {
1210
+ "type": "string"
1211
+ }
1212
+ }
1213
+ }
1214
+ }
1215
+ }
1216
+ }
1217
+ },
1218
+ "description": "Create a project",
1219
+ "summary": "Create a project",
1220
+ "x-controller": "uffizzi_core/api/cli/v1/projects",
1221
+ "x-action": "create"
1222
+ }
1223
+ },
1224
+ "/api/cli/v1/projects/{slug}": {
1225
+ "get": {
1226
+ "tags": [
1227
+ "Project"
1228
+ ],
1229
+ "operationId": "Project-show",
1230
+ "parameters": [
1231
+ {
1232
+ "name": "slug",
1233
+ "description": "Scope response to slug",
1234
+ "required": true,
1235
+ "in": "path",
1236
+ "type": "string"
1237
+ }
1238
+ ],
1239
+ "responses": {
1240
+ "200": {
1241
+ "description": "OK",
1242
+ "schema": {
1243
+ "type": "object",
1244
+ "properties": {
1245
+ "project": {
1246
+ "$ref": "#/definitions/Project"
1247
+ }
1248
+ }
1249
+ }
1250
+ },
1251
+ "404": {
1252
+ "description": "Not Found"
1253
+ },
1254
+ "401": {
1255
+ "description": "Not authorized"
1256
+ }
1257
+ },
1258
+ "description": "Get a project by slug",
1259
+ "summary": "Get a project by slug",
1260
+ "x-controller": "uffizzi_core/api/cli/v1/projects",
1261
+ "x-action": "show"
1262
+ },
1263
+ "delete": {
1264
+ "tags": [
1265
+ "Project"
1266
+ ],
1267
+ "operationId": "Project-destroy",
1268
+ "parameters": [
1269
+ {
1270
+ "name": "slug",
1271
+ "description": "Scope response to slug",
1272
+ "required": true,
1273
+ "in": "path",
1274
+ "type": "string"
1275
+ }
1276
+ ],
1277
+ "responses": {
1278
+ "204": {
1279
+ "description": "No content"
1280
+ },
1281
+ "404": {
1282
+ "description": "Not Found"
1283
+ },
1284
+ "401": {
1285
+ "description": "Not authorized"
1286
+ }
1287
+ },
1288
+ "description": "Delete a project",
1289
+ "summary": "Delete a project",
1290
+ "x-controller": "uffizzi_core/api/cli/v1/projects",
1291
+ "x-action": "destroy"
1292
+ }
1293
+ },
1294
+ "/api/cli/v1/session": {
1295
+ "post": {
1296
+ "tags": [
1297
+ "Uffizzi"
1298
+ ],
1299
+ "operationId": "Uffizzi-create",
1300
+ "parameters": [
1301
+ {
1302
+ "name": "user",
1303
+ "description": "user",
1304
+ "required": true,
1305
+ "in": "body",
1306
+ "schema": {
1307
+ "type": "object",
1308
+ "properties": {
1309
+ "email": {
1310
+ "type": "string"
1311
+ },
1312
+ "password": {
1313
+ "type": "string"
1314
+ }
1315
+ }
1316
+ }
1317
+ }
1318
+ ],
1319
+ "responses": {
1320
+ "201": {
1321
+ "description": "Created successfully",
1322
+ "schema": {
1323
+ "type": "object",
1324
+ "properties": {
1325
+ "user": {
1326
+ "type": "object",
1327
+ "properties": {
1328
+ "accounts": {
1329
+ "type": "array",
1330
+ "items": {
1331
+ "type": "object",
1332
+ "properties": {
1333
+ "id": {
1334
+ "type": "integer"
1335
+ },
1336
+ "state": {
1337
+ "type": "string"
1338
+ }
1339
+ }
1340
+ }
1341
+ }
1342
+ }
1343
+ }
1344
+ }
1345
+ }
1346
+ },
1347
+ "422": {
1348
+ "description": "Unprocessable entity",
1349
+ "schema": {
1350
+ "type": "object",
1351
+ "properties": {
1352
+ "errors": {
1353
+ "type": "object",
1354
+ "properties": {
1355
+ "password": {
1356
+ "type": "string"
1357
+ }
1358
+ }
1359
+ }
1360
+ }
1361
+ }
1362
+ }
1363
+ },
1364
+ "description": "Create session",
1365
+ "summary": "Create session",
1366
+ "x-controller": "uffizzi_core/api/cli/v1/sessions",
1367
+ "x-action": "create"
1368
+ },
1369
+ "delete": {
1370
+ "tags": [
1371
+ "Uffizzi"
1372
+ ],
1373
+ "operationId": "Uffizzi-destroy",
1374
+ "parameters": [
1375
+
1376
+ ],
1377
+ "responses": {
1378
+ "204": {
1379
+ "description": "No Content"
1380
+ }
1381
+ },
1382
+ "description": "Destroy session",
1383
+ "summary": "Destroy session",
1384
+ "x-controller": "uffizzi_core/api/cli/v1/sessions",
1385
+ "x-action": "destroy"
1386
+ }
1387
+ }
1388
+ },
1389
+ "tags": [
1390
+ {
1391
+ "name": "Account/Credential",
1392
+ "description": ""
1393
+ },
1394
+ {
1395
+ "name": "ComposeFile",
1396
+ "description": ""
1397
+ },
1398
+ {
1399
+ "name": "Container",
1400
+ "description": ""
1401
+ },
1402
+ {
1403
+ "name": "Deployment",
1404
+ "description": ""
1405
+ },
1406
+ {
1407
+ "name": "Event",
1408
+ "description": ""
1409
+ },
1410
+ {
1411
+ "name": "Project",
1412
+ "description": ""
1413
+ },
1414
+ {
1415
+ "name": "Project/Deployment/Container/Log",
1416
+ "description": ""
1417
+ },
1418
+ {
1419
+ "name": "Project/Secrets",
1420
+ "description": ""
1421
+ },
1422
+ {
1423
+ "name": "Uffizzi",
1424
+ "description": ""
1425
+ }
1426
+ ],
1427
+ "securityDefinitions": {
1428
+ },
1429
+ "definitions": {
1430
+ "UffizziCore_ActivityItem": {
1431
+ "type": "object",
1432
+ "properties": {
1433
+ "id": {
1434
+ "type": "integer"
1435
+ },
1436
+ "namespace": {
1437
+ "type": "string"
1438
+ },
1439
+ "name": {
1440
+ "type": "string"
1441
+ },
1442
+ "tag": {
1443
+ "type": "string"
1444
+ },
1445
+ "branch": {
1446
+ "type": "string"
1447
+ },
1448
+ "type": {
1449
+ "type": "string"
1450
+ },
1451
+ "container_id": {
1452
+ "type": "string"
1453
+ },
1454
+ "commit": {
1455
+ "type": "string"
1456
+ },
1457
+ "commit_message": {
1458
+ "type": "string"
1459
+ },
1460
+ "build_id": {
1461
+ "type": "integer"
1462
+ },
1463
+ "created_at": {
1464
+ "type": "string",
1465
+ "format": "date"
1466
+ },
1467
+ "updated_at": {
1468
+ "type": "string",
1469
+ "format": "date"
1470
+ },
1471
+ "data": {
1472
+ "type": "object"
1473
+ },
1474
+ "digest": {
1475
+ "type": "string"
1476
+ },
1477
+ "meta": {
1478
+ "type": "object"
1479
+ }
1480
+ },
1481
+ "required": [
1482
+ "name"
1483
+ ]
1484
+ },
1485
+ "ComposeFile": {
1486
+ "type": "object",
1487
+ "properties": {
1488
+ "id": {
1489
+ "type": "integer"
1490
+ },
1491
+ "source": {
1492
+ "type": "string"
1493
+ },
1494
+ "path": {
1495
+ "type": "string"
1496
+ },
1497
+ "content": {
1498
+ "type": "string"
1499
+ },
1500
+ "auto_deploy": {
1501
+ "type": "boolean"
1502
+ },
1503
+ "state": {
1504
+ "type": "string"
1505
+ },
1506
+ "payload": {
1507
+ "type": "string"
1508
+ }
1509
+ },
1510
+ "required": [
1511
+ "content"
1512
+ ]
1513
+ },
1514
+ "UffizziCore_ConfigFile": {
1515
+ "type": "object",
1516
+ "properties": {
1517
+ "filename": {
1518
+ "type": "string"
1519
+ },
1520
+ "kind": {
1521
+ "type": "string"
1522
+ },
1523
+ "payload": {
1524
+ "type": "string"
1525
+ },
1526
+ "source": {
1527
+ "type": "string"
1528
+ }
1529
+ }
1530
+ },
1531
+ "Container": {
1532
+ "type": "object",
1533
+ "properties": {
1534
+ "id": {
1535
+ "type": "integer"
1536
+ },
1537
+ "name": {
1538
+ "type": "string"
1539
+ },
1540
+ "memory_limit": {
1541
+ "type": "integer"
1542
+ },
1543
+ "memory_request": {
1544
+ "type": "integer"
1545
+ },
1546
+ "continuously_deploy": {
1547
+ "type": "string"
1548
+ },
1549
+ "variables": {
1550
+ "type": "object"
1551
+ },
1552
+ "secret_variables": {
1553
+ "type": "object"
1554
+ },
1555
+ "container_config_files": {
1556
+ "$ref": "#/definitions/ConfigFile"
1557
+ }
1558
+ }
1559
+ },
1560
+ "Deployment": {
1561
+ "type": "object",
1562
+ "properties": {
1563
+ "id": {
1564
+ "type": "integer"
1565
+ },
1566
+ "project_id": {
1567
+ "type": "integer"
1568
+ },
1569
+ "kind": {
1570
+ "type": "string"
1571
+ },
1572
+ "state": {
1573
+ "type": "string"
1574
+ },
1575
+ "preview_url": {
1576
+ "type": "string"
1577
+ },
1578
+ "tag": {
1579
+ "type": "string"
1580
+ },
1581
+ "branch": {
1582
+ "type": "string"
1583
+ },
1584
+ "commit": {
1585
+ "type": "string"
1586
+ },
1587
+ "image_id": {
1588
+ "type": "string"
1589
+ },
1590
+ "created_at": {
1591
+ "type": "string",
1592
+ "format": "date-time"
1593
+ },
1594
+ "updated_at": {
1595
+ "type": "string",
1596
+ "format": "date-time"
1597
+ },
1598
+ "ingress_container_ready": {
1599
+ "type": "boolean"
1600
+ },
1601
+ "ingress_container_state": {
1602
+ "type": "string"
1603
+ },
1604
+ "creation_source": {
1605
+ "type": "string"
1606
+ },
1607
+ "contaners": {
1608
+ "type": "array",
1609
+ "items": {
1610
+ "type": "string"
1611
+ }
1612
+ },
1613
+ "deployed_by": {
1614
+ "type": "object"
1615
+ }
1616
+ }
1617
+ },
1618
+ "Project": {
1619
+ "type": "object",
1620
+ "properties": {
1621
+ "slug": {
1622
+ "type": "string"
1623
+ },
1624
+ "name": {
1625
+ "type": "string"
1626
+ },
1627
+ "description": {
1628
+ "type": "string"
1629
+ },
1630
+ "created_at": {
1631
+ "type": "string",
1632
+ "format": "date-time"
1633
+ },
1634
+ "secrets": {
1635
+ "type": "string"
1636
+ },
1637
+ "default_compose": {
1638
+ "type": "object",
1639
+ "properties": {
1640
+ "source": {
1641
+ "type": "string"
1642
+ }
1643
+ }
1644
+ },
1645
+ "deployments": {
1646
+ "type": "object",
1647
+ "properties": {
1648
+ "id": {
1649
+ "type": "integer"
1650
+ },
1651
+ "domain": {
1652
+ "type": "string"
1653
+ }
1654
+ }
1655
+ }
1656
+ }
1657
+ }
1658
+ }
1659
+ }