anncsu-sdk 0.0.10.dev4__tar.gz → 0.0.10.dev5__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 (527) hide show
  1. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/PKG-INFO +1 -1
  2. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/CLI.md +5 -1
  3. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/sdk-accessi.md +25 -2
  4. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/accessi/__init__.py +10 -1
  5. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/accessi/errors/accesso_validation.py +68 -0
  6. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/accessi/models/validated.py +77 -2
  7. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/cli/commands/accesso.py +31 -10
  8. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/accessi/test_accesso_validation.py +134 -1
  9. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/cli/test_accesso.py +167 -0
  10. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/.devcontainer/README.md +0 -0
  11. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/.devcontainer/devcontainer.json +0 -0
  12. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/.devcontainer/setup.sh +0 -0
  13. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/.gitattributes +0 -0
  14. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/.github/workflows/README.md +0 -0
  15. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/.github/workflows/ci.yml +0 -0
  16. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/.github/workflows/publish.yml +0 -0
  17. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/.gitignore +0 -0
  18. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/.pre-commit-config.yaml +0 -0
  19. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/.python-version +0 -0
  20. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/.speakeasy/gen.lock +0 -0
  21. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/.speakeasy/gen.yaml +0 -0
  22. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/.speakeasy/out.accessi.openapi.yaml +0 -0
  23. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/.speakeasy/out.coordinate.openapi.yaml +0 -0
  24. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/.speakeasy/out.odonimi.openapi.yaml +0 -0
  25. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/.speakeasy/out.openapi.yaml +0 -0
  26. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/.speakeasy/workflow.lock +0 -0
  27. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/.speakeasy/workflow.yaml +0 -0
  28. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/.vscode/settings.json +0 -0
  29. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/CONTRIBUTING.md +0 -0
  30. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/LICENSE +0 -0
  31. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/README.md +0 -0
  32. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/USAGE.md +0 -0
  33. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/SECURITY.md +0 -0
  34. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/VALIDATION.md +0 -0
  35. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessigetpathparambadrequesterror.md +0 -0
  36. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessigetpathparaminternalservererror.md +0 -0
  37. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessigetpathparammethodnotallowederror.md +0 -0
  38. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessigetpathparamnotfounderror.md +0 -0
  39. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessigetpathparamunprocessableentityerror.md +0 -0
  40. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessigetqueryparambadrequesterror.md +0 -0
  41. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessigetqueryparaminternalservererror.md +0 -0
  42. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessigetqueryparammethodnotallowederror.md +0 -0
  43. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessigetqueryparamnotfounderror.md +0 -0
  44. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessigetqueryparamunprocessableentityerror.md +0 -0
  45. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessipostbadrequesterror.md +0 -0
  46. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessipostinternalservererror.md +0 -0
  47. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessipostmethodnotallowederror.md +0 -0
  48. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessipostnotfounderror.md +0 -0
  49. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessipostunprocessableentityerror.md +0 -0
  50. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessiproggetpathparambadrequesterror.md +0 -0
  51. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessiproggetpathparaminternalservererror.md +0 -0
  52. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessiproggetpathparammethodnotallowederror.md +0 -0
  53. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessiproggetpathparamnotfounderror.md +0 -0
  54. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessiproggetpathparamunprocessableentityerror.md +0 -0
  55. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessiproggetqueryparambadrequesterror.md +0 -0
  56. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessiproggetqueryparaminternalservererror.md +0 -0
  57. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessiproggetqueryparammethodnotallowederror.md +0 -0
  58. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessiproggetqueryparamnotfounderror.md +0 -0
  59. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessiproggetqueryparamunprocessableentityerror.md +0 -0
  60. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessiprogpostbadrequesterror.md +0 -0
  61. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessiprogpostinternalservererror.md +0 -0
  62. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessiprogpostmethodnotallowederror.md +0 -0
  63. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessiprogpostnotfounderror.md +0 -0
  64. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessiprogpostunprocessableentityerror.md +0 -0
  65. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimigetpathparambadrequesterror.md +0 -0
  66. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimigetpathparaminternalservererror.md +0 -0
  67. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimigetpathparammethodnotallowederror.md +0 -0
  68. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimigetpathparamnotfounderror.md +0 -0
  69. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimigetpathparamunprocessableentityerror.md +0 -0
  70. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimigetqueryparambadrequesterror.md +0 -0
  71. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimigetqueryparaminternalservererror.md +0 -0
  72. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimigetqueryparammethodnotallowederror.md +0 -0
  73. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimigetqueryparamnotfounderror.md +0 -0
  74. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimigetqueryparamunprocessableentityerror.md +0 -0
  75. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimipostbadrequesterror.md +0 -0
  76. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimipostinternalservererror.md +0 -0
  77. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimipostmethodnotallowederror.md +0 -0
  78. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimipostnotfounderror.md +0 -0
  79. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimipostunprocessableentityerror.md +0 -0
  80. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimiproggetpathparambadrequesterror.md +0 -0
  81. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimiproggetpathparaminternalservererror.md +0 -0
  82. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimiproggetpathparammethodnotallowederror.md +0 -0
  83. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimiproggetpathparamnotfounderror.md +0 -0
  84. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimiproggetpathparamunprocessableentityerror.md +0 -0
  85. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimiproggetqueryparambadrequesterror.md +0 -0
  86. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimiproggetqueryparaminternalservererror.md +0 -0
  87. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimiproggetqueryparammethodnotallowederror.md +0 -0
  88. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimiproggetqueryparamnotfounderror.md +0 -0
  89. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimiproggetqueryparamunprocessableentityerror.md +0 -0
  90. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimiprogpostbadrequesterror.md +0 -0
  91. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimiprogpostinternalservererror.md +0 -0
  92. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimiprogpostmethodnotallowederror.md +0 -0
  93. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimiprogpostnotfounderror.md +0 -0
  94. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimiprogpostunprocessableentityerror.md +0 -0
  95. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteaccessogetpathparambadrequesterror.md +0 -0
  96. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteaccessogetpathparaminternalservererror.md +0 -0
  97. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteaccessogetpathparammethodnotallowederror.md +0 -0
  98. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteaccessogetpathparamunprocessableentityerror.md +0 -0
  99. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteaccessogetqueryparambadrequesterror.md +0 -0
  100. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteaccessogetqueryparaminternalservererror.md +0 -0
  101. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteaccessogetqueryparammethodnotallowederror.md +0 -0
  102. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteaccessogetqueryparamunprocessableentityerror.md +0 -0
  103. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteaccessopostbadrequesterror.md +0 -0
  104. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteaccessopostinternalservererror.md +0 -0
  105. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteaccessopostmethodnotallowederror.md +0 -0
  106. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteaccessopostunprocessableentityerror.md +0 -0
  107. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteodonimogetpathparambadrequesterror.md +0 -0
  108. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteodonimogetpathparaminternalservererror.md +0 -0
  109. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteodonimogetpathparammethodnotallowederror.md +0 -0
  110. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteodonimogetpathparamunprocessableentityerror.md +0 -0
  111. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteodonimogetqueryparambadrequesterror.md +0 -0
  112. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteodonimogetqueryparaminternalservererror.md +0 -0
  113. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteodonimogetqueryparammethodnotallowederror.md +0 -0
  114. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteodonimogetqueryparamunprocessableentityerror.md +0 -0
  115. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteodonimopostbadrequesterror.md +0 -0
  116. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteodonimopostinternalservererror.md +0 -0
  117. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteodonimopostmethodnotallowederror.md +0 -0
  118. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteodonimopostunprocessableentityerror.md +0 -0
  119. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazaccgetpathparambadrequesterror.md +0 -0
  120. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazaccgetpathparaminternalservererror.md +0 -0
  121. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazaccgetpathparammethodnotallowederror.md +0 -0
  122. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazaccgetpathparamnotfounderror.md +0 -0
  123. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazaccgetpathparamunprocessableentityerror.md +0 -0
  124. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazaccgetqueryparambadrequesterror.md +0 -0
  125. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazaccgetqueryparaminternalservererror.md +0 -0
  126. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazaccgetqueryparammethodnotallowederror.md +0 -0
  127. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazaccgetqueryparamnotfounderror.md +0 -0
  128. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazaccgetqueryparamunprocessableentityerror.md +0 -0
  129. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazaccpostbadrequesterror.md +0 -0
  130. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazaccpostinternalservererror.md +0 -0
  131. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazaccpostmethodnotallowederror.md +0 -0
  132. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazaccpostnotfounderror.md +0 -0
  133. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazaccpostunprocessableentityerror.md +0 -0
  134. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazareagetpathparambadrequesterror.md +0 -0
  135. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazareagetpathparaminternalservererror.md +0 -0
  136. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazareagetpathparammethodnotallowederror.md +0 -0
  137. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazareagetpathparamnotfounderror.md +0 -0
  138. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazareagetpathparamunprocessableentityerror.md +0 -0
  139. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazareagetqueryparambadrequesterror.md +0 -0
  140. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazareagetqueryparaminternalservererror.md +0 -0
  141. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazareagetqueryparammethodnotallowederror.md +0 -0
  142. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazareagetqueryparamnotfounderror.md +0 -0
  143. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazareagetqueryparamunprocessableentityerror.md +0 -0
  144. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazareapostbadrequesterror.md +0 -0
  145. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazareapostinternalservererror.md +0 -0
  146. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazareapostmethodnotallowederror.md +0 -0
  147. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazareapostnotfounderror.md +0 -0
  148. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazareapostunprocessableentityerror.md +0 -0
  149. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/serviceunavailableerror.md +0 -0
  150. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoaccessigetpathparamdata.md +0 -0
  151. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoaccessigetpathparamrequest.md +0 -0
  152. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoaccessigetpathparamresponse.md +0 -0
  153. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoaccessigetqueryparamdata.md +0 -0
  154. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoaccessigetqueryparamrequest.md +0 -0
  155. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoaccessigetqueryparamresponse.md +0 -0
  156. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoaccessipostdata.md +0 -0
  157. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoaccessipostrequest.md +0 -0
  158. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoaccessipostresponse.md +0 -0
  159. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoaccessiproggetpathparamdata.md +0 -0
  160. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoaccessiproggetpathparamrequest.md +0 -0
  161. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoaccessiproggetpathparamresponse.md +0 -0
  162. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoaccessiproggetqueryparamdata.md +0 -0
  163. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoaccessiproggetqueryparamrequest.md +0 -0
  164. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoaccessiproggetqueryparamresponse.md +0 -0
  165. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoaccessiprogpostdata.md +0 -0
  166. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoaccessiprogpostrequest.md +0 -0
  167. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoaccessiprogpostresponse.md +0 -0
  168. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoodonimigetpathparamdata.md +0 -0
  169. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoodonimigetpathparamrequest.md +0 -0
  170. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoodonimigetpathparamresponse.md +0 -0
  171. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoodonimigetqueryparamdata.md +0 -0
  172. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoodonimigetqueryparamrequest.md +0 -0
  173. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoodonimigetqueryparamresponse.md +0 -0
  174. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoodonimipostdata.md +0 -0
  175. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoodonimipostrequest.md +0 -0
  176. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoodonimipostresponse.md +0 -0
  177. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoodonimiproggetpathparamdata.md +0 -0
  178. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoodonimiproggetpathparamrequest.md +0 -0
  179. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoodonimiproggetpathparamresponse.md +0 -0
  180. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoodonimiproggetqueryparamdata.md +0 -0
  181. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoodonimiproggetqueryparamrequest.md +0 -0
  182. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoodonimiproggetqueryparamresponse.md +0 -0
  183. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoodonimiprogpostdata.md +0 -0
  184. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoodonimiprogpostrequest.md +0 -0
  185. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoodonimiprogpostresponse.md +0 -0
  186. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/esisteaccessogetpathparamrequest.md +0 -0
  187. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/esisteaccessogetpathparamresponse.md +0 -0
  188. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/esisteaccessogetqueryparamrequest.md +0 -0
  189. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/esisteaccessogetqueryparamresponse.md +0 -0
  190. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/esisteaccessopostrequest.md +0 -0
  191. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/esisteaccessopostresponse.md +0 -0
  192. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/esisteodonimogetpathparamrequest.md +0 -0
  193. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/esisteodonimogetpathparamresponse.md +0 -0
  194. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/esisteodonimogetqueryparamrequest.md +0 -0
  195. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/esisteodonimogetqueryparamresponse.md +0 -0
  196. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/esisteodonimopostrequest.md +0 -0
  197. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/esisteodonimopostresponse.md +0 -0
  198. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/prognazaccgetpathparamdata.md +0 -0
  199. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/prognazaccgetpathparamrequest.md +0 -0
  200. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/prognazaccgetpathparamresponse.md +0 -0
  201. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/prognazaccgetqueryparamdata.md +0 -0
  202. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/prognazaccgetqueryparamrequest.md +0 -0
  203. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/prognazaccgetqueryparamresponse.md +0 -0
  204. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/prognazaccpostdata.md +0 -0
  205. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/prognazaccpostrequest.md +0 -0
  206. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/prognazaccpostresponse.md +0 -0
  207. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/prognazareagetpathparamdata.md +0 -0
  208. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/prognazareagetpathparamrequest.md +0 -0
  209. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/prognazareagetpathparamresponse.md +0 -0
  210. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/prognazareagetqueryparamdata.md +0 -0
  211. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/prognazareagetqueryparamrequest.md +0 -0
  212. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/prognazareagetqueryparamresponse.md +0 -0
  213. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/prognazareapostdata.md +0 -0
  214. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/prognazareapostrequest.md +0 -0
  215. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/prognazareapostresponse.md +0 -0
  216. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/showstatusresponse.md +0 -0
  217. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/utils/retryconfig.md +0 -0
  218. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/sdk-coordinate.md +0 -0
  219. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/sdk-odonimi.md +0 -0
  220. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/sdk-pa.md +0 -0
  221. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/sdks/anncsu/README.md +0 -0
  222. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/sdks/jsonpost/README.md +0 -0
  223. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/sdks/pathparam/README.md +0 -0
  224. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/sdks/queryparam/README.md +0 -0
  225. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/sdks/status/README.md +0 -0
  226. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/speakeasy.md +0 -0
  227. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/oas/.spectral.yaml +0 -0
  228. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/oas/README.md +0 -0
  229. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/oas/dev/Specifica API - ANNCSU - Aggiornamento accessi.yaml +0 -0
  230. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/oas/dev/Specifica API - ANNCSU - Aggiornamento coordinate massivo.yml +0 -0
  231. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/oas/dev/Specifica API - ANNCSU - Aggiornamento coordinate.yml +0 -0
  232. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/oas/dev/Specifica API - ANNCSU - Aggiornamento odonimi.yaml +0 -0
  233. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/oas/dev/Specifica API - ANNCSU /342/200/223 Consultazione per le PA.yaml" +0 -0
  234. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/oas/prod/Specifica API - ANNCSU /342/200/223 Consultazione per le PA.yaml" +0 -0
  235. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/pylintrc +0 -0
  236. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/pyproject.toml +0 -0
  237. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/scripts/create_client_assertion.py +0 -0
  238. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/scripts/post_speakeasy_generation.py +0 -0
  239. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/scripts/publish.sh +0 -0
  240. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/accessi/_version.py +0 -0
  241. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/accessi/accessi.py +0 -0
  242. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/accessi/errors/__init__.py +0 -0
  243. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/accessi/errors/anncsuerror.py +0 -0
  244. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/accessi/errors/apierror.py +0 -0
  245. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/accessi/errors/no_response_error.py +0 -0
  246. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/accessi/errors/responsevalidationerror.py +0 -0
  247. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/accessi/errors/rispostaerrore.py +0 -0
  248. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/accessi/errors/show_statusop.py +0 -0
  249. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/accessi/models/__init__.py +0 -0
  250. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/accessi/models/richiestaoperazione.py +0 -0
  251. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/accessi/models/rispostaoperazione.py +0 -0
  252. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/accessi/models/security.py +0 -0
  253. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/accessi/models/show_statusop.py +0 -0
  254. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/accessi/py.typed +0 -0
  255. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/accessi/sdk.py +0 -0
  256. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/accessi/sdkconfiguration.py +0 -0
  257. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/accessi/status.py +0 -0
  258. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/cli/__init__.py +0 -0
  259. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/cli/app.py +0 -0
  260. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/cli/commands/__init__.py +0 -0
  261. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/cli/commands/assertion.py +0 -0
  262. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/cli/commands/auth.py +0 -0
  263. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/cli/commands/bulk.py +0 -0
  264. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/cli/commands/config.py +0 -0
  265. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/cli/commands/constants.py +0 -0
  266. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/cli/commands/coordinate.py +0 -0
  267. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/cli/commands/odonimo.py +0 -0
  268. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/cli/commands/pa.py +0 -0
  269. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/cli/models.py +0 -0
  270. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/__init__.py +0 -0
  271. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/auth.py +0 -0
  272. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/basesdk.py +0 -0
  273. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/config.py +0 -0
  274. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/errors/__init__.py +0 -0
  275. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/errors/apierror.py +0 -0
  276. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/errors/audience_mismatch.py +0 -0
  277. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/errors/base.py +0 -0
  278. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/errors/digest_serialization_mismatch.py +0 -0
  279. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/errors/no_response_error.py +0 -0
  280. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/errors/responsevalidationerror.py +0 -0
  281. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/hooks/__init__.py +0 -0
  282. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/hooks/modi_hook.py +0 -0
  283. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/hooks/registration.py +0 -0
  284. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/hooks/sdkhooks.py +0 -0
  285. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/hooks/token_validation.py +0 -0
  286. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/hooks/types.py +0 -0
  287. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/httpclient.py +0 -0
  288. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/modi.py +0 -0
  289. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/pdnd_assertion.py +0 -0
  290. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/pdnd_token.py +0 -0
  291. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/__init__.py +0 -0
  292. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/basesdk.py +0 -0
  293. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/httpclient.py +0 -0
  294. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/protocols.py +0 -0
  295. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/types/__init__.py +0 -0
  296. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/types/basemodel.py +0 -0
  297. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/utils/__init__.py +0 -0
  298. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/utils/annotations.py +0 -0
  299. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/utils/datetimes.py +0 -0
  300. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/utils/dynamic_imports.py +0 -0
  301. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/utils/enums.py +0 -0
  302. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/utils/eventstreaming.py +0 -0
  303. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/utils/forms.py +0 -0
  304. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/utils/headers.py +0 -0
  305. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/utils/logger.py +0 -0
  306. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/utils/metadata.py +0 -0
  307. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/utils/queryparams.py +0 -0
  308. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/utils/requestbodies.py +0 -0
  309. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/utils/retries.py +0 -0
  310. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/utils/security.py +0 -0
  311. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/utils/serializers.py +0 -0
  312. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/utils/unmarshal_json_response.py +0 -0
  313. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/utils/url.py +0 -0
  314. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/utils/values.py +0 -0
  315. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdkconfiguration.py +0 -0
  316. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/security.py +0 -0
  317. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/session.py +0 -0
  318. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/types/__init__.py +0 -0
  319. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/utils/__init__.py +0 -0
  320. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/validation/__init__.py +0 -0
  321. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/validation/examples.py +0 -0
  322. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/validation/response_validator.py +0 -0
  323. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/validation/validators.py +0 -0
  324. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/__init__.py +0 -0
  325. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/_version.py +0 -0
  326. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/bulk/__init__.py +0 -0
  327. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/bulk/db.py +0 -0
  328. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/bulk/dryrun.py +0 -0
  329. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/bulk/executor.py +0 -0
  330. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/bulk/importer.py +0 -0
  331. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/bulk/reporter.py +0 -0
  332. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/errors/__init__.py +0 -0
  333. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/errors/anncsuerror.py +0 -0
  334. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/errors/apierror.py +0 -0
  335. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/errors/coordinate_validation.py +0 -0
  336. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/errors/no_response_error.py +0 -0
  337. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/errors/responsevalidationerror.py +0 -0
  338. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/errors/risposta_validation.py +0 -0
  339. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/errors/rispostaerrore.py +0 -0
  340. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/errors/show_statusop.py +0 -0
  341. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/jsonpost.py +0 -0
  342. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/models/__init__.py +0 -0
  343. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/models/richiestaoperazione.py +0 -0
  344. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/models/rispostaoperazione.py +0 -0
  345. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/models/security.py +0 -0
  346. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/models/show_statusop.py +0 -0
  347. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/models/validated.py +0 -0
  348. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/py.typed +0 -0
  349. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/sdk.py +0 -0
  350. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/sdkconfiguration.py +0 -0
  351. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/status.py +0 -0
  352. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/odonimi/__init__.py +0 -0
  353. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/odonimi/_version.py +0 -0
  354. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/odonimi/errors/__init__.py +0 -0
  355. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/odonimi/errors/anncsuerror.py +0 -0
  356. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/odonimi/errors/apierror.py +0 -0
  357. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/odonimi/errors/no_response_error.py +0 -0
  358. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/odonimi/errors/odonimo_validation.py +0 -0
  359. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/odonimi/errors/responsevalidationerror.py +0 -0
  360. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/odonimi/errors/rispostaerrore.py +0 -0
  361. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/odonimi/errors/show_statusop.py +0 -0
  362. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/odonimi/models/__init__.py +0 -0
  363. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/odonimi/models/autprefettura.py +0 -0
  364. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/odonimi/models/provvedimento.py +0 -0
  365. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/odonimi/models/richiestaoperazione.py +0 -0
  366. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/odonimi/models/rispostaoperazione.py +0 -0
  367. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/odonimi/models/security.py +0 -0
  368. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/odonimi/models/show_statusop.py +0 -0
  369. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/odonimi/models/validated.py +0 -0
  370. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/odonimi/odonimi.py +0 -0
  371. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/odonimi/py.typed +0 -0
  372. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/odonimi/sdk.py +0 -0
  373. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/odonimi/sdkconfiguration.py +0 -0
  374. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/odonimi/status.py +0 -0
  375. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/__init__.py +0 -0
  376. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/_hooks/__init__.py +0 -0
  377. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/_hooks/registration.py +0 -0
  378. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/_hooks/sdkhooks.py +0 -0
  379. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/_hooks/types.py +0 -0
  380. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/_version.py +0 -0
  381. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/__init__.py +0 -0
  382. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/anncsuerror.py +0 -0
  383. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/apierror.py +0 -0
  384. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/elencoaccessigetpathparamop.py +0 -0
  385. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/elencoaccessigetqueryparamop.py +0 -0
  386. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/elencoaccessipostop.py +0 -0
  387. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/elencoaccessiproggetpathparamop.py +0 -0
  388. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/elencoaccessiproggetqueryparamop.py +0 -0
  389. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/elencoaccessiprogpostop.py +0 -0
  390. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/elencoodonimigetpathparamop.py +0 -0
  391. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/elencoodonimigetqueryparamop.py +0 -0
  392. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/elencoodonimipostop.py +0 -0
  393. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/elencoodonimiproggetpathparamop.py +0 -0
  394. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/elencoodonimiproggetqueryparamop.py +0 -0
  395. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/elencoodonimiprogpostop.py +0 -0
  396. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/esisteaccessogetpathparamop.py +0 -0
  397. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/esisteaccessogetqueryparamop.py +0 -0
  398. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/esisteaccessopostop.py +0 -0
  399. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/esisteodonimogetpathparamop.py +0 -0
  400. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/esisteodonimogetqueryparamop.py +0 -0
  401. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/esisteodonimopostop.py +0 -0
  402. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/no_response_error.py +0 -0
  403. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/prognazaccgetpathparamop.py +0 -0
  404. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/prognazaccgetqueryparamop.py +0 -0
  405. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/prognazaccpostop.py +0 -0
  406. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/prognazareagetpathparamop.py +0 -0
  407. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/prognazareagetqueryparamop.py +0 -0
  408. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/prognazareapostop.py +0 -0
  409. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/responsevalidationerror.py +0 -0
  410. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/show_statusop.py +0 -0
  411. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/jsonpost.py +0 -0
  412. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/__init__.py +0 -0
  413. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/elencoaccessigetpathparamop.py +0 -0
  414. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/elencoaccessigetqueryparamop.py +0 -0
  415. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/elencoaccessipostop.py +0 -0
  416. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/elencoaccessiproggetpathparamop.py +0 -0
  417. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/elencoaccessiproggetqueryparamop.py +0 -0
  418. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/elencoaccessiprogpostop.py +0 -0
  419. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/elencoodonimigetpathparamop.py +0 -0
  420. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/elencoodonimigetqueryparamop.py +0 -0
  421. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/elencoodonimipostop.py +0 -0
  422. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/elencoodonimiproggetpathparamop.py +0 -0
  423. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/elencoodonimiproggetqueryparamop.py +0 -0
  424. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/elencoodonimiprogpostop.py +0 -0
  425. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/esisteaccessogetpathparamop.py +0 -0
  426. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/esisteaccessogetqueryparamop.py +0 -0
  427. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/esisteaccessopostop.py +0 -0
  428. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/esisteodonimogetpathparamop.py +0 -0
  429. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/esisteodonimogetqueryparamop.py +0 -0
  430. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/esisteodonimopostop.py +0 -0
  431. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/prognazaccgetpathparamop.py +0 -0
  432. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/prognazaccgetqueryparamop.py +0 -0
  433. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/prognazaccpostop.py +0 -0
  434. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/prognazareagetpathparamop.py +0 -0
  435. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/prognazareagetqueryparamop.py +0 -0
  436. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/prognazareapostop.py +0 -0
  437. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/show_statusop.py +0 -0
  438. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/pathparam.py +0 -0
  439. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/py.typed +0 -0
  440. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/queryparam.py +0 -0
  441. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/sdk.py +0 -0
  442. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/sdkconfiguration.py +0 -0
  443. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/status.py +0 -0
  444. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/README.md +0 -0
  445. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/accessi/__init__.py +0 -0
  446. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/accessi/test_do_request_signature.py +0 -0
  447. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/accessi/test_imports.py +0 -0
  448. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/cli/__init__.py +0 -0
  449. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/cli/conftest.py +0 -0
  450. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/cli/test_assertion.py +0 -0
  451. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/cli/test_auth.py +0 -0
  452. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/cli/test_config.py +0 -0
  453. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/cli/test_coordinate.py +0 -0
  454. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/cli/test_coordinate_bulk.py +0 -0
  455. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/cli/test_duckdb_batch.py +0 -0
  456. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/cli/test_main.py +0 -0
  457. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/cli/test_odonimo.py +0 -0
  458. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/cli/test_pa.py +0 -0
  459. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/cli/test_raw_output.py +0 -0
  460. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/cli/test_token_endpoint_resolution.py +0 -0
  461. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/common/__init__.py +0 -0
  462. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/common/test_auth_modi_integration.py +0 -0
  463. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/common/test_cli_env_override.py +0 -0
  464. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/common/test_config.py +0 -0
  465. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/common/test_imports.py +0 -0
  466. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/common/test_modi.py +0 -0
  467. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/common/test_modi_hook.py +0 -0
  468. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/common/test_pdnd_assertion.py +0 -0
  469. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/common/test_pdnd_auth_manager.py +0 -0
  470. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/common/test_pdnd_token.py +0 -0
  471. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/common/test_security.py +0 -0
  472. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/common/test_security_basemodel.py +0 -0
  473. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/common/test_session.py +0 -0
  474. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/common/test_token_validation_hook.py +0 -0
  475. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/conftest.py +0 -0
  476. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/coordinate/__init__.py +0 -0
  477. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/coordinate/bulk/__init__.py +0 -0
  478. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/coordinate/bulk/test_db.py +0 -0
  479. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/coordinate/bulk/test_dryrun.py +0 -0
  480. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/coordinate/bulk/test_executor.py +0 -0
  481. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/coordinate/bulk/test_importer.py +0 -0
  482. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/coordinate/bulk/test_integration.py +0 -0
  483. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/coordinate/bulk/test_reporter.py +0 -0
  484. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/coordinate/test_coordinate_validation.py +0 -0
  485. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/coordinate/test_imports.py +0 -0
  486. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/coordinate/test_risposta_validation.py +0 -0
  487. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/coordinate/test_sdk_hooks_integration.py +0 -0
  488. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/integration/__init__.py +0 -0
  489. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/integration/coordinate/__init__.py +0 -0
  490. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/integration/coordinate/test_jsonpost_async_httpx.py +0 -0
  491. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/integration/coordinate/test_jsonpost_httpx.py +0 -0
  492. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/integration/coordinate/test_status_async_httpx.py +0 -0
  493. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/integration/coordinate/test_status_httpx.py +0 -0
  494. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/integration/pa/__init__.py +0 -0
  495. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/integration/pa/test_jsonpost_async_httpx.py +0 -0
  496. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/integration/pa/test_jsonpost_httpx.py +0 -0
  497. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/integration/pa/test_pathparam_async_httpx.py +0 -0
  498. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/integration/pa/test_pathparam_httpx.py +0 -0
  499. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/integration/pa/test_queryparam_async_httpx.py +0 -0
  500. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/integration/pa/test_queryparam_httpx.py +0 -0
  501. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/integration/pa/test_status_httpx.py +0 -0
  502. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/integration/test_sdk_instantiation.py +0 -0
  503. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/integration/test_security_in_requests.py +0 -0
  504. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/odonimi/__init__.py +0 -0
  505. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/odonimi/test_imports.py +0 -0
  506. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/odonimi/test_odonimo_validation.py +0 -0
  507. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/pa/__init__.py +0 -0
  508. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/pa/test_imports.py +0 -0
  509. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/pa/test_response_field_mapping.py +0 -0
  510. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/test_post_speakeasy_generation.py +0 -0
  511. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/validation/__init__.py +0 -0
  512. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/validation/coordinate/__init__.py +0 -0
  513. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/validation/coordinate/test_coordinate_operations_validation.py +0 -0
  514. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/validation/coordinate/test_model_factories.py +0 -0
  515. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/validation/coordinate/test_validators.py +0 -0
  516. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/validation/coordinate/test_validators_property.py +0 -0
  517. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/validation/pa/ADVANCED_TESTING.md +0 -0
  518. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/validation/pa/README.md +0 -0
  519. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/validation/pa/README_COMPREHENSIVE_TESTS.md +0 -0
  520. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/validation/pa/__init__.py +0 -0
  521. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/validation/pa/test_all_operations_validation.py +0 -0
  522. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/validation/pa/test_model_factories.py +0 -0
  523. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/validation/pa/test_model_factories_comprehensive.py +0 -0
  524. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/validation/pa/test_validators.py +0 -0
  525. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/validation/pa/test_validators_property.py +0 -0
  526. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/validation/test_response_validator.py +0 -0
  527. {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: anncsu-sdk
3
- Version: 0.0.10.dev4
3
+ Version: 0.0.10.dev5
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
@@ -1905,7 +1905,7 @@ Options:
1905
1905
  - `--codice-civico-comunale` - Codifica comunale dell'accesso
1906
1906
  - `--coord-x` / `--coord-y` / `--coord-z` - Coordinate (longitudine, latitudine, quota)
1907
1907
  - `--metodo, -m` - Metodo di rilevazione (1-4)
1908
- - `--data-valid-amm` - Data inizio validità amministrativa (formato `dd/MM/yyyy`)
1908
+ - `--data-valid-amm` - Data inizio validità amministrativa (valid calendar date, formato `dd/MM/yyyy`). No future-date bound: the accessi OAS declares none (absent = today; for delete it is the *end* of validity)
1909
1909
  - `--token-endpoint, -e` - PDND token endpoint URL
1910
1910
  - `--server-url, -s` - API server URL (auto-discovered from voucher if omitted)
1911
1911
  - `--validation/--production` - Use validation (UAT) or production environment
@@ -1913,6 +1913,10 @@ Options:
1913
1913
  - `--json` - Output as JSON
1914
1914
  - `--raw` - Print raw API response to stderr
1915
1915
 
1916
+ All constraints — including the wrapper fields (`--codcom` in Belfiore format X999, `--prognaz` ≤ 10 chars) and the `dd/MM/yyyy` date format — are validated **client-side before any API call** via `ValidatedRichiesta`/`ValidatedAccesso`: invalid input exits with code 1 and a `Validation error:` message without consuming PDND tokens. Server-side rejections (HTTP 400/404/500) are rendered with the structured ANNCSU fields: `Errore ANNCSU (codice N): messaggio` (non-ANNCSU bodies, e.g. RFC 7807 from the GovWay gateway, are shown raw).
1917
+
1918
+ > **Known limitation — explicit `null`**: the accessi schema has **11 nullable fields** (`codice_civico_comunale`, `numero`, `esponente`, `specificita`, `metrico`, `data_valid_amm`, `isolato`, and `coordinate.x/y/z/metodo`). The CLI can omit them or set a value, but cannot send an explicit `null` to clear an existing value — same limitation as `codice_comunale` in `odonimo update`. The SDK supports it (fields are `OptionalNullable` with the `UNSET` sentinel).
1919
+
1916
1920
  JSON output:
1917
1921
  ```json
1918
1922
  {
@@ -221,6 +221,22 @@ Le regole sono applicate in ordine in un singolo `@model_validator(mode="after")
221
221
  4. **Per `R` / `S`**: `progr_civico` obbligatorio — altrimenti `ProgrCivicoRequiredError`
222
222
  5. **Per `I` / `R`**: esattamente uno tra `numero` e `metrico` (XOR strict) — altrimenti `NumeroMetricoMutexError`
223
223
  6. **Coordinate**, se presenti, vengono ri-validate via `ValidatedCoordinate` (range Italia, X/Y dependency, `metodo` 1-4, `maxLength` X/Y/Z)
224
+ 7. **Per `I` / `R`**: `sezione_censimento` obbligatoria (issue #30; l'OAS la dichiara senza `nullable: true`) — altrimenti `SezioneCensimentoRequiredError`
225
+ 8. `data_valid_amm`, se valorizzata, deve essere una data di calendario valida in formato **`dd/MM/yyyy`** — altrimenti `InvalidDateFormatError`. **Nota**: a differenza di odonimi, l'OAS accessi *non* dichiara vincoli sul futuro (assente = data corrente; per `S` è la data di *fine* validità, per `I`/`R` quella di *inizio*) — quindi lato client si valida solo il formato
226
+
227
+ ### `ValidatedRichiesta` — validazione del wrapper
228
+
229
+ Il wrapper `Richiesta` (che contiene `codcom`, `progr_nazionale` e l'oggetto `accesso`) ha un suo modello validato, usato dalla CLI prima di ogni chiamata:
230
+
231
+ - `codcom` obbligatorio e in **formato Belfiore X999** (una lettera maiuscola + tre cifre, es. `A062`) — altrimenti `CodcomRequiredError` / `CodcomFormatError`
232
+ - `progr_nazionale` obbligatorio e ≤ 10 caratteri — altrimenti `ProgrNazionaleRequiredError` / `AccessoMaxLengthError`
233
+ - l'`accesso` incorporato viene ri-validato via `ValidatedAccesso` (gli errori risalgono)
234
+
235
+ ```python
236
+ from anncsu.accessi.models.validated import ValidatedRichiesta
237
+
238
+ ValidatedRichiesta.model_validate(richiesta.model_dump(exclude_unset=True))
239
+ ```
224
240
 
225
241
  ### Uso del Modello Validato
226
242
 
@@ -271,6 +287,11 @@ from anncsu.accessi.errors.accesso_validation import (
271
287
  NumeroMetricoMutexError, # both/neither numero+metrico per I/R
272
288
  FieldNotAllowedForDeleteError, # campo non valorizzabile per S
273
289
  AccessoMaxLengthError, # campo eccede maxLength
290
+ SezioneCensimentoRequiredError, # sezione_censimento mancante per I/R
291
+ InvalidDateFormatError, # data non valida o non dd/MM/yyyy
292
+ CodcomRequiredError, # codcom mancante (wrapper Richiesta)
293
+ CodcomFormatError, # codcom non in formato Belfiore X999
294
+ ProgrNazionaleRequiredError, # progr_nazionale mancante (wrapper)
274
295
  )
275
296
 
276
297
  # Catch specifico
@@ -359,8 +380,10 @@ except ModIHookError as e:
359
380
  # Errore nella generazione degli header ModI
360
381
  print(f"ModI Error: {e.message}")
361
382
  except RispostaErrore as e:
362
- # Errore dall'API (RFC 7807)
363
- print(f"API Error code: {e.codice}, msg: {e.messaggio}")
383
+ # Errore dall'API. NB: il problem+json ANNCSU NON e' RFC 7807
384
+ # schema custom id/codice/messaggio, parsato in e.data.*
385
+ # (str(e) e' il body JSON grezzo: non usarlo per estrarre i campi).
386
+ print(f"API Error code: {e.data.codice}, msg: {e.data.messaggio}")
364
387
  except APIError as e:
365
388
  # Errore HTTP generico
366
389
  print(f"HTTP Error: {e.status_code}")
@@ -10,13 +10,17 @@ from ._version import (
10
10
  from .errors.accesso_validation import (
11
11
  AccessoMaxLengthError,
12
12
  AccessoValidationError,
13
+ CodcomFormatError,
14
+ CodcomRequiredError,
13
15
  FieldNotAllowedForDeleteError,
14
16
  FieldNotAllowedForOperationError,
17
+ InvalidDateFormatError,
15
18
  NumeroMetricoMutexError,
16
19
  OperazioneCivicoError,
17
20
  ProgrCivicoRequiredError,
21
+ ProgrNazionaleRequiredError,
18
22
  )
19
- from .models.validated import ValidatedAccesso
23
+ from .models.validated import ValidatedAccesso, ValidatedRichiesta
20
24
  from .sdk import AnncsuAccessi
21
25
  from .sdkconfiguration import SDKConfiguration
22
26
 
@@ -34,13 +38,18 @@ __all__ = [
34
38
  "AccessoMaxLengthError",
35
39
  "AccessoValidationError",
36
40
  "AnncsuAccessi",
41
+ "CodcomFormatError",
42
+ "CodcomRequiredError",
37
43
  "FieldNotAllowedForDeleteError",
38
44
  "FieldNotAllowedForOperationError",
45
+ "InvalidDateFormatError",
39
46
  "NumeroMetricoMutexError",
40
47
  "OperazioneCivicoError",
41
48
  "ProgrCivicoRequiredError",
49
+ "ProgrNazionaleRequiredError",
42
50
  "SDKConfiguration",
43
51
  "ValidatedAccesso",
52
+ "ValidatedRichiesta",
44
53
  "VERSION",
45
54
  "OPENAPI_DOC_VERSION",
46
55
  "SPEAKEASY_GENERATOR_VERSION",
@@ -177,6 +177,70 @@ class AccessoMaxLengthError(AccessoValidationError):
177
177
  )
178
178
 
179
179
 
180
+ @dataclass
181
+ class InvalidDateFormatError(AccessoValidationError):
182
+ """Raised when a date field is not a valid dd/MM/yyyy calendar date.
183
+
184
+ Applies to data_valid_amm (OAS example: "08/10/2024"). NOTE: the
185
+ accessi OAS declares no not-in-future bound (unlike odonimi), so
186
+ only the format is validated client-side.
187
+ """
188
+
189
+ field_name: str
190
+ value: str
191
+
192
+ def __str__(self) -> str:
193
+ return (
194
+ f"Il campo '{self.field_name}' deve essere una data valida nel "
195
+ f"formato dd/MM/yyyy (es. '08/10/2024'). "
196
+ f"Valore fornito: {self.value!r}"
197
+ )
198
+
199
+
200
+ @dataclass
201
+ class CodcomRequiredError(AccessoValidationError):
202
+ """Raised when the Richiesta wrapper is missing codcom.
203
+
204
+ Per OAS spec: "Codice del comune (obbligatorio)".
205
+ """
206
+
207
+ def __str__(self) -> str:
208
+ return "Il campo 'codcom' e' obbligatorio per tutte le operazioni."
209
+
210
+
211
+ @dataclass
212
+ class CodcomFormatError(AccessoValidationError):
213
+ """Raised when codcom does not match the Belfiore format X999.
214
+
215
+ Per OAS spec: ``format: X999`` — one uppercase letter followed by
216
+ three digits (e.g. "A062", "H501").
217
+ """
218
+
219
+ value: str
220
+
221
+ def __str__(self) -> str:
222
+ return (
223
+ f"Il campo 'codcom' deve essere un codice Belfiore nel formato "
224
+ f"X999 (una lettera maiuscola + tre cifre, es. 'A062'). "
225
+ f"Valore fornito: {self.value!r}"
226
+ )
227
+
228
+
229
+ @dataclass
230
+ class ProgrNazionaleRequiredError(AccessoValidationError):
231
+ """Raised when the Richiesta wrapper is missing progr_nazionale.
232
+
233
+ Per OAS spec: "Progressivo nazionale (obbligatorio)" — it identifies
234
+ the odonimo the accesso belongs to.
235
+ """
236
+
237
+ def __str__(self) -> str:
238
+ return (
239
+ "Il campo 'progr_nazionale' e' obbligatorio: identifica "
240
+ "l'odonimo a cui appartiene l'accesso."
241
+ )
242
+
243
+
180
244
  __all__ = [
181
245
  "AccessoValidationError",
182
246
  "OperazioneCivicoError",
@@ -186,4 +250,8 @@ __all__ = [
186
250
  "FieldNotAllowedForOperationError",
187
251
  "SezioneCensimentoRequiredError",
188
252
  "AccessoMaxLengthError",
253
+ "InvalidDateFormatError",
254
+ "CodcomRequiredError",
255
+ "CodcomFormatError",
256
+ "ProgrNazionaleRequiredError",
189
257
  ]
@@ -24,23 +24,37 @@ Rules (derived from the OAS spec):
24
24
  1-4, maxLength X/Y/Z).
25
25
  7. ``sezione_censimento`` is mandatory for ``I`` and ``R`` (OAS field has
26
26
  no ``nullable: true``); rule 4 already forbids it for ``S``.
27
+ 8. ``data_valid_amm``, when set, must be a valid ``dd/MM/yyyy`` calendar
28
+ date. NOTE: the accessi OAS declares no not-in-future bound (unlike
29
+ odonimi) — absent means "data corrente", for S it is the *end* of
30
+ validity, for I/R the *start* — so only the format is checked.
31
+
32
+ ``ValidatedRichiesta`` additionally validates the wrapper fields:
33
+ ``codcom`` (mandatory, Belfiore format X999) and ``progr_nazionale``
34
+ (mandatory, maxLength 10), re-validating the embedded ``accesso``.
27
35
  """
28
36
 
29
37
  from __future__ import annotations
30
38
 
39
+ import datetime
40
+ import re
31
41
  from typing import Optional
32
42
 
33
43
  from pydantic import model_validator
34
44
 
35
45
  from anncsu.accessi.errors.accesso_validation import (
36
46
  AccessoMaxLengthError,
47
+ CodcomFormatError,
48
+ CodcomRequiredError,
37
49
  FieldNotAllowedForDeleteError,
50
+ InvalidDateFormatError,
38
51
  NumeroMetricoMutexError,
39
52
  OperazioneCivicoError,
40
53
  ProgrCivicoRequiredError,
54
+ ProgrNazionaleRequiredError,
41
55
  SezioneCensimentoRequiredError,
42
56
  )
43
- from anncsu.accessi.models.richiestaoperazione import Accesso
57
+ from anncsu.accessi.models.richiestaoperazione import Accesso, Richiesta
44
58
  from anncsu.coordinate.models.validated import ValidatedCoordinate
45
59
 
46
60
  VALID_OPERAZIONI = {"I", "R", "S"}
@@ -69,6 +83,15 @@ FIELDS_NOT_ALLOWED_FOR_DELETE: tuple[str, ...] = (
69
83
  "isolato",
70
84
  )
71
85
 
86
+ # Strict dd/MM/yyyy: strptime alone accepts non-zero-padded dates.
87
+ _DATE_PATTERN = re.compile(r"^\d{2}/\d{2}/\d{4}$")
88
+
89
+ # Belfiore code: one uppercase letter + three digits (OAS format X999).
90
+ _CODCOM_PATTERN = re.compile(r"^[A-Z]\d{3}$")
91
+
92
+ # Wrapper-level maxLength (Richiesta).
93
+ PROGR_NAZIONALE_MAX_LENGTH = 10
94
+
72
95
 
73
96
  class ValidatedAccesso(Accesso):
74
97
  """Accesso model with ANNCSU business rule validation.
@@ -136,6 +159,18 @@ class ValidatedAccesso(Accesso):
136
159
  # if the embedded coordinates violate any rule.
137
160
  ValidatedCoordinate.model_validate(payload)
138
161
 
162
+ # Rule 8: data_valid_amm format (no future bound in the accessi OAS)
163
+ value = self._get_value(self.data_valid_amm)
164
+ if value is not None:
165
+ if not _DATE_PATTERN.match(value):
166
+ raise InvalidDateFormatError(field_name="data_valid_amm", value=value)
167
+ try:
168
+ datetime.datetime.strptime(value, "%d/%m/%Y")
169
+ except ValueError:
170
+ raise InvalidDateFormatError(
171
+ field_name="data_valid_amm", value=value
172
+ ) from None
173
+
139
174
  return self
140
175
 
141
176
  # ------------------------------------------------------------------
@@ -177,4 +212,44 @@ class ValidatedAccesso(Accesso):
177
212
  )
178
213
 
179
214
 
180
- __all__ = ["ValidatedAccesso"]
215
+ class ValidatedRichiesta(Richiesta):
216
+ """Accessi Richiesta wrapper with ANNCSU business rule validation.
217
+
218
+ Validates the wrapper fields (``codcom``, ``progr_nazionale``) and
219
+ re-validates the embedded ``accesso`` via ``ValidatedAccesso``.
220
+
221
+ Raises:
222
+ CodcomRequiredError: ``codcom`` missing
223
+ CodcomFormatError: ``codcom`` not in Belfiore format X999
224
+ ProgrNazionaleRequiredError: ``progr_nazionale`` missing
225
+ AccessoMaxLengthError: ``progr_nazionale`` exceeds 10 chars
226
+ AccessoValidationError (subclasses): bubbled up from the
227
+ embedded ``ValidatedAccesso``
228
+ """
229
+
230
+ @model_validator(mode="after")
231
+ def validate_richiesta_rules(self) -> "ValidatedRichiesta":
232
+ """Apply wrapper-level ANNCSU rules, then re-validate the accesso."""
233
+ codcom = self.codcom if self.codcom else None
234
+ if codcom is None:
235
+ raise CodcomRequiredError()
236
+ if not _CODCOM_PATTERN.match(codcom):
237
+ raise CodcomFormatError(value=codcom)
238
+
239
+ prognaz = self.progr_nazionale if self.progr_nazionale else None
240
+ if prognaz is None:
241
+ raise ProgrNazionaleRequiredError()
242
+ if len(prognaz) > PROGR_NAZIONALE_MAX_LENGTH:
243
+ raise AccessoMaxLengthError(
244
+ field_name="progr_nazionale",
245
+ value=prognaz,
246
+ max_length=PROGR_NAZIONALE_MAX_LENGTH,
247
+ )
248
+
249
+ if self.accesso is not None:
250
+ ValidatedAccesso.model_validate(self.accesso.model_dump(exclude_unset=True))
251
+
252
+ return self
253
+
254
+
255
+ __all__ = ["ValidatedAccesso", "ValidatedRichiesta"]
@@ -27,13 +27,14 @@ from rich.console import Console
27
27
  from rich.table import Table
28
28
 
29
29
  from anncsu.accessi import AnncsuAccessi
30
+ from anncsu.accessi.errors import RispostaErrore as AccessiRispostaErrore
30
31
  from anncsu.accessi.models import Security
31
32
  from anncsu.accessi.models.richiestaoperazione import (
32
33
  Accesso,
33
34
  Coordinate,
34
35
  Richiesta,
35
36
  )
36
- from anncsu.accessi.models.validated import ValidatedAccesso
37
+ from anncsu.accessi.models.validated import ValidatedAccesso, ValidatedRichiesta
37
38
  from anncsu.cli.commands.constants import _resolve_token_endpoint
38
39
  from anncsu.cli.models import (
39
40
  AccessoDryRunResult,
@@ -943,6 +944,23 @@ def _run_delete_dry_run(
943
944
  raise typer.Exit(1)
944
945
 
945
946
 
947
+ def _render_server_error(e: AccessiRispostaErrore) -> None:
948
+ """Render an ANNCSU RispostaErrore (HTTP 400/404/500) readably.
949
+
950
+ The contract's problem+json carries structured ``codice`` +
951
+ ``messaggio``; bodies without them (e.g. RFC 7807 from the gateway)
952
+ fall back to the raw body.
953
+ """
954
+ codice = getattr(e.data, "codice", None)
955
+ messaggio = getattr(e.data, "messaggio", None)
956
+ if codice or messaggio:
957
+ error_console.print(
958
+ f"[red]Errore ANNCSU[/red] (codice {codice or '—'}): {messaggio or '—'}"
959
+ )
960
+ else:
961
+ error_console.print(f"[red]Error:[/red] {e}")
962
+
963
+
946
964
  def _execute_operation(
947
965
  *,
948
966
  operazione_civico: str,
@@ -961,10 +979,16 @@ def _execute_operation(
961
979
  then issues the POST and renders the response either as JSON
962
980
  (``--json``) or as a rich table.
963
981
  """
964
- # Pre-validate with business rules (raises ValidationError / typer.Exit on
965
- # invalid input).
982
+ richiesta = Richiesta(
983
+ codcom=codcom,
984
+ progr_nazionale=progr_nazionale,
985
+ accesso=accesso,
986
+ )
987
+
988
+ # Pre-validate with business rules — wrapper (codcom X999, prognaz <= 10)
989
+ # AND embedded accesso — BEFORE any API call.
966
990
  try:
967
- ValidatedAccesso.model_validate(accesso.model_dump(exclude_unset=True))
991
+ ValidatedRichiesta.model_validate(richiesta.model_dump(exclude_unset=True))
968
992
  except Exception as e:
969
993
  error_console.print(f"[red]Validation error:[/red] {e}")
970
994
  raise typer.Exit(1) from None
@@ -976,14 +1000,11 @@ def _execute_operation(
976
1000
  modi_audience=server_url,
977
1001
  )
978
1002
 
979
- richiesta = Richiesta(
980
- codcom=codcom,
981
- progr_nazionale=progr_nazionale,
982
- accesso=accesso,
983
- )
984
-
985
1003
  try:
986
1004
  response = sdk.anncsu.gestione_anncsu_pdnd(richiesta=richiesta)
1005
+ except AccessiRispostaErrore as e:
1006
+ _render_server_error(e)
1007
+ raise typer.Exit(1) from None
987
1008
  except Exception as e:
988
1009
  error_console.print(f"[red]Error:[/red] API call failed: {e}")
989
1010
  raise typer.Exit(1) from None
@@ -34,14 +34,18 @@ from pydantic import ValidationError
34
34
  from anncsu.accessi.errors.accesso_validation import (
35
35
  AccessoMaxLengthError,
36
36
  AccessoValidationError,
37
+ CodcomFormatError,
38
+ CodcomRequiredError,
37
39
  FieldNotAllowedForDeleteError,
38
40
  FieldNotAllowedForOperationError,
41
+ InvalidDateFormatError,
39
42
  NumeroMetricoMutexError,
40
43
  OperazioneCivicoError,
41
44
  ProgrCivicoRequiredError,
45
+ ProgrNazionaleRequiredError,
42
46
  SezioneCensimentoRequiredError,
43
47
  )
44
- from anncsu.accessi.models.validated import ValidatedAccesso
48
+ from anncsu.accessi.models.validated import ValidatedAccesso, ValidatedRichiesta
45
49
  from anncsu.coordinate.errors.coordinate_validation import (
46
50
  CoordinateRangeError,
47
51
  )
@@ -618,5 +622,134 @@ class TestAccessoIntegration:
618
622
  assert isinstance(accesso.numero, Unset) or accesso.numero is None
619
623
 
620
624
 
625
+ # ---------------------------------------------------------------------------
626
+ # 8. data_valid_amm format dd/MM/yyyy
627
+ # ---------------------------------------------------------------------------
628
+
629
+
630
+ class TestAccessoDataValidAmmFormat:
631
+ """data_valid_amm, when set, must be a valid dd/MM/yyyy calendar date.
632
+
633
+ NOTE: unlike odonimi, the accessi OAS declares NO not-in-future rule
634
+ ("se assente e' equiparata alla data corrente; per S e' la data di
635
+ fine validita', per le altre la data di inizio") — only the format
636
+ is checked client-side.
637
+ """
638
+
639
+ @pytest.mark.parametrize("bad", ["2024-10-08", "31/02/2024", "08.10.2024", "x"])
640
+ def test_invalid_date_raises(self, bad: str) -> None:
641
+ with pytest.raises(ValidationError) as exc_info:
642
+ ValidatedAccesso(
643
+ operazione_civico="I",
644
+ numero="12",
645
+ sezione_censimento="9",
646
+ data_valid_amm=bad,
647
+ )
648
+ cause = get_validation_error_cause(exc_info)
649
+ assert isinstance(cause, InvalidDateFormatError)
650
+ assert "data_valid_amm" in str(cause)
651
+
652
+ def test_valid_date_accepted(self) -> None:
653
+ accesso = ValidatedAccesso(
654
+ operazione_civico="I",
655
+ numero="12",
656
+ sezione_censimento="9",
657
+ data_valid_amm="08/10/2024",
658
+ )
659
+ assert accesso.data_valid_amm == "08/10/2024"
660
+
661
+ def test_future_date_accepted(self) -> None:
662
+ """Pins the deliberate difference vs odonimi: accessi OAS has no
663
+ <= today bound, so future dates pass client-side."""
664
+ import datetime
665
+
666
+ future = (datetime.date.today() + datetime.timedelta(days=30)).strftime(
667
+ "%d/%m/%Y"
668
+ )
669
+ accesso = ValidatedAccesso(
670
+ operazione_civico="I",
671
+ numero="12",
672
+ sezione_censimento="9",
673
+ data_valid_amm=future,
674
+ )
675
+ assert accesso.data_valid_amm == future
676
+
677
+
678
+ # ---------------------------------------------------------------------------
679
+ # 9. ValidatedRichiesta — wrapper fields (codcom, progr_nazionale)
680
+ # ---------------------------------------------------------------------------
681
+
682
+
683
+ def _valid_accesso_dict() -> dict:
684
+ return {
685
+ "operazione_civico": "I",
686
+ "numero": "12",
687
+ "sezione_censimento": "9",
688
+ }
689
+
690
+
691
+ class TestValidatedRichiesta:
692
+ """The Richiesta wrapper carries codcom (format X999) and
693
+ progr_nazionale (<= 10 chars), both mandatory per OAS."""
694
+
695
+ def test_valid_richiesta_accepted(self) -> None:
696
+ richiesta = ValidatedRichiesta(
697
+ codcom="A062",
698
+ progr_nazionale="2000449",
699
+ accesso=_valid_accesso_dict(),
700
+ )
701
+ assert richiesta.codcom == "A062"
702
+
703
+ def test_codcom_missing_raises(self) -> None:
704
+ with pytest.raises(ValidationError) as exc_info:
705
+ ValidatedRichiesta(progr_nazionale="2000449", accesso=_valid_accesso_dict())
706
+ cause = get_validation_error_cause(exc_info)
707
+ assert isinstance(cause, CodcomRequiredError)
708
+
709
+ @pytest.mark.parametrize("bad", ["ROMA", "1234", "A06", "A0622", "a062", "A06B"])
710
+ def test_codcom_invalid_format_raises(self, bad: str) -> None:
711
+ with pytest.raises(ValidationError) as exc_info:
712
+ ValidatedRichiesta(
713
+ codcom=bad,
714
+ progr_nazionale="2000449",
715
+ accesso=_valid_accesso_dict(),
716
+ )
717
+ cause = get_validation_error_cause(exc_info)
718
+ assert isinstance(cause, CodcomFormatError)
719
+
720
+ def test_progr_nazionale_missing_raises(self) -> None:
721
+ with pytest.raises(ValidationError) as exc_info:
722
+ ValidatedRichiesta(codcom="A062", accesso=_valid_accesso_dict())
723
+ cause = get_validation_error_cause(exc_info)
724
+ assert isinstance(cause, ProgrNazionaleRequiredError)
725
+
726
+ def test_progr_nazionale_max_length_10_raises(self) -> None:
727
+ with pytest.raises(ValidationError) as exc_info:
728
+ ValidatedRichiesta(
729
+ codcom="A062",
730
+ progr_nazionale="12345678901",
731
+ accesso=_valid_accesso_dict(),
732
+ )
733
+ cause = get_validation_error_cause(exc_info)
734
+ assert isinstance(cause, AccessoMaxLengthError)
735
+ assert "progr_nazionale" in str(cause)
736
+
737
+ def test_invalid_accesso_bubbles_up(self) -> None:
738
+ """The embedded accesso is re-validated via ValidatedAccesso."""
739
+ with pytest.raises(ValidationError) as exc_info:
740
+ ValidatedRichiesta(
741
+ codcom="A062",
742
+ progr_nazionale="2000449",
743
+ accesso={"operazione_civico": "I", "numero": "12"},
744
+ )
745
+ cause = get_validation_error_cause(exc_info)
746
+ assert isinstance(cause, SezioneCensimentoRequiredError)
747
+
748
+ def test_accesso_missing_accepted(self) -> None:
749
+ """No accesso object: wrapper-only validation still applies."""
750
+ richiesta = ValidatedRichiesta(codcom="A062", progr_nazionale="2000449")
751
+ assert richiesta.accesso is None
752
+
753
+
621
754
  if __name__ == "__main__":
622
755
  pytest.main([__file__, "-v"])