nextmv 1.3.1.dev3__tar.gz → 1.4.0.dev0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (394) hide show
  1. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/.gitignore +0 -5
  2. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/PKG-INFO +1 -3
  3. nextmv-1.4.0.dev0/nextmv/__about__.py +1 -0
  4. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/acceptance/delete.py +2 -11
  5. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/account/delete.py +2 -11
  6. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/app/delete.py +2 -11
  7. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/batch/delete.py +2 -11
  8. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/ensemble/delete.py +2 -11
  9. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/input_set/create.py +4 -3
  10. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/input_set/delete.py +2 -11
  11. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/instance/delete.py +2 -11
  12. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/managed_input/delete.py +2 -11
  13. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/marketplace/subscription/delete.py +2 -11
  14. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/run/__init__.py +2 -0
  15. nextmv-1.4.0.dev0/nextmv/cli/cloud/run/delete.py +50 -0
  16. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/run/get.py +3 -8
  17. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/scenario/delete.py +2 -11
  18. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/secrets/delete.py +2 -11
  19. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/shadow/delete.py +2 -11
  20. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/sso/delete.py +2 -11
  21. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/sso/domain/delete.py +2 -9
  22. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/switchback/delete.py +2 -11
  23. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/version/delete.py +2 -11
  24. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/configuration/delete.py +2 -8
  25. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/init.py +141 -112
  26. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/local/app/delete.py +2 -10
  27. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/main.py +1 -9
  28. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/options.py +12 -0
  29. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cloud/application/_batch_scenario.py +0 -15
  30. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cloud/application/_run.py +152 -45
  31. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cloud/batch_experiment.py +0 -2
  32. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/local/application.py +37 -6
  33. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/run.py +5 -0
  34. nextmv-1.4.0.dev0/nextmv/templates/python_json_class-assign/README.md +48 -0
  35. nextmv-1.4.0.dev0/nextmv/templates/python_json_class-assign/app.yaml +87 -0
  36. nextmv-1.4.0.dev0/nextmv/templates/python_json_class-assign/input.json +303 -0
  37. nextmv-1.4.0.dev0/nextmv/templates/python_json_class-assign/main.py +439 -0
  38. nextmv-1.4.0.dev0/nextmv/templates/python_json_class-assign/requirements.txt +3 -0
  39. nextmv-1.4.0.dev0/nextmv/templates/python_json_class-assign/visualizations.py +656 -0
  40. nextmv-1.4.0.dev0/nextmv/templates/python_json_demand-alloc/.gitignore +1 -0
  41. nextmv-1.4.0.dev0/nextmv/templates/python_json_demand-alloc/README.md +14 -0
  42. nextmv-1.4.0.dev0/nextmv/templates/python_json_demand-alloc/allocation/README.md +50 -0
  43. nextmv-1.4.0.dev0/nextmv/templates/python_json_demand-alloc/allocation/app.yaml +83 -0
  44. nextmv-1.4.0.dev0/nextmv/templates/python_json_demand-alloc/allocation/input.json +7 -0
  45. nextmv-1.4.0.dev0/nextmv/templates/python_json_demand-alloc/allocation/main.py +494 -0
  46. nextmv-1.4.0.dev0/nextmv/templates/python_json_demand-alloc/allocation/requirements.txt +4 -0
  47. nextmv-1.4.0.dev0/nextmv/templates/python_json_demand-alloc/allocation/visuals.py +89 -0
  48. nextmv-1.4.0.dev0/nextmv/templates/python_json_demand-alloc/workflow/README.md +72 -0
  49. nextmv-1.4.0.dev0/nextmv/templates/python_json_demand-alloc/workflow/app.yaml +70 -0
  50. nextmv-1.4.0.dev0/nextmv/templates/python_json_demand-alloc/workflow/input.json +436 -0
  51. nextmv-1.4.0.dev0/nextmv/templates/python_json_demand-alloc/workflow/main.py +176 -0
  52. nextmv-1.4.0.dev0/nextmv/templates/python_json_demand-alloc/workflow/requirements.txt +5 -0
  53. nextmv-1.4.0.dev0/nextmv/templates/python_json_demand-alloc/workflow/visuals.py +187 -0
  54. nextmv-1.4.0.dev0/nextmv/templates/python_json_hello-world/.gitignore +1 -0
  55. nextmv-1.4.0.dev0/nextmv/templates/python_multi-file_class-assign/.gitignore +1 -0
  56. nextmv-1.4.0.dev0/nextmv/templates/python_multi-file_class-assign/README.md +48 -0
  57. nextmv-1.4.0.dev0/nextmv/templates/python_multi-file_class-assign/app.yaml +95 -0
  58. nextmv-1.4.0.dev0/nextmv/templates/python_multi-file_class-assign/inputs/input.json +303 -0
  59. nextmv-1.4.0.dev0/nextmv/templates/python_multi-file_class-assign/main.py +451 -0
  60. nextmv-1.4.0.dev0/nextmv/templates/python_multi-file_class-assign/requirements.txt +3 -0
  61. nextmv-1.4.0.dev0/nextmv/templates/python_multi-file_class-assign/visualizations.py +656 -0
  62. nextmv-1.4.0.dev0/nextmv/templates/python_multi-file_demand-alloc/README.md +14 -0
  63. nextmv-1.4.0.dev0/nextmv/templates/python_multi-file_demand-alloc/allocation/README.md +50 -0
  64. nextmv-1.4.0.dev0/nextmv/templates/python_multi-file_demand-alloc/allocation/app.yaml +83 -0
  65. nextmv-1.4.0.dev0/nextmv/templates/python_multi-file_demand-alloc/allocation/input.json +7 -0
  66. nextmv-1.4.0.dev0/nextmv/templates/python_multi-file_demand-alloc/allocation/main.py +494 -0
  67. nextmv-1.4.0.dev0/nextmv/templates/python_multi-file_demand-alloc/allocation/requirements.txt +4 -0
  68. nextmv-1.4.0.dev0/nextmv/templates/python_multi-file_demand-alloc/allocation/visuals.py +89 -0
  69. nextmv-1.4.0.dev0/nextmv/templates/python_multi-file_demand-alloc/workflow/README.md +70 -0
  70. nextmv-1.4.0.dev0/nextmv/templates/python_multi-file_demand-alloc/workflow/app.yaml +78 -0
  71. nextmv-1.4.0.dev0/nextmv/templates/python_multi-file_demand-alloc/workflow/inputs/input.json +436 -0
  72. nextmv-1.4.0.dev0/nextmv/templates/python_multi-file_demand-alloc/workflow/main.py +187 -0
  73. nextmv-1.4.0.dev0/nextmv/templates/python_multi-file_demand-alloc/workflow/requirements.txt +5 -0
  74. nextmv-1.4.0.dev0/nextmv/templates/python_multi-file_demand-alloc/workflow/visuals.py +187 -0
  75. nextmv-1.4.0.dev0/nextmv/templates/python_multi-file_hello-world/.gitignore +2 -0
  76. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/pyproject.toml +0 -4
  77. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/tests/integration/cloud/test_integration_cloud.py +5 -2
  78. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/uv.lock +10 -303
  79. nextmv-1.3.1.dev3/nextmv/__about__.py +0 -1
  80. nextmv-1.3.1.dev3/nextmv/cli/mcp/__init__.py +0 -38
  81. nextmv-1.3.1.dev3/nextmv/cli/mcp/serve.py +0 -66
  82. nextmv-1.3.1.dev3/nextmv/cli/mcp/server.py +0 -114
  83. nextmv-1.3.1.dev3/nextmv/cli/mcp/tools/__init__.py +0 -1
  84. nextmv-1.3.1.dev3/nextmv/cli/mcp/tools/_helpers.py +0 -316
  85. nextmv-1.3.1.dev3/nextmv/cli/mcp/tools/acceptance.py +0 -112
  86. nextmv-1.3.1.dev3/nextmv/cli/mcp/tools/account.py +0 -47
  87. nextmv-1.3.1.dev3/nextmv/cli/mcp/tools/app.py +0 -148
  88. nextmv-1.3.1.dev3/nextmv/cli/mcp/tools/batch.py +0 -110
  89. nextmv-1.3.1.dev3/nextmv/cli/mcp/tools/community.py +0 -45
  90. nextmv-1.3.1.dev3/nextmv/cli/mcp/tools/ensemble.py +0 -344
  91. nextmv-1.3.1.dev3/nextmv/cli/mcp/tools/guide.py +0 -423
  92. nextmv-1.3.1.dev3/nextmv/cli/mcp/tools/input_set.py +0 -138
  93. nextmv-1.3.1.dev3/nextmv/cli/mcp/tools/instance.py +0 -140
  94. nextmv-1.3.1.dev3/nextmv/cli/mcp/tools/local.py +0 -431
  95. nextmv-1.3.1.dev3/nextmv/cli/mcp/tools/managed_input.py +0 -108
  96. nextmv-1.3.1.dev3/nextmv/cli/mcp/tools/profile.py +0 -81
  97. nextmv-1.3.1.dev3/nextmv/cli/mcp/tools/run.py +0 -405
  98. nextmv-1.3.1.dev3/nextmv/cli/mcp/tools/scenario.py +0 -213
  99. nextmv-1.3.1.dev3/nextmv/cli/mcp/tools/secrets.py +0 -100
  100. nextmv-1.3.1.dev3/nextmv/cli/mcp/tools/shadow.py +0 -149
  101. nextmv-1.3.1.dev3/nextmv/cli/mcp/tools/sso.py +0 -29
  102. nextmv-1.3.1.dev3/nextmv/cli/mcp/tools/switchback.py +0 -162
  103. nextmv-1.3.1.dev3/nextmv/cli/mcp/tools/version.py +0 -113
  104. nextmv-1.3.1.dev3/tests/cli/test_mcp.py +0 -2040
  105. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/.python-version +0 -0
  106. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/CONTRIBUTING.md +0 -0
  107. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/LICENSE +0 -0
  108. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/README.md +0 -0
  109. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/__entrypoint__.py +0 -0
  110. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/__init__.py +0 -0
  111. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/_serialization.py +0 -0
  112. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/base_model.py +0 -0
  113. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/__init__.py +0 -0
  114. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/__init__.py +0 -0
  115. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/acceptance/__init__.py +0 -0
  116. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/acceptance/create.py +0 -0
  117. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/acceptance/get.py +0 -0
  118. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/acceptance/list.py +0 -0
  119. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/acceptance/update.py +0 -0
  120. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/account/__init__.py +0 -0
  121. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/account/create.py +0 -0
  122. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/account/get.py +0 -0
  123. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/account/update.py +0 -0
  124. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/app/__init__.py +0 -0
  125. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/app/create.py +0 -0
  126. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/app/exists.py +0 -0
  127. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/app/get.py +0 -0
  128. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/app/list.py +0 -0
  129. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/app/push.py +0 -0
  130. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/app/update.py +0 -0
  131. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/batch/__init__.py +0 -0
  132. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/batch/create.py +0 -0
  133. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/batch/get.py +0 -0
  134. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/batch/list.py +0 -0
  135. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/batch/metadata.py +0 -0
  136. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/batch/update.py +0 -0
  137. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/data/__init__.py +0 -0
  138. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/data/upload.py +0 -0
  139. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/ensemble/__init__.py +0 -0
  140. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/ensemble/create.py +0 -0
  141. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/ensemble/get.py +0 -0
  142. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/ensemble/list.py +0 -0
  143. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/ensemble/update.py +0 -0
  144. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/input_set/__init__.py +0 -0
  145. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/input_set/get.py +0 -0
  146. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/input_set/list.py +0 -0
  147. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/input_set/update.py +0 -0
  148. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/instance/__init__.py +0 -0
  149. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/instance/create.py +0 -0
  150. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/instance/exists.py +0 -0
  151. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/instance/get.py +0 -0
  152. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/instance/list.py +0 -0
  153. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/instance/update.py +0 -0
  154. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/managed_input/__init__.py +0 -0
  155. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/managed_input/create.py +0 -0
  156. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/managed_input/get.py +0 -0
  157. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/managed_input/list.py +0 -0
  158. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/managed_input/update.py +0 -0
  159. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/marketplace/__init__.py +0 -0
  160. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/marketplace/app/__init__.py +0 -0
  161. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/marketplace/app/create.py +0 -0
  162. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/marketplace/app/get.py +0 -0
  163. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/marketplace/app/list.py +0 -0
  164. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/marketplace/app/update.py +0 -0
  165. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/marketplace/subscription/__init__.py +0 -0
  166. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/marketplace/subscription/create.py +0 -0
  167. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/marketplace/subscription/get.py +0 -0
  168. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/marketplace/subscription/list.py +0 -0
  169. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/marketplace/version/__init__.py +0 -0
  170. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/marketplace/version/create.py +0 -0
  171. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/marketplace/version/get.py +0 -0
  172. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/marketplace/version/list.py +0 -0
  173. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/marketplace/version/update.py +0 -0
  174. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/run/cancel.py +0 -0
  175. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/run/create.py +0 -0
  176. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/run/input.py +0 -0
  177. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/run/list.py +0 -0
  178. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/run/logs.py +0 -0
  179. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/run/metadata.py +0 -0
  180. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/run/track.py +0 -0
  181. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/scenario/__init__.py +0 -0
  182. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/scenario/create.py +0 -0
  183. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/scenario/get.py +0 -0
  184. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/scenario/list.py +0 -0
  185. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/scenario/metadata.py +0 -0
  186. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/scenario/update.py +0 -0
  187. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/secrets/__init__.py +0 -0
  188. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/secrets/create.py +0 -0
  189. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/secrets/get.py +0 -0
  190. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/secrets/list.py +0 -0
  191. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/secrets/update.py +0 -0
  192. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/shadow/__init__.py +0 -0
  193. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/shadow/create.py +0 -0
  194. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/shadow/get.py +0 -0
  195. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/shadow/list.py +0 -0
  196. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/shadow/metadata.py +0 -0
  197. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/shadow/start.py +0 -0
  198. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/shadow/stop.py +0 -0
  199. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/shadow/update.py +0 -0
  200. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/sso/__init__.py +0 -0
  201. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/sso/create.py +0 -0
  202. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/sso/disable.py +0 -0
  203. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/sso/domain/__init__.py +0 -0
  204. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/sso/enable.py +0 -0
  205. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/sso/get.py +0 -0
  206. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/sso/update.py +0 -0
  207. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/switchback/__init__.py +0 -0
  208. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/switchback/create.py +0 -0
  209. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/switchback/get.py +0 -0
  210. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/switchback/list.py +0 -0
  211. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/switchback/metadata.py +0 -0
  212. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/switchback/start.py +0 -0
  213. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/switchback/stop.py +0 -0
  214. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/switchback/update.py +0 -0
  215. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/upload/__init__.py +0 -0
  216. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/upload/create.py +0 -0
  217. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/version/__init__.py +0 -0
  218. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/version/create.py +0 -0
  219. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/version/exists.py +0 -0
  220. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/version/get.py +0 -0
  221. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/version/list.py +0 -0
  222. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/cloud/version/update.py +0 -0
  223. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/community/__init__.py +0 -0
  224. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/community/clone.py +0 -0
  225. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/community/list.py +0 -0
  226. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/configuration/__init__.py +0 -0
  227. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/configuration/config.py +0 -0
  228. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/configuration/create.py +0 -0
  229. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/configuration/list.py +0 -0
  230. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/local/__init__.py +0 -0
  231. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/local/app/__init__.py +0 -0
  232. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/local/app/get.py +0 -0
  233. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/local/app/list.py +0 -0
  234. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/local/app/register.py +0 -0
  235. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/local/app/registered.py +0 -0
  236. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/local/app/sync.py +0 -0
  237. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/local/app/update.py +0 -0
  238. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/local/run/__init__.py +0 -0
  239. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/local/run/create.py +0 -0
  240. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/local/run/get.py +0 -0
  241. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/local/run/input.py +0 -0
  242. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/local/run/list.py +0 -0
  243. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/local/run/logs.py +0 -0
  244. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/local/run/metadata.py +0 -0
  245. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/local/run/visuals.py +0 -0
  246. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/manifest/__init__.py +0 -0
  247. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/manifest/init.py +0 -0
  248. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/manifest/validate.py +0 -0
  249. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/message.py +0 -0
  250. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cli/version.py +0 -0
  251. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cloud/__init__.py +0 -0
  252. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cloud/acceptance_test.py +0 -0
  253. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cloud/account.py +0 -0
  254. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cloud/application/__init__.py +0 -0
  255. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cloud/application/_acceptance.py +0 -0
  256. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cloud/application/_ensemble.py +0 -0
  257. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cloud/application/_input_set.py +0 -0
  258. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cloud/application/_instance.py +0 -0
  259. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cloud/application/_managed_input.py +0 -0
  260. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cloud/application/_secrets.py +0 -0
  261. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cloud/application/_shadow.py +0 -0
  262. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cloud/application/_switchback.py +0 -0
  263. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cloud/application/_utils.py +0 -0
  264. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cloud/application/_version.py +0 -0
  265. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cloud/assets.py +0 -0
  266. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cloud/client.py +0 -0
  267. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cloud/community.py +0 -0
  268. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cloud/ensemble.py +0 -0
  269. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cloud/input_set.py +0 -0
  270. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cloud/instance.py +0 -0
  271. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cloud/integration.py +0 -0
  272. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cloud/marketplace.py +0 -0
  273. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cloud/package.py +0 -0
  274. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cloud/scenario.py +0 -0
  275. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cloud/secrets.py +0 -0
  276. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cloud/shadow.py +0 -0
  277. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cloud/sso.py +0 -0
  278. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cloud/switchback.py +0 -0
  279. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cloud/url.py +0 -0
  280. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/cloud/version.py +0 -0
  281. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/content_format.py +0 -0
  282. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/default_app/.gitignore +0 -0
  283. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/default_app/README.md +0 -0
  284. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/default_app/app.yaml +0 -0
  285. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/default_app/input.json +0 -0
  286. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/default_app/main.py +0 -0
  287. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/default_app/requirements.txt +0 -0
  288. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/default_app/src/__init__.py +0 -0
  289. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/default_app/src/visuals.py +0 -0
  290. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/deprecated.py +0 -0
  291. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/input.py +0 -0
  292. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/local/__init__.py +0 -0
  293. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/local/executor.py +0 -0
  294. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/local/geojson_handler.py +0 -0
  295. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/local/local.py +0 -0
  296. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/local/plotly_handler.py +0 -0
  297. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/local/registry.py +0 -0
  298. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/local/runner.py +0 -0
  299. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/logger.py +0 -0
  300. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/manifest.py +0 -0
  301. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/model.py +0 -0
  302. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/options.py +0 -0
  303. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/output.py +0 -0
  304. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/polling.py +0 -0
  305. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/safe.py +0 -0
  306. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/status.py +0 -0
  307. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/templates/binary_json_app.yaml +0 -0
  308. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/templates/binary_multi-file_app.yaml +0 -0
  309. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/templates/go_json_app.yaml +0 -0
  310. {nextmv-1.3.1.dev3/nextmv/templates/go_json_template → nextmv-1.4.0.dev0/nextmv/templates/go_json_hello-world}/.gitignore +0 -0
  311. {nextmv-1.3.1.dev3/nextmv/templates/go_json_template → nextmv-1.4.0.dev0/nextmv/templates/go_json_hello-world}/README.md +0 -0
  312. {nextmv-1.3.1.dev3/nextmv/templates/go_json_template → nextmv-1.4.0.dev0/nextmv/templates/go_json_hello-world}/app.yaml +0 -0
  313. {nextmv-1.3.1.dev3/nextmv/templates/go_json_template → nextmv-1.4.0.dev0/nextmv/templates/go_json_hello-world}/go.mod +0 -0
  314. {nextmv-1.3.1.dev3/nextmv/templates/go_json_template → nextmv-1.4.0.dev0/nextmv/templates/go_json_hello-world}/input.json +0 -0
  315. {nextmv-1.3.1.dev3/nextmv/templates/go_json_template → nextmv-1.4.0.dev0/nextmv/templates/go_json_hello-world}/main.go +0 -0
  316. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/templates/go_multi-file_app.yaml +0 -0
  317. {nextmv-1.3.1.dev3/nextmv/templates/go_multi-file_template → nextmv-1.4.0.dev0/nextmv/templates/go_multi-file_hello-world}/.gitignore +0 -0
  318. {nextmv-1.3.1.dev3/nextmv/templates/go_multi-file_template → nextmv-1.4.0.dev0/nextmv/templates/go_multi-file_hello-world}/README.md +0 -0
  319. {nextmv-1.3.1.dev3/nextmv/templates/go_multi-file_template → nextmv-1.4.0.dev0/nextmv/templates/go_multi-file_hello-world}/app.yaml +0 -0
  320. {nextmv-1.3.1.dev3/nextmv/templates/go_multi-file_template → nextmv-1.4.0.dev0/nextmv/templates/go_multi-file_hello-world}/go.mod +0 -0
  321. {nextmv-1.3.1.dev3/nextmv/templates/go_multi-file_template → nextmv-1.4.0.dev0/nextmv/templates/go_multi-file_hello-world}/inputs/input.json +0 -0
  322. {nextmv-1.3.1.dev3/nextmv/templates/go_multi-file_template → nextmv-1.4.0.dev0/nextmv/templates/go_multi-file_hello-world}/main.go +0 -0
  323. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/templates/java_json_app.yaml +0 -0
  324. {nextmv-1.3.1.dev3/nextmv/templates/java_json_template → nextmv-1.4.0.dev0/nextmv/templates/java_json_hello-world}/.gitignore +0 -0
  325. {nextmv-1.3.1.dev3/nextmv/templates/java_json_template → nextmv-1.4.0.dev0/nextmv/templates/java_json_hello-world}/Main.java +0 -0
  326. {nextmv-1.3.1.dev3/nextmv/templates/java_json_template → nextmv-1.4.0.dev0/nextmv/templates/java_json_hello-world}/README.md +0 -0
  327. {nextmv-1.3.1.dev3/nextmv/templates/java_json_template → nextmv-1.4.0.dev0/nextmv/templates/java_json_hello-world}/app.yaml +0 -0
  328. {nextmv-1.3.1.dev3/nextmv/templates/java_json_template → nextmv-1.4.0.dev0/nextmv/templates/java_json_hello-world}/input.json +0 -0
  329. {nextmv-1.3.1.dev3/nextmv/templates/java_json_template → nextmv-1.4.0.dev0/nextmv/templates/java_json_hello-world}/pom.xml +0 -0
  330. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/templates/java_multi-file_app.yaml +0 -0
  331. {nextmv-1.3.1.dev3/nextmv/templates/java_multi-file_template → nextmv-1.4.0.dev0/nextmv/templates/java_multi-file_hello-world}/.gitignore +0 -0
  332. {nextmv-1.3.1.dev3/nextmv/templates/java_multi-file_template → nextmv-1.4.0.dev0/nextmv/templates/java_multi-file_hello-world}/Main.java +0 -0
  333. {nextmv-1.3.1.dev3/nextmv/templates/java_multi-file_template → nextmv-1.4.0.dev0/nextmv/templates/java_multi-file_hello-world}/README.md +0 -0
  334. {nextmv-1.3.1.dev3/nextmv/templates/java_multi-file_template → nextmv-1.4.0.dev0/nextmv/templates/java_multi-file_hello-world}/app.yaml +0 -0
  335. {nextmv-1.3.1.dev3/nextmv/templates/java_multi-file_template → nextmv-1.4.0.dev0/nextmv/templates/java_multi-file_hello-world}/inputs/input.json +0 -0
  336. {nextmv-1.3.1.dev3/nextmv/templates/java_multi-file_template → nextmv-1.4.0.dev0/nextmv/templates/java_multi-file_hello-world}/pom.xml +0 -0
  337. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/templates/python_json_app.yaml +0 -0
  338. {nextmv-1.3.1.dev3/nextmv/templates/python_json_template → nextmv-1.4.0.dev0/nextmv/templates/python_json_class-assign}/.gitignore +0 -0
  339. {nextmv-1.3.1.dev3/nextmv/templates/python_json_template → nextmv-1.4.0.dev0/nextmv/templates/python_json_hello-world}/README.md +0 -0
  340. {nextmv-1.3.1.dev3/nextmv/templates/python_json_template → nextmv-1.4.0.dev0/nextmv/templates/python_json_hello-world}/app.yaml +0 -0
  341. {nextmv-1.3.1.dev3/nextmv/templates/python_json_template → nextmv-1.4.0.dev0/nextmv/templates/python_json_hello-world}/input.json +0 -0
  342. {nextmv-1.3.1.dev3/nextmv/templates/python_json_template → nextmv-1.4.0.dev0/nextmv/templates/python_json_hello-world}/main.py +0 -0
  343. {nextmv-1.3.1.dev3/nextmv/templates/python_json_template → nextmv-1.4.0.dev0/nextmv/templates/python_json_hello-world}/requirements.txt +0 -0
  344. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/nextmv/templates/python_multi-file_app.yaml +0 -0
  345. {nextmv-1.3.1.dev3/nextmv/templates/python_multi-file_template → nextmv-1.4.0.dev0/nextmv/templates/python_multi-file_demand-alloc/workflow}/.gitignore +0 -0
  346. {nextmv-1.3.1.dev3/nextmv/templates/python_multi-file_template → nextmv-1.4.0.dev0/nextmv/templates/python_multi-file_hello-world}/README.md +0 -0
  347. {nextmv-1.3.1.dev3/nextmv/templates/python_multi-file_template → nextmv-1.4.0.dev0/nextmv/templates/python_multi-file_hello-world}/app.yaml +0 -0
  348. {nextmv-1.3.1.dev3/nextmv/templates/python_multi-file_template → nextmv-1.4.0.dev0/nextmv/templates/python_multi-file_hello-world}/inputs/input.json +0 -0
  349. {nextmv-1.3.1.dev3/nextmv/templates/python_multi-file_template → nextmv-1.4.0.dev0/nextmv/templates/python_multi-file_hello-world}/main.py +0 -0
  350. {nextmv-1.3.1.dev3/nextmv/templates/python_multi-file_template → nextmv-1.4.0.dev0/nextmv/templates/python_multi-file_hello-world}/requirements.txt +0 -0
  351. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/tests/__init__.py +0 -0
  352. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/tests/cli/__init__.py +0 -0
  353. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/tests/cli/test_configuration.py +0 -0
  354. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/tests/cli/test_main.py +0 -0
  355. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/tests/cli/test_version.py +0 -0
  356. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/tests/cloud/__init__.py +0 -0
  357. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/tests/cloud/app.yaml +0 -0
  358. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/tests/cloud/test_client.py +0 -0
  359. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/tests/cloud/test_instance.py +0 -0
  360. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/tests/cloud/test_package.py +0 -0
  361. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/tests/cloud/test_scenario.py +0 -0
  362. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/tests/integration/__init__.py +0 -0
  363. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/tests/integration/cloud/__init__.py +0 -0
  364. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/tests/integration/cloud/test_integration_marketplace.py +0 -0
  365. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/tests/local/__init__.py +0 -0
  366. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/tests/local/test_application.py +0 -0
  367. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/tests/local/test_executor.py +0 -0
  368. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/tests/local/test_registry.py +0 -0
  369. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/tests/local/test_runner.py +0 -0
  370. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/tests/scripts/__init__.py +0 -0
  371. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/tests/scripts/options1.py +0 -0
  372. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/tests/scripts/options2.py +0 -0
  373. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/tests/scripts/options3.py +0 -0
  374. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/tests/scripts/options4.py +0 -0
  375. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/tests/scripts/options5.py +0 -0
  376. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/tests/scripts/options6.py +0 -0
  377. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/tests/scripts/options7.py +0 -0
  378. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/tests/test_base_model.py +0 -0
  379. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/tests/test_entrypoint/__init__.py +0 -0
  380. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/tests/test_entrypoint/test_entrypoint.py +0 -0
  381. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/tests/test_input.py +0 -0
  382. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/tests/test_inputs/test_data.csv +0 -0
  383. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/tests/test_inputs/test_data.json +0 -0
  384. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/tests/test_inputs/test_data.txt +0 -0
  385. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/tests/test_logger.py +0 -0
  386. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/tests/test_manifest.py +0 -0
  387. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/tests/test_model.py +0 -0
  388. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/tests/test_options.py +0 -0
  389. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/tests/test_output.py +0 -0
  390. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/tests/test_polling.py +0 -0
  391. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/tests/test_run.py +0 -0
  392. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/tests/test_safe.py +0 -0
  393. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/tests/test_serialization.py +0 -0
  394. {nextmv-1.3.1.dev3 → nextmv-1.4.0.dev0}/tests/test_version.py +0 -0
@@ -161,10 +161,5 @@ cython_debug/
161
161
  # VSCode
162
162
  .vscode/
163
163
 
164
- # Agents
165
- .claude
166
-
167
164
  # Documentation stuff
168
165
  site/
169
-
170
- scratch
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nextmv
3
- Version: 1.3.1.dev3
3
+ Version: 1.4.0.dev0
4
4
  Summary: The all-purpose Python SDK for Nextmv
5
5
  Project-URL: Homepage, https://www.nextmv.io
6
6
  Project-URL: Documentation, https://nextmv-py.docs.nextmv.io/en/latest/nextmv/
@@ -227,8 +227,6 @@ Requires-Dist: questionary>=2.1.1
227
227
  Requires-Dist: requests>=2.31.0
228
228
  Requires-Dist: typer>=0.20.1
229
229
  Requires-Dist: urllib3>=2.1.0
230
- Provides-Extra: mcp
231
- Requires-Dist: mcp[cli]>=1.0; extra == 'mcp'
232
230
  Provides-Extra: notebook
233
231
  Requires-Dist: mlflow>=3.9.0; extra == 'notebook'
234
232
  Description-Content-Type: text/markdown
@@ -0,0 +1 @@
1
+ __version__ = "v1.4.0.dev0"
@@ -2,13 +2,11 @@
2
2
  This module defines the cloud acceptance delete command for the Nextmv CLI.
3
3
  """
4
4
 
5
- from typing import Annotated
6
-
7
5
  import typer
8
6
 
9
7
  from nextmv.cli.configuration.config import build_cloud_app
10
8
  from nextmv.cli.message import confirmation, info, success
11
- from nextmv.cli.options import AcceptanceTestIDOption, AppIDOption, ProfileOption
9
+ from nextmv.cli.options import AcceptanceTestIDOption, AppIDOption, ProfileOption, YesOption
12
10
 
13
11
  # Set up subcommand application.
14
12
  app = typer.Typer()
@@ -18,14 +16,7 @@ app = typer.Typer()
18
16
  def delete(
19
17
  app_id: AppIDOption,
20
18
  acceptance_test_id: AcceptanceTestIDOption,
21
- yes: Annotated[
22
- bool,
23
- typer.Option(
24
- "--yes",
25
- "-y",
26
- help="Agree to deletion confirmation prompt. Useful for non-interactive sessions.",
27
- ),
28
- ] = False,
19
+ yes: YesOption = False,
29
20
  profile: ProfileOption = None,
30
21
  ) -> None:
31
22
  """
@@ -2,13 +2,11 @@
2
2
  This module defines the cloud account delete command for the Nextmv CLI.
3
3
  """
4
4
 
5
- from typing import Annotated
6
-
7
5
  import typer
8
6
 
9
7
  from nextmv.cli.configuration.config import build_account
10
8
  from nextmv.cli.message import confirmation, info, success
11
- from nextmv.cli.options import AccountIDOption, ProfileOption
9
+ from nextmv.cli.options import AccountIDOption, ProfileOption, YesOption
12
10
 
13
11
  # Set up subcommand application.
14
12
  app = typer.Typer()
@@ -17,14 +15,7 @@ app = typer.Typer()
17
15
  @app.command()
18
16
  def delete(
19
17
  account_id: AccountIDOption,
20
- yes: Annotated[
21
- bool,
22
- typer.Option(
23
- "--yes",
24
- "-y",
25
- help="Agree to deletion confirmation prompt. Useful for non-interactive sessions.",
26
- ),
27
- ] = False,
18
+ yes: YesOption = False,
28
19
  profile: ProfileOption = None,
29
20
  ) -> None:
30
21
  """
@@ -2,13 +2,11 @@
2
2
  This module defines the cloud app delete command for the Nextmv CLI.
3
3
  """
4
4
 
5
- from typing import Annotated
6
-
7
5
  import typer
8
6
 
9
7
  from nextmv.cli.configuration.config import build_cloud_app
10
8
  from nextmv.cli.message import confirmation, info, success
11
- from nextmv.cli.options import AppIDOption, ProfileOption
9
+ from nextmv.cli.options import AppIDOption, ProfileOption, YesOption
12
10
 
13
11
  # Set up subcommand application.
14
12
  app = typer.Typer()
@@ -17,14 +15,7 @@ app = typer.Typer()
17
15
  @app.command()
18
16
  def delete(
19
17
  app_id: AppIDOption,
20
- yes: Annotated[
21
- bool,
22
- typer.Option(
23
- "--yes",
24
- "-y",
25
- help="Agree to deletion confirmation prompt. Useful for non-interactive sessions.",
26
- ),
27
- ] = False,
18
+ yes: YesOption = False,
28
19
  profile: ProfileOption = None,
29
20
  ) -> None:
30
21
  """
@@ -2,13 +2,11 @@
2
2
  This module defines the cloud batch delete command for the Nextmv CLI.
3
3
  """
4
4
 
5
- from typing import Annotated
6
-
7
5
  import typer
8
6
 
9
7
  from nextmv.cli.configuration.config import build_cloud_app
10
8
  from nextmv.cli.message import confirmation, info, success
11
- from nextmv.cli.options import AppIDOption, BatchExperimentIDOption, ProfileOption
9
+ from nextmv.cli.options import AppIDOption, BatchExperimentIDOption, ProfileOption, YesOption
12
10
 
13
11
  # Set up subcommand application.
14
12
  app = typer.Typer()
@@ -18,14 +16,7 @@ app = typer.Typer()
18
16
  def delete(
19
17
  app_id: AppIDOption,
20
18
  batch_experiment_id: BatchExperimentIDOption,
21
- yes: Annotated[
22
- bool,
23
- typer.Option(
24
- "--yes",
25
- "-y",
26
- help="Agree to deletion confirmation prompt. Useful for non-interactive sessions.",
27
- ),
28
- ] = False,
19
+ yes: YesOption = False,
29
20
  profile: ProfileOption = None,
30
21
  ) -> None:
31
22
  """
@@ -2,13 +2,11 @@
2
2
  This module defines the cloud ensemble delete command for the Nextmv CLI.
3
3
  """
4
4
 
5
- from typing import Annotated
6
-
7
5
  import typer
8
6
 
9
7
  from nextmv.cli.configuration.config import build_cloud_app
10
8
  from nextmv.cli.message import confirmation, info, success
11
- from nextmv.cli.options import AppIDOption, EnsembleDefinitionIDOption, ProfileOption
9
+ from nextmv.cli.options import AppIDOption, EnsembleDefinitionIDOption, ProfileOption, YesOption
12
10
 
13
11
  # Set up subcommand application.
14
12
  app = typer.Typer()
@@ -18,14 +16,7 @@ app = typer.Typer()
18
16
  def delete(
19
17
  app_id: AppIDOption,
20
18
  ensemble_definition_id: EnsembleDefinitionIDOption,
21
- yes: Annotated[
22
- bool,
23
- typer.Option(
24
- "--yes",
25
- "-y",
26
- help="Agree to deletion confirmation prompt. Useful for non-interactive sessions.",
27
- ),
28
- ] = False,
19
+ yes: YesOption = False,
29
20
  profile: ProfileOption = None,
30
21
  ) -> None:
31
22
  """
@@ -146,13 +146,14 @@ def create(
146
146
  if input_set_id is None:
147
147
  input_set_id = safe_id("input-set")
148
148
 
149
- managed_inputs = []
149
+ managed_input_list = []
150
150
  if managed_inputs is not None:
151
151
  for d in json.loads(managed_inputs):
152
152
  i = ManagedInput.from_dict(d)
153
153
  if i is None:
154
154
  error(f"[magenta]{d}[/magenta] is not a valid [yellow]ManagedInput[/yellow]")
155
- managed_inputs.append(i)
155
+
156
+ managed_input_list.append(i)
156
157
 
157
158
  input_set = cloud_app.new_input_set(
158
159
  input_set_id,
@@ -163,6 +164,6 @@ def create(
163
164
  start_time=start_time,
164
165
  end_time=end_time,
165
166
  maximum_runs=maximum_runs,
166
- inputs=managed_inputs,
167
+ inputs=managed_input_list or None,
167
168
  )
168
169
  print_json(input_set.to_dict())
@@ -2,13 +2,11 @@
2
2
  This module defines the cloud input-set delete command for the Nextmv CLI.
3
3
  """
4
4
 
5
- from typing import Annotated
6
-
7
5
  import typer
8
6
 
9
7
  from nextmv.cli.configuration.config import build_cloud_app
10
8
  from nextmv.cli.message import confirmation, info, success
11
- from nextmv.cli.options import AppIDOption, InputSetIDOption, ProfileOption
9
+ from nextmv.cli.options import AppIDOption, InputSetIDOption, ProfileOption, YesOption
12
10
 
13
11
  # Set up subcommand application.
14
12
  app = typer.Typer()
@@ -18,14 +16,7 @@ app = typer.Typer()
18
16
  def delete(
19
17
  app_id: AppIDOption,
20
18
  input_set_id: InputSetIDOption,
21
- yes: Annotated[
22
- bool,
23
- typer.Option(
24
- "--yes",
25
- "-y",
26
- help="Agree to deletion confirmation prompt. Useful for non-interactive sessions.",
27
- ),
28
- ] = False,
19
+ yes: YesOption = False,
29
20
  profile: ProfileOption = None,
30
21
  ) -> None:
31
22
  """
@@ -2,13 +2,11 @@
2
2
  This module defines the cloud instance delete command for the Nextmv CLI.
3
3
  """
4
4
 
5
- from typing import Annotated
6
-
7
5
  import typer
8
6
 
9
7
  from nextmv.cli.configuration.config import build_cloud_app
10
8
  from nextmv.cli.message import confirmation, info, success
11
- from nextmv.cli.options import AppIDOption, InstanceIDOption, ProfileOption
9
+ from nextmv.cli.options import AppIDOption, InstanceIDOption, ProfileOption, YesOption
12
10
 
13
11
  # Set up subcommand application.
14
12
  app = typer.Typer()
@@ -18,14 +16,7 @@ app = typer.Typer()
18
16
  def delete(
19
17
  app_id: AppIDOption,
20
18
  instance_id: InstanceIDOption,
21
- yes: Annotated[
22
- bool,
23
- typer.Option(
24
- "--yes",
25
- "-y",
26
- help="Agree to deletion confirmation prompt. Useful for non-interactive sessions.",
27
- ),
28
- ] = False,
19
+ yes: YesOption = False,
29
20
  profile: ProfileOption = None,
30
21
  ) -> None:
31
22
  """
@@ -2,13 +2,11 @@
2
2
  This module defines the cloud managed-input delete command for the Nextmv CLI.
3
3
  """
4
4
 
5
- from typing import Annotated
6
-
7
5
  import typer
8
6
 
9
7
  from nextmv.cli.configuration.config import build_cloud_app
10
8
  from nextmv.cli.message import confirmation, info, success
11
- from nextmv.cli.options import AppIDOption, ManagedInputIDOption, ProfileOption
9
+ from nextmv.cli.options import AppIDOption, ManagedInputIDOption, ProfileOption, YesOption
12
10
 
13
11
  # Set up subcommand application.
14
12
  app = typer.Typer()
@@ -18,14 +16,7 @@ app = typer.Typer()
18
16
  def delete(
19
17
  app_id: AppIDOption,
20
18
  managed_input_id: ManagedInputIDOption,
21
- yes: Annotated[
22
- bool,
23
- typer.Option(
24
- "--yes",
25
- "-y",
26
- help="Agree to deletion confirmation prompt. Useful for non-interactive sessions.",
27
- ),
28
- ] = False,
19
+ yes: YesOption = False,
29
20
  profile: ProfileOption = None,
30
21
  ) -> None:
31
22
  """
@@ -2,13 +2,11 @@
2
2
  This module defines the cloud marketplace subscription delete command for the Nextmv CLI.
3
3
  """
4
4
 
5
- from typing import Annotated
6
-
7
5
  import typer
8
6
 
9
7
  from nextmv.cli.configuration.config import build_marketplace_subscription
10
8
  from nextmv.cli.message import confirmation, info, success
11
- from nextmv.cli.options import MarketplaceSubscriptionIDOption, ProfileOption
9
+ from nextmv.cli.options import MarketplaceSubscriptionIDOption, ProfileOption, YesOption
12
10
 
13
11
  # Set up subcommand application.
14
12
  app = typer.Typer()
@@ -17,14 +15,7 @@ app = typer.Typer()
17
15
  @app.command()
18
16
  def delete(
19
17
  subscription_id: MarketplaceSubscriptionIDOption,
20
- yes: Annotated[
21
- bool,
22
- typer.Option(
23
- "--yes",
24
- "-y",
25
- help="Agree to deletion confirmation prompt. Useful for non-interactive sessions.",
26
- ),
27
- ] = False,
18
+ yes: YesOption = False,
28
19
  profile: ProfileOption = None,
29
20
  ) -> None:
30
21
  """
@@ -6,6 +6,7 @@ import typer
6
6
 
7
7
  from nextmv.cli.cloud.run.cancel import app as cancel_app
8
8
  from nextmv.cli.cloud.run.create import app as create_app
9
+ from nextmv.cli.cloud.run.delete import app as delete_app
9
10
  from nextmv.cli.cloud.run.get import app as get_app
10
11
  from nextmv.cli.cloud.run.input import app as input_app
11
12
  from nextmv.cli.cloud.run.list import app as list_app
@@ -17,6 +18,7 @@ from nextmv.cli.cloud.run.track import app as track_app
17
18
  app = typer.Typer()
18
19
  app.add_typer(cancel_app)
19
20
  app.add_typer(create_app)
21
+ app.add_typer(delete_app)
20
22
  app.add_typer(get_app)
21
23
  app.add_typer(input_app)
22
24
  app.add_typer(list_app)
@@ -0,0 +1,50 @@
1
+ """
2
+ This module defines the cloud run delete command for the Nextmv CLI.
3
+ """
4
+
5
+ import typer
6
+
7
+ from nextmv.cli.configuration.config import build_cloud_app
8
+ from nextmv.cli.message import confirmation, info, success
9
+ from nextmv.cli.options import AppIDOption, ProfileOption, RunIDOption, YesOption
10
+
11
+ # Set up subcommand application.
12
+ app = typer.Typer()
13
+
14
+
15
+ @app.command()
16
+ def delete(
17
+ app_id: AppIDOption,
18
+ run_id: RunIDOption,
19
+ yes: YesOption = False,
20
+ profile: ProfileOption = None,
21
+ ) -> None:
22
+ """
23
+ Deletes a Nextmv Cloud application run.
24
+
25
+ This action is permanent and cannot be undone. Use the --yes
26
+ flag to skip the confirmation prompt.
27
+
28
+ [bold][underline]Examples[/underline][/bold]
29
+
30
+ - Delete the run with ID [magenta]burrow-123[/magenta] belonging to an app with ID [magenta]hare-app[/magenta].
31
+ $ [dim]nextmv cloud run delete --app-id hare-app --run-id burrow-123[/dim]
32
+
33
+ - Delete the run with ID [magenta]burrow-123[/magenta] belonging to an app with ID [magenta]hare-app[/magenta].
34
+ Use the profile named [magenta]hare[/magenta].
35
+ $ [dim]nextmv cloud run delete --app-id hare-app --run-id burrow-123 --profile hare[/dim]
36
+ """
37
+
38
+ if not yes:
39
+ confirm = confirmation(
40
+ f"Are you sure you want to delete run [magenta]{run_id}[/magenta] from "
41
+ f"application [magenta]{app_id}[/magenta]? This action cannot be undone.",
42
+ )
43
+
44
+ if not confirm:
45
+ info(f"Run [magenta]{run_id}[/magenta] from application [magenta]{app_id}[/magenta] will not be deleted.")
46
+ return
47
+
48
+ cloud_app, _ = build_cloud_app(app_id=app_id, profile=profile)
49
+ cloud_app.delete_run(run_id)
50
+ success(f"Run [magenta]{run_id}[/magenta] from application [magenta]{app_id}[/magenta] deleted successfully.")
@@ -8,7 +8,7 @@ from typing import Annotated
8
8
  import typer
9
9
 
10
10
  from nextmv.cli.configuration.config import build_cloud_app
11
- from nextmv.cli.message import in_progress, info, print_json, success
11
+ from nextmv.cli.message import in_progress, print_json, success
12
12
  from nextmv.cli.options import AppIDOption, ProfileOption, RunIDOption
13
13
  from nextmv.cloud.application import Application
14
14
  from nextmv.output import OutputFormat
@@ -187,13 +187,8 @@ def handle_outputs(
187
187
 
188
188
  # At this point, we know that the output is multi-file or csv-archive.
189
189
  result_dict = run_result.to_dict()
190
- if "output" in result_dict and run_result.metadata.run_is_finalized():
190
+ if "output" in result_dict:
191
191
  del result_dict["output"]
192
- success(f"Run outputs saved to [magenta]{output_dir}[/magenta]. Here is the metadata.")
193
- else:
194
- info(
195
- f"Run is not finalized (status: [magenta]{run_result.metadata.status_v2.value}[/magenta]). "
196
- "Here is the metadata."
197
- )
198
192
 
193
+ success(f"Run outputs saved to [magenta]{output_dir}[/magenta]. Here is the metadata.")
199
194
  print_json(result_dict)
@@ -2,13 +2,11 @@
2
2
  This module defines the cloud scenario delete command for the Nextmv CLI.
3
3
  """
4
4
 
5
- from typing import Annotated
6
-
7
5
  import typer
8
6
 
9
7
  from nextmv.cli.configuration.config import build_cloud_app
10
8
  from nextmv.cli.message import confirmation, info, success
11
- from nextmv.cli.options import AppIDOption, ProfileOption, ScenarioTestIDOption
9
+ from nextmv.cli.options import AppIDOption, ProfileOption, ScenarioTestIDOption, YesOption
12
10
 
13
11
  # Set up subcommand application.
14
12
  app = typer.Typer()
@@ -18,14 +16,7 @@ app = typer.Typer()
18
16
  def delete(
19
17
  app_id: AppIDOption,
20
18
  scenario_test_id: ScenarioTestIDOption,
21
- yes: Annotated[
22
- bool,
23
- typer.Option(
24
- "--yes",
25
- "-y",
26
- help="Agree to deletion confirmation prompt. Useful for non-interactive sessions.",
27
- ),
28
- ] = False,
19
+ yes: YesOption = False,
29
20
  profile: ProfileOption = None,
30
21
  ) -> None:
31
22
  """
@@ -2,13 +2,11 @@
2
2
  This module defines the cloud secrets delete command for the Nextmv CLI.
3
3
  """
4
4
 
5
- from typing import Annotated
6
-
7
5
  import typer
8
6
 
9
7
  from nextmv.cli.configuration.config import build_cloud_app
10
8
  from nextmv.cli.message import confirmation, info, success
11
- from nextmv.cli.options import AppIDOption, ProfileOption, SecretsCollectionIDOption
9
+ from nextmv.cli.options import AppIDOption, ProfileOption, SecretsCollectionIDOption, YesOption
12
10
 
13
11
  # Set up subcommand application.
14
12
  app = typer.Typer()
@@ -18,14 +16,7 @@ app = typer.Typer()
18
16
  def delete(
19
17
  app_id: AppIDOption,
20
18
  secrets_collection_id: SecretsCollectionIDOption,
21
- yes: Annotated[
22
- bool,
23
- typer.Option(
24
- "--yes",
25
- "-y",
26
- help="Agree to deletion confirmation prompt. Useful for non-interactive sessions.",
27
- ),
28
- ] = False,
19
+ yes: YesOption = False,
29
20
  profile: ProfileOption = None,
30
21
  ) -> None:
31
22
  """
@@ -2,13 +2,11 @@
2
2
  This module defines the cloud shadow delete command for the Nextmv CLI.
3
3
  """
4
4
 
5
- from typing import Annotated
6
-
7
5
  import typer
8
6
 
9
7
  from nextmv.cli.configuration.config import build_cloud_app
10
8
  from nextmv.cli.message import confirmation, info, success
11
- from nextmv.cli.options import AppIDOption, ProfileOption, ShadowTestIDOption
9
+ from nextmv.cli.options import AppIDOption, ProfileOption, ShadowTestIDOption, YesOption
12
10
 
13
11
  # Set up subcommand application.
14
12
  app = typer.Typer()
@@ -18,14 +16,7 @@ app = typer.Typer()
18
16
  def delete(
19
17
  app_id: AppIDOption,
20
18
  shadow_test_id: ShadowTestIDOption,
21
- yes: Annotated[
22
- bool,
23
- typer.Option(
24
- "--yes",
25
- "-y",
26
- help="Agree to deletion confirmation prompt. Useful for non-interactive sessions.",
27
- ),
28
- ] = False,
19
+ yes: YesOption = False,
29
20
  profile: ProfileOption = None,
30
21
  ) -> None:
31
22
  """
@@ -2,13 +2,11 @@
2
2
  This module defines the cloud sso delete command for the Nextmv CLI.
3
3
  """
4
4
 
5
- from typing import Annotated
6
-
7
5
  import typer
8
6
 
9
7
  from nextmv.cli.configuration.config import build_sso_config
10
8
  from nextmv.cli.message import confirmation, info, success
11
- from nextmv.cli.options import ProfileOption
9
+ from nextmv.cli.options import ProfileOption, YesOption
12
10
 
13
11
  # Set up subcommand application.
14
12
  app = typer.Typer()
@@ -16,14 +14,7 @@ app = typer.Typer()
16
14
 
17
15
  @app.command()
18
16
  def delete(
19
- yes: Annotated[
20
- bool,
21
- typer.Option(
22
- "--yes",
23
- "-y",
24
- help="Agree to deletion confirmation prompt. Useful for non-interactive sessions.",
25
- ),
26
- ] = False,
17
+ yes: YesOption = False,
27
18
  profile: ProfileOption = None,
28
19
  ) -> None:
29
20
  """
@@ -8,7 +8,7 @@ import typer
8
8
 
9
9
  from nextmv.cli.configuration.config import build_sso_config
10
10
  from nextmv.cli.message import confirmation, in_progress, info, success
11
- from nextmv.cli.options import ProfileOption
11
+ from nextmv.cli.options import ProfileOption, YesOption
12
12
 
13
13
  # Set up subcommand application.
14
14
  app = typer.Typer()
@@ -25,14 +25,7 @@ def delete(
25
25
  metavar="DOMAIN",
26
26
  ),
27
27
  ],
28
- yes: Annotated[
29
- bool,
30
- typer.Option(
31
- "--yes",
32
- "-y",
33
- help="Agree to deletion confirmation prompt. Useful for non-interactive sessions.",
34
- ),
35
- ] = False,
28
+ yes: YesOption = False,
36
29
  profile: ProfileOption = None,
37
30
  ) -> None:
38
31
  """
@@ -2,13 +2,11 @@
2
2
  This module defines the cloud switchback delete command for the Nextmv CLI.
3
3
  """
4
4
 
5
- from typing import Annotated
6
-
7
5
  import typer
8
6
 
9
7
  from nextmv.cli.configuration.config import build_cloud_app
10
8
  from nextmv.cli.message import confirmation, info, success
11
- from nextmv.cli.options import AppIDOption, ProfileOption, SwitchbackTestIDOption
9
+ from nextmv.cli.options import AppIDOption, ProfileOption, SwitchbackTestIDOption, YesOption
12
10
 
13
11
  # Set up subcommand application.
14
12
  app = typer.Typer()
@@ -18,14 +16,7 @@ app = typer.Typer()
18
16
  def delete(
19
17
  app_id: AppIDOption,
20
18
  switchback_test_id: SwitchbackTestIDOption,
21
- yes: Annotated[
22
- bool,
23
- typer.Option(
24
- "--yes",
25
- "-y",
26
- help="Agree to deletion confirmation prompt. Useful for non-interactive sessions.",
27
- ),
28
- ] = False,
19
+ yes: YesOption = False,
29
20
  profile: ProfileOption = None,
30
21
  ) -> None:
31
22
  """
@@ -2,13 +2,11 @@
2
2
  This module defines the cloud version delete command for the Nextmv CLI.
3
3
  """
4
4
 
5
- from typing import Annotated
6
-
7
5
  import typer
8
6
 
9
7
  from nextmv.cli.configuration.config import build_cloud_app
10
8
  from nextmv.cli.message import confirmation, info, success
11
- from nextmv.cli.options import AppIDOption, ProfileOption, VersionIDOption
9
+ from nextmv.cli.options import AppIDOption, ProfileOption, VersionIDOption, YesOption
12
10
 
13
11
  # Set up subcommand application.
14
12
  app = typer.Typer()
@@ -18,14 +16,7 @@ app = typer.Typer()
18
16
  def delete(
19
17
  app_id: AppIDOption,
20
18
  version_id: VersionIDOption,
21
- yes: Annotated[
22
- bool,
23
- typer.Option(
24
- "--yes",
25
- "-y",
26
- help="Agree to deletion confirmation prompt. Useful for non-interactive sessions.",
27
- ),
28
- ] = False,
19
+ yes: YesOption = False,
29
20
  profile: ProfileOption = None,
30
21
  ) -> None:
31
22
  """
@@ -8,6 +8,7 @@ import typer
8
8
 
9
9
  from nextmv.cli.configuration.config import load_config, save_config
10
10
  from nextmv.cli.message import confirmation, error, info, success
11
+ from nextmv.cli.options import YesOption
11
12
 
12
13
  # Set up subcommand application.
13
14
  app = typer.Typer()
@@ -25,14 +26,7 @@ def delete(
25
26
  metavar="PROFILE_NAME",
26
27
  ),
27
28
  ],
28
- yes: Annotated[
29
- bool,
30
- typer.Option(
31
- "--yes",
32
- "-y",
33
- help="Agree to deletion confirmation prompt. Useful for non-interactive sessions.",
34
- ),
35
- ] = False,
29
+ yes: YesOption = False,
36
30
  ) -> None:
37
31
  """
38
32
  Delete a profile from the configuration.