nextmv 1.9.0.dev1__tar.gz → 1.9.0.dev2__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 (426) hide show
  1. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/PKG-INFO +1 -1
  2. nextmv-1.9.0.dev2/nextmv/__about__.py +1 -0
  3. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/acceptance/list.py +9 -3
  4. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/app/list.py +10 -2
  5. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/batch/list.py +9 -3
  6. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/ensemble/list.py +10 -4
  7. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/input_set/list.py +9 -3
  8. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/instance/list.py +10 -2
  9. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/managed_input/list.py +10 -2
  10. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/run/list.py +9 -3
  11. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/scenario/list.py +11 -4
  12. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/secrets/list.py +10 -2
  13. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/shadow/list.py +9 -3
  14. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/switchback/list.py +9 -3
  15. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/version/list.py +10 -2
  16. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/init.py +13 -13
  17. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/options.py +11 -0
  18. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cloud/application/__init__.py +11 -8
  19. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cloud/application/_acceptance.py +14 -3
  20. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cloud/application/_batch_scenario.py +28 -6
  21. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cloud/application/_ensemble.py +14 -3
  22. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cloud/application/_input_set.py +14 -3
  23. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cloud/application/_instance.py +14 -3
  24. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cloud/application/_managed_input.py +14 -3
  25. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cloud/application/_run.py +21 -8
  26. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cloud/application/_secrets.py +14 -3
  27. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cloud/application/_shadow.py +14 -3
  28. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cloud/application/_switchback.py +14 -3
  29. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cloud/application/_version.py +14 -3
  30. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cloud/client.py +343 -0
  31. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/integration/cloud/test_integration_cloud.py +126 -2
  32. nextmv-1.9.0.dev1/nextmv/__about__.py +0 -1
  33. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/.gitignore +0 -0
  34. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/.python-version +0 -0
  35. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/CONTRIBUTING.md +0 -0
  36. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/LICENSE +0 -0
  37. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/README.md +0 -0
  38. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/__entrypoint__.py +0 -0
  39. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/__init__.py +0 -0
  40. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/_serialization.py +0 -0
  41. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/account.py +0 -0
  42. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/auth.py +0 -0
  43. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/base_model.py +0 -0
  44. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cache.py +0 -0
  45. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/__init__.py +0 -0
  46. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/auth/__init__.py +0 -0
  47. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/auth/login.py +0 -0
  48. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/auth/logout.py +0 -0
  49. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cache/__init__.py +0 -0
  50. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cache/delete.py +0 -0
  51. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cache/get.py +0 -0
  52. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/__init__.py +0 -0
  53. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/acceptance/__init__.py +0 -0
  54. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/acceptance/create.py +0 -0
  55. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/acceptance/delete.py +0 -0
  56. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/acceptance/get.py +0 -0
  57. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/acceptance/update.py +0 -0
  58. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/account/__init__.py +0 -0
  59. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/account/create.py +0 -0
  60. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/account/delete.py +0 -0
  61. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/account/get.py +0 -0
  62. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/account/update.py +0 -0
  63. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/app/__init__.py +0 -0
  64. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/app/create.py +0 -0
  65. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/app/delete.py +0 -0
  66. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/app/exists.py +0 -0
  67. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/app/get.py +0 -0
  68. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/app/push.py +0 -0
  69. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/app/update.py +0 -0
  70. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/batch/__init__.py +0 -0
  71. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/batch/create.py +0 -0
  72. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/batch/delete.py +0 -0
  73. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/batch/get.py +0 -0
  74. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/batch/metadata.py +0 -0
  75. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/batch/update.py +0 -0
  76. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/data/__init__.py +0 -0
  77. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/data/upload.py +0 -0
  78. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/ensemble/__init__.py +0 -0
  79. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/ensemble/create.py +0 -0
  80. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/ensemble/delete.py +0 -0
  81. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/ensemble/get.py +0 -0
  82. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/ensemble/update.py +0 -0
  83. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/input_set/__init__.py +0 -0
  84. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/input_set/create.py +0 -0
  85. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/input_set/delete.py +0 -0
  86. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/input_set/get.py +0 -0
  87. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/input_set/update.py +0 -0
  88. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/instance/__init__.py +0 -0
  89. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/instance/create.py +0 -0
  90. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/instance/delete.py +0 -0
  91. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/instance/exists.py +0 -0
  92. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/instance/get.py +0 -0
  93. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/instance/update.py +0 -0
  94. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/managed_input/__init__.py +0 -0
  95. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/managed_input/create.py +0 -0
  96. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/managed_input/delete.py +0 -0
  97. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/managed_input/get.py +0 -0
  98. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/managed_input/update.py +0 -0
  99. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/marketplace/__init__.py +0 -0
  100. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/marketplace/app/__init__.py +0 -0
  101. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/marketplace/app/create.py +0 -0
  102. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/marketplace/app/get.py +0 -0
  103. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/marketplace/app/list.py +0 -0
  104. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/marketplace/app/update.py +0 -0
  105. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/marketplace/subscription/__init__.py +0 -0
  106. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/marketplace/subscription/create.py +0 -0
  107. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/marketplace/subscription/delete.py +0 -0
  108. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/marketplace/subscription/get.py +0 -0
  109. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/marketplace/subscription/list.py +0 -0
  110. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/marketplace/version/__init__.py +0 -0
  111. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/marketplace/version/create.py +0 -0
  112. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/marketplace/version/get.py +0 -0
  113. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/marketplace/version/list.py +0 -0
  114. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/marketplace/version/update.py +0 -0
  115. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/run/__init__.py +0 -0
  116. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/run/cancel.py +0 -0
  117. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/run/clone.py +0 -0
  118. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/run/create.py +0 -0
  119. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/run/delete.py +0 -0
  120. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/run/get.py +0 -0
  121. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/run/information.py +0 -0
  122. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/run/input.py +0 -0
  123. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/run/logs.py +0 -0
  124. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/run/metadata.py +0 -0
  125. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/run/track.py +0 -0
  126. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/scenario/__init__.py +0 -0
  127. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/scenario/create.py +0 -0
  128. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/scenario/delete.py +0 -0
  129. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/scenario/get.py +0 -0
  130. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/scenario/metadata.py +0 -0
  131. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/scenario/update.py +0 -0
  132. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/secrets/__init__.py +0 -0
  133. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/secrets/create.py +0 -0
  134. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/secrets/delete.py +0 -0
  135. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/secrets/get.py +0 -0
  136. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/secrets/update.py +0 -0
  137. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/shadow/__init__.py +0 -0
  138. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/shadow/create.py +0 -0
  139. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/shadow/delete.py +0 -0
  140. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/shadow/get.py +0 -0
  141. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/shadow/metadata.py +0 -0
  142. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/shadow/start.py +0 -0
  143. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/shadow/stop.py +0 -0
  144. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/shadow/update.py +0 -0
  145. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/sso/__init__.py +0 -0
  146. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/sso/create.py +0 -0
  147. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/sso/delete.py +0 -0
  148. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/sso/disable.py +0 -0
  149. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/sso/domain/__init__.py +0 -0
  150. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/sso/domain/delete.py +0 -0
  151. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/sso/enable.py +0 -0
  152. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/sso/get.py +0 -0
  153. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/sso/update.py +0 -0
  154. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/switchback/__init__.py +0 -0
  155. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/switchback/create.py +0 -0
  156. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/switchback/delete.py +0 -0
  157. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/switchback/get.py +0 -0
  158. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/switchback/metadata.py +0 -0
  159. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/switchback/start.py +0 -0
  160. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/switchback/stop.py +0 -0
  161. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/switchback/update.py +0 -0
  162. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/upload/__init__.py +0 -0
  163. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/upload/create.py +0 -0
  164. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/version/__init__.py +0 -0
  165. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/version/create.py +0 -0
  166. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/version/delete.py +0 -0
  167. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/version/exists.py +0 -0
  168. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/version/get.py +0 -0
  169. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/cloud/version/update.py +0 -0
  170. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/community/__init__.py +0 -0
  171. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/community/clone.py +0 -0
  172. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/community/list.py +0 -0
  173. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/configuration/__init__.py +0 -0
  174. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/configuration/config.py +0 -0
  175. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/configuration/create.py +8 -8
  176. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/configuration/delete.py +0 -0
  177. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/configuration/list.py +0 -0
  178. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/local/__init__.py +0 -0
  179. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/local/app/__init__.py +0 -0
  180. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/local/app/delete.py +0 -0
  181. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/local/app/get.py +0 -0
  182. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/local/app/list.py +0 -0
  183. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/local/app/register.py +0 -0
  184. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/local/app/registered.py +0 -0
  185. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/local/app/sync.py +0 -0
  186. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/local/app/update.py +0 -0
  187. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/local/run/__init__.py +0 -0
  188. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/local/run/clone.py +0 -0
  189. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/local/run/create.py +0 -0
  190. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/local/run/get.py +0 -0
  191. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/local/run/information.py +0 -0
  192. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/local/run/input.py +0 -0
  193. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/local/run/list.py +0 -0
  194. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/local/run/logs.py +0 -0
  195. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/local/run/metadata.py +0 -0
  196. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/local/run/visuals.py +0 -0
  197. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/main.py +0 -0
  198. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/manifest/__init__.py +0 -0
  199. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/manifest/init.py +0 -0
  200. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/manifest/validate.py +0 -0
  201. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/mcp/__init__.py +0 -0
  202. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/mcp/serve.py +0 -0
  203. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/mcp/server.py +0 -0
  204. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/mcp/tools/WORKFLOW.md +0 -0
  205. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/mcp/tools/__init__.py +0 -0
  206. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/mcp/tools/_helpers.py +0 -0
  207. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/mcp/tools/acceptance.py +0 -0
  208. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/mcp/tools/account.py +0 -0
  209. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/mcp/tools/app.py +0 -0
  210. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/mcp/tools/batch.py +0 -0
  211. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/mcp/tools/community.py +0 -0
  212. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/mcp/tools/ensemble.py +0 -0
  213. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/mcp/tools/guide.py +0 -0
  214. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/mcp/tools/input_set.py +0 -0
  215. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/mcp/tools/instance.py +0 -0
  216. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/mcp/tools/local.py +0 -0
  217. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/mcp/tools/managed_input.py +0 -0
  218. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/mcp/tools/profile.py +0 -0
  219. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/mcp/tools/run.py +0 -0
  220. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/mcp/tools/scenario.py +0 -0
  221. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/mcp/tools/secrets.py +0 -0
  222. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/mcp/tools/shadow.py +0 -0
  223. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/mcp/tools/sso.py +0 -0
  224. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/mcp/tools/switchback.py +0 -0
  225. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/mcp/tools/version.py +0 -0
  226. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/message.py +0 -0
  227. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cli/version.py +0 -0
  228. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cloud/__init__.py +0 -0
  229. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cloud/acceptance_test.py +0 -0
  230. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cloud/account.py +0 -0
  231. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cloud/application/_utils.py +0 -0
  232. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cloud/assets.py +0 -0
  233. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cloud/batch_experiment.py +0 -0
  234. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cloud/community.py +0 -0
  235. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cloud/ensemble.py +0 -0
  236. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cloud/input_set.py +0 -0
  237. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cloud/instance.py +0 -0
  238. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cloud/integration.py +0 -0
  239. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cloud/marketplace.py +0 -0
  240. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cloud/package.py +0 -0
  241. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cloud/scenario.py +0 -0
  242. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cloud/secrets.py +0 -0
  243. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cloud/shadow.py +0 -0
  244. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cloud/sso.py +0 -0
  245. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cloud/switchback.py +0 -0
  246. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cloud/url.py +0 -0
  247. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/cloud/version.py +0 -0
  248. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/config.py +0 -0
  249. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/content_format.py +0 -0
  250. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/deprecated.py +0 -0
  251. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/input.py +0 -0
  252. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/local/__init__.py +0 -0
  253. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/local/application.py +0 -0
  254. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/local/executor.py +0 -0
  255. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/local/geojson_handler.py +0 -0
  256. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/local/local.py +0 -0
  257. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/local/plotly_handler.py +0 -0
  258. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/local/registry.py +0 -0
  259. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/local/runner.py +0 -0
  260. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/logger.py +0 -0
  261. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/manifest.py +0 -0
  262. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/model.py +0 -0
  263. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/options.py +0 -0
  264. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/output.py +0 -0
  265. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/polling.py +0 -0
  266. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/run.py +0 -0
  267. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/safe.py +0 -0
  268. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/status.py +0 -0
  269. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/binary_json.yaml +0 -0
  270. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/binary_json_opt.yaml +0 -0
  271. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/binary_multi-file.yaml +0 -0
  272. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/binary_multi-file_opt.yaml +0 -0
  273. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/go_json.yaml +0 -0
  274. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/go_json_hello-world/.gitignore +0 -0
  275. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/go_json_hello-world/README.md +0 -0
  276. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/go_json_hello-world/app.yaml +0 -0
  277. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/go_json_hello-world/go.mod +0 -0
  278. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/go_json_hello-world/input.json +0 -0
  279. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/go_json_hello-world/main.go +0 -0
  280. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/go_json_opt.yaml +0 -0
  281. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/go_multi-file.yaml +0 -0
  282. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/go_multi-file_hello-world/.gitignore +0 -0
  283. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/go_multi-file_hello-world/README.md +0 -0
  284. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/go_multi-file_hello-world/app.yaml +0 -0
  285. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/go_multi-file_hello-world/go.mod +0 -0
  286. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/go_multi-file_hello-world/inputs/input.json +0 -0
  287. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/go_multi-file_hello-world/main.go +0 -0
  288. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/go_multi-file_opt.yaml +0 -0
  289. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/java_json.yaml +0 -0
  290. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/java_json_hello-world/.gitignore +0 -0
  291. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/java_json_hello-world/Main.java +0 -0
  292. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/java_json_hello-world/README.md +0 -0
  293. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/java_json_hello-world/app.yaml +0 -0
  294. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/java_json_hello-world/input.json +0 -0
  295. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/java_json_hello-world/pom.xml +0 -0
  296. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/java_json_opt.yaml +0 -0
  297. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/java_multi-file.yaml +0 -0
  298. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/java_multi-file_hello-world/.gitignore +0 -0
  299. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/java_multi-file_hello-world/Main.java +0 -0
  300. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/java_multi-file_hello-world/README.md +0 -0
  301. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/java_multi-file_hello-world/app.yaml +0 -0
  302. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/java_multi-file_hello-world/inputs/input.json +0 -0
  303. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/java_multi-file_hello-world/pom.xml +0 -0
  304. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/java_multi-file_opt.yaml +0 -0
  305. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_json.yaml +0 -0
  306. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_json_class-assign/.gitignore +0 -0
  307. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_json_class-assign/README.md +0 -0
  308. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_json_class-assign/app.yaml +0 -0
  309. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_json_class-assign/input.json +0 -0
  310. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_json_class-assign/main.py +0 -0
  311. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_json_class-assign/pyproject.toml +0 -0
  312. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_json_class-assign/uv.lock +0 -0
  313. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_json_class-assign/visualizations.py +0 -0
  314. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_json_demand-alloc/.gitignore +0 -0
  315. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_json_demand-alloc/README.md +0 -0
  316. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_json_demand-alloc/allocation/README.md +0 -0
  317. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_json_demand-alloc/allocation/app.yaml +0 -0
  318. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_json_demand-alloc/allocation/input.json +0 -0
  319. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_json_demand-alloc/allocation/main.py +0 -0
  320. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_json_demand-alloc/allocation/pyproject.toml +0 -0
  321. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_json_demand-alloc/allocation/uv.lock +0 -0
  322. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_json_demand-alloc/allocation/visuals.py +0 -0
  323. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_json_demand-alloc/workflow/README.md +0 -0
  324. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_json_demand-alloc/workflow/app.yaml +0 -0
  325. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_json_demand-alloc/workflow/input.json +0 -0
  326. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_json_demand-alloc/workflow/main.py +0 -0
  327. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_json_demand-alloc/workflow/pyproject.toml +0 -0
  328. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_json_demand-alloc/workflow/uv.lock +0 -0
  329. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_json_demand-alloc/workflow/visuals.py +0 -0
  330. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_json_hello-world/.gitignore +0 -0
  331. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_json_hello-world/README.md +0 -0
  332. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_json_hello-world/app.yaml +0 -0
  333. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_json_hello-world/input.json +0 -0
  334. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_json_hello-world/main.py +0 -0
  335. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_json_hello-world/pyproject.toml +0 -0
  336. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_json_hello-world/uv.lock +0 -0
  337. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_json_opt.yaml +0 -0
  338. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_multi-file.yaml +0 -0
  339. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_multi-file_class-assign/.gitignore +0 -0
  340. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_multi-file_class-assign/README.md +0 -0
  341. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_multi-file_class-assign/app.yaml +0 -0
  342. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_multi-file_class-assign/inputs/input.json +0 -0
  343. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_multi-file_class-assign/main.py +0 -0
  344. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_multi-file_class-assign/pyproject.toml +0 -0
  345. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_multi-file_class-assign/uv.lock +0 -0
  346. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_multi-file_class-assign/visualizations.py +0 -0
  347. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_multi-file_demand-alloc/README.md +0 -0
  348. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_multi-file_demand-alloc/allocation/README.md +0 -0
  349. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_multi-file_demand-alloc/allocation/app.yaml +0 -0
  350. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_multi-file_demand-alloc/allocation/input.json +0 -0
  351. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_multi-file_demand-alloc/allocation/main.py +0 -0
  352. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_multi-file_demand-alloc/allocation/pyproject.toml +0 -0
  353. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_multi-file_demand-alloc/allocation/uv.lock +0 -0
  354. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_multi-file_demand-alloc/allocation/visuals.py +0 -0
  355. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_multi-file_demand-alloc/workflow/.gitignore +0 -0
  356. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_multi-file_demand-alloc/workflow/README.md +0 -0
  357. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_multi-file_demand-alloc/workflow/app.yaml +0 -0
  358. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_multi-file_demand-alloc/workflow/inputs/input.json +0 -0
  359. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_multi-file_demand-alloc/workflow/main.py +0 -0
  360. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_multi-file_demand-alloc/workflow/pyproject.toml +0 -0
  361. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_multi-file_demand-alloc/workflow/uv.lock +0 -0
  362. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_multi-file_demand-alloc/workflow/visuals.py +0 -0
  363. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_multi-file_hello-world/.gitignore +0 -0
  364. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_multi-file_hello-world/README.md +0 -0
  365. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_multi-file_hello-world/app.yaml +0 -0
  366. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_multi-file_hello-world/inputs/input.json +0 -0
  367. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_multi-file_hello-world/main.py +0 -0
  368. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_multi-file_hello-world/pyproject.toml +0 -0
  369. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_multi-file_hello-world/uv.lock +0 -0
  370. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/templates/python_multi-file_opt.yaml +0 -0
  371. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/nextmv/uv_handler.py +0 -0
  372. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/pyproject.toml +0 -0
  373. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/__init__.py +0 -0
  374. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/cli/__init__.py +0 -0
  375. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/cli/manifest/__init__.py +0 -0
  376. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/cli/manifest/test_init.py +0 -0
  377. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/cli/test_configuration.py +0 -0
  378. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/cli/test_init_cli_call.py +0 -0
  379. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/cli/test_login.py +0 -0
  380. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/cli/test_main.py +0 -0
  381. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/cli/test_mcp.py +0 -0
  382. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/cli/test_version.py +0 -0
  383. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/cloud/__init__.py +0 -0
  384. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/cloud/app.yaml +0 -0
  385. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/cloud/test_client.py +0 -0
  386. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/cloud/test_instance.py +0 -0
  387. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/cloud/test_package.py +0 -0
  388. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/cloud/test_scenario.py +0 -0
  389. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/integration/__init__.py +0 -0
  390. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/integration/cloud/__init__.py +0 -0
  391. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/integration/cloud/test_integration_marketplace.py +0 -0
  392. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/local/__init__.py +0 -0
  393. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/local/test_application.py +0 -0
  394. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/local/test_executor.py +0 -0
  395. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/local/test_registry.py +0 -0
  396. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/local/test_runner.py +0 -0
  397. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/scripts/__init__.py +0 -0
  398. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/scripts/options1.py +0 -0
  399. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/scripts/options2.py +0 -0
  400. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/scripts/options3.py +0 -0
  401. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/scripts/options4.py +0 -0
  402. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/scripts/options5.py +0 -0
  403. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/scripts/options6.py +0 -0
  404. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/scripts/options7.py +0 -0
  405. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/test_auth.py +0 -0
  406. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/test_base_model.py +0 -0
  407. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/test_cache.py +0 -0
  408. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/test_config.py +0 -0
  409. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/test_entrypoint/__init__.py +0 -0
  410. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/test_entrypoint/test_entrypoint.py +0 -0
  411. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/test_input.py +0 -0
  412. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/test_inputs/test_data.csv +0 -0
  413. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/test_inputs/test_data.json +0 -0
  414. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/test_inputs/test_data.txt +0 -0
  415. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/test_logger.py +0 -0
  416. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/test_manifest.py +0 -0
  417. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/test_model.py +0 -0
  418. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/test_options.py +0 -0
  419. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/test_output.py +0 -0
  420. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/test_polling.py +0 -0
  421. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/test_run.py +0 -0
  422. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/test_safe.py +0 -0
  423. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/test_serialization.py +0 -0
  424. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/test_uv_handler.py +0 -0
  425. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/tests/test_version.py +0 -0
  426. {nextmv-1.9.0.dev1 → nextmv-1.9.0.dev2}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nextmv
3
- Version: 1.9.0.dev1
3
+ Version: 1.9.0.dev2
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/
@@ -0,0 +1 @@
1
+ __version__ = "v1.9.0.dev2"
@@ -9,7 +9,7 @@ import typer
9
9
 
10
10
  from nextmv.cli.configuration.config import build_cloud_app
11
11
  from nextmv.cli.message import in_progress, print_json, success
12
- from nextmv.cli.options import AppIDOption, DebugOption, ProfileOption
12
+ from nextmv.cli.options import AppIDOption, DebugOption, NoPaginationOption, ProfileOption
13
13
 
14
14
  # Set up subcommand application.
15
15
  app = typer.Typer()
@@ -18,6 +18,7 @@ app = typer.Typer()
18
18
  @app.command()
19
19
  def list(
20
20
  app_id: AppIDOption,
21
+ no_pagination: NoPaginationOption = False,
21
22
  output: Annotated[
22
23
  str | None,
23
24
  typer.Option(
@@ -34,7 +35,9 @@ def list(
34
35
  List all Nextmv Cloud acceptance tests for an application.
35
36
 
36
37
  This command retrieves all acceptance tests associated with the specified
37
- application.
38
+ application. By default this command paginates the list of tests, which
39
+ means multiple API calls may be made to retrieve all tests. You may use the
40
+ --no-pagination option to disable pagination.
38
41
 
39
42
  [bold][underline]Examples[/underline][/bold]
40
43
 
@@ -46,11 +49,14 @@ def list(
46
49
 
47
50
  - List all acceptance tests using a specific profile.
48
51
  $ [dim]nextmv cloud acceptance list --app-id hare-app --profile prod[/dim]
52
+
53
+ - List all acceptance tests without pagination.
54
+ $ [dim]nextmv cloud acceptance list --app-id hare-app --no-pagination[/dim]
49
55
  """
50
56
 
51
57
  cloud_app, _ = build_cloud_app(app_id=app_id, profile=profile)
52
58
  in_progress(msg="Listing acceptance tests...")
53
- acceptance_tests = cloud_app.list_acceptance_tests()
59
+ acceptance_tests = cloud_app.list_acceptance_tests(no_pagination)
54
60
  acceptance_tests_dict = [test.to_dict() for test in acceptance_tests]
55
61
 
56
62
  if output is not None and output != "":
@@ -8,7 +8,7 @@ from typing import Annotated
8
8
  import typer
9
9
 
10
10
  from nextmv.cli.message import in_progress, print_json, success
11
- from nextmv.cli.options import DebugOption, ProfileOption
11
+ from nextmv.cli.options import DebugOption, NoPaginationOption, ProfileOption
12
12
  from nextmv.cloud.application import list_applications
13
13
  from nextmv.cloud.client import Client
14
14
 
@@ -18,6 +18,7 @@ app = typer.Typer()
18
18
 
19
19
  @app.command()
20
20
  def list(
21
+ no_pagination: NoPaginationOption = False,
21
22
  output: Annotated[
22
23
  str | None,
23
24
  typer.Option(
@@ -33,6 +34,10 @@ def list(
33
34
  """
34
35
  List all Nextmv Cloud applications.
35
36
 
37
+ By default this command paginates the list of applications, which means
38
+ multiple API calls may be made to retrieve all applications. You may use the
39
+ --no-pagination option to disable pagination.
40
+
36
41
  [bold][underline]Examples[/underline][/bold]
37
42
 
38
43
  - List all applications.
@@ -43,12 +48,15 @@ def list(
43
48
 
44
49
  - List all applications and save the information to an [magenta]apps.json[/magenta] file.
45
50
  $ [dim]nextmv cloud app list --output apps.json[/dim]
51
+
52
+ - List all applications without pagination.
53
+ $ [dim]nextmv cloud app list --no-pagination[/dim]
46
54
  """
47
55
 
48
56
  client = Client(profile=profile)
49
57
  in_progress(msg="Listing applications...")
50
58
 
51
- cloud_apps = list_applications(client)
59
+ cloud_apps = list_applications(client, no_pagination)
52
60
  cloud_apps_dicts = [cloud_app.to_dict() for cloud_app in cloud_apps]
53
61
 
54
62
  if output is not None and output != "":
@@ -9,7 +9,7 @@ import typer
9
9
 
10
10
  from nextmv.cli.configuration.config import build_cloud_app
11
11
  from nextmv.cli.message import in_progress, print_json, success
12
- from nextmv.cli.options import AppIDOption, DebugOption, ProfileOption
12
+ from nextmv.cli.options import AppIDOption, DebugOption, NoPaginationOption, ProfileOption
13
13
 
14
14
  # Set up subcommand application.
15
15
  app = typer.Typer()
@@ -18,6 +18,7 @@ app = typer.Typer()
18
18
  @app.command()
19
19
  def list(
20
20
  app_id: AppIDOption,
21
+ no_pagination: NoPaginationOption = False,
21
22
  output: Annotated[
22
23
  str | None,
23
24
  typer.Option(
@@ -34,7 +35,9 @@ def list(
34
35
  List all Nextmv Cloud batch experiments for an application.
35
36
 
36
37
  This command retrieves all batch experiments associated with the specified
37
- application.
38
+ application. By default this command paginates the list of experiments,
39
+ which means multiple API calls may be made to retrieve all experiments. You
40
+ may use the --no-pagination option to disable pagination.
38
41
 
39
42
  [bold][underline]Examples[/underline][/bold]
40
43
 
@@ -46,11 +49,14 @@ def list(
46
49
 
47
50
  - List all batch experiments using a specific profile.
48
51
  $ [dim]nextmv cloud batch list --app-id hare-app --profile prod[/dim]
52
+
53
+ - List all experiments without pagination.
54
+ $ [dim]nextmv cloud batch list --app-id hare-app --no-pagination[/dim]
49
55
  """
50
56
 
51
57
  cloud_app, _ = build_cloud_app(app_id=app_id, profile=profile)
52
58
  in_progress(msg="Listing batch experiments...")
53
- batch_experiments = cloud_app.list_batch_experiments()
59
+ batch_experiments = cloud_app.list_batch_experiments(no_pagination)
54
60
  batch_experiments_dict = [exp.to_dict() for exp in batch_experiments]
55
61
 
56
62
  if output is not None and output != "":
@@ -9,7 +9,7 @@ import typer
9
9
 
10
10
  from nextmv.cli.configuration.config import build_cloud_app
11
11
  from nextmv.cli.message import in_progress, print_json, success
12
- from nextmv.cli.options import AppIDOption, DebugOption, ProfileOption
12
+ from nextmv.cli.options import AppIDOption, DebugOption, NoPaginationOption, ProfileOption
13
13
 
14
14
  # Set up subcommand application.
15
15
  app = typer.Typer()
@@ -18,6 +18,7 @@ app = typer.Typer()
18
18
  @app.command()
19
19
  def list(
20
20
  app_id: AppIDOption,
21
+ no_pagination: NoPaginationOption = False,
21
22
  output: Annotated[
22
23
  str | None,
23
24
  typer.Option(
@@ -33,8 +34,10 @@ def list(
33
34
  """
34
35
  List all Nextmv Cloud ensemble definitions for an application.
35
36
 
36
- This command retrieves all ensemble definitions associated with the specified
37
- application.
37
+ This command retrieves all ensemble definitions associated with the
38
+ specified application. By default this command paginates the list of
39
+ definitions, which means multiple API calls may be made to retrieve all
40
+ definitions. You may use the --no-pagination option to disable pagination.
38
41
 
39
42
  [bold][underline]Examples[/underline][/bold]
40
43
 
@@ -46,11 +49,14 @@ def list(
46
49
 
47
50
  - List all ensemble definitions using a specific profile.
48
51
  $ [dim]nextmv cloud ensemble list --app-id hare-app --profile prod[/dim]
52
+
53
+ - List all ensemble definitions without pagination.
54
+ $ [dim]nextmv cloud ensemble list --app-id hare-app --no-pagination[/dim]
49
55
  """
50
56
 
51
57
  cloud_app, _ = build_cloud_app(app_id=app_id, profile=profile)
52
58
  in_progress(msg="Listing ensemble definitions...")
53
- ensembles = cloud_app.list_ensemble_definitions()
59
+ ensembles = cloud_app.list_ensemble_definitions(no_pagination)
54
60
  ensembles_dict = [ensemble.to_dict() for ensemble in ensembles]
55
61
 
56
62
  if output is not None and output != "":
@@ -9,7 +9,7 @@ import typer
9
9
 
10
10
  from nextmv.cli.configuration.config import build_cloud_app
11
11
  from nextmv.cli.message import in_progress, print_json, success
12
- from nextmv.cli.options import AppIDOption, DebugOption, ProfileOption
12
+ from nextmv.cli.options import AppIDOption, DebugOption, NoPaginationOption, ProfileOption
13
13
 
14
14
  # Set up subcommand application.
15
15
  app = typer.Typer()
@@ -18,6 +18,7 @@ app = typer.Typer()
18
18
  @app.command()
19
19
  def list(
20
20
  app_id: AppIDOption,
21
+ no_pagination: NoPaginationOption = False,
21
22
  output: Annotated[
22
23
  str | None,
23
24
  typer.Option(
@@ -34,7 +35,9 @@ def list(
34
35
  List all input sets of a Nextmv Cloud application.
35
36
 
36
37
  This command retrieves all input sets that exist for a given Nextmv Cloud
37
- application.
38
+ application. By default this command paginates the list of input sets,
39
+ which means multiple API calls may be made to retrieve all input sets. You
40
+ may use the --no-pagination option to disable pagination.
38
41
 
39
42
  [bold][underline]Examples[/underline][/bold]
40
43
 
@@ -46,11 +49,14 @@ def list(
46
49
 
47
50
  - List all input sets and save the information to a [magenta]input-sets.json[/magenta] file.
48
51
  $ [dim]nextmv cloud input-set list --app-id hare-app --output input-sets.json[/dim]
52
+
53
+ - List all input sets without pagination.
54
+ $ [dim]nextmv cloud input-set list --app-id hare-app --no-pagination[/dim]
49
55
  """
50
56
 
51
57
  cloud_app, _ = build_cloud_app(app_id=app_id, profile=profile)
52
58
  in_progress(msg="Listing input sets...")
53
- input_sets = cloud_app.list_input_sets()
59
+ input_sets = cloud_app.list_input_sets(no_pagination)
54
60
  input_sets_dicts = [input_set.to_dict() for input_set in input_sets]
55
61
 
56
62
  if output is not None and output != "":
@@ -9,7 +9,7 @@ import typer
9
9
 
10
10
  from nextmv.cli.configuration.config import build_cloud_app
11
11
  from nextmv.cli.message import in_progress, print_json, success
12
- from nextmv.cli.options import AppIDOption, DebugOption, ProfileOption
12
+ from nextmv.cli.options import AppIDOption, DebugOption, NoPaginationOption, ProfileOption
13
13
 
14
14
  # Set up subcommand application.
15
15
  app = typer.Typer()
@@ -18,6 +18,7 @@ app = typer.Typer()
18
18
  @app.command()
19
19
  def list(
20
20
  app_id: AppIDOption,
21
+ no_pagination: NoPaginationOption = False,
21
22
  output: Annotated[
22
23
  str | None,
23
24
  typer.Option(
@@ -33,6 +34,10 @@ def list(
33
34
  """
34
35
  List all instances of a Nextmv Cloud application.
35
36
 
37
+ By default this command paginates the list of instances, which means multiple
38
+ API calls may be made to retrieve all instances. You may use the
39
+ --no-pagination option to disable pagination.
40
+
36
41
  [bold][underline]Examples[/underline][/bold]
37
42
 
38
43
  - List all instances of application [magenta]hare-app[/magenta].
@@ -43,11 +48,14 @@ def list(
43
48
 
44
49
  - List all instances and save the information to a [magenta]instances.json[/magenta] file.
45
50
  $ [dim]nextmv cloud instance list --app-id hare-app --output instances.json[/dim]
51
+
52
+ - List all instances without pagination.
53
+ $ [dim]nextmv cloud instance list --app-id hare-app --no-pagination[/dim]
46
54
  """
47
55
 
48
56
  cloud_app, _ = build_cloud_app(app_id=app_id, profile=profile)
49
57
  in_progress(msg="Listing instances...")
50
- instances = cloud_app.list_instances()
58
+ instances = cloud_app.list_instances(no_pagination)
51
59
  instances_dicts = [instance.to_dict() for instance in instances]
52
60
 
53
61
  if output is not None and output != "":
@@ -9,7 +9,7 @@ import typer
9
9
 
10
10
  from nextmv.cli.configuration.config import build_cloud_app
11
11
  from nextmv.cli.message import in_progress, print_json, success
12
- from nextmv.cli.options import AppIDOption, DebugOption, ProfileOption
12
+ from nextmv.cli.options import AppIDOption, DebugOption, NoPaginationOption, ProfileOption
13
13
 
14
14
  # Set up subcommand application.
15
15
  app = typer.Typer()
@@ -18,6 +18,7 @@ app = typer.Typer()
18
18
  @app.command()
19
19
  def list(
20
20
  app_id: AppIDOption,
21
+ no_pagination: NoPaginationOption = False,
21
22
  output: Annotated[
22
23
  str | None,
23
24
  typer.Option(
@@ -33,6 +34,10 @@ def list(
33
34
  """
34
35
  List all managed inputs of a Nextmv Cloud application.
35
36
 
37
+ By default this command paginates the list of inputs, which means multiple
38
+ API calls may be made to retrieve all inputs. You may use the
39
+ --no-pagination option to disable pagination.
40
+
36
41
  [bold][underline]Examples[/underline][/bold]
37
42
 
38
43
  - List all managed inputs of application [magenta]hare-app[/magenta].
@@ -43,11 +48,14 @@ def list(
43
48
 
44
49
  - List all managed inputs and save the information to a [magenta]managed_inputs.json[/magenta] file.
45
50
  $ [dim]nextmv cloud managed-input list --app-id hare-app --output managed_inputs.json[/dim]
51
+
52
+ - List all managed inputs without pagination.
53
+ $ [dim]nextmv cloud managed-input list --app-id hare-app --no-pagination[/dim]
46
54
  """
47
55
 
48
56
  cloud_app, _ = build_cloud_app(app_id=app_id, profile=profile)
49
57
  in_progress(msg="Listing managed inputs...")
50
- managed_inputs = cloud_app.list_managed_inputs()
58
+ managed_inputs = cloud_app.list_managed_inputs(no_pagination)
51
59
  managed_inputs_dicts = [managed_input.to_dict() for managed_input in managed_inputs]
52
60
 
53
61
  if output is not None and output != "":
@@ -9,7 +9,7 @@ import typer
9
9
 
10
10
  from nextmv.cli.configuration.config import build_cloud_app
11
11
  from nextmv.cli.message import enum_values, in_progress, print_json, success
12
- from nextmv.cli.options import AppIDOption, DebugOption, ProfileOption
12
+ from nextmv.cli.options import AppIDOption, DebugOption, NoPaginationOption, ProfileOption
13
13
  from nextmv.status import StatusV2
14
14
 
15
15
  # Set up subcommand application.
@@ -19,6 +19,7 @@ app = typer.Typer()
19
19
  @app.command()
20
20
  def list(
21
21
  app_id: AppIDOption,
22
+ no_pagination: NoPaginationOption = False,
22
23
  output: Annotated[
23
24
  str | None,
24
25
  typer.Option(
@@ -46,7 +47,9 @@ def list(
46
47
  By default, the list of runs is fetched and printed to
47
48
  [magenta]stdout[/magenta]. Use the --output flag to save the list to a
48
49
  file. You can use the optional --status flag to filter runs by their
49
- status.
50
+ status. This command paginates the list of runs, which means multiple API
51
+ calls may be made to retrieve all runs. You may use the --no-pagination
52
+ option to disable pagination.
50
53
 
51
54
  [bold][underline]Examples[/underline][/bold]
52
55
 
@@ -63,11 +66,14 @@ def list(
63
66
 
64
67
  - Get the list of [magenta]queued[/magenta] runs for an app with ID [magenta]hare-app[/magenta].
65
68
  $ [dim]nextmv cloud run list --app-id hare-app --status queued[/dim]
69
+
70
+ - Get the list of runs for an app with ID [magenta]hare-app[/magenta] without pagination.
71
+ $ [dim]nextmv cloud run list --app-id hare-app --no-pagination[/dim]
66
72
  """
67
73
 
68
74
  cloud_app, _ = build_cloud_app(app_id=app_id, profile=profile)
69
75
  in_progress(msg="Listing app runs...")
70
- runs = cloud_app.list_runs(status=status)
76
+ runs = cloud_app.list_runs(status, no_pagination)
71
77
  runs_dicts = [run.to_dict() for run in runs]
72
78
 
73
79
  if output is not None and output != "":
@@ -9,7 +9,7 @@ import typer
9
9
 
10
10
  from nextmv.cli.configuration.config import build_cloud_app
11
11
  from nextmv.cli.message import in_progress, print_json, success
12
- from nextmv.cli.options import AppIDOption, DebugOption, ProfileOption
12
+ from nextmv.cli.options import AppIDOption, DebugOption, NoPaginationOption, ProfileOption
13
13
 
14
14
  # Set up subcommand application.
15
15
  app = typer.Typer()
@@ -18,6 +18,7 @@ app = typer.Typer()
18
18
  @app.command()
19
19
  def list(
20
20
  app_id: AppIDOption,
21
+ no_pagination: NoPaginationOption = False,
21
22
  output: Annotated[
22
23
  str | None,
23
24
  typer.Option(
@@ -34,7 +35,9 @@ def list(
34
35
  List all Nextmv Cloud scenario tests for an application.
35
36
 
36
37
  This command retrieves all scenario tests associated with the specified
37
- application.
38
+ application. By default this command paginates the list of tests, which
39
+ means multiple API calls may be made to retrieve all tests. You may use the
40
+ --no-pagination option to disable pagination.
38
41
 
39
42
  [bold][underline]Examples[/underline][/bold]
40
43
 
@@ -45,12 +48,16 @@ def list(
45
48
  $ [dim]nextmv cloud scenario list --app-id hare-app --output scenario_tests.json[/dim]
46
49
 
47
50
  - List all scenario tests using a specific profile.
48
- $ [dim]nextmv cloud scenario list --app-id hare-app --profile prod[/dim]
51
+ $ [dim]nextmv cloud scenario list --app-id hare-app --profile
52
+ prod[/dim]
53
+
54
+ - List all scenario tests without pagination.
55
+ $ [dim]nextmv cloud scenario list --app-id hare-app --no-pagination[/dim]
49
56
  """
50
57
 
51
58
  cloud_app, _ = build_cloud_app(app_id=app_id, profile=profile)
52
59
  in_progress(msg="Listing scenario tests...")
53
- scenario_tests = cloud_app.list_scenario_tests()
60
+ scenario_tests = cloud_app.list_scenario_tests(no_pagination)
54
61
  scenario_tests_dict = [exp.to_dict() for exp in scenario_tests]
55
62
 
56
63
  if output is not None and output != "":
@@ -9,7 +9,7 @@ import typer
9
9
 
10
10
  from nextmv.cli.configuration.config import build_cloud_app
11
11
  from nextmv.cli.message import in_progress, print_json, success
12
- from nextmv.cli.options import AppIDOption, DebugOption, ProfileOption
12
+ from nextmv.cli.options import AppIDOption, DebugOption, NoPaginationOption, ProfileOption
13
13
 
14
14
  # Set up subcommand application.
15
15
  app = typer.Typer()
@@ -18,6 +18,7 @@ app = typer.Typer()
18
18
  @app.command()
19
19
  def list(
20
20
  app_id: AppIDOption,
21
+ no_pagination: NoPaginationOption = False,
21
22
  output: Annotated[
22
23
  str | None,
23
24
  typer.Option(
@@ -33,6 +34,10 @@ def list(
33
34
  """
34
35
  List all secrets collections of a Nextmv Cloud application.
35
36
 
37
+ By default this command paginates the list of secrets, which means multiple
38
+ API calls may be made to retrieve all secrets. You may use the
39
+ --no-pagination option to disable pagination.
40
+
36
41
  [bold][underline]Examples[/underline][/bold]
37
42
 
38
43
  - List all secrets collections of application [magenta]hare-app[/magenta].
@@ -43,11 +48,14 @@ def list(
43
48
 
44
49
  - List all secrets collections and save the information to a [magenta]secrets.json[/magenta] file.
45
50
  $ [dim]nextmv cloud secrets list --app-id hare-app --output secrets.json[/dim]
51
+
52
+ - List all secrets collections without pagination.
53
+ $ [dim]nextmv cloud secrets list --app-id hare-app --no-pagination[/dim]
46
54
  """
47
55
 
48
56
  cloud_app, _ = build_cloud_app(app_id=app_id, profile=profile)
49
57
  in_progress(msg="Listing secrets collections...")
50
- collections = cloud_app.list_secrets_collections()
58
+ collections = cloud_app.list_secrets_collections(no_pagination)
51
59
  collections_dicts = [collection.to_dict() for collection in collections]
52
60
 
53
61
  if output is not None and output != "":
@@ -9,7 +9,7 @@ import typer
9
9
 
10
10
  from nextmv.cli.configuration.config import build_cloud_app
11
11
  from nextmv.cli.message import in_progress, print_json, success
12
- from nextmv.cli.options import AppIDOption, DebugOption, ProfileOption
12
+ from nextmv.cli.options import AppIDOption, DebugOption, NoPaginationOption, ProfileOption
13
13
 
14
14
  # Set up subcommand application.
15
15
  app = typer.Typer()
@@ -18,6 +18,7 @@ app = typer.Typer()
18
18
  @app.command()
19
19
  def list(
20
20
  app_id: AppIDOption,
21
+ no_pagination: NoPaginationOption = False,
21
22
  output: Annotated[
22
23
  str | None,
23
24
  typer.Option(
@@ -34,7 +35,9 @@ def list(
34
35
  List all Nextmv Cloud shadow tests for an application.
35
36
 
36
37
  This command retrieves all shadow tests associated with the specified
37
- application.
38
+ application. By default this command paginates the list of tests, which
39
+ means multiple API calls may be made to retrieve all tests. You may use the
40
+ --no-pagination option to disable pagination.
38
41
 
39
42
  [bold][underline]Examples[/underline][/bold]
40
43
 
@@ -46,11 +49,14 @@ def list(
46
49
 
47
50
  - List all shadow tests using a specific profile.
48
51
  $ [dim]nextmv cloud shadow list --app-id hare-app --profile prod[/dim]
52
+
53
+ - List all shadow tests without pagination.
54
+ $ [dim]nextmv cloud shadow list --app-id hare-app --no-pagination[/dim]
49
55
  """
50
56
 
51
57
  cloud_app, _ = build_cloud_app(app_id=app_id, profile=profile)
52
58
  in_progress(msg="Listing shadow tests...")
53
- shadow_tests = cloud_app.list_shadow_tests()
59
+ shadow_tests = cloud_app.list_shadow_tests(no_pagination)
54
60
  shadow_tests_dict = [test.to_dict() for test in shadow_tests]
55
61
 
56
62
  if output is not None and output != "":
@@ -9,7 +9,7 @@ import typer
9
9
 
10
10
  from nextmv.cli.configuration.config import build_cloud_app
11
11
  from nextmv.cli.message import in_progress, print_json, success
12
- from nextmv.cli.options import AppIDOption, DebugOption, ProfileOption
12
+ from nextmv.cli.options import AppIDOption, DebugOption, NoPaginationOption, ProfileOption
13
13
 
14
14
  # Set up subcommand application.
15
15
  app = typer.Typer()
@@ -18,6 +18,7 @@ app = typer.Typer()
18
18
  @app.command()
19
19
  def list(
20
20
  app_id: AppIDOption,
21
+ no_pagination: NoPaginationOption = False,
21
22
  output: Annotated[
22
23
  str | None,
23
24
  typer.Option(
@@ -34,7 +35,9 @@ def list(
34
35
  List all Nextmv Cloud switchback tests for an application.
35
36
 
36
37
  This command retrieves all switchback tests associated with the specified
37
- application.
38
+ application. By default this command paginates the list of tests, which
39
+ means multiple API calls may be made to retrieve all tests. You may use the
40
+ --no-pagination option to disable pagination.
38
41
 
39
42
  [bold][underline]Examples[/underline][/bold]
40
43
 
@@ -46,11 +49,14 @@ def list(
46
49
 
47
50
  - List all switchback tests using a specific profile.
48
51
  $ [dim]nextmv cloud switchback list --app-id hare-app --profile prod[/dim]
52
+
53
+ - List all switchback tests without pagination.
54
+ $ [dim]nextmv cloud switchback list --app-id hare-app --no-pagination[/dim]
49
55
  """
50
56
 
51
57
  cloud_app, _ = build_cloud_app(app_id=app_id, profile=profile)
52
58
  in_progress(msg="Listing switchback tests...")
53
- switchback_tests = cloud_app.list_switchback_tests()
59
+ switchback_tests = cloud_app.list_switchback_tests(no_pagination)
54
60
  switchback_tests_dict = [test.to_dict() for test in switchback_tests]
55
61
 
56
62
  if output is not None and output != "":
@@ -9,7 +9,7 @@ import typer
9
9
 
10
10
  from nextmv.cli.configuration.config import build_cloud_app
11
11
  from nextmv.cli.message import in_progress, print_json, success
12
- from nextmv.cli.options import AppIDOption, DebugOption, ProfileOption
12
+ from nextmv.cli.options import AppIDOption, DebugOption, NoPaginationOption, ProfileOption
13
13
 
14
14
  # Set up subcommand application.
15
15
  app = typer.Typer()
@@ -18,6 +18,7 @@ app = typer.Typer()
18
18
  @app.command()
19
19
  def list(
20
20
  app_id: AppIDOption,
21
+ no_pagination: NoPaginationOption = False,
21
22
  output: Annotated[
22
23
  str | None,
23
24
  typer.Option(
@@ -33,6 +34,10 @@ def list(
33
34
  """
34
35
  List all versions of a Nextmv Cloud application.
35
36
 
37
+ By default this command paginates the list of versions, which means
38
+ multiple API calls may be made to retrieve all versions. You may use the
39
+ --no-pagination option to disable pagination.
40
+
36
41
  [bold][underline]Examples[/underline][/bold]
37
42
 
38
43
  - List all versions of application [magenta]hare-app[/magenta].
@@ -43,11 +48,14 @@ def list(
43
48
 
44
49
  - List all versions and save the information to a [magenta]versions.json[/magenta] file.
45
50
  $ [dim]nextmv cloud version list --app-id hare-app --output versions.json[/dim]
51
+
52
+ - List all versions without pagination.
53
+ $ [dim]nextmv cloud version list --app-id hare-app --no-pagination[/dim]
46
54
  """
47
55
 
48
56
  cloud_app, _ = build_cloud_app(app_id=app_id, profile=profile)
49
57
  in_progress(msg="Listing versions...")
50
- versions = cloud_app.list_versions()
58
+ versions = cloud_app.list_versions(no_pagination)
51
59
  versions_dicts = [version.to_dict() for version in versions]
52
60
 
53
61
  if output is not None and output != "":
@@ -611,6 +611,19 @@ def _handle_app_sync() -> tuple[cloud.Application, list[ExecutedCommand]]:
611
611
  Exits the program if the user declines to sync or if the command fails.
612
612
  """
613
613
 
614
+ # Ask the user if they have an active Nextmv Plan, which is required to sync
615
+ # an app to Nextmv Cloud. If they don't, provide guidance and exit.
616
+ has_premium = confirmation(
617
+ "For the next step, you need an active Nextmv Plan. Do you have an active plan with Nextmv?",
618
+ default=True,
619
+ )
620
+ if not has_premium:
621
+ info(
622
+ "You can activate your Nextmv Plan by contacting "
623
+ "[link=https://www.nextmv.io/contact][bold]Nextmv support[/bold][/link]."
624
+ )
625
+ raise typer.Exit()
626
+
614
627
  # Ask the user if they want to sync their local application with Nextmv
615
628
  # Cloud or exit immediately.
616
629
  should_sync = confirmation(
@@ -699,19 +712,6 @@ def _handle_app_push(cloud_app: cloud.Application) -> tuple[str, ExecutedCommand
699
712
  Exits the program if the user declines to push the app.
700
713
  """
701
714
 
702
- # Ask the user if they have an active Nextmv Plan, which is required to push
703
- # an app to Nextmv Cloud. If they don't, provide guidance and exit.
704
- has_premium = confirmation(
705
- "For the next step, you need an active Nextmv Plan. Do you have an active plan with Nextmv?",
706
- default=True,
707
- )
708
- if not has_premium:
709
- info(
710
- "You can activate your Nextmv Plan from the [magenta]Team Settings[/magenta] page in "
711
- "the [link=https://cloud.nextmv.io]Nextmv Cloud Console[/link]."
712
- )
713
- raise typer.Exit()
714
-
715
715
  # If we got here, the user has an active Nextmv Plan. Ask if they want to
716
716
  # push their app to Nextmv Cloud or exit immediately.
717
717
  should_push = confirmation(
@@ -329,3 +329,14 @@ DebugOption = Annotated[
329
329
  rich_help_panel="General",
330
330
  ),
331
331
  ]
332
+
333
+ # no-pagination option - can be used in any command to disable pagination.
334
+ # Define it as follows in commands or callbacks, as necessary:
335
+ # no_pagination: NoPaginationOption = False,
336
+ NoPaginationOption = Annotated[
337
+ bool | None,
338
+ typer.Option(
339
+ "--no-pagination",
340
+ help="Whether to disable pagination when listing this type of entity.",
341
+ ),
342
+ ]