anncsu-sdk 0.0.9.dev15__tar.gz → 0.0.9.dev17__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 (496) hide show
  1. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/PKG-INFO +1 -1
  2. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/scripts/post_speakeasy_generation.py +78 -5
  3. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/accessi/accessi.py +1 -1
  4. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/accessi/errors/accesso_validation.py +22 -0
  5. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/accessi/models/validated.py +9 -0
  6. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/accessi/status.py +1 -1
  7. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/accessi/test_accesso_validation.py +99 -9
  8. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/cli/test_accesso.py +12 -0
  9. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/test_post_speakeasy_generation.py +80 -0
  10. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/.devcontainer/README.md +0 -0
  11. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/.devcontainer/devcontainer.json +0 -0
  12. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/.devcontainer/setup.sh +0 -0
  13. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/.gitattributes +0 -0
  14. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/.github/workflows/README.md +0 -0
  15. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/.github/workflows/ci.yml +0 -0
  16. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/.github/workflows/publish.yml +0 -0
  17. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/.gitignore +0 -0
  18. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/.pre-commit-config.yaml +0 -0
  19. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/.python-version +0 -0
  20. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/.speakeasy/gen.lock +0 -0
  21. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/.speakeasy/gen.yaml +0 -0
  22. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/.speakeasy/out.accessi.openapi.yaml +0 -0
  23. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/.speakeasy/out.coordinate.openapi.yaml +0 -0
  24. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/.speakeasy/out.openapi.yaml +0 -0
  25. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/.speakeasy/workflow.lock +0 -0
  26. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/.speakeasy/workflow.yaml +0 -0
  27. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/.vscode/settings.json +0 -0
  28. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/CONTRIBUTING.md +0 -0
  29. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/LICENSE +0 -0
  30. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/README.md +0 -0
  31. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/USAGE.md +0 -0
  32. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/CLI.md +0 -0
  33. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/SECURITY.md +0 -0
  34. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/VALIDATION.md +0 -0
  35. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoaccessigetpathparambadrequesterror.md +0 -0
  36. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoaccessigetpathparaminternalservererror.md +0 -0
  37. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoaccessigetpathparammethodnotallowederror.md +0 -0
  38. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoaccessigetpathparamnotfounderror.md +0 -0
  39. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoaccessigetpathparamunprocessableentityerror.md +0 -0
  40. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoaccessigetqueryparambadrequesterror.md +0 -0
  41. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoaccessigetqueryparaminternalservererror.md +0 -0
  42. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoaccessigetqueryparammethodnotallowederror.md +0 -0
  43. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoaccessigetqueryparamnotfounderror.md +0 -0
  44. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoaccessigetqueryparamunprocessableentityerror.md +0 -0
  45. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoaccessipostbadrequesterror.md +0 -0
  46. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoaccessipostinternalservererror.md +0 -0
  47. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoaccessipostmethodnotallowederror.md +0 -0
  48. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoaccessipostnotfounderror.md +0 -0
  49. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoaccessipostunprocessableentityerror.md +0 -0
  50. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoaccessiproggetpathparambadrequesterror.md +0 -0
  51. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoaccessiproggetpathparaminternalservererror.md +0 -0
  52. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoaccessiproggetpathparammethodnotallowederror.md +0 -0
  53. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoaccessiproggetpathparamnotfounderror.md +0 -0
  54. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoaccessiproggetpathparamunprocessableentityerror.md +0 -0
  55. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoaccessiproggetqueryparambadrequesterror.md +0 -0
  56. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoaccessiproggetqueryparaminternalservererror.md +0 -0
  57. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoaccessiproggetqueryparammethodnotallowederror.md +0 -0
  58. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoaccessiproggetqueryparamnotfounderror.md +0 -0
  59. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoaccessiproggetqueryparamunprocessableentityerror.md +0 -0
  60. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoaccessiprogpostbadrequesterror.md +0 -0
  61. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoaccessiprogpostinternalservererror.md +0 -0
  62. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoaccessiprogpostmethodnotallowederror.md +0 -0
  63. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoaccessiprogpostnotfounderror.md +0 -0
  64. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoaccessiprogpostunprocessableentityerror.md +0 -0
  65. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoodonimigetpathparambadrequesterror.md +0 -0
  66. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoodonimigetpathparaminternalservererror.md +0 -0
  67. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoodonimigetpathparammethodnotallowederror.md +0 -0
  68. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoodonimigetpathparamnotfounderror.md +0 -0
  69. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoodonimigetpathparamunprocessableentityerror.md +0 -0
  70. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoodonimigetqueryparambadrequesterror.md +0 -0
  71. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoodonimigetqueryparaminternalservererror.md +0 -0
  72. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoodonimigetqueryparammethodnotallowederror.md +0 -0
  73. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoodonimigetqueryparamnotfounderror.md +0 -0
  74. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoodonimigetqueryparamunprocessableentityerror.md +0 -0
  75. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoodonimipostbadrequesterror.md +0 -0
  76. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoodonimipostinternalservererror.md +0 -0
  77. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoodonimipostmethodnotallowederror.md +0 -0
  78. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoodonimipostnotfounderror.md +0 -0
  79. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoodonimipostunprocessableentityerror.md +0 -0
  80. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoodonimiproggetpathparambadrequesterror.md +0 -0
  81. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoodonimiproggetpathparaminternalservererror.md +0 -0
  82. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoodonimiproggetpathparammethodnotallowederror.md +0 -0
  83. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoodonimiproggetpathparamnotfounderror.md +0 -0
  84. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoodonimiproggetpathparamunprocessableentityerror.md +0 -0
  85. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoodonimiproggetqueryparambadrequesterror.md +0 -0
  86. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoodonimiproggetqueryparaminternalservererror.md +0 -0
  87. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoodonimiproggetqueryparammethodnotallowederror.md +0 -0
  88. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoodonimiproggetqueryparamnotfounderror.md +0 -0
  89. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoodonimiproggetqueryparamunprocessableentityerror.md +0 -0
  90. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoodonimiprogpostbadrequesterror.md +0 -0
  91. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoodonimiprogpostinternalservererror.md +0 -0
  92. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoodonimiprogpostmethodnotallowederror.md +0 -0
  93. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoodonimiprogpostnotfounderror.md +0 -0
  94. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/elencoodonimiprogpostunprocessableentityerror.md +0 -0
  95. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/esisteaccessogetpathparambadrequesterror.md +0 -0
  96. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/esisteaccessogetpathparaminternalservererror.md +0 -0
  97. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/esisteaccessogetpathparammethodnotallowederror.md +0 -0
  98. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/esisteaccessogetpathparamunprocessableentityerror.md +0 -0
  99. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/esisteaccessogetqueryparambadrequesterror.md +0 -0
  100. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/esisteaccessogetqueryparaminternalservererror.md +0 -0
  101. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/esisteaccessogetqueryparammethodnotallowederror.md +0 -0
  102. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/esisteaccessogetqueryparamunprocessableentityerror.md +0 -0
  103. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/esisteaccessopostbadrequesterror.md +0 -0
  104. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/esisteaccessopostinternalservererror.md +0 -0
  105. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/esisteaccessopostmethodnotallowederror.md +0 -0
  106. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/esisteaccessopostunprocessableentityerror.md +0 -0
  107. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/esisteodonimogetpathparambadrequesterror.md +0 -0
  108. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/esisteodonimogetpathparaminternalservererror.md +0 -0
  109. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/esisteodonimogetpathparammethodnotallowederror.md +0 -0
  110. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/esisteodonimogetpathparamunprocessableentityerror.md +0 -0
  111. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/esisteodonimogetqueryparambadrequesterror.md +0 -0
  112. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/esisteodonimogetqueryparaminternalservererror.md +0 -0
  113. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/esisteodonimogetqueryparammethodnotallowederror.md +0 -0
  114. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/esisteodonimogetqueryparamunprocessableentityerror.md +0 -0
  115. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/esisteodonimopostbadrequesterror.md +0 -0
  116. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/esisteodonimopostinternalservererror.md +0 -0
  117. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/esisteodonimopostmethodnotallowederror.md +0 -0
  118. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/esisteodonimopostunprocessableentityerror.md +0 -0
  119. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/prognazaccgetpathparambadrequesterror.md +0 -0
  120. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/prognazaccgetpathparaminternalservererror.md +0 -0
  121. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/prognazaccgetpathparammethodnotallowederror.md +0 -0
  122. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/prognazaccgetpathparamnotfounderror.md +0 -0
  123. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/prognazaccgetpathparamunprocessableentityerror.md +0 -0
  124. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/prognazaccgetqueryparambadrequesterror.md +0 -0
  125. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/prognazaccgetqueryparaminternalservererror.md +0 -0
  126. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/prognazaccgetqueryparammethodnotallowederror.md +0 -0
  127. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/prognazaccgetqueryparamnotfounderror.md +0 -0
  128. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/prognazaccgetqueryparamunprocessableentityerror.md +0 -0
  129. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/prognazaccpostbadrequesterror.md +0 -0
  130. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/prognazaccpostinternalservererror.md +0 -0
  131. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/prognazaccpostmethodnotallowederror.md +0 -0
  132. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/prognazaccpostnotfounderror.md +0 -0
  133. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/prognazaccpostunprocessableentityerror.md +0 -0
  134. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/prognazareagetpathparambadrequesterror.md +0 -0
  135. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/prognazareagetpathparaminternalservererror.md +0 -0
  136. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/prognazareagetpathparammethodnotallowederror.md +0 -0
  137. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/prognazareagetpathparamnotfounderror.md +0 -0
  138. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/prognazareagetpathparamunprocessableentityerror.md +0 -0
  139. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/prognazareagetqueryparambadrequesterror.md +0 -0
  140. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/prognazareagetqueryparaminternalservererror.md +0 -0
  141. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/prognazareagetqueryparammethodnotallowederror.md +0 -0
  142. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/prognazareagetqueryparamnotfounderror.md +0 -0
  143. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/prognazareagetqueryparamunprocessableentityerror.md +0 -0
  144. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/prognazareapostbadrequesterror.md +0 -0
  145. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/prognazareapostinternalservererror.md +0 -0
  146. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/prognazareapostmethodnotallowederror.md +0 -0
  147. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/prognazareapostnotfounderror.md +0 -0
  148. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/prognazareapostunprocessableentityerror.md +0 -0
  149. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/errors/serviceunavailableerror.md +0 -0
  150. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/elencoaccessigetpathparamdata.md +0 -0
  151. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/elencoaccessigetpathparamrequest.md +0 -0
  152. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/elencoaccessigetpathparamresponse.md +0 -0
  153. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/elencoaccessigetqueryparamdata.md +0 -0
  154. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/elencoaccessigetqueryparamrequest.md +0 -0
  155. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/elencoaccessigetqueryparamresponse.md +0 -0
  156. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/elencoaccessipostdata.md +0 -0
  157. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/elencoaccessipostrequest.md +0 -0
  158. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/elencoaccessipostresponse.md +0 -0
  159. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/elencoaccessiproggetpathparamdata.md +0 -0
  160. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/elencoaccessiproggetpathparamrequest.md +0 -0
  161. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/elencoaccessiproggetpathparamresponse.md +0 -0
  162. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/elencoaccessiproggetqueryparamdata.md +0 -0
  163. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/elencoaccessiproggetqueryparamrequest.md +0 -0
  164. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/elencoaccessiproggetqueryparamresponse.md +0 -0
  165. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/elencoaccessiprogpostdata.md +0 -0
  166. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/elencoaccessiprogpostrequest.md +0 -0
  167. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/elencoaccessiprogpostresponse.md +0 -0
  168. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/elencoodonimigetpathparamdata.md +0 -0
  169. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/elencoodonimigetpathparamrequest.md +0 -0
  170. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/elencoodonimigetpathparamresponse.md +0 -0
  171. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/elencoodonimigetqueryparamdata.md +0 -0
  172. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/elencoodonimigetqueryparamrequest.md +0 -0
  173. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/elencoodonimigetqueryparamresponse.md +0 -0
  174. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/elencoodonimipostdata.md +0 -0
  175. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/elencoodonimipostrequest.md +0 -0
  176. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/elencoodonimipostresponse.md +0 -0
  177. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/elencoodonimiproggetpathparamdata.md +0 -0
  178. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/elencoodonimiproggetpathparamrequest.md +0 -0
  179. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/elencoodonimiproggetpathparamresponse.md +0 -0
  180. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/elencoodonimiproggetqueryparamdata.md +0 -0
  181. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/elencoodonimiproggetqueryparamrequest.md +0 -0
  182. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/elencoodonimiproggetqueryparamresponse.md +0 -0
  183. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/elencoodonimiprogpostdata.md +0 -0
  184. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/elencoodonimiprogpostrequest.md +0 -0
  185. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/elencoodonimiprogpostresponse.md +0 -0
  186. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/esisteaccessogetpathparamrequest.md +0 -0
  187. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/esisteaccessogetpathparamresponse.md +0 -0
  188. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/esisteaccessogetqueryparamrequest.md +0 -0
  189. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/esisteaccessogetqueryparamresponse.md +0 -0
  190. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/esisteaccessopostrequest.md +0 -0
  191. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/esisteaccessopostresponse.md +0 -0
  192. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/esisteodonimogetpathparamrequest.md +0 -0
  193. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/esisteodonimogetpathparamresponse.md +0 -0
  194. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/esisteodonimogetqueryparamrequest.md +0 -0
  195. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/esisteodonimogetqueryparamresponse.md +0 -0
  196. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/esisteodonimopostrequest.md +0 -0
  197. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/esisteodonimopostresponse.md +0 -0
  198. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/prognazaccgetpathparamdata.md +0 -0
  199. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/prognazaccgetpathparamrequest.md +0 -0
  200. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/prognazaccgetpathparamresponse.md +0 -0
  201. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/prognazaccgetqueryparamdata.md +0 -0
  202. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/prognazaccgetqueryparamrequest.md +0 -0
  203. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/prognazaccgetqueryparamresponse.md +0 -0
  204. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/prognazaccpostdata.md +0 -0
  205. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/prognazaccpostrequest.md +0 -0
  206. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/prognazaccpostresponse.md +0 -0
  207. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/prognazareagetpathparamdata.md +0 -0
  208. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/prognazareagetpathparamrequest.md +0 -0
  209. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/prognazareagetpathparamresponse.md +0 -0
  210. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/prognazareagetqueryparamdata.md +0 -0
  211. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/prognazareagetqueryparamrequest.md +0 -0
  212. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/prognazareagetqueryparamresponse.md +0 -0
  213. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/prognazareapostdata.md +0 -0
  214. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/prognazareapostrequest.md +0 -0
  215. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/prognazareapostresponse.md +0 -0
  216. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/showstatusresponse.md +0 -0
  217. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/models/utils/retryconfig.md +0 -0
  218. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/sdk-accessi.md +0 -0
  219. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/sdk-coordinate.md +0 -0
  220. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/sdk-pa.md +0 -0
  221. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/sdks/anncsu/README.md +0 -0
  222. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/sdks/jsonpost/README.md +0 -0
  223. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/sdks/pathparam/README.md +0 -0
  224. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/sdks/queryparam/README.md +0 -0
  225. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/sdks/status/README.md +0 -0
  226. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/docs/speakeasy.md +0 -0
  227. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/oas/.spectral.yaml +0 -0
  228. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/oas/README.md +0 -0
  229. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/oas/dev/Specifica API - ANNCSU - Aggiornamento accessi.yaml +0 -0
  230. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/oas/dev/Specifica API - ANNCSU - Aggiornamento coordinate massivo.yml +0 -0
  231. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/oas/dev/Specifica API - ANNCSU - Aggiornamento coordinate.yml +0 -0
  232. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/oas/dev/Specifica API - ANNCSU /342/200/223 Consultazione per le PA.yaml" +0 -0
  233. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/oas/prod/Specifica API - ANNCSU /342/200/223 Consultazione per le PA.yaml" +0 -0
  234. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/pylintrc +0 -0
  235. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/pyproject.toml +0 -0
  236. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/scripts/create_client_assertion.py +0 -0
  237. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/scripts/publish.sh +0 -0
  238. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/accessi/__init__.py +0 -0
  239. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/accessi/_version.py +0 -0
  240. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/accessi/errors/__init__.py +0 -0
  241. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/accessi/errors/anncsuerror.py +0 -0
  242. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/accessi/errors/apierror.py +0 -0
  243. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/accessi/errors/no_response_error.py +0 -0
  244. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/accessi/errors/responsevalidationerror.py +0 -0
  245. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/accessi/errors/rispostaerrore.py +0 -0
  246. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/accessi/errors/show_statusop.py +0 -0
  247. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/accessi/models/__init__.py +0 -0
  248. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/accessi/models/richiestaoperazione.py +0 -0
  249. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/accessi/models/rispostaoperazione.py +0 -0
  250. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/accessi/models/security.py +0 -0
  251. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/accessi/models/show_statusop.py +0 -0
  252. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/accessi/py.typed +0 -0
  253. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/accessi/sdk.py +0 -0
  254. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/accessi/sdkconfiguration.py +0 -0
  255. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/cli/__init__.py +0 -0
  256. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/cli/app.py +0 -0
  257. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/cli/commands/__init__.py +0 -0
  258. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/cli/commands/accesso.py +0 -0
  259. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/cli/commands/assertion.py +0 -0
  260. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/cli/commands/auth.py +0 -0
  261. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/cli/commands/bulk.py +0 -0
  262. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/cli/commands/config.py +0 -0
  263. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/cli/commands/constants.py +0 -0
  264. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/cli/commands/coordinate.py +0 -0
  265. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/cli/commands/pa.py +0 -0
  266. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/cli/models.py +0 -0
  267. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/__init__.py +0 -0
  268. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/auth.py +0 -0
  269. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/basesdk.py +0 -0
  270. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/config.py +0 -0
  271. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/errors/__init__.py +0 -0
  272. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/errors/apierror.py +0 -0
  273. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/errors/audience_mismatch.py +0 -0
  274. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/errors/base.py +0 -0
  275. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/errors/digest_serialization_mismatch.py +0 -0
  276. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/errors/no_response_error.py +0 -0
  277. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/errors/responsevalidationerror.py +0 -0
  278. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/hooks/__init__.py +0 -0
  279. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/hooks/modi_hook.py +0 -0
  280. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/hooks/registration.py +0 -0
  281. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/hooks/sdkhooks.py +0 -0
  282. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/hooks/token_validation.py +0 -0
  283. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/hooks/types.py +0 -0
  284. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/httpclient.py +0 -0
  285. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/modi.py +0 -0
  286. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/pdnd_assertion.py +0 -0
  287. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/pdnd_token.py +0 -0
  288. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/sdk/__init__.py +0 -0
  289. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/sdk/basesdk.py +0 -0
  290. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/sdk/httpclient.py +0 -0
  291. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/sdk/protocols.py +0 -0
  292. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/sdk/types/__init__.py +0 -0
  293. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/sdk/types/basemodel.py +0 -0
  294. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/sdk/utils/__init__.py +0 -0
  295. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/sdk/utils/annotations.py +0 -0
  296. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/sdk/utils/datetimes.py +0 -0
  297. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/sdk/utils/dynamic_imports.py +0 -0
  298. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/sdk/utils/enums.py +0 -0
  299. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/sdk/utils/eventstreaming.py +0 -0
  300. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/sdk/utils/forms.py +0 -0
  301. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/sdk/utils/headers.py +0 -0
  302. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/sdk/utils/logger.py +0 -0
  303. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/sdk/utils/metadata.py +0 -0
  304. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/sdk/utils/queryparams.py +0 -0
  305. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/sdk/utils/requestbodies.py +0 -0
  306. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/sdk/utils/retries.py +0 -0
  307. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/sdk/utils/security.py +0 -0
  308. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/sdk/utils/serializers.py +0 -0
  309. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/sdk/utils/unmarshal_json_response.py +0 -0
  310. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/sdk/utils/url.py +0 -0
  311. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/sdk/utils/values.py +0 -0
  312. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/sdkconfiguration.py +0 -0
  313. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/security.py +0 -0
  314. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/session.py +0 -0
  315. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/types/__init__.py +0 -0
  316. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/utils/__init__.py +0 -0
  317. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/validation/__init__.py +0 -0
  318. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/validation/examples.py +0 -0
  319. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/validation/response_validator.py +0 -0
  320. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/common/validation/validators.py +0 -0
  321. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/coordinate/__init__.py +0 -0
  322. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/coordinate/_version.py +0 -0
  323. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/coordinate/bulk/__init__.py +0 -0
  324. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/coordinate/bulk/db.py +0 -0
  325. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/coordinate/bulk/dryrun.py +0 -0
  326. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/coordinate/bulk/executor.py +0 -0
  327. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/coordinate/bulk/importer.py +0 -0
  328. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/coordinate/bulk/reporter.py +0 -0
  329. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/coordinate/errors/__init__.py +0 -0
  330. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/coordinate/errors/anncsuerror.py +0 -0
  331. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/coordinate/errors/apierror.py +0 -0
  332. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/coordinate/errors/coordinate_validation.py +0 -0
  333. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/coordinate/errors/no_response_error.py +0 -0
  334. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/coordinate/errors/responsevalidationerror.py +0 -0
  335. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/coordinate/errors/risposta_validation.py +0 -0
  336. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/coordinate/errors/rispostaerrore.py +0 -0
  337. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/coordinate/errors/show_statusop.py +0 -0
  338. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/coordinate/jsonpost.py +0 -0
  339. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/coordinate/models/__init__.py +0 -0
  340. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/coordinate/models/richiestaoperazione.py +0 -0
  341. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/coordinate/models/rispostaoperazione.py +0 -0
  342. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/coordinate/models/security.py +0 -0
  343. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/coordinate/models/show_statusop.py +0 -0
  344. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/coordinate/models/validated.py +0 -0
  345. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/coordinate/py.typed +0 -0
  346. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/coordinate/sdk.py +0 -0
  347. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/coordinate/sdkconfiguration.py +0 -0
  348. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/coordinate/status.py +0 -0
  349. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/__init__.py +0 -0
  350. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/_hooks/__init__.py +0 -0
  351. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/_hooks/registration.py +0 -0
  352. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/_hooks/sdkhooks.py +0 -0
  353. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/_hooks/types.py +0 -0
  354. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/_version.py +0 -0
  355. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/errors/__init__.py +0 -0
  356. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/errors/anncsuerror.py +0 -0
  357. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/errors/apierror.py +0 -0
  358. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/errors/elencoaccessigetpathparamop.py +0 -0
  359. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/errors/elencoaccessigetqueryparamop.py +0 -0
  360. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/errors/elencoaccessipostop.py +0 -0
  361. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/errors/elencoaccessiproggetpathparamop.py +0 -0
  362. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/errors/elencoaccessiproggetqueryparamop.py +0 -0
  363. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/errors/elencoaccessiprogpostop.py +0 -0
  364. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/errors/elencoodonimigetpathparamop.py +0 -0
  365. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/errors/elencoodonimigetqueryparamop.py +0 -0
  366. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/errors/elencoodonimipostop.py +0 -0
  367. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/errors/elencoodonimiproggetpathparamop.py +0 -0
  368. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/errors/elencoodonimiproggetqueryparamop.py +0 -0
  369. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/errors/elencoodonimiprogpostop.py +0 -0
  370. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/errors/esisteaccessogetpathparamop.py +0 -0
  371. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/errors/esisteaccessogetqueryparamop.py +0 -0
  372. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/errors/esisteaccessopostop.py +0 -0
  373. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/errors/esisteodonimogetpathparamop.py +0 -0
  374. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/errors/esisteodonimogetqueryparamop.py +0 -0
  375. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/errors/esisteodonimopostop.py +0 -0
  376. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/errors/no_response_error.py +0 -0
  377. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/errors/prognazaccgetpathparamop.py +0 -0
  378. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/errors/prognazaccgetqueryparamop.py +0 -0
  379. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/errors/prognazaccpostop.py +0 -0
  380. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/errors/prognazareagetpathparamop.py +0 -0
  381. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/errors/prognazareagetqueryparamop.py +0 -0
  382. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/errors/prognazareapostop.py +0 -0
  383. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/errors/responsevalidationerror.py +0 -0
  384. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/errors/show_statusop.py +0 -0
  385. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/jsonpost.py +0 -0
  386. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/models/__init__.py +0 -0
  387. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/models/elencoaccessigetpathparamop.py +0 -0
  388. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/models/elencoaccessigetqueryparamop.py +0 -0
  389. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/models/elencoaccessipostop.py +0 -0
  390. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/models/elencoaccessiproggetpathparamop.py +0 -0
  391. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/models/elencoaccessiproggetqueryparamop.py +0 -0
  392. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/models/elencoaccessiprogpostop.py +0 -0
  393. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/models/elencoodonimigetpathparamop.py +0 -0
  394. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/models/elencoodonimigetqueryparamop.py +0 -0
  395. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/models/elencoodonimipostop.py +0 -0
  396. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/models/elencoodonimiproggetpathparamop.py +0 -0
  397. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/models/elencoodonimiproggetqueryparamop.py +0 -0
  398. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/models/elencoodonimiprogpostop.py +0 -0
  399. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/models/esisteaccessogetpathparamop.py +0 -0
  400. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/models/esisteaccessogetqueryparamop.py +0 -0
  401. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/models/esisteaccessopostop.py +0 -0
  402. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/models/esisteodonimogetpathparamop.py +0 -0
  403. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/models/esisteodonimogetqueryparamop.py +0 -0
  404. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/models/esisteodonimopostop.py +0 -0
  405. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/models/prognazaccgetpathparamop.py +0 -0
  406. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/models/prognazaccgetqueryparamop.py +0 -0
  407. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/models/prognazaccpostop.py +0 -0
  408. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/models/prognazareagetpathparamop.py +0 -0
  409. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/models/prognazareagetqueryparamop.py +0 -0
  410. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/models/prognazareapostop.py +0 -0
  411. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/models/show_statusop.py +0 -0
  412. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/pathparam.py +0 -0
  413. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/py.typed +0 -0
  414. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/queryparam.py +0 -0
  415. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/sdk.py +0 -0
  416. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/sdkconfiguration.py +0 -0
  417. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/src/anncsu/pa/status.py +0 -0
  418. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/README.md +0 -0
  419. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/accessi/__init__.py +0 -0
  420. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/accessi/test_do_request_signature.py +0 -0
  421. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/accessi/test_imports.py +0 -0
  422. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/cli/__init__.py +0 -0
  423. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/cli/conftest.py +0 -0
  424. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/cli/test_assertion.py +0 -0
  425. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/cli/test_auth.py +0 -0
  426. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/cli/test_config.py +0 -0
  427. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/cli/test_coordinate.py +0 -0
  428. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/cli/test_coordinate_bulk.py +0 -0
  429. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/cli/test_duckdb_batch.py +0 -0
  430. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/cli/test_main.py +0 -0
  431. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/cli/test_pa.py +0 -0
  432. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/cli/test_raw_output.py +0 -0
  433. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/cli/test_token_endpoint_resolution.py +0 -0
  434. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/common/__init__.py +0 -0
  435. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/common/test_auth_modi_integration.py +0 -0
  436. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/common/test_cli_env_override.py +0 -0
  437. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/common/test_config.py +0 -0
  438. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/common/test_imports.py +0 -0
  439. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/common/test_modi.py +0 -0
  440. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/common/test_modi_hook.py +0 -0
  441. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/common/test_pdnd_assertion.py +0 -0
  442. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/common/test_pdnd_auth_manager.py +0 -0
  443. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/common/test_pdnd_token.py +0 -0
  444. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/common/test_security.py +0 -0
  445. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/common/test_security_basemodel.py +0 -0
  446. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/common/test_session.py +0 -0
  447. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/common/test_token_validation_hook.py +0 -0
  448. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/conftest.py +0 -0
  449. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/coordinate/__init__.py +0 -0
  450. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/coordinate/bulk/__init__.py +0 -0
  451. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/coordinate/bulk/test_db.py +0 -0
  452. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/coordinate/bulk/test_dryrun.py +0 -0
  453. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/coordinate/bulk/test_executor.py +0 -0
  454. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/coordinate/bulk/test_importer.py +0 -0
  455. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/coordinate/bulk/test_integration.py +0 -0
  456. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/coordinate/bulk/test_reporter.py +0 -0
  457. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/coordinate/test_coordinate_validation.py +0 -0
  458. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/coordinate/test_imports.py +0 -0
  459. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/coordinate/test_risposta_validation.py +0 -0
  460. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/coordinate/test_sdk_hooks_integration.py +0 -0
  461. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/integration/__init__.py +0 -0
  462. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/integration/coordinate/__init__.py +0 -0
  463. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/integration/coordinate/test_jsonpost_async_httpx.py +0 -0
  464. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/integration/coordinate/test_jsonpost_httpx.py +0 -0
  465. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/integration/coordinate/test_status_async_httpx.py +0 -0
  466. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/integration/coordinate/test_status_httpx.py +0 -0
  467. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/integration/pa/__init__.py +0 -0
  468. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/integration/pa/test_jsonpost_async_httpx.py +0 -0
  469. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/integration/pa/test_jsonpost_httpx.py +0 -0
  470. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/integration/pa/test_pathparam_async_httpx.py +0 -0
  471. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/integration/pa/test_pathparam_httpx.py +0 -0
  472. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/integration/pa/test_queryparam_async_httpx.py +0 -0
  473. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/integration/pa/test_queryparam_httpx.py +0 -0
  474. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/integration/pa/test_status_httpx.py +0 -0
  475. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/integration/test_sdk_instantiation.py +0 -0
  476. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/integration/test_security_in_requests.py +0 -0
  477. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/pa/__init__.py +0 -0
  478. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/pa/test_imports.py +0 -0
  479. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/pa/test_response_field_mapping.py +0 -0
  480. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/validation/__init__.py +0 -0
  481. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/validation/coordinate/__init__.py +0 -0
  482. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/validation/coordinate/test_coordinate_operations_validation.py +0 -0
  483. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/validation/coordinate/test_model_factories.py +0 -0
  484. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/validation/coordinate/test_validators.py +0 -0
  485. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/validation/coordinate/test_validators_property.py +0 -0
  486. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/validation/pa/ADVANCED_TESTING.md +0 -0
  487. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/validation/pa/README.md +0 -0
  488. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/validation/pa/README_COMPREHENSIVE_TESTS.md +0 -0
  489. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/validation/pa/__init__.py +0 -0
  490. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/validation/pa/test_all_operations_validation.py +0 -0
  491. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/validation/pa/test_model_factories.py +0 -0
  492. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/validation/pa/test_model_factories_comprehensive.py +0 -0
  493. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/validation/pa/test_validators.py +0 -0
  494. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/validation/pa/test_validators_property.py +0 -0
  495. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/tests/validation/test_response_validator.py +0 -0
  496. {anncsu_sdk-0.0.9.dev15 → anncsu_sdk-0.0.9.dev17}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: anncsu-sdk
3
- Version: 0.0.9.dev15
3
+ Version: 0.0.9.dev17
4
4
  Summary: ANNCSU Software Development Kit for API consumption
5
5
  Author-email: Francesco Bartoli <francesco.bartoli@geobeyond.it>
6
6
  License-File: LICENSE
@@ -370,10 +370,53 @@ def fix_do_request_kwarg(package_path: Path, dry_run: bool = False) -> list[str]
370
370
  return fixed
371
371
 
372
372
 
373
+ # Speakeasy 1.7+ emits ``from anncsu.common.sdk.utils import unmarshal_json_response``
374
+ # but ``unmarshal_json_response`` is a sub-module whose name collides with the
375
+ # inner function. Python resolves the import to the module, breaking the call
376
+ # with ``TypeError: 'module' object is not callable``. See issue #28.
377
+ UNMARSHAL_IMPORT_PATTERN = re.compile(
378
+ r"^from anncsu\.common\.sdk\.utils import unmarshal_json_response$",
379
+ flags=re.MULTILINE,
380
+ )
381
+ UNMARSHAL_IMPORT_REPLACEMENT = (
382
+ "from anncsu.common.sdk.utils.unmarshal_json_response import "
383
+ "unmarshal_json_response"
384
+ )
385
+
386
+
387
+ def fix_unmarshal_import(package_path: Path, dry_run: bool = False) -> list[str]:
388
+ """Rewrite the ambiguous package-level ``unmarshal_json_response`` import
389
+ to the explicit sub-module form used by the pa/coordinate packages."""
390
+ fixed: list[str] = []
391
+
392
+ for py_file in package_path.rglob("*.py"):
393
+ if "__pycache__" in str(py_file):
394
+ continue
395
+
396
+ content = py_file.read_text()
397
+ new_content, count = UNMARSHAL_IMPORT_PATTERN.subn(
398
+ UNMARSHAL_IMPORT_REPLACEMENT, content
399
+ )
400
+
401
+ if count > 0:
402
+ if not dry_run:
403
+ py_file.write_text(new_content)
404
+ rel_path = py_file.relative_to(package_path)
405
+ fixed.append(str(rel_path))
406
+ console.print(
407
+ f" [green]Fixed unmarshal_json_response import ({count}x):[/green] {rel_path}"
408
+ )
409
+
410
+ return fixed
411
+
412
+
373
413
  def process_package(
374
414
  package_name: str, dry_run: bool = False
375
- ) -> tuple[int, int, int, int]:
376
- """Process a single API package. Returns (deleted, modified, fixed, do_request_fixed)."""
415
+ ) -> tuple[int, int, int, int, int]:
416
+ """Process a single API package.
417
+
418
+ Returns (deleted, modified, fixed, do_request_fixed, unmarshal_fixed).
419
+ """
377
420
  package_path = SDK_ROOT / package_name
378
421
 
379
422
  if not package_path.exists():
@@ -407,7 +450,21 @@ def process_package(
407
450
  if not do_request_fixed:
408
451
  console.print(" [dim]No do_request kwargs to fix[/dim]")
409
452
 
410
- return len(deleted), len(modified), len(fixed), len(do_request_fixed)
453
+ # Step 5: Fix unmarshal_json_response import (Issue #28)
454
+ console.print(
455
+ "\n[bold]5. Fixing unmarshal_json_response import (Issue #28)...[/bold]"
456
+ )
457
+ unmarshal_fixed = fix_unmarshal_import(package_path, dry_run)
458
+ if not unmarshal_fixed:
459
+ console.print(" [dim]No unmarshal_json_response imports to fix[/dim]")
460
+
461
+ return (
462
+ len(deleted),
463
+ len(modified),
464
+ len(fixed),
465
+ len(do_request_fixed),
466
+ len(unmarshal_fixed),
467
+ )
411
468
 
412
469
 
413
470
  @app.command()
@@ -454,21 +511,36 @@ def main(
454
511
  total_modified = 0
455
512
  total_fixed = 0
456
513
  total_do_request_fixed = 0
514
+ total_unmarshal_fixed = 0
457
515
 
458
516
  if all_packages:
459
517
  # Process all known API packages
460
518
  for pkg in ALL_PACKAGES:
461
- deleted, modified, fixed, do_request_fixed = process_package(pkg, dry_run)
519
+ (
520
+ deleted,
521
+ modified,
522
+ fixed,
523
+ do_request_fixed,
524
+ unmarshal_fixed,
525
+ ) = process_package(pkg, dry_run)
462
526
  total_deleted += deleted
463
527
  total_modified += modified
464
528
  total_fixed += fixed
465
529
  total_do_request_fixed += do_request_fixed
530
+ total_unmarshal_fixed += unmarshal_fixed
466
531
  else:
467
- deleted, modified, fixed, do_request_fixed = process_package(package, dry_run)
532
+ (
533
+ deleted,
534
+ modified,
535
+ fixed,
536
+ do_request_fixed,
537
+ unmarshal_fixed,
538
+ ) = process_package(package, dry_run)
468
539
  total_deleted = deleted
469
540
  total_modified = modified
470
541
  total_fixed = fixed
471
542
  total_do_request_fixed = do_request_fixed
543
+ total_unmarshal_fixed = unmarshal_fixed
472
544
 
473
545
  # Summary
474
546
  console.print("\n" + "=" * 50)
@@ -477,6 +549,7 @@ def main(
477
549
  console.print(f" Files modified: {total_modified}")
478
550
  console.print(f" Fields fixed: {total_fixed}")
479
551
  console.print(f" do_request fixed: {total_do_request_fixed}")
552
+ console.print(f" unmarshal fixed: {total_unmarshal_fixed}")
480
553
 
481
554
  if dry_run:
482
555
  console.print(
@@ -6,7 +6,7 @@ from anncsu.common.sdk import utils
6
6
  from anncsu.common.hooks import HookContext
7
7
  from anncsu.common.sdk.types import OptionalNullable, UNSET
8
8
  from anncsu.common.sdk.utils import get_security_from_env
9
- from anncsu.common.sdk.utils import unmarshal_json_response
9
+ from anncsu.common.sdk.utils.unmarshal_json_response import unmarshal_json_response
10
10
  from typing import Any, Mapping, Optional, Union
11
11
 
12
12
 
@@ -133,6 +133,27 @@ class FieldNotAllowedForOperationError(AccessoValidationError):
133
133
  )
134
134
 
135
135
 
136
+ @dataclass
137
+ class SezioneCensimentoRequiredError(AccessoValidationError):
138
+ """Raised when sezione_censimento is missing for I (insert) or R (replace).
139
+
140
+ Per OAS spec: ``sezione_censimento`` has no ``nullable: true`` and is
141
+ described as "da valorizzare solo per operazione_civico='I','R'".
142
+ Missing it triggers a server-side rejection like
143
+ ``Sezione di censimento: non presente nel Comune <X>``; catching it
144
+ locally gives a clearer message before the API call.
145
+ """
146
+
147
+ operazione: str
148
+
149
+ def __str__(self) -> str:
150
+ return (
151
+ f"Il campo 'sezione_censimento' e' obbligatorio per "
152
+ f"operazione_civico='{self.operazione}'. "
153
+ f"Per 'S' (soppressione) non deve essere valorizzato."
154
+ )
155
+
156
+
136
157
  @dataclass
137
158
  class AccessoMaxLengthError(AccessoValidationError):
138
159
  """Raised when a string field exceeds its OAS maxLength constraint.
@@ -163,5 +184,6 @@ __all__ = [
163
184
  "NumeroMetricoMutexError",
164
185
  "FieldNotAllowedForDeleteError",
165
186
  "FieldNotAllowedForOperationError",
187
+ "SezioneCensimentoRequiredError",
166
188
  "AccessoMaxLengthError",
167
189
  ]
@@ -22,6 +22,8 @@ Rules (derived from the OAS spec):
22
22
  6. ``coordinate``, when present, is re-validated through the existing
23
23
  ``ValidatedCoordinate`` model (Italy bounds, X/Y dependency, metodo
24
24
  1-4, maxLength X/Y/Z).
25
+ 7. ``sezione_censimento`` is mandatory for ``I`` and ``R`` (OAS field has
26
+ no ``nullable: true``); rule 4 already forbids it for ``S``.
25
27
  """
26
28
 
27
29
  from __future__ import annotations
@@ -36,6 +38,7 @@ from anncsu.accessi.errors.accesso_validation import (
36
38
  NumeroMetricoMutexError,
37
39
  OperazioneCivicoError,
38
40
  ProgrCivicoRequiredError,
41
+ SezioneCensimentoRequiredError,
39
42
  )
40
43
  from anncsu.accessi.models.richiestaoperazione import Accesso
41
44
  from anncsu.coordinate.models.validated import ValidatedCoordinate
@@ -120,6 +123,12 @@ class ValidatedAccesso(Accesso):
120
123
  if not has_numero and not has_metrico:
121
124
  raise NumeroMetricoMutexError(has_numero=False, has_metrico=False)
122
125
 
126
+ # Rule 7 (issue #30): sezione_censimento required for I/R.
127
+ # OAS declares the field without ``nullable: true`` — the API rejects
128
+ # the request server-side if absent. Mirror that contract locally.
129
+ if op in {"I", "R"} and self._get_value(self.sezione_censimento) is None:
130
+ raise SezioneCensimentoRequiredError(operazione=op)
131
+
123
132
  # Rule 6: re-validate embedded coordinates via ValidatedCoordinate
124
133
  if self.coordinate is not None:
125
134
  payload = self.coordinate.model_dump(exclude_unset=True)
@@ -6,7 +6,7 @@ from anncsu.common.sdk import utils
6
6
  from anncsu.common.hooks import HookContext
7
7
  from anncsu.common.sdk.types import OptionalNullable, UNSET
8
8
  from anncsu.common.sdk.utils import get_security_from_env
9
- from anncsu.common.sdk.utils import unmarshal_json_response
9
+ from anncsu.common.sdk.utils.unmarshal_json_response import unmarshal_json_response
10
10
  from typing import Any, Mapping, Optional
11
11
 
12
12
 
@@ -39,6 +39,7 @@ from anncsu.accessi.errors.accesso_validation import (
39
39
  NumeroMetricoMutexError,
40
40
  OperazioneCivicoError,
41
41
  ProgrCivicoRequiredError,
42
+ SezioneCensimentoRequiredError,
42
43
  )
43
44
  from anncsu.accessi.models.validated import ValidatedAccesso
44
45
  from anncsu.coordinate.errors.coordinate_validation import (
@@ -64,13 +65,18 @@ class TestAccessoOperazioneCivicoValidation:
64
65
 
65
66
  def test_operazione_civico_I_valid(self) -> None:
66
67
  """Test that operazione_civico='I' (insert) is accepted."""
67
- accesso = ValidatedAccesso(operazione_civico="I", numero="12")
68
+ accesso = ValidatedAccesso(
69
+ operazione_civico="I", numero="12", sezione_censimento="9"
70
+ )
68
71
  assert accesso.operazione_civico == "I"
69
72
 
70
73
  def test_operazione_civico_R_valid(self) -> None:
71
74
  """Test that operazione_civico='R' (replace) is accepted."""
72
75
  accesso = ValidatedAccesso(
73
- operazione_civico="R", progr_civico="1370588", numero="12"
76
+ operazione_civico="R",
77
+ progr_civico="1370588",
78
+ numero="12",
79
+ sezione_censimento="9",
74
80
  )
75
81
  assert accesso.operazione_civico == "R"
76
82
 
@@ -115,7 +121,9 @@ class TestAccessoProgrCivicoDependency:
115
121
 
116
122
  def test_insert_without_progr_civico_valid(self) -> None:
117
123
  """Test that I (insert) does not require progr_civico (assigned by API)."""
118
- accesso = ValidatedAccesso(operazione_civico="I", numero="12")
124
+ accesso = ValidatedAccesso(
125
+ operazione_civico="I", numero="12", sezione_censimento="9"
126
+ )
119
127
  assert accesso.progr_civico is None
120
128
 
121
129
  def test_replace_requires_progr_civico(self) -> None:
@@ -137,7 +145,10 @@ class TestAccessoProgrCivicoDependency:
137
145
  def test_replace_with_progr_civico_valid(self) -> None:
138
146
  """Test that R with progr_civico is valid."""
139
147
  accesso = ValidatedAccesso(
140
- operazione_civico="R", progr_civico="1370588", numero="12"
148
+ operazione_civico="R",
149
+ progr_civico="1370588",
150
+ numero="12",
151
+ sezione_censimento="9",
141
152
  )
142
153
  assert accesso.progr_civico == "1370588"
143
154
 
@@ -157,12 +168,16 @@ class TestAccessoNumeroMetricoMutex:
157
168
 
158
169
  def test_insert_with_numero_only_valid(self) -> None:
159
170
  """Test that I with only numero is valid (civico)."""
160
- accesso = ValidatedAccesso(operazione_civico="I", numero="12")
171
+ accesso = ValidatedAccesso(
172
+ operazione_civico="I", numero="12", sezione_censimento="9"
173
+ )
161
174
  assert accesso.numero == "12"
162
175
 
163
176
  def test_insert_with_metrico_only_valid(self) -> None:
164
177
  """Test that I with only metrico is valid (metric-identified)."""
165
- accesso = ValidatedAccesso(operazione_civico="I", metrico="300")
178
+ accesso = ValidatedAccesso(
179
+ operazione_civico="I", metrico="300", sezione_censimento="9"
180
+ )
166
181
  assert accesso.metrico == "300"
167
182
 
168
183
  def test_insert_with_both_numero_and_metrico_invalid(self) -> None:
@@ -182,14 +197,20 @@ class TestAccessoNumeroMetricoMutex:
182
197
  def test_replace_with_numero_only_valid(self) -> None:
183
198
  """Test that R with only numero is valid."""
184
199
  accesso = ValidatedAccesso(
185
- operazione_civico="R", progr_civico="1370588", numero="12"
200
+ operazione_civico="R",
201
+ progr_civico="1370588",
202
+ numero="12",
203
+ sezione_censimento="9",
186
204
  )
187
205
  assert accesso.numero == "12"
188
206
 
189
207
  def test_replace_with_metrico_only_valid(self) -> None:
190
208
  """Test that R with only metrico is valid."""
191
209
  accesso = ValidatedAccesso(
192
- operazione_civico="R", progr_civico="1370588", metrico="300"
210
+ operazione_civico="R",
211
+ progr_civico="1370588",
212
+ metrico="300",
213
+ sezione_censimento="9",
193
214
  )
194
215
  assert accesso.metrico == "300"
195
216
 
@@ -275,6 +296,68 @@ class TestAccessoFieldsNotAllowedForDelete:
275
296
  assert accesso.progr_civico == "1370588"
276
297
 
277
298
 
299
+ # ---------------------------------------------------------------------------
300
+ # 4b. sezione_censimento required for I/R (Issue #30)
301
+ # ---------------------------------------------------------------------------
302
+
303
+
304
+ class TestAccessoSezioneCensimentoRequired:
305
+ """Tests that ``sezione_censimento`` is mandatory for I and R.
306
+
307
+ Per OAS spec the field has no ``nullable: true`` and is described as
308
+ "da valorizzare solo per operazione_civico='I','R'". Missing it for
309
+ I or R must fail locally before the API call.
310
+ """
311
+
312
+ def test_insert_without_sezione_censimento_raises(self) -> None:
313
+ with pytest.raises(ValidationError) as exc_info:
314
+ ValidatedAccesso(operazione_civico="I", numero="12")
315
+ cause = get_validation_error_cause(exc_info)
316
+ assert isinstance(cause, SezioneCensimentoRequiredError)
317
+ assert "I" in str(cause)
318
+
319
+ def test_replace_without_sezione_censimento_raises(self) -> None:
320
+ with pytest.raises(ValidationError) as exc_info:
321
+ ValidatedAccesso(operazione_civico="R", progr_civico="1370588", numero="12")
322
+ cause = get_validation_error_cause(exc_info)
323
+ assert isinstance(cause, SezioneCensimentoRequiredError)
324
+ assert "R" in str(cause)
325
+
326
+ def test_insert_with_empty_sezione_censimento_raises(self) -> None:
327
+ """Empty string must be treated as missing (matches _get_value semantics)."""
328
+ with pytest.raises(ValidationError) as exc_info:
329
+ ValidatedAccesso(operazione_civico="I", numero="12", sezione_censimento="")
330
+ cause = get_validation_error_cause(exc_info)
331
+ assert isinstance(cause, SezioneCensimentoRequiredError)
332
+
333
+ def test_insert_with_sezione_censimento_valid(self) -> None:
334
+ accesso = ValidatedAccesso(
335
+ operazione_civico="I", numero="12", sezione_censimento="9"
336
+ )
337
+ assert accesso.sezione_censimento == "9"
338
+
339
+ def test_replace_with_sezione_censimento_valid(self) -> None:
340
+ accesso = ValidatedAccesso(
341
+ operazione_civico="R",
342
+ progr_civico="1370588",
343
+ numero="12",
344
+ sezione_censimento="9",
345
+ )
346
+ assert accesso.sezione_censimento == "9"
347
+
348
+ def test_delete_without_sezione_censimento_still_valid(self) -> None:
349
+ """Regression: S must NOT require sezione_censimento (Rule 4 still forbids it)."""
350
+ accesso = ValidatedAccesso(operazione_civico="S", progr_civico="1370588")
351
+ assert accesso.operazione_civico == "S"
352
+ assert accesso.sezione_censimento is None
353
+
354
+ def test_sezione_censimento_error_is_accesso_validation_error(self) -> None:
355
+ """The new error must sit under the AccessoValidationError hierarchy
356
+ so existing ``except AccessoValidationError`` blocks catch it."""
357
+ err = SezioneCensimentoRequiredError(operazione="I")
358
+ assert isinstance(err, AccessoValidationError)
359
+
360
+
278
361
  # ---------------------------------------------------------------------------
279
362
  # 5. maxLength constraints from OAS
280
363
  # ---------------------------------------------------------------------------
@@ -380,6 +463,7 @@ class TestAccessoCoordinateIntegration:
380
463
  accesso = ValidatedAccesso(
381
464
  operazione_civico="I",
382
465
  numero="12",
466
+ sezione_censimento="9",
383
467
  coordinate={
384
468
  "x": "13.1022000",
385
469
  "y": "41.8847600",
@@ -395,6 +479,7 @@ class TestAccessoCoordinateIntegration:
395
479
  ValidatedAccesso(
396
480
  operazione_civico="I",
397
481
  numero="12",
482
+ sezione_censimento="9",
398
483
  coordinate={
399
484
  "x": "99.0", # outside Italy bounds (6-18)
400
485
  "y": "41.8847600",
@@ -424,7 +509,9 @@ class TestAccessoCoordinateIntegration:
424
509
 
425
510
  def test_accesso_without_coordinates_valid(self) -> None:
426
511
  """Test that accesso without coordinates is valid (coordinates optional)."""
427
- accesso = ValidatedAccesso(operazione_civico="I", numero="12")
512
+ accesso = ValidatedAccesso(
513
+ operazione_civico="I", numero="12", sezione_censimento="9"
514
+ )
428
515
  assert accesso.coordinate is None
429
516
 
430
517
 
@@ -444,6 +531,7 @@ class TestAccessoValidationErrorHierarchy:
444
531
  FieldNotAllowedForDeleteError,
445
532
  NumeroMetricoMutexError,
446
533
  FieldNotAllowedForOperationError,
534
+ SezioneCensimentoRequiredError,
447
535
  AccessoMaxLengthError,
448
536
  ):
449
537
  assert issubclass(err_class, AccessoValidationError)
@@ -492,6 +580,7 @@ class TestAccessoIntegration:
492
580
  operazione_civico="R",
493
581
  progr_civico="1370588",
494
582
  numero="12",
583
+ sezione_censimento="9",
495
584
  coordinate={
496
585
  "x": "13.1022001",
497
586
  "y": "41.8847601",
@@ -517,6 +606,7 @@ class TestAccessoIntegration:
517
606
  accesso = ValidatedAccesso(
518
607
  operazione_civico="I",
519
608
  metrico="300",
609
+ sezione_censimento="9",
520
610
  coordinate={
521
611
  "x": "13.1022000",
522
612
  "y": "41.8847600",
@@ -148,6 +148,8 @@ class TestAccessoInsert:
148
148
  "2000449",
149
149
  "--numero",
150
150
  "12",
151
+ "--sezione-censimento",
152
+ "9",
151
153
  ],
152
154
  )
153
155
 
@@ -269,6 +271,8 @@ class TestAccessoUpdate:
269
271
  "1370588",
270
272
  "--numero",
271
273
  "12",
274
+ "--sezione-censimento",
275
+ "9",
272
276
  ],
273
277
  )
274
278
 
@@ -469,6 +473,8 @@ class TestAccessoJsonOutput:
469
473
  "2000449",
470
474
  "--numero",
471
475
  "12",
476
+ "--sezione-censimento",
477
+ "9",
472
478
  "--json",
473
479
  ],
474
480
  )
@@ -545,6 +551,8 @@ class TestAccessoInsertDryRun:
545
551
  "2000449",
546
552
  "--numero",
547
553
  "12",
554
+ "--sezione-censimento",
555
+ "9",
548
556
  "--dry-run",
549
557
  ],
550
558
  )
@@ -606,6 +614,8 @@ class TestAccessoInsertDryRun:
606
614
  "2000449",
607
615
  "--numero",
608
616
  "12",
617
+ "--sezione-censimento",
618
+ "9",
609
619
  "--dry-run",
610
620
  ],
611
621
  )
@@ -656,6 +666,8 @@ class TestAccessoInsertDryRun:
656
666
  "2000449",
657
667
  "--numero",
658
668
  "12",
669
+ "--sezione-censimento",
670
+ "9",
659
671
  "--dry-run",
660
672
  "--json",
661
673
  ],
@@ -125,3 +125,83 @@ class TestFixDoRequestKwarg:
125
125
  post_gen_module.fix_do_request_kwarg(pkg_dir, dry_run=False)
126
126
 
127
127
  assert target.read_text() == ' error_status_codes=["400", "5XX"],\n'
128
+
129
+
130
+ BAD_UNMARSHAL_IMPORT = "from anncsu.common.sdk.utils import unmarshal_json_response\n"
131
+ GOOD_UNMARSHAL_IMPORT = (
132
+ "from anncsu.common.sdk.utils.unmarshal_json_response import "
133
+ "unmarshal_json_response\n"
134
+ )
135
+
136
+
137
+ class TestFixUnmarshalImport:
138
+ """Issue #28: ``from anncsu.common.sdk.utils import unmarshal_json_response``
139
+ resolves to the sub-module, not the function. The post-gen script must
140
+ rewrite it to the explicit ``from utils.unmarshal_json_response import
141
+ unmarshal_json_response`` form used by the pa/coordinate packages."""
142
+
143
+ def test_rewrites_unmarshal_import(self, post_gen_module, tmp_path):
144
+ pkg_dir = tmp_path / "fake_pkg"
145
+ pkg_dir.mkdir()
146
+ target = pkg_dir / "endpoint.py"
147
+ target.write_text(BAD_UNMARSHAL_IMPORT)
148
+
149
+ fixed = post_gen_module.fix_unmarshal_import(pkg_dir, dry_run=False)
150
+
151
+ assert "endpoint.py" in fixed
152
+ assert target.read_text() == GOOD_UNMARSHAL_IMPORT
153
+
154
+ def test_leaves_already_correct_import_unchanged(self, post_gen_module, tmp_path):
155
+ pkg_dir = tmp_path / "fake_pkg"
156
+ pkg_dir.mkdir()
157
+ target = pkg_dir / "endpoint.py"
158
+ target.write_text(GOOD_UNMARSHAL_IMPORT)
159
+
160
+ fixed = post_gen_module.fix_unmarshal_import(pkg_dir, dry_run=False)
161
+
162
+ assert fixed == []
163
+ assert target.read_text() == GOOD_UNMARSHAL_IMPORT
164
+
165
+ def test_dry_run_does_not_modify_file(self, post_gen_module, tmp_path):
166
+ pkg_dir = tmp_path / "fake_pkg"
167
+ pkg_dir.mkdir()
168
+ target = pkg_dir / "endpoint.py"
169
+ target.write_text(BAD_UNMARSHAL_IMPORT)
170
+
171
+ post_gen_module.fix_unmarshal_import(pkg_dir, dry_run=True)
172
+
173
+ assert target.read_text() == BAD_UNMARSHAL_IMPORT
174
+
175
+ def test_no_match_returns_empty_list(self, post_gen_module, tmp_path):
176
+ pkg_dir = tmp_path / "fake_pkg"
177
+ pkg_dir.mkdir()
178
+ target = pkg_dir / "models.py"
179
+ target.write_text("class Foo:\n pass\n")
180
+
181
+ fixed = post_gen_module.fix_unmarshal_import(pkg_dir, dry_run=False)
182
+
183
+ assert fixed == []
184
+
185
+
186
+ class TestUnmarshalImportResolvesToFunction:
187
+ """Integration check: after the fix is applied to the accessi package,
188
+ the imported ``unmarshal_json_response`` must be a callable (function),
189
+ not a module. This catches the runtime symptom directly."""
190
+
191
+ def test_accessi_unmarshal_is_callable(self):
192
+ import importlib
193
+
194
+ mod = importlib.import_module("anncsu.accessi.accessi")
195
+ assert callable(mod.unmarshal_json_response), (
196
+ "anncsu.accessi.accessi.unmarshal_json_response must be a "
197
+ "function, not a module — see issue #28."
198
+ )
199
+
200
+ def test_status_unmarshal_is_callable(self):
201
+ import importlib
202
+
203
+ mod = importlib.import_module("anncsu.accessi.status")
204
+ assert callable(mod.unmarshal_json_response), (
205
+ "anncsu.accessi.status.unmarshal_json_response must be a "
206
+ "function, not a module — see issue #28."
207
+ )