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.
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/PKG-INFO +1 -1
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/CLI.md +5 -1
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/sdk-accessi.md +25 -2
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/accessi/__init__.py +10 -1
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/accessi/errors/accesso_validation.py +68 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/accessi/models/validated.py +77 -2
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/cli/commands/accesso.py +31 -10
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/accessi/test_accesso_validation.py +134 -1
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/cli/test_accesso.py +167 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/.devcontainer/README.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/.devcontainer/devcontainer.json +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/.devcontainer/setup.sh +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/.gitattributes +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/.github/workflows/README.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/.github/workflows/ci.yml +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/.github/workflows/publish.yml +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/.gitignore +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/.pre-commit-config.yaml +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/.python-version +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/.speakeasy/gen.lock +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/.speakeasy/gen.yaml +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/.speakeasy/out.accessi.openapi.yaml +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/.speakeasy/out.coordinate.openapi.yaml +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/.speakeasy/out.odonimi.openapi.yaml +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/.speakeasy/out.openapi.yaml +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/.speakeasy/workflow.lock +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/.speakeasy/workflow.yaml +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/.vscode/settings.json +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/CONTRIBUTING.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/LICENSE +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/README.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/USAGE.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/SECURITY.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/VALIDATION.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessigetpathparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessigetpathparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessigetpathparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessigetpathparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessigetpathparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessigetqueryparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessigetqueryparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessigetqueryparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessigetqueryparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessigetqueryparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessipostbadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessipostinternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessipostmethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessipostnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessipostunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessiproggetpathparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessiproggetpathparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessiproggetpathparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessiproggetpathparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessiproggetpathparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessiproggetqueryparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessiproggetqueryparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessiproggetqueryparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessiproggetqueryparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessiproggetqueryparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessiprogpostbadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessiprogpostinternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessiprogpostmethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessiprogpostnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoaccessiprogpostunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimigetpathparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimigetpathparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimigetpathparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimigetpathparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimigetpathparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimigetqueryparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimigetqueryparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimigetqueryparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimigetqueryparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimigetqueryparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimipostbadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimipostinternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimipostmethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimipostnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimipostunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimiproggetpathparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimiproggetpathparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimiproggetpathparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimiproggetpathparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimiproggetpathparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimiproggetqueryparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimiproggetqueryparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimiproggetqueryparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimiproggetqueryparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimiproggetqueryparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimiprogpostbadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimiprogpostinternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimiprogpostmethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimiprogpostnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/elencoodonimiprogpostunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteaccessogetpathparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteaccessogetpathparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteaccessogetpathparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteaccessogetpathparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteaccessogetqueryparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteaccessogetqueryparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteaccessogetqueryparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteaccessogetqueryparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteaccessopostbadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteaccessopostinternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteaccessopostmethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteaccessopostunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteodonimogetpathparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteodonimogetpathparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteodonimogetpathparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteodonimogetpathparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteodonimogetqueryparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteodonimogetqueryparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteodonimogetqueryparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteodonimogetqueryparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteodonimopostbadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteodonimopostinternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteodonimopostmethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/esisteodonimopostunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazaccgetpathparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazaccgetpathparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazaccgetpathparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazaccgetpathparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazaccgetpathparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazaccgetqueryparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazaccgetqueryparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazaccgetqueryparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazaccgetqueryparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazaccgetqueryparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazaccpostbadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazaccpostinternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazaccpostmethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazaccpostnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazaccpostunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazareagetpathparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazareagetpathparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazareagetpathparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazareagetpathparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazareagetpathparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazareagetqueryparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazareagetqueryparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazareagetqueryparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazareagetqueryparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazareagetqueryparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazareapostbadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazareapostinternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazareapostmethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazareapostnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/prognazareapostunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/errors/serviceunavailableerror.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoaccessigetpathparamdata.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoaccessigetpathparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoaccessigetpathparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoaccessigetqueryparamdata.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoaccessigetqueryparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoaccessigetqueryparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoaccessipostdata.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoaccessipostrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoaccessipostresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoaccessiproggetpathparamdata.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoaccessiproggetpathparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoaccessiproggetpathparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoaccessiproggetqueryparamdata.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoaccessiproggetqueryparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoaccessiproggetqueryparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoaccessiprogpostdata.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoaccessiprogpostrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoaccessiprogpostresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoodonimigetpathparamdata.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoodonimigetpathparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoodonimigetpathparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoodonimigetqueryparamdata.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoodonimigetqueryparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoodonimigetqueryparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoodonimipostdata.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoodonimipostrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoodonimipostresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoodonimiproggetpathparamdata.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoodonimiproggetpathparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoodonimiproggetpathparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoodonimiproggetqueryparamdata.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoodonimiproggetqueryparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoodonimiproggetqueryparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoodonimiprogpostdata.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoodonimiprogpostrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/elencoodonimiprogpostresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/esisteaccessogetpathparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/esisteaccessogetpathparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/esisteaccessogetqueryparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/esisteaccessogetqueryparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/esisteaccessopostrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/esisteaccessopostresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/esisteodonimogetpathparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/esisteodonimogetpathparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/esisteodonimogetqueryparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/esisteodonimogetqueryparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/esisteodonimopostrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/esisteodonimopostresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/prognazaccgetpathparamdata.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/prognazaccgetpathparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/prognazaccgetpathparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/prognazaccgetqueryparamdata.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/prognazaccgetqueryparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/prognazaccgetqueryparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/prognazaccpostdata.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/prognazaccpostrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/prognazaccpostresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/prognazareagetpathparamdata.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/prognazareagetpathparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/prognazareagetpathparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/prognazareagetqueryparamdata.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/prognazareagetqueryparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/prognazareagetqueryparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/prognazareapostdata.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/prognazareapostrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/prognazareapostresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/showstatusresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/models/utils/retryconfig.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/sdk-coordinate.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/sdk-odonimi.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/sdk-pa.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/sdks/anncsu/README.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/sdks/jsonpost/README.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/sdks/pathparam/README.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/sdks/queryparam/README.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/sdks/status/README.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/docs/speakeasy.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/oas/.spectral.yaml +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/oas/README.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/oas/dev/Specifica API - ANNCSU - Aggiornamento accessi.yaml +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/oas/dev/Specifica API - ANNCSU - Aggiornamento coordinate massivo.yml +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/oas/dev/Specifica API - ANNCSU - Aggiornamento coordinate.yml +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/oas/dev/Specifica API - ANNCSU - Aggiornamento odonimi.yaml +0 -0
- {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
- {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
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/pylintrc +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/pyproject.toml +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/scripts/create_client_assertion.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/scripts/post_speakeasy_generation.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/scripts/publish.sh +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/accessi/_version.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/accessi/accessi.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/accessi/errors/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/accessi/errors/anncsuerror.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/accessi/errors/apierror.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/accessi/errors/no_response_error.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/accessi/errors/responsevalidationerror.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/accessi/errors/rispostaerrore.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/accessi/errors/show_statusop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/accessi/models/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/accessi/models/richiestaoperazione.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/accessi/models/rispostaoperazione.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/accessi/models/security.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/accessi/models/show_statusop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/accessi/py.typed +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/accessi/sdk.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/accessi/sdkconfiguration.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/accessi/status.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/cli/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/cli/app.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/cli/commands/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/cli/commands/assertion.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/cli/commands/auth.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/cli/commands/bulk.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/cli/commands/config.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/cli/commands/constants.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/cli/commands/coordinate.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/cli/commands/odonimo.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/cli/commands/pa.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/cli/models.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/auth.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/basesdk.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/config.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/errors/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/errors/apierror.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/errors/audience_mismatch.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/errors/base.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/errors/digest_serialization_mismatch.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/errors/no_response_error.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/errors/responsevalidationerror.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/hooks/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/hooks/modi_hook.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/hooks/registration.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/hooks/sdkhooks.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/hooks/token_validation.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/hooks/types.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/httpclient.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/modi.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/pdnd_assertion.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/pdnd_token.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/basesdk.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/httpclient.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/protocols.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/types/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/types/basemodel.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/utils/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/utils/annotations.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/utils/datetimes.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/utils/dynamic_imports.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/utils/enums.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/utils/eventstreaming.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/utils/forms.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/utils/headers.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/utils/logger.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/utils/metadata.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/utils/queryparams.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/utils/requestbodies.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/utils/retries.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/utils/security.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/utils/serializers.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/utils/unmarshal_json_response.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/utils/url.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdk/utils/values.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/sdkconfiguration.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/security.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/session.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/types/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/utils/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/validation/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/validation/examples.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/validation/response_validator.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/common/validation/validators.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/_version.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/bulk/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/bulk/db.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/bulk/dryrun.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/bulk/executor.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/bulk/importer.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/bulk/reporter.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/errors/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/errors/anncsuerror.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/errors/apierror.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/errors/coordinate_validation.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/errors/no_response_error.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/errors/responsevalidationerror.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/errors/risposta_validation.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/errors/rispostaerrore.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/errors/show_statusop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/jsonpost.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/models/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/models/richiestaoperazione.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/models/rispostaoperazione.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/models/security.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/models/show_statusop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/models/validated.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/py.typed +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/sdk.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/sdkconfiguration.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/coordinate/status.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/odonimi/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/odonimi/_version.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/odonimi/errors/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/odonimi/errors/anncsuerror.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/odonimi/errors/apierror.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/odonimi/errors/no_response_error.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/odonimi/errors/odonimo_validation.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/odonimi/errors/responsevalidationerror.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/odonimi/errors/rispostaerrore.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/odonimi/errors/show_statusop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/odonimi/models/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/odonimi/models/autprefettura.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/odonimi/models/provvedimento.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/odonimi/models/richiestaoperazione.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/odonimi/models/rispostaoperazione.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/odonimi/models/security.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/odonimi/models/show_statusop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/odonimi/models/validated.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/odonimi/odonimi.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/odonimi/py.typed +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/odonimi/sdk.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/odonimi/sdkconfiguration.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/odonimi/status.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/_hooks/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/_hooks/registration.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/_hooks/sdkhooks.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/_hooks/types.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/_version.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/anncsuerror.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/apierror.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/elencoaccessigetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/elencoaccessigetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/elencoaccessipostop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/elencoaccessiproggetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/elencoaccessiproggetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/elencoaccessiprogpostop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/elencoodonimigetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/elencoodonimigetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/elencoodonimipostop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/elencoodonimiproggetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/elencoodonimiproggetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/elencoodonimiprogpostop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/esisteaccessogetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/esisteaccessogetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/esisteaccessopostop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/esisteodonimogetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/esisteodonimogetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/esisteodonimopostop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/no_response_error.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/prognazaccgetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/prognazaccgetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/prognazaccpostop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/prognazareagetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/prognazareagetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/prognazareapostop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/responsevalidationerror.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/errors/show_statusop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/jsonpost.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/elencoaccessigetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/elencoaccessigetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/elencoaccessipostop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/elencoaccessiproggetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/elencoaccessiproggetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/elencoaccessiprogpostop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/elencoodonimigetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/elencoodonimigetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/elencoodonimipostop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/elencoodonimiproggetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/elencoodonimiproggetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/elencoodonimiprogpostop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/esisteaccessogetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/esisteaccessogetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/esisteaccessopostop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/esisteodonimogetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/esisteodonimogetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/esisteodonimopostop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/prognazaccgetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/prognazaccgetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/prognazaccpostop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/prognazareagetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/prognazareagetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/prognazareapostop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/models/show_statusop.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/pathparam.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/py.typed +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/queryparam.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/sdk.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/sdkconfiguration.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/pa/status.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/README.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/accessi/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/accessi/test_do_request_signature.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/accessi/test_imports.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/cli/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/cli/conftest.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/cli/test_assertion.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/cli/test_auth.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/cli/test_config.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/cli/test_coordinate.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/cli/test_coordinate_bulk.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/cli/test_duckdb_batch.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/cli/test_main.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/cli/test_odonimo.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/cli/test_pa.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/cli/test_raw_output.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/cli/test_token_endpoint_resolution.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/common/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/common/test_auth_modi_integration.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/common/test_cli_env_override.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/common/test_config.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/common/test_imports.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/common/test_modi.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/common/test_modi_hook.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/common/test_pdnd_assertion.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/common/test_pdnd_auth_manager.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/common/test_pdnd_token.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/common/test_security.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/common/test_security_basemodel.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/common/test_session.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/common/test_token_validation_hook.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/conftest.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/coordinate/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/coordinate/bulk/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/coordinate/bulk/test_db.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/coordinate/bulk/test_dryrun.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/coordinate/bulk/test_executor.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/coordinate/bulk/test_importer.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/coordinate/bulk/test_integration.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/coordinate/bulk/test_reporter.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/coordinate/test_coordinate_validation.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/coordinate/test_imports.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/coordinate/test_risposta_validation.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/coordinate/test_sdk_hooks_integration.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/integration/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/integration/coordinate/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/integration/coordinate/test_jsonpost_async_httpx.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/integration/coordinate/test_jsonpost_httpx.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/integration/coordinate/test_status_async_httpx.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/integration/coordinate/test_status_httpx.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/integration/pa/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/integration/pa/test_jsonpost_async_httpx.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/integration/pa/test_jsonpost_httpx.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/integration/pa/test_pathparam_async_httpx.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/integration/pa/test_pathparam_httpx.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/integration/pa/test_queryparam_async_httpx.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/integration/pa/test_queryparam_httpx.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/integration/pa/test_status_httpx.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/integration/test_sdk_instantiation.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/integration/test_security_in_requests.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/odonimi/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/odonimi/test_imports.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/odonimi/test_odonimo_validation.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/pa/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/pa/test_imports.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/pa/test_response_field_mapping.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/test_post_speakeasy_generation.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/validation/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/validation/coordinate/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/validation/coordinate/test_coordinate_operations_validation.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/validation/coordinate/test_model_factories.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/validation/coordinate/test_validators.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/validation/coordinate/test_validators_property.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/validation/pa/ADVANCED_TESTING.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/validation/pa/README.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/validation/pa/README_COMPREHENSIVE_TESTS.md +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/validation/pa/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/validation/pa/test_all_operations_validation.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/validation/pa/test_model_factories.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/validation/pa/test_model_factories_comprehensive.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/validation/pa/test_validators.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/validation/pa/test_validators_property.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/tests/validation/test_response_validator.py +0 -0
- {anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/uv.lock +0 -0
|
@@ -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
|
|
363
|
-
|
|
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",
|
{anncsu_sdk-0.0.10.dev4 → anncsu_sdk-0.0.10.dev5}/src/anncsu/accessi/errors/accesso_validation.py
RENAMED
|
@@ -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
|
-
|
|
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
|
-
|
|
965
|
-
|
|
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
|
-
|
|
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"])
|