nextmv 1.4.1.dev4__tar.gz → 1.4.2.dev3__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 (396) hide show
  1. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/PKG-INFO +1 -1
  2. nextmv-1.4.2.dev3/nextmv/__about__.py +1 -0
  3. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cloud/application/__init__.py +3 -0
  4. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cloud/client.py +2 -3
  5. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/manifest.py +19 -0
  6. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/tests/cloud/app.yaml +6 -0
  7. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/tests/test_manifest.py +52 -1
  8. nextmv-1.4.1.dev4/nextmv/__about__.py +0 -1
  9. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/.gitignore +0 -0
  10. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/.python-version +0 -0
  11. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/CONTRIBUTING.md +0 -0
  12. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/LICENSE +0 -0
  13. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/README.md +0 -0
  14. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/__entrypoint__.py +0 -0
  15. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/__init__.py +0 -0
  16. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/_serialization.py +0 -0
  17. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/account.py +0 -0
  18. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/base_model.py +0 -0
  19. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/__init__.py +0 -0
  20. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/__init__.py +0 -0
  21. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/acceptance/__init__.py +0 -0
  22. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/acceptance/create.py +0 -0
  23. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/acceptance/delete.py +0 -0
  24. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/acceptance/get.py +0 -0
  25. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/acceptance/list.py +0 -0
  26. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/acceptance/update.py +0 -0
  27. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/account/__init__.py +0 -0
  28. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/account/create.py +0 -0
  29. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/account/delete.py +0 -0
  30. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/account/get.py +0 -0
  31. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/account/update.py +0 -0
  32. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/app/__init__.py +0 -0
  33. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/app/create.py +0 -0
  34. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/app/delete.py +0 -0
  35. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/app/exists.py +0 -0
  36. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/app/get.py +0 -0
  37. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/app/list.py +0 -0
  38. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/app/push.py +0 -0
  39. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/app/update.py +0 -0
  40. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/batch/__init__.py +0 -0
  41. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/batch/create.py +0 -0
  42. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/batch/delete.py +0 -0
  43. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/batch/get.py +0 -0
  44. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/batch/list.py +0 -0
  45. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/batch/metadata.py +0 -0
  46. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/batch/update.py +0 -0
  47. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/data/__init__.py +0 -0
  48. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/data/upload.py +0 -0
  49. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/ensemble/__init__.py +0 -0
  50. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/ensemble/create.py +0 -0
  51. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/ensemble/delete.py +0 -0
  52. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/ensemble/get.py +0 -0
  53. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/ensemble/list.py +0 -0
  54. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/ensemble/update.py +0 -0
  55. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/input_set/__init__.py +0 -0
  56. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/input_set/create.py +0 -0
  57. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/input_set/delete.py +0 -0
  58. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/input_set/get.py +0 -0
  59. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/input_set/list.py +0 -0
  60. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/input_set/update.py +0 -0
  61. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/instance/__init__.py +0 -0
  62. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/instance/create.py +0 -0
  63. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/instance/delete.py +0 -0
  64. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/instance/exists.py +0 -0
  65. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/instance/get.py +0 -0
  66. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/instance/list.py +0 -0
  67. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/instance/update.py +0 -0
  68. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/managed_input/__init__.py +0 -0
  69. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/managed_input/create.py +0 -0
  70. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/managed_input/delete.py +0 -0
  71. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/managed_input/get.py +0 -0
  72. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/managed_input/list.py +0 -0
  73. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/managed_input/update.py +0 -0
  74. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/marketplace/__init__.py +0 -0
  75. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/marketplace/app/__init__.py +0 -0
  76. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/marketplace/app/create.py +0 -0
  77. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/marketplace/app/get.py +0 -0
  78. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/marketplace/app/list.py +0 -0
  79. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/marketplace/app/update.py +0 -0
  80. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/marketplace/subscription/__init__.py +0 -0
  81. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/marketplace/subscription/create.py +0 -0
  82. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/marketplace/subscription/delete.py +0 -0
  83. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/marketplace/subscription/get.py +0 -0
  84. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/marketplace/subscription/list.py +0 -0
  85. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/marketplace/version/__init__.py +0 -0
  86. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/marketplace/version/create.py +0 -0
  87. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/marketplace/version/get.py +0 -0
  88. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/marketplace/version/list.py +0 -0
  89. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/marketplace/version/update.py +0 -0
  90. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/run/__init__.py +0 -0
  91. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/run/cancel.py +0 -0
  92. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/run/create.py +0 -0
  93. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/run/delete.py +0 -0
  94. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/run/get.py +0 -0
  95. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/run/input.py +0 -0
  96. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/run/list.py +0 -0
  97. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/run/logs.py +0 -0
  98. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/run/metadata.py +0 -0
  99. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/run/track.py +0 -0
  100. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/scenario/__init__.py +0 -0
  101. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/scenario/create.py +0 -0
  102. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/scenario/delete.py +0 -0
  103. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/scenario/get.py +0 -0
  104. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/scenario/list.py +0 -0
  105. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/scenario/metadata.py +0 -0
  106. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/scenario/update.py +0 -0
  107. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/secrets/__init__.py +0 -0
  108. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/secrets/create.py +0 -0
  109. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/secrets/delete.py +0 -0
  110. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/secrets/get.py +0 -0
  111. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/secrets/list.py +0 -0
  112. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/secrets/update.py +0 -0
  113. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/shadow/__init__.py +0 -0
  114. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/shadow/create.py +0 -0
  115. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/shadow/delete.py +0 -0
  116. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/shadow/get.py +0 -0
  117. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/shadow/list.py +0 -0
  118. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/shadow/metadata.py +0 -0
  119. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/shadow/start.py +0 -0
  120. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/shadow/stop.py +0 -0
  121. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/shadow/update.py +0 -0
  122. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/sso/__init__.py +0 -0
  123. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/sso/create.py +0 -0
  124. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/sso/delete.py +0 -0
  125. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/sso/disable.py +0 -0
  126. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/sso/domain/__init__.py +0 -0
  127. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/sso/domain/delete.py +0 -0
  128. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/sso/enable.py +0 -0
  129. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/sso/get.py +0 -0
  130. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/sso/update.py +0 -0
  131. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/switchback/__init__.py +0 -0
  132. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/switchback/create.py +0 -0
  133. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/switchback/delete.py +0 -0
  134. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/switchback/get.py +0 -0
  135. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/switchback/list.py +0 -0
  136. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/switchback/metadata.py +0 -0
  137. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/switchback/start.py +0 -0
  138. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/switchback/stop.py +0 -0
  139. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/switchback/update.py +0 -0
  140. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/upload/__init__.py +0 -0
  141. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/upload/create.py +0 -0
  142. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/version/__init__.py +0 -0
  143. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/version/create.py +0 -0
  144. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/version/delete.py +0 -0
  145. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/version/exists.py +0 -0
  146. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/version/get.py +0 -0
  147. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/version/list.py +0 -0
  148. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/cloud/version/update.py +0 -0
  149. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/community/__init__.py +0 -0
  150. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/community/clone.py +0 -0
  151. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/community/list.py +0 -0
  152. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/configuration/__init__.py +0 -0
  153. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/configuration/config.py +0 -0
  154. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/configuration/create.py +0 -0
  155. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/configuration/delete.py +0 -0
  156. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/configuration/list.py +0 -0
  157. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/init.py +0 -0
  158. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/local/__init__.py +0 -0
  159. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/local/app/__init__.py +0 -0
  160. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/local/app/delete.py +0 -0
  161. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/local/app/get.py +0 -0
  162. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/local/app/list.py +0 -0
  163. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/local/app/register.py +0 -0
  164. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/local/app/registered.py +0 -0
  165. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/local/app/sync.py +0 -0
  166. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/local/app/update.py +0 -0
  167. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/local/run/__init__.py +0 -0
  168. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/local/run/create.py +0 -0
  169. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/local/run/get.py +0 -0
  170. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/local/run/input.py +0 -0
  171. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/local/run/list.py +0 -0
  172. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/local/run/logs.py +0 -0
  173. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/local/run/metadata.py +0 -0
  174. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/local/run/visuals.py +0 -0
  175. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/main.py +0 -0
  176. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/manifest/__init__.py +0 -0
  177. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/manifest/init.py +0 -0
  178. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/manifest/validate.py +0 -0
  179. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/mcp/__init__.py +0 -0
  180. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/mcp/serve.py +0 -0
  181. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/mcp/server.py +0 -0
  182. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/mcp/tools/WORKFLOW.md +0 -0
  183. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/mcp/tools/__init__.py +0 -0
  184. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/mcp/tools/_helpers.py +0 -0
  185. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/mcp/tools/acceptance.py +0 -0
  186. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/mcp/tools/account.py +0 -0
  187. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/mcp/tools/app.py +0 -0
  188. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/mcp/tools/batch.py +0 -0
  189. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/mcp/tools/community.py +0 -0
  190. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/mcp/tools/ensemble.py +0 -0
  191. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/mcp/tools/guide.py +0 -0
  192. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/mcp/tools/input_set.py +0 -0
  193. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/mcp/tools/instance.py +0 -0
  194. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/mcp/tools/local.py +0 -0
  195. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/mcp/tools/managed_input.py +0 -0
  196. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/mcp/tools/profile.py +0 -0
  197. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/mcp/tools/run.py +0 -0
  198. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/mcp/tools/scenario.py +0 -0
  199. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/mcp/tools/secrets.py +0 -0
  200. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/mcp/tools/shadow.py +0 -0
  201. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/mcp/tools/sso.py +0 -0
  202. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/mcp/tools/switchback.py +0 -0
  203. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/mcp/tools/version.py +0 -0
  204. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/message.py +0 -0
  205. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/options.py +0 -0
  206. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cli/version.py +0 -0
  207. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cloud/__init__.py +0 -0
  208. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cloud/acceptance_test.py +0 -0
  209. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cloud/account.py +0 -0
  210. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cloud/application/_acceptance.py +0 -0
  211. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cloud/application/_batch_scenario.py +0 -0
  212. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cloud/application/_ensemble.py +0 -0
  213. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cloud/application/_input_set.py +0 -0
  214. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cloud/application/_instance.py +0 -0
  215. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cloud/application/_managed_input.py +0 -0
  216. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cloud/application/_run.py +0 -0
  217. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cloud/application/_secrets.py +0 -0
  218. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cloud/application/_shadow.py +0 -0
  219. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cloud/application/_switchback.py +0 -0
  220. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cloud/application/_utils.py +0 -0
  221. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cloud/application/_version.py +0 -0
  222. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cloud/assets.py +0 -0
  223. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cloud/batch_experiment.py +0 -0
  224. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cloud/community.py +0 -0
  225. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cloud/ensemble.py +0 -0
  226. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cloud/input_set.py +0 -0
  227. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cloud/instance.py +0 -0
  228. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cloud/integration.py +0 -0
  229. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cloud/marketplace.py +0 -0
  230. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cloud/package.py +0 -0
  231. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cloud/scenario.py +0 -0
  232. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cloud/secrets.py +0 -0
  233. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cloud/shadow.py +0 -0
  234. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cloud/sso.py +0 -0
  235. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cloud/switchback.py +0 -0
  236. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cloud/url.py +0 -0
  237. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/cloud/version.py +0 -0
  238. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/content_format.py +0 -0
  239. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/default_app/.gitignore +0 -0
  240. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/default_app/README.md +0 -0
  241. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/default_app/app.yaml +0 -0
  242. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/default_app/input.json +0 -0
  243. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/default_app/main.py +0 -0
  244. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/default_app/requirements.txt +0 -0
  245. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/default_app/src/__init__.py +0 -0
  246. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/default_app/src/visuals.py +0 -0
  247. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/deprecated.py +0 -0
  248. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/input.py +0 -0
  249. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/local/__init__.py +0 -0
  250. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/local/application.py +0 -0
  251. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/local/executor.py +0 -0
  252. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/local/geojson_handler.py +0 -0
  253. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/local/local.py +0 -0
  254. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/local/plotly_handler.py +0 -0
  255. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/local/registry.py +0 -0
  256. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/local/runner.py +0 -0
  257. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/logger.py +0 -0
  258. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/model.py +0 -0
  259. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/options.py +0 -0
  260. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/output.py +0 -0
  261. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/polling.py +0 -0
  262. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/run.py +0 -0
  263. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/safe.py +0 -0
  264. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/status.py +0 -0
  265. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/binary_json_app.yaml +0 -0
  266. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/binary_multi-file_app.yaml +0 -0
  267. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/go_json_app.yaml +0 -0
  268. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/go_json_hello-world/.gitignore +0 -0
  269. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/go_json_hello-world/README.md +0 -0
  270. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/go_json_hello-world/app.yaml +0 -0
  271. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/go_json_hello-world/go.mod +0 -0
  272. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/go_json_hello-world/input.json +0 -0
  273. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/go_json_hello-world/main.go +0 -0
  274. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/go_multi-file_app.yaml +0 -0
  275. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/go_multi-file_hello-world/.gitignore +0 -0
  276. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/go_multi-file_hello-world/README.md +0 -0
  277. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/go_multi-file_hello-world/app.yaml +0 -0
  278. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/go_multi-file_hello-world/go.mod +0 -0
  279. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/go_multi-file_hello-world/inputs/input.json +0 -0
  280. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/go_multi-file_hello-world/main.go +0 -0
  281. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/java_json_app.yaml +0 -0
  282. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/java_json_hello-world/.gitignore +0 -0
  283. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/java_json_hello-world/Main.java +0 -0
  284. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/java_json_hello-world/README.md +0 -0
  285. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/java_json_hello-world/app.yaml +0 -0
  286. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/java_json_hello-world/input.json +0 -0
  287. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/java_json_hello-world/pom.xml +0 -0
  288. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/java_multi-file_app.yaml +0 -0
  289. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/java_multi-file_hello-world/.gitignore +0 -0
  290. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/java_multi-file_hello-world/Main.java +0 -0
  291. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/java_multi-file_hello-world/README.md +0 -0
  292. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/java_multi-file_hello-world/app.yaml +0 -0
  293. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/java_multi-file_hello-world/inputs/input.json +0 -0
  294. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/java_multi-file_hello-world/pom.xml +0 -0
  295. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_json_app.yaml +0 -0
  296. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_json_class-assign/.gitignore +0 -0
  297. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_json_class-assign/README.md +0 -0
  298. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_json_class-assign/app.yaml +0 -0
  299. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_json_class-assign/input.json +0 -0
  300. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_json_class-assign/main.py +0 -0
  301. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_json_class-assign/requirements.txt +0 -0
  302. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_json_class-assign/visualizations.py +0 -0
  303. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_json_demand-alloc/.gitignore +0 -0
  304. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_json_demand-alloc/README.md +0 -0
  305. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_json_demand-alloc/allocation/README.md +0 -0
  306. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_json_demand-alloc/allocation/app.yaml +0 -0
  307. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_json_demand-alloc/allocation/input.json +0 -0
  308. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_json_demand-alloc/allocation/main.py +0 -0
  309. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_json_demand-alloc/allocation/requirements.txt +0 -0
  310. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_json_demand-alloc/allocation/visuals.py +0 -0
  311. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_json_demand-alloc/workflow/README.md +0 -0
  312. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_json_demand-alloc/workflow/app.yaml +0 -0
  313. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_json_demand-alloc/workflow/input.json +0 -0
  314. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_json_demand-alloc/workflow/main.py +0 -0
  315. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_json_demand-alloc/workflow/requirements.txt +0 -0
  316. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_json_demand-alloc/workflow/visuals.py +0 -0
  317. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_json_hello-world/.gitignore +0 -0
  318. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_json_hello-world/README.md +0 -0
  319. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_json_hello-world/app.yaml +0 -0
  320. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_json_hello-world/input.json +0 -0
  321. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_json_hello-world/main.py +0 -0
  322. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_json_hello-world/requirements.txt +0 -0
  323. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_multi-file_app.yaml +0 -0
  324. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_multi-file_class-assign/.gitignore +0 -0
  325. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_multi-file_class-assign/README.md +0 -0
  326. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_multi-file_class-assign/app.yaml +0 -0
  327. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_multi-file_class-assign/inputs/input.json +0 -0
  328. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_multi-file_class-assign/main.py +0 -0
  329. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_multi-file_class-assign/requirements.txt +0 -0
  330. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_multi-file_class-assign/visualizations.py +0 -0
  331. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_multi-file_demand-alloc/README.md +0 -0
  332. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_multi-file_demand-alloc/allocation/README.md +0 -0
  333. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_multi-file_demand-alloc/allocation/app.yaml +0 -0
  334. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_multi-file_demand-alloc/allocation/input.json +0 -0
  335. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_multi-file_demand-alloc/allocation/main.py +0 -0
  336. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_multi-file_demand-alloc/allocation/requirements.txt +0 -0
  337. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_multi-file_demand-alloc/allocation/visuals.py +0 -0
  338. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_multi-file_demand-alloc/workflow/.gitignore +0 -0
  339. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_multi-file_demand-alloc/workflow/README.md +0 -0
  340. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_multi-file_demand-alloc/workflow/app.yaml +0 -0
  341. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_multi-file_demand-alloc/workflow/inputs/input.json +0 -0
  342. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_multi-file_demand-alloc/workflow/main.py +0 -0
  343. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_multi-file_demand-alloc/workflow/requirements.txt +0 -0
  344. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_multi-file_demand-alloc/workflow/visuals.py +0 -0
  345. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_multi-file_hello-world/.gitignore +0 -0
  346. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_multi-file_hello-world/README.md +0 -0
  347. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_multi-file_hello-world/app.yaml +0 -0
  348. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_multi-file_hello-world/inputs/input.json +0 -0
  349. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_multi-file_hello-world/main.py +0 -0
  350. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/nextmv/templates/python_multi-file_hello-world/requirements.txt +0 -0
  351. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/pyproject.toml +0 -0
  352. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/tests/__init__.py +0 -0
  353. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/tests/cli/__init__.py +0 -0
  354. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/tests/cli/test_configuration.py +0 -0
  355. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/tests/cli/test_main.py +0 -0
  356. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/tests/cli/test_mcp.py +0 -0
  357. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/tests/cli/test_version.py +0 -0
  358. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/tests/cloud/__init__.py +0 -0
  359. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/tests/cloud/test_client.py +0 -0
  360. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/tests/cloud/test_instance.py +0 -0
  361. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/tests/cloud/test_package.py +0 -0
  362. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/tests/cloud/test_scenario.py +0 -0
  363. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/tests/integration/__init__.py +0 -0
  364. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/tests/integration/cloud/__init__.py +0 -0
  365. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/tests/integration/cloud/test_integration_cloud.py +0 -0
  366. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/tests/integration/cloud/test_integration_marketplace.py +0 -0
  367. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/tests/local/__init__.py +0 -0
  368. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/tests/local/test_application.py +0 -0
  369. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/tests/local/test_executor.py +0 -0
  370. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/tests/local/test_registry.py +0 -0
  371. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/tests/local/test_runner.py +0 -0
  372. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/tests/scripts/__init__.py +0 -0
  373. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/tests/scripts/options1.py +0 -0
  374. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/tests/scripts/options2.py +0 -0
  375. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/tests/scripts/options3.py +0 -0
  376. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/tests/scripts/options4.py +0 -0
  377. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/tests/scripts/options5.py +0 -0
  378. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/tests/scripts/options6.py +0 -0
  379. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/tests/scripts/options7.py +0 -0
  380. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/tests/test_base_model.py +0 -0
  381. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/tests/test_entrypoint/__init__.py +0 -0
  382. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/tests/test_entrypoint/test_entrypoint.py +0 -0
  383. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/tests/test_input.py +0 -0
  384. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/tests/test_inputs/test_data.csv +0 -0
  385. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/tests/test_inputs/test_data.json +0 -0
  386. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/tests/test_inputs/test_data.txt +0 -0
  387. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/tests/test_logger.py +0 -0
  388. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/tests/test_model.py +0 -0
  389. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/tests/test_options.py +0 -0
  390. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/tests/test_output.py +0 -0
  391. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/tests/test_polling.py +0 -0
  392. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/tests/test_run.py +0 -0
  393. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/tests/test_safe.py +0 -0
  394. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/tests/test_serialization.py +0 -0
  395. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/tests/test_version.py +0 -0
  396. {nextmv-1.4.1.dev4 → nextmv-1.4.2.dev3}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nextmv
3
- Version: 1.4.1.dev4
3
+ Version: 1.4.2.dev3
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.4.2.dev3"
@@ -811,6 +811,9 @@ class Application(
811
811
 
812
812
  if manifest.configuration is not None and manifest.configuration.options is not None:
813
813
  options = manifest.configuration.options.to_dict()
814
+ # Ignore local_only options since they are not meant to be used on the platform
815
+ if "items" in options:
816
+ options["items"] = [item for item in options["items"] if not item.get("local_only", False)]
814
817
  if "format" in options and isinstance(options["format"], list):
815
818
  # the endpoint expects a dictionary with a template key having a list of strings
816
819
  # the app.yaml however defines format as a list of strings, so we need to convert it here
@@ -601,11 +601,10 @@ class Client:
601
601
  str
602
602
  The resolved API endpoint URL.
603
603
  """
604
- url_key_env = os.getenv("NEXTMV_ENDPOINT")
605
604
  if self.url is not None and self.url != "":
606
605
  url = self.url
607
- elif url_key_env is not None and url_key_env != "":
608
- url = url_key_env
606
+ elif (url_env := os.getenv("NEXTMV_ENDPOINT")):
607
+ url = url_env
609
608
  elif profile is not None and profile != "":
610
609
  url = _retrieve_endpoint_from_config(profile)
611
610
  else:
@@ -511,6 +511,8 @@ class ManifestOption(BaseModel):
511
511
  The description of the option.
512
512
  required : bool, default=False
513
513
  Whether the option is required or not.
514
+ local_only : bool, default=False
515
+ Whether the option is only used locally and should not be sent to Nextmv Cloud.
514
516
  additional_attributes : Optional[dict[str, Any]], default=None
515
517
  Optional additional attributes for the option. The Nextmv Cloud may
516
518
  perform validation on these attributes. For example, the maximum
@@ -551,11 +553,28 @@ class ManifestOption(BaseModel):
551
553
  """The description of the option"""
552
554
  required: bool = False
553
555
  """Whether the option is required or not"""
556
+ local_only: bool = False
557
+ """Whether the option is only used locally and should not be sent to Nextmv Cloud."""
554
558
  additional_attributes: dict[str, Any] | None = None
555
559
  """Optional additional attributes for the option."""
556
560
  ui: ManifestOptionUI | None = None
557
561
  """Optional UI attributes for the option."""
558
562
 
563
+ def model_post_init(self, __context) -> None:
564
+ """
565
+ Validations done after parsing the model.
566
+
567
+ Raises
568
+ ------
569
+ ValueError
570
+ If validation fails. A descriptive error message is provided in this case.
571
+ """
572
+
573
+ # It does not make sense to define options as required AND them being local only,
574
+ # since this would make Platform runs via UI cumbersome to impossible.
575
+ if self.required and self.local_only:
576
+ raise ValueError(f"Option '{self.name}' cannot be both required and local only.")
577
+
559
578
  @classmethod
560
579
  def from_option(cls, option: Option) -> "ManifestOption":
561
580
  """
@@ -64,6 +64,12 @@ configuration:
64
64
  control_type: select
65
65
  hidden_from:
66
66
  - operator
67
+ - name: a local only parameter
68
+ option_type: string
69
+ default: local_default
70
+ description: a local only description
71
+ required: false
72
+ local_only: true
67
73
  content:
68
74
  format: "multi-file"
69
75
  multi-file:
@@ -189,7 +189,7 @@ class TestManifest(unittest.TestCase):
189
189
  def test_extract_options(self):
190
190
  manifest = Manifest.from_yaml("tests/cloud")
191
191
  options = manifest.extract_options(should_parse=False)
192
- self.assertEqual(len(options.options), 5)
192
+ self.assertEqual(len(options.options), 6)
193
193
 
194
194
  found = {
195
195
  "string": False,
@@ -500,6 +500,57 @@ class TestManifestOption(unittest.TestCase):
500
500
  self.assertEqual(option.required, manifest_option.required)
501
501
 
502
502
 
503
+ class TestManifestOptionLocalOnly(unittest.TestCase):
504
+ def test_local_only_defaults_to_false(self):
505
+ option = ManifestOption(name="my_option", option_type="string", default="val")
506
+ self.assertFalse(option.local_only)
507
+
508
+ def test_local_only_can_be_set_to_true(self):
509
+ option = ManifestOption(name="my_option", option_type="int", default=0, local_only=True)
510
+ self.assertTrue(option.local_only)
511
+
512
+ def test_required_and_local_only_raises(self):
513
+ with self.assertRaises(ValueError) as ctx:
514
+ ManifestOption(name="my_option", option_type="string", default="val", required=True, local_only=True)
515
+ self.assertIn("my_option", str(ctx.exception))
516
+ self.assertIn("required", str(ctx.exception).lower())
517
+ self.assertIn("local only", str(ctx.exception).lower())
518
+
519
+ def test_local_only_round_trips_through_dict(self):
520
+ original = ManifestOption(name="my_option", option_type="float", default=1.5, local_only=True)
521
+ as_dict = original.to_dict()
522
+ self.assertTrue(as_dict["local_only"])
523
+ restored = ManifestOption.from_dict(as_dict)
524
+ self.assertTrue(restored.local_only)
525
+
526
+ def test_non_local_only_round_trips_through_dict(self):
527
+ original = ManifestOption(name="my_option", option_type="bool", default=False, local_only=False)
528
+ as_dict = original.to_dict()
529
+ self.assertFalse(as_dict["local_only"])
530
+ restored = ManifestOption.from_dict(as_dict)
531
+ self.assertFalse(restored.local_only)
532
+
533
+ def test_local_only_loaded_from_yaml(self):
534
+ manifest = Manifest.from_yaml("tests/cloud")
535
+ items = manifest.configuration.options.items
536
+ local_only_items = [item for item in items if item.local_only]
537
+ self.assertEqual(len(local_only_items), 1)
538
+ item = local_only_items[0]
539
+ self.assertEqual(item.name, "a local only parameter")
540
+ self.assertEqual(item.option_type, "string")
541
+ self.assertEqual(item.default, "local_default")
542
+ self.assertFalse(item.required)
543
+ self.assertTrue(item.local_only)
544
+
545
+ def test_other_options_are_not_local_only(self):
546
+ manifest = Manifest.from_yaml("tests/cloud")
547
+ items = manifest.configuration.options.items
548
+ non_local_only_items = [item for item in items if not item.local_only]
549
+ # All items except the one explicitly marked local_only should have local_only=False.
550
+ for item in non_local_only_items:
551
+ self.assertFalse(item.local_only, msg=f"Option '{item.name}' should not be local_only")
552
+
553
+
503
554
  class TestWriteSampleManifest(unittest.TestCase):
504
555
  def test_writes_python_manifest(self):
505
556
  with tempfile.TemporaryDirectory() as dirpath:
@@ -1 +0,0 @@
1
- __version__ = "v1.4.1.dev4"
File without changes
File without changes
File without changes
File without changes
File without changes