anncsu-sdk 0.0.10.dev3__tar.gz → 0.0.10.dev4__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.dev3 → anncsu_sdk-0.0.10.dev4}/PKG-INFO +1 -1
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/CLI.md +33 -13
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/VALIDATION.md +2 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/sdk-odonimi.md +29 -1
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/cli/commands/odonimo.py +48 -3
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/__init__.py +6 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/errors/odonimo_validation.py +60 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/models/validated.py +70 -7
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/cli/test_odonimo.py +292 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/odonimi/test_odonimo_validation.py +180 -3
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/.devcontainer/README.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/.devcontainer/devcontainer.json +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/.devcontainer/setup.sh +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/.gitattributes +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/.github/workflows/README.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/.github/workflows/ci.yml +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/.github/workflows/publish.yml +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/.gitignore +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/.pre-commit-config.yaml +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/.python-version +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/.speakeasy/gen.lock +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/.speakeasy/gen.yaml +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/.speakeasy/out.accessi.openapi.yaml +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/.speakeasy/out.coordinate.openapi.yaml +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/.speakeasy/out.odonimi.openapi.yaml +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/.speakeasy/out.openapi.yaml +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/.speakeasy/workflow.lock +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/.speakeasy/workflow.yaml +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/.vscode/settings.json +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/CONTRIBUTING.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/LICENSE +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/README.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/USAGE.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/SECURITY.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessigetpathparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessigetpathparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessigetpathparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessigetpathparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessigetpathparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessigetqueryparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessigetqueryparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessigetqueryparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessigetqueryparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessigetqueryparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessipostbadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessipostinternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessipostmethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessipostnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessipostunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessiproggetpathparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessiproggetpathparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessiproggetpathparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessiproggetpathparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessiproggetpathparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessiproggetqueryparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessiproggetqueryparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessiproggetqueryparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessiproggetqueryparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessiproggetqueryparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessiprogpostbadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessiprogpostinternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessiprogpostmethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessiprogpostnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoaccessiprogpostunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimigetpathparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimigetpathparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimigetpathparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimigetpathparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimigetpathparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimigetqueryparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimigetqueryparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimigetqueryparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimigetqueryparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimigetqueryparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimipostbadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimipostinternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimipostmethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimipostnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimipostunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimiproggetpathparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimiproggetpathparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimiproggetpathparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimiproggetpathparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimiproggetpathparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimiproggetqueryparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimiproggetqueryparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimiproggetqueryparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimiproggetqueryparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimiproggetqueryparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimiprogpostbadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimiprogpostinternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimiprogpostmethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimiprogpostnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/elencoodonimiprogpostunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteaccessogetpathparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteaccessogetpathparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteaccessogetpathparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteaccessogetpathparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteaccessogetqueryparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteaccessogetqueryparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteaccessogetqueryparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteaccessogetqueryparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteaccessopostbadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteaccessopostinternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteaccessopostmethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteaccessopostunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteodonimogetpathparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteodonimogetpathparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteodonimogetpathparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteodonimogetpathparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteodonimogetqueryparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteodonimogetqueryparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteodonimogetqueryparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteodonimogetqueryparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteodonimopostbadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteodonimopostinternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteodonimopostmethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/esisteodonimopostunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazaccgetpathparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazaccgetpathparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazaccgetpathparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazaccgetpathparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazaccgetpathparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazaccgetqueryparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazaccgetqueryparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazaccgetqueryparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazaccgetqueryparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazaccgetqueryparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazaccpostbadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazaccpostinternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazaccpostmethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazaccpostnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazaccpostunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazareagetpathparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazareagetpathparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazareagetpathparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazareagetpathparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazareagetpathparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazareagetqueryparambadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazareagetqueryparaminternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazareagetqueryparammethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazareagetqueryparamnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazareagetqueryparamunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazareapostbadrequesterror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazareapostinternalservererror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazareapostmethodnotallowederror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazareapostnotfounderror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/prognazareapostunprocessableentityerror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/errors/serviceunavailableerror.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoaccessigetpathparamdata.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoaccessigetpathparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoaccessigetpathparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoaccessigetqueryparamdata.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoaccessigetqueryparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoaccessigetqueryparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoaccessipostdata.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoaccessipostrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoaccessipostresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoaccessiproggetpathparamdata.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoaccessiproggetpathparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoaccessiproggetpathparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoaccessiproggetqueryparamdata.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoaccessiproggetqueryparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoaccessiproggetqueryparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoaccessiprogpostdata.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoaccessiprogpostrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoaccessiprogpostresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoodonimigetpathparamdata.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoodonimigetpathparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoodonimigetpathparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoodonimigetqueryparamdata.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoodonimigetqueryparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoodonimigetqueryparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoodonimipostdata.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoodonimipostrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoodonimipostresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoodonimiproggetpathparamdata.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoodonimiproggetpathparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoodonimiproggetpathparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoodonimiproggetqueryparamdata.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoodonimiproggetqueryparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoodonimiproggetqueryparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoodonimiprogpostdata.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoodonimiprogpostrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/elencoodonimiprogpostresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/esisteaccessogetpathparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/esisteaccessogetpathparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/esisteaccessogetqueryparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/esisteaccessogetqueryparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/esisteaccessopostrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/esisteaccessopostresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/esisteodonimogetpathparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/esisteodonimogetpathparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/esisteodonimogetqueryparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/esisteodonimogetqueryparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/esisteodonimopostrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/esisteodonimopostresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/prognazaccgetpathparamdata.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/prognazaccgetpathparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/prognazaccgetpathparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/prognazaccgetqueryparamdata.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/prognazaccgetqueryparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/prognazaccgetqueryparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/prognazaccpostdata.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/prognazaccpostrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/prognazaccpostresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/prognazareagetpathparamdata.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/prognazareagetpathparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/prognazareagetpathparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/prognazareagetqueryparamdata.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/prognazareagetqueryparamrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/prognazareagetqueryparamresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/prognazareapostdata.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/prognazareapostrequest.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/prognazareapostresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/showstatusresponse.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/models/utils/retryconfig.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/sdk-accessi.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/sdk-coordinate.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/sdk-pa.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/sdks/anncsu/README.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/sdks/jsonpost/README.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/sdks/pathparam/README.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/sdks/queryparam/README.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/sdks/status/README.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/docs/speakeasy.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/oas/.spectral.yaml +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/oas/README.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/oas/dev/Specifica API - ANNCSU - Aggiornamento accessi.yaml +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/oas/dev/Specifica API - ANNCSU - Aggiornamento coordinate massivo.yml +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/oas/dev/Specifica API - ANNCSU - Aggiornamento coordinate.yml +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/oas/dev/Specifica API - ANNCSU - Aggiornamento odonimi.yaml +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/oas/dev/Specifica API - ANNCSU /342/200/223 Consultazione per le PA.yaml" +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/oas/prod/Specifica API - ANNCSU /342/200/223 Consultazione per le PA.yaml" +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/pylintrc +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/pyproject.toml +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/scripts/create_client_assertion.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/scripts/post_speakeasy_generation.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/scripts/publish.sh +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/accessi/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/accessi/_version.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/accessi/accessi.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/accessi/errors/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/accessi/errors/accesso_validation.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/accessi/errors/anncsuerror.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/accessi/errors/apierror.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/accessi/errors/no_response_error.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/accessi/errors/responsevalidationerror.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/accessi/errors/rispostaerrore.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/accessi/errors/show_statusop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/accessi/models/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/accessi/models/richiestaoperazione.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/accessi/models/rispostaoperazione.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/accessi/models/security.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/accessi/models/show_statusop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/accessi/models/validated.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/accessi/py.typed +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/accessi/sdk.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/accessi/sdkconfiguration.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/accessi/status.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/cli/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/cli/app.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/cli/commands/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/cli/commands/accesso.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/cli/commands/assertion.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/cli/commands/auth.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/cli/commands/bulk.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/cli/commands/config.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/cli/commands/constants.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/cli/commands/coordinate.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/cli/commands/pa.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/cli/models.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/auth.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/basesdk.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/config.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/errors/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/errors/apierror.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/errors/audience_mismatch.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/errors/base.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/errors/digest_serialization_mismatch.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/errors/no_response_error.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/errors/responsevalidationerror.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/hooks/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/hooks/modi_hook.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/hooks/registration.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/hooks/sdkhooks.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/hooks/token_validation.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/hooks/types.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/httpclient.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/modi.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/pdnd_assertion.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/pdnd_token.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/basesdk.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/httpclient.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/protocols.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/types/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/types/basemodel.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/utils/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/utils/annotations.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/utils/datetimes.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/utils/dynamic_imports.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/utils/enums.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/utils/eventstreaming.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/utils/forms.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/utils/headers.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/utils/logger.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/utils/metadata.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/utils/queryparams.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/utils/requestbodies.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/utils/retries.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/utils/security.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/utils/serializers.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/utils/unmarshal_json_response.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/utils/url.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdk/utils/values.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/sdkconfiguration.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/security.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/session.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/types/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/utils/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/validation/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/validation/examples.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/validation/response_validator.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/common/validation/validators.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/_version.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/bulk/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/bulk/db.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/bulk/dryrun.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/bulk/executor.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/bulk/importer.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/bulk/reporter.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/errors/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/errors/anncsuerror.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/errors/apierror.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/errors/coordinate_validation.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/errors/no_response_error.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/errors/responsevalidationerror.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/errors/risposta_validation.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/errors/rispostaerrore.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/errors/show_statusop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/jsonpost.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/models/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/models/richiestaoperazione.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/models/rispostaoperazione.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/models/security.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/models/show_statusop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/models/validated.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/py.typed +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/sdk.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/sdkconfiguration.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/coordinate/status.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/_version.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/errors/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/errors/anncsuerror.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/errors/apierror.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/errors/no_response_error.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/errors/responsevalidationerror.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/errors/rispostaerrore.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/errors/show_statusop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/models/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/models/autprefettura.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/models/provvedimento.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/models/richiestaoperazione.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/models/rispostaoperazione.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/models/security.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/models/show_statusop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/odonimi.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/py.typed +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/sdk.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/sdkconfiguration.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/status.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/_hooks/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/_hooks/registration.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/_hooks/sdkhooks.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/_hooks/types.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/_version.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/anncsuerror.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/apierror.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/elencoaccessigetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/elencoaccessigetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/elencoaccessipostop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/elencoaccessiproggetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/elencoaccessiproggetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/elencoaccessiprogpostop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/elencoodonimigetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/elencoodonimigetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/elencoodonimipostop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/elencoodonimiproggetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/elencoodonimiproggetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/elencoodonimiprogpostop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/esisteaccessogetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/esisteaccessogetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/esisteaccessopostop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/esisteodonimogetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/esisteodonimogetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/esisteodonimopostop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/no_response_error.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/prognazaccgetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/prognazaccgetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/prognazaccpostop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/prognazareagetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/prognazareagetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/prognazareapostop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/responsevalidationerror.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/errors/show_statusop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/jsonpost.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/elencoaccessigetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/elencoaccessigetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/elencoaccessipostop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/elencoaccessiproggetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/elencoaccessiproggetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/elencoaccessiprogpostop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/elencoodonimigetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/elencoodonimigetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/elencoodonimipostop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/elencoodonimiproggetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/elencoodonimiproggetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/elencoodonimiprogpostop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/esisteaccessogetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/esisteaccessogetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/esisteaccessopostop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/esisteodonimogetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/esisteodonimogetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/esisteodonimopostop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/prognazaccgetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/prognazaccgetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/prognazaccpostop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/prognazareagetpathparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/prognazareagetqueryparamop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/prognazareapostop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/models/show_statusop.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/pathparam.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/py.typed +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/queryparam.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/sdk.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/sdkconfiguration.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/pa/status.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/README.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/accessi/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/accessi/test_accesso_validation.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/accessi/test_do_request_signature.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/accessi/test_imports.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/cli/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/cli/conftest.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/cli/test_accesso.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/cli/test_assertion.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/cli/test_auth.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/cli/test_config.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/cli/test_coordinate.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/cli/test_coordinate_bulk.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/cli/test_duckdb_batch.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/cli/test_main.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/cli/test_pa.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/cli/test_raw_output.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/cli/test_token_endpoint_resolution.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/common/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/common/test_auth_modi_integration.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/common/test_cli_env_override.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/common/test_config.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/common/test_imports.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/common/test_modi.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/common/test_modi_hook.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/common/test_pdnd_assertion.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/common/test_pdnd_auth_manager.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/common/test_pdnd_token.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/common/test_security.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/common/test_security_basemodel.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/common/test_session.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/common/test_token_validation_hook.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/conftest.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/coordinate/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/coordinate/bulk/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/coordinate/bulk/test_db.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/coordinate/bulk/test_dryrun.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/coordinate/bulk/test_executor.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/coordinate/bulk/test_importer.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/coordinate/bulk/test_integration.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/coordinate/bulk/test_reporter.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/coordinate/test_coordinate_validation.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/coordinate/test_imports.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/coordinate/test_risposta_validation.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/coordinate/test_sdk_hooks_integration.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/integration/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/integration/coordinate/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/integration/coordinate/test_jsonpost_async_httpx.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/integration/coordinate/test_jsonpost_httpx.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/integration/coordinate/test_status_async_httpx.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/integration/coordinate/test_status_httpx.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/integration/pa/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/integration/pa/test_jsonpost_async_httpx.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/integration/pa/test_jsonpost_httpx.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/integration/pa/test_pathparam_async_httpx.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/integration/pa/test_pathparam_httpx.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/integration/pa/test_queryparam_async_httpx.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/integration/pa/test_queryparam_httpx.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/integration/pa/test_status_httpx.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/integration/test_sdk_instantiation.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/integration/test_security_in_requests.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/odonimi/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/odonimi/test_imports.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/pa/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/pa/test_imports.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/pa/test_response_field_mapping.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/test_post_speakeasy_generation.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/validation/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/validation/coordinate/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/validation/coordinate/test_coordinate_operations_validation.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/validation/coordinate/test_model_factories.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/validation/coordinate/test_validators.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/validation/coordinate/test_validators_property.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/validation/pa/ADVANCED_TESTING.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/validation/pa/README.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/validation/pa/README_COMPREHENSIVE_TESTS.md +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/validation/pa/__init__.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/validation/pa/test_all_operations_validation.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/validation/pa/test_model_factories.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/validation/pa/test_model_factories_comprehensive.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/validation/pa/test_validators.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/validation/pa/test_validators_property.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/tests/validation/test_response_validator.py +0 -0
- {anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/uv.lock +0 -0
|
@@ -2192,17 +2192,17 @@ anncsu odonimo insert --codcom A062 --dug VIA \
|
|
|
2192
2192
|
Options:
|
|
2193
2193
|
|
|
2194
2194
|
- `--codcom, -c` - Codice comune (Belfiore code, e.g. `A062`) **[required]**
|
|
2195
|
-
- `--dug` - DUG (e.g. `VIA`, `PIAZZA`, `STRADA
|
|
2196
|
-
- `--denom-delibera` - Denominazione delibera (uppercase applied server-side)
|
|
2197
|
-
- `--denom-in-lingua-1` / `--denom-in-lingua-2` - Odonimo in lingua (per comuni bi/tri-lingua)
|
|
2198
|
-
- `--denom-localita` - Denominazione località (uppercase applied)
|
|
2199
|
-
- `--codice-comunale` - Codifica comunale dell'odonimo (no uppercase)
|
|
2200
|
-
- `--provv-data` - Data del provvedimento (formato `dd/MM/yyyy`)
|
|
2195
|
+
- `--dug` - DUG (e.g. `VIA`, `PIAZZA`, `STRADA`; max 30 char) **[required for I/R]**
|
|
2196
|
+
- `--denom-delibera` - Denominazione ufficiale da delibera, **senza DUG** (e.g. `DELLE ORCHIDEE` for "VIA DELLE ORCHIDEE"; max 120 char, uppercase applied server-side)
|
|
2197
|
+
- `--denom-in-lingua-1` / `--denom-in-lingua-2` - Odonimo in lingua, **DUG inclusa** (per comuni bi/tri-lingua; max 150 char, uppercase applied)
|
|
2198
|
+
- `--denom-localita` - Denominazione località (max 151 char — OAS quirk; uppercase applied)
|
|
2199
|
+
- `--codice-comunale` - Codifica comunale dell'odonimo (max 30 char, no uppercase)
|
|
2200
|
+
- `--provv-data` - Data del provvedimento (valid calendar date, formato `dd/MM/yyyy`)
|
|
2201
2201
|
- `--provv-protocollo` - Protocollo del provvedimento (max 70 char, no uppercase)
|
|
2202
|
-
- `--provv-flag-delibera` - Flag delibera
|
|
2203
|
-
- `--prefettura-data` - Data prefettura (required if `--prefettura-protocollo`)
|
|
2204
|
-
- `--prefettura-protocollo` - Protocollo prefettura (required if `--prefettura-data`)
|
|
2205
|
-
- `--data-valid-amm` - Data validità amministrativa (
|
|
2202
|
+
- `--provv-flag-delibera` - Flag delibera, **only `0`-`4` accepted**; `0` and `1` make `--provv-data` + `--provv-protocollo` required
|
|
2203
|
+
- `--prefettura-data` - Data prefettura (`dd/MM/yyyy`; required if `--prefettura-protocollo`)
|
|
2204
|
+
- `--prefettura-protocollo` - Protocollo prefettura (max 70 char; required if `--prefettura-data`)
|
|
2205
|
+
- `--data-valid-amm` - Data validità amministrativa (`dd/MM/yyyy`). Must be **≤ today** for every operation (checked client-side); for R it must additionally be ≥ the previous validity date (checked server-side)
|
|
2206
2206
|
- `--token-endpoint, -e` - PDND token endpoint URL
|
|
2207
2207
|
- `--server-url, -s` - API server URL (auto-discovered from voucher if omitted)
|
|
2208
2208
|
- `--validation/--production` - Use validation (UAT) or production environment
|
|
@@ -2211,6 +2211,8 @@ Options:
|
|
|
2211
2211
|
- `--raw` - Print raw API response to stderr
|
|
2212
2212
|
- `--dry-run` - I + S rollback (see `--dry-run` section below)
|
|
2213
2213
|
|
|
2214
|
+
All constraints above (maxLength, flag range, date format, future dates) are validated **client-side before any API call** via `ValidatedOdonimo` — invalid input exits with code 1 and a `Validation error:` message, without consuming PDND tokens. See [sdk-odonimi.md](sdk-odonimi.md#business-rules) for the full rule list.
|
|
2215
|
+
|
|
2214
2216
|
JSON output:
|
|
2215
2217
|
|
|
2216
2218
|
```json
|
|
@@ -2241,10 +2243,22 @@ anncsu odonimo update --codcom A062 \
|
|
|
2241
2243
|
|
|
2242
2244
|
Options:
|
|
2243
2245
|
|
|
2244
|
-
- All `insert` options (
|
|
2245
|
-
- `--prognaz, -p` - Progressivo nazionale dell'odonimo (required unless `--auto-resolve`)
|
|
2246
|
+
- All `insert` options (same fields, constraints and client-side validation — see the `insert` option list above)
|
|
2247
|
+
- `--prognaz, -p` - Progressivo nazionale dell'odonimo (max 10 char; required unless `--auto-resolve`)
|
|
2246
2248
|
- `--auto-resolve` - Resolve `--prognaz` via PA from `--codcom` + `--denom` (see `--auto-resolve` section)
|
|
2247
|
-
- `--denom` - Base64-encoded denomination used with `--auto-resolve`
|
|
2249
|
+
- `--denom` - Base64-encoded denomination used with `--auto-resolve` (lookup only — the **new** denomination goes in `--denom-delibera`)
|
|
2250
|
+
|
|
2251
|
+
Note: `R` is a **replace**, not a partial patch — read the current state first (`anncsu pa odonimo`) and re-pass the values you want to keep.
|
|
2252
|
+
|
|
2253
|
+
Server-side errors (HTTP 400/404/500) are rendered with the structured ANNCSU fields:
|
|
2254
|
+
|
|
2255
|
+
```
|
|
2256
|
+
Errore ANNCSU (codice 23): Errore di validazione: ...
|
|
2257
|
+
```
|
|
2258
|
+
|
|
2259
|
+
When an `R` with `--data-valid-amm` fails server-side, the CLI also prints a hint about the rule it cannot check client-side: *per l'aggiornamento (R), `data_valid_amm` deve essere ≥ della precedente data di validità dell'odonimo*. Non-ANNCSU error bodies (e.g. RFC 7807 from the GovWay gateway) are shown raw.
|
|
2260
|
+
|
|
2261
|
+
> **Known limitation — clearing `codice_comunale`**: `codice_comunale` is the only *nullable* field of the request schema (three states: omitted / value / explicit `null`). The CLI can omit it or set a value, but cannot send an explicit `"codice_comunale": null` — i.e. there is no way to **clear** an existing codifica comunale via `update`. If this becomes a real use case, a dedicated flag (e.g. `--clear-codice-comunale`) is the planned solution. The SDK supports it already: `Richiesta(codice_comunale=None, ...)` with the field explicitly set serializes to `null`.
|
|
2248
2262
|
|
|
2249
2263
|
#### `anncsu odonimo delete`
|
|
2250
2264
|
|
|
@@ -2309,6 +2323,12 @@ Unlike `accesso --dry-run` (which operates on an existing accesso via test+resto
|
|
|
2309
2323
|
|
|
2310
2324
|
**For `update --dry-run`**: `--prognaz` and `--auto-resolve` are ignored (a warning is printed) because the R is always applied to the fake odonimo generated by the preceding I.
|
|
2311
2325
|
|
|
2326
|
+
**Client-side validation in dry-run**: user data is validated via `ValidatedOdonimo` (same rules as the real commands — maxLength, flag range, date format, future dates) before being sent. For `update --dry-run` the user R payload is validated **after** the fake I has been created: on validation error the CLI prints `Validation error (user R):`, attempts an emergency S cleanup of the fake odonimo, and exits 1.
|
|
2327
|
+
|
|
2328
|
+
**Server error rendering in dry-run**: unlike the real commands (which render `Errore ANNCSU (codice N): messaggio` plus the `data_valid_amm` hint), a server rejection inside a dry-run step is captured into that step's result — e.g. `update_op.messaggio = "Update exception: <raw body>"` — so the cycle can continue with the S cleanup. Check `test_op` / `update_op` / `rollback` in the JSON output for the per-step outcome.
|
|
2329
|
+
|
|
2330
|
+
> **Tip — reproducing the `data_valid_amm` server rule safely**: the fake odonimo is created *today*, so its current validity date is the creation date. Running `update --dry-run --data-valid-amm <past date>` makes the R violate the server rule *data_valid_amm ≥ precedente* on the fictitious odonimo — a safe way to capture the real ANNCSU error code and message without touching real data.
|
|
2331
|
+
|
|
2312
2332
|
Examples:
|
|
2313
2333
|
|
|
2314
2334
|
```bash
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
The ANNCSU SDK implements a hybrid validation approach to ensure data quality for both API requests and responses.
|
|
4
4
|
|
|
5
|
+
> **Write operations (odonimi/accessi)**: the business-rule validation for the *aggiornamento* APIs lives in dedicated models — `ValidatedOdonimo` (rules I/R/S, maxLength, flag delibera 0-4, date `dd/MM/yyyy`, `data_valid_amm` non-future) and `ValidatedAccesso`. See [sdk-odonimi.md § Validazione Odonimo](sdk-odonimi.md#validazione-odonimo) for the full rule list and error classes. This document covers the *consultazione* (PA) input/response validation.
|
|
6
|
+
|
|
5
7
|
## Overview
|
|
6
8
|
|
|
7
9
|
### Phase 1: Input Validation (Always Enabled)
|
|
@@ -257,6 +257,28 @@ def is_success(response, tipo_operazione: str) -> bool:
|
|
|
257
257
|
|
|
258
258
|
Una check ingenua `esito == "0"` produce un **false-negative** sulle S che vanno a buon fine — è una causa nota di errori in codice cliente.
|
|
259
259
|
|
|
260
|
+
## Errori HTTP (`RispostaErrore`)
|
|
261
|
+
|
|
262
|
+
I rifiuti del server (HTTP **400** richiesta non valida, **404** odonimo non trovato, **500** errore interno) arrivano come `application/problem+json`, ma **non è RFC 7807**: il contratto ANNCSU definisce uno schema custom con tre campi (`id`, `codice`, `messaggio`). L'SDK li trasforma nell'eccezione `RispostaErrore`:
|
|
263
|
+
|
|
264
|
+
```python
|
|
265
|
+
from anncsu.odonimi.errors import RispostaErrore
|
|
266
|
+
|
|
267
|
+
try:
|
|
268
|
+
response = sdk.anncsu.gestione_anncsu_odonimi_pdnd(richiesta=richiesta)
|
|
269
|
+
except RispostaErrore as e:
|
|
270
|
+
print(e.data.codice) # es. "23" — codice dal catalogo errori ANNCSU
|
|
271
|
+
print(e.data.messaggio) # es. "Errore di validazione: ..."
|
|
272
|
+
# str(e) è il body JSON grezzo della risposta
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
Attenzione a due cose:
|
|
276
|
+
|
|
277
|
+
- `str(e)` (e quindi un log naive `f"errore: {e}"`) mostra il **body grezzo**, non i campi strutturati — usare sempre `e.data.codice` / `e.data.messaggio`.
|
|
278
|
+
- Se il body non è conforme allo schema ANNCSU (es. un RFC 7807 vero emesso dal gateway GovWay, con `type`/`title`/`detail`), `e.data.codice` e `e.data.messaggio` sono `None`: in quel caso l'unica informazione utile è `str(e)`.
|
|
279
|
+
|
|
280
|
+
Caso tipico di 400 su `R`: `data_valid_amm` inferiore alla precedente data di validità dell'odonimo — regola che il client **non può** verificare (richiede il valore storico). La CLI in questo caso mostra `Errore ANNCSU (codice N): messaggio` più una nota che spiega la regola.
|
|
281
|
+
|
|
260
282
|
## Validazione Odonimo
|
|
261
283
|
|
|
262
284
|
L'SDK fornisce un modello `ValidatedOdonimo` con validazione delle business rules ANNCSU. Va sempre usato prima della chiamata API per intercettare errori a livello locale.
|
|
@@ -273,8 +295,11 @@ Le regole sono applicate in ordine in un singolo `@model_validator(mode="after")
|
|
|
273
295
|
6. **Per `S`**: `dug` **vietato** — altrimenti `DugNotAllowedForDeleteError`
|
|
274
296
|
7. Se `provvedimento.flag_delibera ∈ {"0","1"}`: `data` + `protocollo` obbligatori — altrimenti `FlagDeliberaMissingFieldsError`
|
|
275
297
|
8. `aut_prefettura.data_pref` ↔ `protocollo_pref` mutex (entrambi o nessuno) — altrimenti `PrefetturaMutexError`
|
|
298
|
+
9. `provvedimento.flag_delibera`, se valorizzato, deve essere `"0"`..`"4"` (OAS: "valori numerici da 0 a 4") — altrimenti `FlagDeliberaInvalidValueError`
|
|
299
|
+
10. I campi data (`provvedimento.data`, `aut_prefettura.data_pref`, `data_valid_amm`), se valorizzati, devono essere date di calendario valide in formato **`dd/MM/yyyy`** (es. `"10/10/2023"`; rifiutati `"2023-10-10"`, `"31/02/2024"`) — altrimenti `InvalidDateFormatError`
|
|
300
|
+
11. `data_valid_amm` non può essere nel futuro, per **tutte** le operazioni — altrimenti `DataValidAmmInFutureError`. L'OAS dice "minore o uguale della data corrente per inserimento e soppressione. Per aggiornamento **anche** >= della precedente": l'"anche" è additivo, quindi il vincolo ≤ data corrente vale pure per `R`
|
|
276
301
|
|
|
277
|
-
|
|
302
|
+
La metà R-only della regola su `data_valid_amm` (`≥` della precedente) resta **delegata al server**: richiede il valore storico precedente, non disponibile lato client.
|
|
278
303
|
|
|
279
304
|
### Uso del Modello Validato
|
|
280
305
|
|
|
@@ -338,6 +363,9 @@ from anncsu.odonimi.errors.odonimo_validation import (
|
|
|
338
363
|
OdonimoMaxLengthError, # campo eccede maxLength OAS
|
|
339
364
|
FlagDeliberaMissingFieldsError, # flag_delibera 0/1 senza data+protocollo
|
|
340
365
|
PrefetturaMutexError, # data_pref ↔ protocollo_pref mutex
|
|
366
|
+
FlagDeliberaInvalidValueError, # flag_delibera fuori range 0-4
|
|
367
|
+
InvalidDateFormatError, # data non valida o non dd/MM/yyyy
|
|
368
|
+
DataValidAmmInFutureError, # data_valid_amm nel futuro per I/S
|
|
341
369
|
)
|
|
342
370
|
|
|
343
371
|
# Catch specifico
|
|
@@ -48,6 +48,7 @@ from anncsu.common.modi import AuditContext, ModIConfig
|
|
|
48
48
|
from anncsu.common.security import Security as PASecurity
|
|
49
49
|
from anncsu.common.session import get_config_dir
|
|
50
50
|
from anncsu.odonimi import AnncsuOdonimi
|
|
51
|
+
from anncsu.odonimi.errors import RispostaErrore as OdonimiRispostaErrore
|
|
51
52
|
from anncsu.odonimi.models import Security
|
|
52
53
|
from anncsu.odonimi.models.richiestaoperazione import (
|
|
53
54
|
AutPrefettura,
|
|
@@ -1364,6 +1365,36 @@ def _build_richiesta(
|
|
|
1364
1365
|
)
|
|
1365
1366
|
|
|
1366
1367
|
|
|
1368
|
+
def _render_server_error(
|
|
1369
|
+
e: OdonimiRispostaErrore,
|
|
1370
|
+
*,
|
|
1371
|
+
tipo_operazione: str,
|
|
1372
|
+
richiesta: Richiesta,
|
|
1373
|
+
) -> None:
|
|
1374
|
+
"""Render an ANNCSU ``RispostaErrore`` (HTTP 400/404/500) readably.
|
|
1375
|
+
|
|
1376
|
+
The contract's problem+json carries structured ``codice`` +
|
|
1377
|
+
``messaggio``; bodies without them (e.g. RFC 7807 from the gateway)
|
|
1378
|
+
fall back to the raw body. For R with ``data_valid_amm`` set, the
|
|
1379
|
+
server-side rule that the client cannot check is surfaced as a hint.
|
|
1380
|
+
"""
|
|
1381
|
+
codice = getattr(e.data, "codice", None)
|
|
1382
|
+
messaggio = getattr(e.data, "messaggio", None)
|
|
1383
|
+
if codice or messaggio:
|
|
1384
|
+
error_console.print(
|
|
1385
|
+
f"[red]Errore ANNCSU[/red] (codice {codice or '—'}): {messaggio or '—'}"
|
|
1386
|
+
)
|
|
1387
|
+
else:
|
|
1388
|
+
error_console.print(f"[red]Error:[/red] {e}")
|
|
1389
|
+
|
|
1390
|
+
if tipo_operazione == "R" and richiesta.data_valid_amm:
|
|
1391
|
+
error_console.print(
|
|
1392
|
+
"[yellow]Nota:[/yellow] per l'aggiornamento (R), 'data_valid_amm' "
|
|
1393
|
+
"deve essere maggiore o uguale alla precedente data di validità "
|
|
1394
|
+
"dell'odonimo (regola verificata dal server ANNCSU)."
|
|
1395
|
+
)
|
|
1396
|
+
|
|
1397
|
+
|
|
1367
1398
|
def _execute_operation(
|
|
1368
1399
|
*,
|
|
1369
1400
|
tipo_operazione: str,
|
|
@@ -1395,6 +1426,9 @@ def _execute_operation(
|
|
|
1395
1426
|
|
|
1396
1427
|
try:
|
|
1397
1428
|
response = sdk.anncsu.gestione_anncsu_odonimi_pdnd(richiesta=richiesta)
|
|
1429
|
+
except OdonimiRispostaErrore as e:
|
|
1430
|
+
_render_server_error(e, tipo_operazione=tipo_operazione, richiesta=richiesta)
|
|
1431
|
+
raise typer.Exit(1) from None
|
|
1398
1432
|
except Exception as e:
|
|
1399
1433
|
error_console.print(f"[red]Error:[/red] API call failed: {e}")
|
|
1400
1434
|
raise typer.Exit(1) from None
|
|
@@ -1532,7 +1566,10 @@ def insert(
|
|
|
1532
1566
|
str | None,
|
|
1533
1567
|
typer.Option(
|
|
1534
1568
|
"--data-valid-amm",
|
|
1535
|
-
help=
|
|
1569
|
+
help=(
|
|
1570
|
+
"Data di validità amministrativa (dd/MM/yyyy). Non può "
|
|
1571
|
+
"essere nel futuro (regola ANNCSU per I)."
|
|
1572
|
+
),
|
|
1536
1573
|
),
|
|
1537
1574
|
] = None,
|
|
1538
1575
|
token_endpoint: Annotated[
|
|
@@ -1743,7 +1780,12 @@ def update(
|
|
|
1743
1780
|
str | None,
|
|
1744
1781
|
typer.Option(
|
|
1745
1782
|
"--data-valid-amm",
|
|
1746
|
-
help=
|
|
1783
|
+
help=(
|
|
1784
|
+
"Data di validità amministrativa (dd/MM/yyyy). Non può "
|
|
1785
|
+
"essere nel futuro; inoltre per l'odonimo esistente deve "
|
|
1786
|
+
"essere >= della precedente data di validità (quest'ultima "
|
|
1787
|
+
"regola è verificata dal server ANNCSU)."
|
|
1788
|
+
),
|
|
1747
1789
|
),
|
|
1748
1790
|
] = None,
|
|
1749
1791
|
token_endpoint: Annotated[
|
|
@@ -1916,7 +1958,10 @@ def delete(
|
|
|
1916
1958
|
str | None,
|
|
1917
1959
|
typer.Option(
|
|
1918
1960
|
"--data-valid-amm",
|
|
1919
|
-
help=
|
|
1961
|
+
help=(
|
|
1962
|
+
"Data di fine validità (dd/MM/yyyy). Default: data "
|
|
1963
|
+
"corrente. Non può essere nel futuro (regola ANNCSU per S)."
|
|
1964
|
+
),
|
|
1920
1965
|
),
|
|
1921
1966
|
] = None,
|
|
1922
1967
|
token_endpoint: Annotated[
|
|
@@ -9,9 +9,12 @@ from ._version import (
|
|
|
9
9
|
)
|
|
10
10
|
from .errors.odonimo_validation import (
|
|
11
11
|
CodcomRequiredError,
|
|
12
|
+
DataValidAmmInFutureError,
|
|
12
13
|
DugNotAllowedForDeleteError,
|
|
13
14
|
DugRequiredError,
|
|
15
|
+
FlagDeliberaInvalidValueError,
|
|
14
16
|
FlagDeliberaMissingFieldsError,
|
|
17
|
+
InvalidDateFormatError,
|
|
15
18
|
OdonimoMaxLengthError,
|
|
16
19
|
OdonimoValidationError,
|
|
17
20
|
PrefetturaMutexError,
|
|
@@ -35,9 +38,12 @@ __all__ = [
|
|
|
35
38
|
"__user_agent__",
|
|
36
39
|
"AnncsuOdonimi",
|
|
37
40
|
"CodcomRequiredError",
|
|
41
|
+
"DataValidAmmInFutureError",
|
|
38
42
|
"DugNotAllowedForDeleteError",
|
|
39
43
|
"DugRequiredError",
|
|
44
|
+
"FlagDeliberaInvalidValueError",
|
|
40
45
|
"FlagDeliberaMissingFieldsError",
|
|
46
|
+
"InvalidDateFormatError",
|
|
41
47
|
"OdonimoMaxLengthError",
|
|
42
48
|
"OdonimoValidationError",
|
|
43
49
|
"PrefetturaMutexError",
|
{anncsu_sdk-0.0.10.dev3 → anncsu_sdk-0.0.10.dev4}/src/anncsu/odonimi/errors/odonimo_validation.py
RENAMED
|
@@ -175,6 +175,63 @@ class PrefetturaMutexError(OdonimoValidationError):
|
|
|
175
175
|
)
|
|
176
176
|
|
|
177
177
|
|
|
178
|
+
@dataclass
|
|
179
|
+
class FlagDeliberaInvalidValueError(OdonimoValidationError):
|
|
180
|
+
"""Raised when provvedimento.flag_delibera is not one of '0'..'4'.
|
|
181
|
+
|
|
182
|
+
Per OAS spec: "Flag della delibera (valori numerici da 0 a 4)".
|
|
183
|
+
"""
|
|
184
|
+
|
|
185
|
+
value: str
|
|
186
|
+
|
|
187
|
+
def __str__(self) -> str:
|
|
188
|
+
return (
|
|
189
|
+
f"Il campo 'provvedimento.flag_delibera' deve essere un valore "
|
|
190
|
+
f"numerico da '0' a '4'. Valore fornito: {self.value!r}"
|
|
191
|
+
)
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
@dataclass
|
|
195
|
+
class InvalidDateFormatError(OdonimoValidationError):
|
|
196
|
+
"""Raised when a date field is not a valid dd/MM/yyyy calendar date.
|
|
197
|
+
|
|
198
|
+
Applies to provvedimento.data, aut_prefettura.data_pref and
|
|
199
|
+
data_valid_amm (OAS examples: "10/10/2023", "08/10/2024").
|
|
200
|
+
"""
|
|
201
|
+
|
|
202
|
+
field_name: str
|
|
203
|
+
value: str
|
|
204
|
+
|
|
205
|
+
def __str__(self) -> str:
|
|
206
|
+
return (
|
|
207
|
+
f"Il campo '{self.field_name}' deve essere una data valida nel "
|
|
208
|
+
f"formato dd/MM/yyyy (es. '10/10/2023'). "
|
|
209
|
+
f"Valore fornito: {self.value!r}"
|
|
210
|
+
)
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
@dataclass
|
|
214
|
+
class DataValidAmmInFutureError(OdonimoValidationError):
|
|
215
|
+
"""Raised when data_valid_amm is in the future (any operation).
|
|
216
|
+
|
|
217
|
+
Per OAS spec: "minore o uguale della data corrente per inserimento e
|
|
218
|
+
soppressione. Per aggiornamento anche >= della precedente" — the
|
|
219
|
+
'anche' is additive, so the <= today bound applies to R as well.
|
|
220
|
+
The R-only half (">= della precedente") requires the server-side
|
|
221
|
+
historical value and is NOT checked client-side.
|
|
222
|
+
"""
|
|
223
|
+
|
|
224
|
+
operazione: str
|
|
225
|
+
value: str
|
|
226
|
+
|
|
227
|
+
def __str__(self) -> str:
|
|
228
|
+
return (
|
|
229
|
+
f"Il campo 'data_valid_amm' non puo' essere nel futuro per "
|
|
230
|
+
f"tipo_operazione='{self.operazione}' (deve essere minore o "
|
|
231
|
+
f"uguale alla data corrente). Valore fornito: {self.value!r}"
|
|
232
|
+
)
|
|
233
|
+
|
|
234
|
+
|
|
178
235
|
__all__ = [
|
|
179
236
|
"OdonimoValidationError",
|
|
180
237
|
"TipoOperazioneError",
|
|
@@ -185,4 +242,7 @@ __all__ = [
|
|
|
185
242
|
"OdonimoMaxLengthError",
|
|
186
243
|
"FlagDeliberaMissingFieldsError",
|
|
187
244
|
"PrefetturaMutexError",
|
|
245
|
+
"FlagDeliberaInvalidValueError",
|
|
246
|
+
"InvalidDateFormatError",
|
|
247
|
+
"DataValidAmmInFutureError",
|
|
188
248
|
]
|
|
@@ -22,23 +22,34 @@ Rules (derived from the OAS spec):
|
|
|
22
22
|
7. ``aut_prefettura.data_pref`` and ``protocollo_pref`` are mutually
|
|
23
23
|
required: if one is set, the other must be set too.
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
``
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
8. ``provvedimento.flag_delibera``, when set, must be one of ``"0"``
|
|
26
|
+
.. ``"4"`` (OAS: "valori numerici da 0 a 4").
|
|
27
|
+
9. Date fields (``provvedimento.data``, ``aut_prefettura.data_pref``,
|
|
28
|
+
``data_valid_amm``), when set, must be valid ``dd/MM/yyyy`` calendar
|
|
29
|
+
dates (OAS examples: "10/10/2023").
|
|
30
|
+
10. ``data_valid_amm`` must not be in the future, for every operation
|
|
31
|
+
(OAS: "minore o uguale della data corrente per inserimento e
|
|
32
|
+
soppressione. Per aggiornamento anche >= della precedente" —
|
|
33
|
+
'anche' is additive). The R-only half ("≥ della precedente") is
|
|
34
|
+
delegated to the server: it requires the historical value.
|
|
29
35
|
"""
|
|
30
36
|
|
|
31
37
|
from __future__ import annotations
|
|
32
38
|
|
|
39
|
+
import datetime
|
|
40
|
+
import re
|
|
33
41
|
from typing import Optional
|
|
34
42
|
|
|
35
43
|
from pydantic import model_validator
|
|
36
44
|
|
|
37
45
|
from anncsu.odonimi.errors.odonimo_validation import (
|
|
38
46
|
CodcomRequiredError,
|
|
47
|
+
DataValidAmmInFutureError,
|
|
39
48
|
DugNotAllowedForDeleteError,
|
|
40
49
|
DugRequiredError,
|
|
50
|
+
FlagDeliberaInvalidValueError,
|
|
41
51
|
FlagDeliberaMissingFieldsError,
|
|
52
|
+
InvalidDateFormatError,
|
|
42
53
|
OdonimoMaxLengthError,
|
|
43
54
|
PrefetturaMutexError,
|
|
44
55
|
ProgrNazionaleRequiredError,
|
|
@@ -64,6 +75,11 @@ MAX_LENGTHS: dict[str, int] = {
|
|
|
64
75
|
PROVVEDIMENTO_MAX_LENGTHS: dict[str, int] = {"protocollo": 70}
|
|
65
76
|
AUT_PREFETTURA_MAX_LENGTHS: dict[str, int] = {"protocollo_pref": 70}
|
|
66
77
|
|
|
78
|
+
VALID_FLAG_DELIBERA = {"0", "1", "2", "3", "4"}
|
|
79
|
+
|
|
80
|
+
# Strict dd/MM/yyyy: strptime alone accepts non-zero-padded dates.
|
|
81
|
+
_DATE_PATTERN = re.compile(r"^\d{2}/\d{2}/\d{4}$")
|
|
82
|
+
|
|
67
83
|
|
|
68
84
|
class ValidatedOdonimo(Richiesta):
|
|
69
85
|
"""Odonimo Richiesta model with ANNCSU business rule validation.
|
|
@@ -83,6 +99,12 @@ class ValidatedOdonimo(Richiesta):
|
|
|
83
99
|
"0" or "1" but ``data`` or ``protocollo`` are missing
|
|
84
100
|
PrefetturaMutexError: ``aut_prefettura.data_pref`` and
|
|
85
101
|
``protocollo_pref`` are not both set or both unset
|
|
102
|
+
FlagDeliberaInvalidValueError: ``provvedimento.flag_delibera``
|
|
103
|
+
is set but not one of "0".."4"
|
|
104
|
+
InvalidDateFormatError: a date field is not a valid dd/MM/yyyy
|
|
105
|
+
calendar date
|
|
106
|
+
DataValidAmmInFutureError: ``data_valid_amm`` is in the future
|
|
107
|
+
for I or S
|
|
86
108
|
"""
|
|
87
109
|
|
|
88
110
|
@model_validator(mode="after")
|
|
@@ -113,13 +135,18 @@ class ValidatedOdonimo(Richiesta):
|
|
|
113
135
|
raise DugNotAllowedForDeleteError(value=str(self.dug))
|
|
114
136
|
|
|
115
137
|
# Rule 6: provvedimento.flag_delibera in {0,1} → data+protocollo required
|
|
138
|
+
# Rule 8: flag_delibera range; Rule 9: data format
|
|
116
139
|
if self.provvedimento is not None:
|
|
117
140
|
self._validate_provvedimento()
|
|
118
141
|
|
|
119
142
|
# Rule 7: aut_prefettura.data_pref ↔ protocollo_pref mutex
|
|
143
|
+
# Rule 9: data_pref format
|
|
120
144
|
if self.aut_prefettura is not None:
|
|
121
145
|
self._validate_aut_prefettura()
|
|
122
146
|
|
|
147
|
+
# Rules 9-10: data_valid_amm format and not-in-future for I/S
|
|
148
|
+
self._validate_data_valid_amm(op)
|
|
149
|
+
|
|
123
150
|
return self
|
|
124
151
|
|
|
125
152
|
# ------------------------------------------------------------------
|
|
@@ -178,10 +205,26 @@ class ValidatedOdonimo(Richiesta):
|
|
|
178
205
|
max_length=max_length,
|
|
179
206
|
)
|
|
180
207
|
|
|
208
|
+
def _parse_date(
|
|
209
|
+
self, field_name: str, value: Optional[str]
|
|
210
|
+
) -> Optional[datetime.date]:
|
|
211
|
+
"""Rule 9: parse a dd/MM/yyyy date, raising on invalid format."""
|
|
212
|
+
if value is None:
|
|
213
|
+
return None
|
|
214
|
+
if not _DATE_PATTERN.match(value):
|
|
215
|
+
raise InvalidDateFormatError(field_name=field_name, value=value)
|
|
216
|
+
try:
|
|
217
|
+
return datetime.datetime.strptime(value, "%d/%m/%Y").date()
|
|
218
|
+
except ValueError:
|
|
219
|
+
raise InvalidDateFormatError(field_name=field_name, value=value) from None
|
|
220
|
+
|
|
181
221
|
def _validate_provvedimento(self) -> None:
|
|
182
|
-
"""
|
|
183
|
-
|
|
222
|
+
"""Rules 6, 8, 9 on the nested provvedimento object."""
|
|
223
|
+
self._parse_date("provvedimento.data", self._get_value(self.provvedimento.data))
|
|
224
|
+
|
|
184
225
|
flag = self._get_value(self.provvedimento.flag_delibera)
|
|
226
|
+
if flag is not None and flag not in VALID_FLAG_DELIBERA:
|
|
227
|
+
raise FlagDeliberaInvalidValueError(value=flag)
|
|
185
228
|
if flag not in {"0", "1"}:
|
|
186
229
|
return
|
|
187
230
|
|
|
@@ -197,7 +240,12 @@ class ValidatedOdonimo(Richiesta):
|
|
|
197
240
|
)
|
|
198
241
|
|
|
199
242
|
def _validate_aut_prefettura(self) -> None:
|
|
200
|
-
"""
|
|
243
|
+
"""Rules 7 and 9 on the nested aut_prefettura object."""
|
|
244
|
+
self._parse_date(
|
|
245
|
+
"aut_prefettura.data_pref",
|
|
246
|
+
self._get_value(self.aut_prefettura.data_pref),
|
|
247
|
+
)
|
|
248
|
+
|
|
201
249
|
has_data = self._get_value(self.aut_prefettura.data_pref) is not None
|
|
202
250
|
has_protocollo = (
|
|
203
251
|
self._get_value(self.aut_prefettura.protocollo_pref) is not None
|
|
@@ -208,5 +256,20 @@ class ValidatedOdonimo(Richiesta):
|
|
|
208
256
|
has_protocollo_pref=has_protocollo,
|
|
209
257
|
)
|
|
210
258
|
|
|
259
|
+
def _validate_data_valid_amm(self, op: str) -> None:
|
|
260
|
+
"""Rules 9-10: format always; never in the future (any operation).
|
|
261
|
+
|
|
262
|
+
OAS: "minore o uguale della data corrente per inserimento e
|
|
263
|
+
soppressione. Per aggiornamento anche >= della precedente" —
|
|
264
|
+
'anche' is additive, so the <= today bound applies to R too.
|
|
265
|
+
Only the '>= precedente' half is delegated to the server.
|
|
266
|
+
"""
|
|
267
|
+
value = self._get_value(self.data_valid_amm)
|
|
268
|
+
parsed = self._parse_date("data_valid_amm", value)
|
|
269
|
+
if parsed is None:
|
|
270
|
+
return
|
|
271
|
+
if parsed > datetime.date.today():
|
|
272
|
+
raise DataValidAmmInFutureError(operazione=op, value=value)
|
|
273
|
+
|
|
211
274
|
|
|
212
275
|
__all__ = ["ValidatedOdonimo"]
|