anncsu-sdk 0.0.1.dev28__tar.gz → 0.0.1.dev30__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (398) hide show
  1. anncsu_sdk-0.0.1.dev28/README.md → anncsu_sdk-0.0.1.dev30/PKG-INFO +46 -0
  2. anncsu_sdk-0.0.1.dev28/PKG-INFO → anncsu_sdk-0.0.1.dev30/README.md +30 -14
  3. anncsu_sdk-0.0.1.dev30/docs/CLI.md +422 -0
  4. anncsu_sdk-0.0.1.dev30/docs/speakeasy.md +73 -0
  5. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/pyproject.toml +5 -0
  6. anncsu_sdk-0.0.1.dev30/scripts/post_speakeasy_generation.py +277 -0
  7. anncsu_sdk-0.0.1.dev30/src/anncsu/cli/__init__.py +17 -0
  8. anncsu_sdk-0.0.1.dev30/src/anncsu/cli/app.py +80 -0
  9. anncsu_sdk-0.0.1.dev30/src/anncsu/cli/commands/__init__.py +9 -0
  10. anncsu_sdk-0.0.1.dev30/src/anncsu/cli/commands/assertion.py +214 -0
  11. anncsu_sdk-0.0.1.dev30/src/anncsu/cli/commands/auth.py +361 -0
  12. anncsu_sdk-0.0.1.dev30/src/anncsu/cli/commands/config.py +400 -0
  13. anncsu_sdk-0.0.1.dev30/src/anncsu/cli/models.py +91 -0
  14. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/common/auth.py +74 -0
  15. {anncsu_sdk-0.0.1.dev28/src/anncsu/pa/_hooks → anncsu_sdk-0.0.1.dev30/src/anncsu/common/hooks}/types.py +8 -5
  16. anncsu_sdk-0.0.1.dev30/src/anncsu/common/sdk/__init__.py +26 -0
  17. {anncsu_sdk-0.0.1.dev28/src/anncsu/pa → anncsu_sdk-0.0.1.dev30/src/anncsu/common/sdk}/basesdk.py +19 -9
  18. anncsu_sdk-0.0.1.dev30/src/anncsu/common/sdk/protocols.py +33 -0
  19. {anncsu_sdk-0.0.1.dev28/src/anncsu/pa → anncsu_sdk-0.0.1.dev30/src/anncsu/common/sdk}/utils/__init__.py +21 -12
  20. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/common/sdkconfiguration.py +3 -3
  21. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/common/security.py +2 -2
  22. anncsu_sdk-0.0.1.dev30/src/anncsu/common/session.py +144 -0
  23. {anncsu_sdk-0.0.1.dev28/src/anncsu/pa → anncsu_sdk-0.0.1.dev30/src/anncsu/common}/types/__init__.py +7 -4
  24. anncsu_sdk-0.0.1.dev30/src/anncsu/common/utils/__init__.py +110 -0
  25. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/_hooks/__init__.py +1 -1
  26. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/_hooks/registration.py +1 -1
  27. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/_hooks/sdkhooks.py +1 -1
  28. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/errors/elencoaccessigetpathparamop.py +1 -1
  29. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/errors/elencoaccessigetqueryparamop.py +1 -1
  30. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/errors/elencoaccessipostop.py +1 -1
  31. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/errors/elencoaccessiproggetpathparamop.py +1 -1
  32. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/errors/elencoaccessiproggetqueryparamop.py +1 -1
  33. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/errors/elencoaccessiprogpostop.py +1 -1
  34. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/errors/elencoodonimigetpathparamop.py +1 -1
  35. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/errors/elencoodonimigetqueryparamop.py +1 -1
  36. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/errors/elencoodonimipostop.py +1 -1
  37. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/errors/elencoodonimiproggetpathparamop.py +1 -1
  38. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/errors/elencoodonimiproggetqueryparamop.py +1 -1
  39. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/errors/elencoodonimiprogpostop.py +1 -1
  40. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/errors/esisteaccessogetpathparamop.py +1 -1
  41. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/errors/esisteaccessogetqueryparamop.py +1 -1
  42. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/errors/esisteaccessopostop.py +1 -1
  43. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/errors/esisteodonimogetpathparamop.py +1 -1
  44. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/errors/esisteodonimogetqueryparamop.py +1 -1
  45. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/errors/esisteodonimopostop.py +1 -1
  46. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/errors/prognazaccgetpathparamop.py +1 -1
  47. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/errors/prognazaccgetqueryparamop.py +1 -1
  48. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/errors/prognazaccpostop.py +1 -1
  49. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/errors/prognazareagetpathparamop.py +1 -1
  50. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/errors/prognazareagetqueryparamop.py +1 -1
  51. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/errors/prognazareapostop.py +1 -1
  52. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/errors/show_statusop.py +1 -1
  53. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/jsonpost.py +4 -4
  54. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/models/elencoaccessigetpathparamop.py +2 -2
  55. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/models/elencoaccessigetqueryparamop.py +2 -2
  56. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/models/elencoaccessipostop.py +1 -1
  57. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/models/elencoaccessiproggetpathparamop.py +2 -2
  58. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/models/elencoaccessiproggetqueryparamop.py +2 -2
  59. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/models/elencoaccessiprogpostop.py +1 -1
  60. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/models/elencoodonimigetpathparamop.py +2 -2
  61. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/models/elencoodonimigetqueryparamop.py +2 -2
  62. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/models/elencoodonimipostop.py +1 -1
  63. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/models/elencoodonimiproggetpathparamop.py +2 -2
  64. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/models/elencoodonimiproggetqueryparamop.py +2 -2
  65. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/models/elencoodonimiprogpostop.py +1 -1
  66. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/models/esisteaccessogetpathparamop.py +2 -2
  67. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/models/esisteaccessogetqueryparamop.py +2 -2
  68. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/models/esisteaccessopostop.py +1 -1
  69. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/models/esisteodonimogetpathparamop.py +2 -2
  70. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/models/esisteodonimogetqueryparamop.py +2 -2
  71. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/models/esisteodonimopostop.py +1 -1
  72. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/models/prognazaccgetpathparamop.py +2 -2
  73. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/models/prognazaccgetqueryparamop.py +2 -2
  74. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/models/prognazaccpostop.py +1 -1
  75. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/models/prognazareagetpathparamop.py +2 -2
  76. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/models/prognazareagetqueryparamop.py +2 -2
  77. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/models/prognazareapostop.py +1 -1
  78. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/models/show_statusop.py +1 -1
  79. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/pathparam.py +4 -4
  80. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/queryparam.py +4 -4
  81. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/sdk.py +10 -6
  82. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/sdkconfiguration.py +3 -3
  83. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/status.py +4 -4
  84. anncsu_sdk-0.0.1.dev30/tests/cli/__init__.py +3 -0
  85. anncsu_sdk-0.0.1.dev30/tests/cli/conftest.py +116 -0
  86. anncsu_sdk-0.0.1.dev30/tests/cli/test_assertion.py +428 -0
  87. anncsu_sdk-0.0.1.dev30/tests/cli/test_auth.py +621 -0
  88. anncsu_sdk-0.0.1.dev30/tests/cli/test_config.py +558 -0
  89. anncsu_sdk-0.0.1.dev30/tests/cli/test_main.py +205 -0
  90. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/tests/common/test_imports.py +98 -85
  91. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/tests/common/test_security_basemodel.py +3 -3
  92. anncsu_sdk-0.0.1.dev30/tests/common/test_session.py +397 -0
  93. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/tests/pa/test_imports.py +24 -22
  94. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/uv.lock +4 -0
  95. anncsu_sdk-0.0.1.dev28/src/anncsu/common/utils/__init__.py +0 -184
  96. anncsu_sdk-0.0.1.dev28/src/anncsu/common/utils/unmarshal_json_response.py +0 -24
  97. anncsu_sdk-0.0.1.dev28/src/anncsu/pa/types/basemodel.py +0 -39
  98. anncsu_sdk-0.0.1.dev28/src/anncsu/pa/utils/annotations.py +0 -55
  99. anncsu_sdk-0.0.1.dev28/src/anncsu/pa/utils/datetimes.py +0 -23
  100. anncsu_sdk-0.0.1.dev28/src/anncsu/pa/utils/enums.py +0 -85
  101. anncsu_sdk-0.0.1.dev28/src/anncsu/pa/utils/eventstreaming.py +0 -238
  102. anncsu_sdk-0.0.1.dev28/src/anncsu/pa/utils/forms.py +0 -232
  103. anncsu_sdk-0.0.1.dev28/src/anncsu/pa/utils/headers.py +0 -136
  104. anncsu_sdk-0.0.1.dev28/src/anncsu/pa/utils/logger.py +0 -27
  105. anncsu_sdk-0.0.1.dev28/src/anncsu/pa/utils/metadata.py +0 -118
  106. anncsu_sdk-0.0.1.dev28/src/anncsu/pa/utils/queryparams.py +0 -205
  107. anncsu_sdk-0.0.1.dev28/src/anncsu/pa/utils/requestbodies.py +0 -66
  108. anncsu_sdk-0.0.1.dev28/src/anncsu/pa/utils/retries.py +0 -220
  109. anncsu_sdk-0.0.1.dev28/src/anncsu/pa/utils/security.py +0 -174
  110. anncsu_sdk-0.0.1.dev28/src/anncsu/pa/utils/serializers.py +0 -249
  111. anncsu_sdk-0.0.1.dev28/src/anncsu/pa/utils/url.py +0 -155
  112. anncsu_sdk-0.0.1.dev28/src/anncsu/pa/utils/values.py +0 -139
  113. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/.devcontainer/README.md +0 -0
  114. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/.devcontainer/devcontainer.json +0 -0
  115. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/.devcontainer/setup.sh +0 -0
  116. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/.env.example +0 -0
  117. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/.gitattributes +0 -0
  118. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/.github/workflows/README.md +0 -0
  119. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/.github/workflows/ci.yml +0 -0
  120. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/.github/workflows/publish.yml +0 -0
  121. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/.gitignore +0 -0
  122. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/.pre-commit-config.yaml +0 -0
  123. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/.python-version +0 -0
  124. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/.speakeasy/gen.lock +0 -0
  125. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/.speakeasy/gen.yaml +0 -0
  126. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/.speakeasy/out.openapi.yaml +0 -0
  127. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/.speakeasy/workflow.yaml +0 -0
  128. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/.vscode/settings.json +0 -0
  129. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/CONTRIBUTING.md +0 -0
  130. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/LICENSE +0 -0
  131. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/USAGE.md +0 -0
  132. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/SECURITY.md +0 -0
  133. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/VALIDATION.md +0 -0
  134. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoaccessigetpathparambadrequesterror.md +0 -0
  135. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoaccessigetpathparaminternalservererror.md +0 -0
  136. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoaccessigetpathparammethodnotallowederror.md +0 -0
  137. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoaccessigetpathparamnotfounderror.md +0 -0
  138. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoaccessigetpathparamunprocessableentityerror.md +0 -0
  139. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoaccessigetqueryparambadrequesterror.md +0 -0
  140. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoaccessigetqueryparaminternalservererror.md +0 -0
  141. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoaccessigetqueryparammethodnotallowederror.md +0 -0
  142. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoaccessigetqueryparamnotfounderror.md +0 -0
  143. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoaccessigetqueryparamunprocessableentityerror.md +0 -0
  144. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoaccessipostbadrequesterror.md +0 -0
  145. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoaccessipostinternalservererror.md +0 -0
  146. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoaccessipostmethodnotallowederror.md +0 -0
  147. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoaccessipostnotfounderror.md +0 -0
  148. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoaccessipostunprocessableentityerror.md +0 -0
  149. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoaccessiproggetpathparambadrequesterror.md +0 -0
  150. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoaccessiproggetpathparaminternalservererror.md +0 -0
  151. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoaccessiproggetpathparammethodnotallowederror.md +0 -0
  152. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoaccessiproggetpathparamnotfounderror.md +0 -0
  153. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoaccessiproggetpathparamunprocessableentityerror.md +0 -0
  154. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoaccessiproggetqueryparambadrequesterror.md +0 -0
  155. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoaccessiproggetqueryparaminternalservererror.md +0 -0
  156. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoaccessiproggetqueryparammethodnotallowederror.md +0 -0
  157. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoaccessiproggetqueryparamnotfounderror.md +0 -0
  158. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoaccessiproggetqueryparamunprocessableentityerror.md +0 -0
  159. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoaccessiprogpostbadrequesterror.md +0 -0
  160. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoaccessiprogpostinternalservererror.md +0 -0
  161. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoaccessiprogpostmethodnotallowederror.md +0 -0
  162. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoaccessiprogpostnotfounderror.md +0 -0
  163. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoaccessiprogpostunprocessableentityerror.md +0 -0
  164. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoodonimigetpathparambadrequesterror.md +0 -0
  165. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoodonimigetpathparaminternalservererror.md +0 -0
  166. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoodonimigetpathparammethodnotallowederror.md +0 -0
  167. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoodonimigetpathparamnotfounderror.md +0 -0
  168. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoodonimigetpathparamunprocessableentityerror.md +0 -0
  169. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoodonimigetqueryparambadrequesterror.md +0 -0
  170. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoodonimigetqueryparaminternalservererror.md +0 -0
  171. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoodonimigetqueryparammethodnotallowederror.md +0 -0
  172. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoodonimigetqueryparamnotfounderror.md +0 -0
  173. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoodonimigetqueryparamunprocessableentityerror.md +0 -0
  174. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoodonimipostbadrequesterror.md +0 -0
  175. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoodonimipostinternalservererror.md +0 -0
  176. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoodonimipostmethodnotallowederror.md +0 -0
  177. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoodonimipostnotfounderror.md +0 -0
  178. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoodonimipostunprocessableentityerror.md +0 -0
  179. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoodonimiproggetpathparambadrequesterror.md +0 -0
  180. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoodonimiproggetpathparaminternalservererror.md +0 -0
  181. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoodonimiproggetpathparammethodnotallowederror.md +0 -0
  182. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoodonimiproggetpathparamnotfounderror.md +0 -0
  183. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoodonimiproggetpathparamunprocessableentityerror.md +0 -0
  184. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoodonimiproggetqueryparambadrequesterror.md +0 -0
  185. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoodonimiproggetqueryparaminternalservererror.md +0 -0
  186. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoodonimiproggetqueryparammethodnotallowederror.md +0 -0
  187. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoodonimiproggetqueryparamnotfounderror.md +0 -0
  188. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoodonimiproggetqueryparamunprocessableentityerror.md +0 -0
  189. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoodonimiprogpostbadrequesterror.md +0 -0
  190. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoodonimiprogpostinternalservererror.md +0 -0
  191. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoodonimiprogpostmethodnotallowederror.md +0 -0
  192. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoodonimiprogpostnotfounderror.md +0 -0
  193. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/elencoodonimiprogpostunprocessableentityerror.md +0 -0
  194. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/esisteaccessogetpathparambadrequesterror.md +0 -0
  195. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/esisteaccessogetpathparaminternalservererror.md +0 -0
  196. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/esisteaccessogetpathparammethodnotallowederror.md +0 -0
  197. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/esisteaccessogetpathparamunprocessableentityerror.md +0 -0
  198. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/esisteaccessogetqueryparambadrequesterror.md +0 -0
  199. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/esisteaccessogetqueryparaminternalservererror.md +0 -0
  200. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/esisteaccessogetqueryparammethodnotallowederror.md +0 -0
  201. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/esisteaccessogetqueryparamunprocessableentityerror.md +0 -0
  202. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/esisteaccessopostbadrequesterror.md +0 -0
  203. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/esisteaccessopostinternalservererror.md +0 -0
  204. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/esisteaccessopostmethodnotallowederror.md +0 -0
  205. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/esisteaccessopostunprocessableentityerror.md +0 -0
  206. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/esisteodonimogetpathparambadrequesterror.md +0 -0
  207. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/esisteodonimogetpathparaminternalservererror.md +0 -0
  208. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/esisteodonimogetpathparammethodnotallowederror.md +0 -0
  209. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/esisteodonimogetpathparamunprocessableentityerror.md +0 -0
  210. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/esisteodonimogetqueryparambadrequesterror.md +0 -0
  211. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/esisteodonimogetqueryparaminternalservererror.md +0 -0
  212. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/esisteodonimogetqueryparammethodnotallowederror.md +0 -0
  213. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/esisteodonimogetqueryparamunprocessableentityerror.md +0 -0
  214. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/esisteodonimopostbadrequesterror.md +0 -0
  215. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/esisteodonimopostinternalservererror.md +0 -0
  216. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/esisteodonimopostmethodnotallowederror.md +0 -0
  217. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/esisteodonimopostunprocessableentityerror.md +0 -0
  218. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/prognazaccgetpathparambadrequesterror.md +0 -0
  219. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/prognazaccgetpathparaminternalservererror.md +0 -0
  220. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/prognazaccgetpathparammethodnotallowederror.md +0 -0
  221. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/prognazaccgetpathparamnotfounderror.md +0 -0
  222. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/prognazaccgetpathparamunprocessableentityerror.md +0 -0
  223. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/prognazaccgetqueryparambadrequesterror.md +0 -0
  224. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/prognazaccgetqueryparaminternalservererror.md +0 -0
  225. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/prognazaccgetqueryparammethodnotallowederror.md +0 -0
  226. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/prognazaccgetqueryparamnotfounderror.md +0 -0
  227. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/prognazaccgetqueryparamunprocessableentityerror.md +0 -0
  228. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/prognazaccpostbadrequesterror.md +0 -0
  229. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/prognazaccpostinternalservererror.md +0 -0
  230. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/prognazaccpostmethodnotallowederror.md +0 -0
  231. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/prognazaccpostnotfounderror.md +0 -0
  232. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/prognazaccpostunprocessableentityerror.md +0 -0
  233. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/prognazareagetpathparambadrequesterror.md +0 -0
  234. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/prognazareagetpathparaminternalservererror.md +0 -0
  235. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/prognazareagetpathparammethodnotallowederror.md +0 -0
  236. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/prognazareagetpathparamnotfounderror.md +0 -0
  237. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/prognazareagetpathparamunprocessableentityerror.md +0 -0
  238. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/prognazareagetqueryparambadrequesterror.md +0 -0
  239. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/prognazareagetqueryparaminternalservererror.md +0 -0
  240. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/prognazareagetqueryparammethodnotallowederror.md +0 -0
  241. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/prognazareagetqueryparamnotfounderror.md +0 -0
  242. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/prognazareagetqueryparamunprocessableentityerror.md +0 -0
  243. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/prognazareapostbadrequesterror.md +0 -0
  244. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/prognazareapostinternalservererror.md +0 -0
  245. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/prognazareapostmethodnotallowederror.md +0 -0
  246. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/prognazareapostnotfounderror.md +0 -0
  247. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/prognazareapostunprocessableentityerror.md +0 -0
  248. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/errors/serviceunavailableerror.md +0 -0
  249. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/elencoaccessigetpathparamdata.md +0 -0
  250. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/elencoaccessigetpathparamrequest.md +0 -0
  251. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/elencoaccessigetpathparamresponse.md +0 -0
  252. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/elencoaccessigetqueryparamdata.md +0 -0
  253. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/elencoaccessigetqueryparamrequest.md +0 -0
  254. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/elencoaccessigetqueryparamresponse.md +0 -0
  255. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/elencoaccessipostdata.md +0 -0
  256. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/elencoaccessipostrequest.md +0 -0
  257. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/elencoaccessipostresponse.md +0 -0
  258. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/elencoaccessiproggetpathparamdata.md +0 -0
  259. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/elencoaccessiproggetpathparamrequest.md +0 -0
  260. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/elencoaccessiproggetpathparamresponse.md +0 -0
  261. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/elencoaccessiproggetqueryparamdata.md +0 -0
  262. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/elencoaccessiproggetqueryparamrequest.md +0 -0
  263. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/elencoaccessiproggetqueryparamresponse.md +0 -0
  264. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/elencoaccessiprogpostdata.md +0 -0
  265. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/elencoaccessiprogpostrequest.md +0 -0
  266. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/elencoaccessiprogpostresponse.md +0 -0
  267. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/elencoodonimigetpathparamdata.md +0 -0
  268. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/elencoodonimigetpathparamrequest.md +0 -0
  269. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/elencoodonimigetpathparamresponse.md +0 -0
  270. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/elencoodonimigetqueryparamdata.md +0 -0
  271. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/elencoodonimigetqueryparamrequest.md +0 -0
  272. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/elencoodonimigetqueryparamresponse.md +0 -0
  273. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/elencoodonimipostdata.md +0 -0
  274. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/elencoodonimipostrequest.md +0 -0
  275. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/elencoodonimipostresponse.md +0 -0
  276. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/elencoodonimiproggetpathparamdata.md +0 -0
  277. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/elencoodonimiproggetpathparamrequest.md +0 -0
  278. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/elencoodonimiproggetpathparamresponse.md +0 -0
  279. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/elencoodonimiproggetqueryparamdata.md +0 -0
  280. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/elencoodonimiproggetqueryparamrequest.md +0 -0
  281. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/elencoodonimiproggetqueryparamresponse.md +0 -0
  282. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/elencoodonimiprogpostdata.md +0 -0
  283. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/elencoodonimiprogpostrequest.md +0 -0
  284. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/elencoodonimiprogpostresponse.md +0 -0
  285. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/esisteaccessogetpathparamrequest.md +0 -0
  286. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/esisteaccessogetpathparamresponse.md +0 -0
  287. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/esisteaccessogetqueryparamrequest.md +0 -0
  288. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/esisteaccessogetqueryparamresponse.md +0 -0
  289. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/esisteaccessopostrequest.md +0 -0
  290. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/esisteaccessopostresponse.md +0 -0
  291. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/esisteodonimogetpathparamrequest.md +0 -0
  292. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/esisteodonimogetpathparamresponse.md +0 -0
  293. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/esisteodonimogetqueryparamrequest.md +0 -0
  294. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/esisteodonimogetqueryparamresponse.md +0 -0
  295. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/esisteodonimopostrequest.md +0 -0
  296. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/esisteodonimopostresponse.md +0 -0
  297. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/prognazaccgetpathparamdata.md +0 -0
  298. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/prognazaccgetpathparamrequest.md +0 -0
  299. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/prognazaccgetpathparamresponse.md +0 -0
  300. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/prognazaccgetqueryparamdata.md +0 -0
  301. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/prognazaccgetqueryparamrequest.md +0 -0
  302. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/prognazaccgetqueryparamresponse.md +0 -0
  303. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/prognazaccpostdata.md +0 -0
  304. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/prognazaccpostrequest.md +0 -0
  305. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/prognazaccpostresponse.md +0 -0
  306. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/prognazareagetpathparamdata.md +0 -0
  307. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/prognazareagetpathparamrequest.md +0 -0
  308. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/prognazareagetpathparamresponse.md +0 -0
  309. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/prognazareagetqueryparamdata.md +0 -0
  310. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/prognazareagetqueryparamrequest.md +0 -0
  311. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/prognazareagetqueryparamresponse.md +0 -0
  312. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/prognazareapostdata.md +0 -0
  313. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/prognazareapostrequest.md +0 -0
  314. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/prognazareapostresponse.md +0 -0
  315. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/showstatusresponse.md +0 -0
  316. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/models/utils/retryconfig.md +0 -0
  317. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/sdks/anncsu/README.md +0 -0
  318. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/sdks/jsonpost/README.md +0 -0
  319. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/sdks/pathparam/README.md +0 -0
  320. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/sdks/queryparam/README.md +0 -0
  321. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/docs/sdks/status/README.md +0 -0
  322. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/oas/.spectral.yaml +0 -0
  323. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/oas/README.md +0 -0
  324. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/oas/dev/Specifica API - ANNCSU /342/200/223 Consultazione per le PA.yaml" +0 -0
  325. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/pylintrc +0 -0
  326. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/scripts/create_client_assertion.py +0 -0
  327. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/scripts/publish.sh +0 -0
  328. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/common/__init__.py +0 -0
  329. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/common/basesdk.py +0 -0
  330. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/common/config.py +0 -0
  331. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/common/errors/__init__.py +0 -0
  332. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/common/errors/apierror.py +0 -0
  333. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/common/errors/base.py +0 -0
  334. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/common/errors/no_response_error.py +0 -0
  335. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/common/errors/responsevalidationerror.py +0 -0
  336. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/common/hooks/__init__.py +0 -0
  337. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/common/hooks/registration.py +0 -0
  338. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/common/hooks/sdkhooks.py +0 -0
  339. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/common/hooks/token_validation.py +0 -0
  340. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/common/httpclient.py +0 -0
  341. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/common/pdnd_assertion.py +0 -0
  342. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/common/pdnd_token.py +0 -0
  343. {anncsu_sdk-0.0.1.dev28/src/anncsu/pa → anncsu_sdk-0.0.1.dev30/src/anncsu/common/sdk}/httpclient.py +0 -0
  344. {anncsu_sdk-0.0.1.dev28/src/anncsu/common → anncsu_sdk-0.0.1.dev30/src/anncsu/common/sdk}/types/__init__.py +0 -0
  345. {anncsu_sdk-0.0.1.dev28/src/anncsu/common → anncsu_sdk-0.0.1.dev30/src/anncsu/common/sdk}/types/basemodel.py +0 -0
  346. {anncsu_sdk-0.0.1.dev28/src/anncsu/common → anncsu_sdk-0.0.1.dev30/src/anncsu/common/sdk}/utils/annotations.py +0 -0
  347. {anncsu_sdk-0.0.1.dev28/src/anncsu/common → anncsu_sdk-0.0.1.dev30/src/anncsu/common/sdk}/utils/datetimes.py +0 -0
  348. {anncsu_sdk-0.0.1.dev28/src/anncsu/common → anncsu_sdk-0.0.1.dev30/src/anncsu/common/sdk}/utils/enums.py +0 -0
  349. {anncsu_sdk-0.0.1.dev28/src/anncsu/common → anncsu_sdk-0.0.1.dev30/src/anncsu/common/sdk}/utils/eventstreaming.py +0 -0
  350. {anncsu_sdk-0.0.1.dev28/src/anncsu/common → anncsu_sdk-0.0.1.dev30/src/anncsu/common/sdk}/utils/forms.py +0 -0
  351. {anncsu_sdk-0.0.1.dev28/src/anncsu/common → anncsu_sdk-0.0.1.dev30/src/anncsu/common/sdk}/utils/headers.py +0 -0
  352. {anncsu_sdk-0.0.1.dev28/src/anncsu/common → anncsu_sdk-0.0.1.dev30/src/anncsu/common/sdk}/utils/logger.py +0 -0
  353. {anncsu_sdk-0.0.1.dev28/src/anncsu/common → anncsu_sdk-0.0.1.dev30/src/anncsu/common/sdk}/utils/metadata.py +0 -0
  354. {anncsu_sdk-0.0.1.dev28/src/anncsu/common → anncsu_sdk-0.0.1.dev30/src/anncsu/common/sdk}/utils/queryparams.py +0 -0
  355. {anncsu_sdk-0.0.1.dev28/src/anncsu/common → anncsu_sdk-0.0.1.dev30/src/anncsu/common/sdk}/utils/requestbodies.py +0 -0
  356. {anncsu_sdk-0.0.1.dev28/src/anncsu/common → anncsu_sdk-0.0.1.dev30/src/anncsu/common/sdk}/utils/retries.py +0 -0
  357. {anncsu_sdk-0.0.1.dev28/src/anncsu/common → anncsu_sdk-0.0.1.dev30/src/anncsu/common/sdk}/utils/security.py +0 -0
  358. {anncsu_sdk-0.0.1.dev28/src/anncsu/common → anncsu_sdk-0.0.1.dev30/src/anncsu/common/sdk}/utils/serializers.py +0 -0
  359. {anncsu_sdk-0.0.1.dev28/src/anncsu/pa → anncsu_sdk-0.0.1.dev30/src/anncsu/common/sdk}/utils/unmarshal_json_response.py +0 -0
  360. {anncsu_sdk-0.0.1.dev28/src/anncsu/common → anncsu_sdk-0.0.1.dev30/src/anncsu/common/sdk}/utils/url.py +0 -0
  361. {anncsu_sdk-0.0.1.dev28/src/anncsu/common → anncsu_sdk-0.0.1.dev30/src/anncsu/common/sdk}/utils/values.py +0 -0
  362. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/common/validation/__init__.py +0 -0
  363. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/common/validation/examples.py +0 -0
  364. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/common/validation/response_validator.py +0 -0
  365. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/common/validation/validators.py +0 -0
  366. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/__init__.py +0 -0
  367. {anncsu_sdk-0.0.1.dev28/src/anncsu/common/hooks → anncsu_sdk-0.0.1.dev30/src/anncsu/pa/_hooks}/types.py +0 -0
  368. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/_version.py +0 -0
  369. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/errors/__init__.py +0 -0
  370. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/errors/anncsuerror.py +0 -0
  371. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/errors/apierror.py +0 -0
  372. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/errors/no_response_error.py +0 -0
  373. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/errors/responsevalidationerror.py +0 -0
  374. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/models/__init__.py +0 -0
  375. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/src/anncsu/pa/py.typed +0 -0
  376. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/tests/README.md +0 -0
  377. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/tests/common/__init__.py +0 -0
  378. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/tests/common/test_cli_env_override.py +0 -0
  379. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/tests/common/test_pdnd_assertion.py +0 -0
  380. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/tests/common/test_pdnd_auth_manager.py +0 -0
  381. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/tests/common/test_pdnd_token.py +0 -0
  382. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/tests/common/test_security.py +0 -0
  383. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/tests/common/test_token_validation_hook.py +0 -0
  384. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/tests/conftest.py +0 -0
  385. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/tests/integration/__init__.py +0 -0
  386. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/tests/integration/test_sdk_instantiation.py +0 -0
  387. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/tests/integration/test_security_in_requests.py +0 -0
  388. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/tests/pa/__init__.py +0 -0
  389. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/tests/validation/ADVANCED_TESTING.md +0 -0
  390. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/tests/validation/README.md +0 -0
  391. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/tests/validation/README_COMPREHENSIVE_TESTS.md +0 -0
  392. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/tests/validation/__init__.py +0 -0
  393. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/tests/validation/test_all_operations_validation.py +0 -0
  394. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/tests/validation/test_model_factories.py +0 -0
  395. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/tests/validation/test_model_factories_comprehensive.py +0 -0
  396. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/tests/validation/test_response_validator.py +0 -0
  397. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/tests/validation/test_validators.py +0 -0
  398. {anncsu_sdk-0.0.1.dev28 → anncsu_sdk-0.0.1.dev30}/tests/validation/test_validators_property.py +0 -0
@@ -1,3 +1,19 @@
1
+ Metadata-Version: 2.4
2
+ Name: anncsu-sdk
3
+ Version: 0.0.1.dev30
4
+ Summary: ANNCSU Software Development Kit for API consumption
5
+ Author-email: Francesco Bartoli <francesco.bartoli@geobeyond.it>
6
+ License-File: LICENSE
7
+ Requires-Python: >=3.12
8
+ Requires-Dist: authlib>=1.3.0
9
+ Requires-Dist: httpcore>=1.0.9
10
+ Requires-Dist: httpx>=0.28.1
11
+ Requires-Dist: pydantic-settings>=2.12.0
12
+ Requires-Dist: pydantic>=2.12.5
13
+ Requires-Dist: rich>=13.0.0
14
+ Requires-Dist: typer>=0.15.0
15
+ Description-Content-Type: text/markdown
16
+
1
17
  # anncsu-sdk
2
18
  ANNCSU Software Development Kit for API consumption
3
19
 
@@ -37,6 +53,7 @@ ANNCSU REST API: API dei servizi REST di ANNCSU su PDND
37
53
  * [Resource Management](#resource-management)
38
54
  * [Debugging](#debugging)
39
55
  * [Architecture](#architecture)
56
+ * [Command Line Interface](#command-line-interface)
40
57
  * [Development](#development)
41
58
  * [Maturity](#maturity)
42
59
  * [Contributions](#contributions)
@@ -908,6 +925,35 @@ This architecture allows adding new ANNCSU API specifications (e.g., aggiornamen
908
925
  For more details, see [Refactoring Documentation](./docs/refactoring/REFACTORING_SUMMARY.md).
909
926
  <!-- End Architecture [architecture] -->
910
927
 
928
+ <!-- Start Command Line Interface [cli] -->
929
+ ## Command Line Interface
930
+
931
+ The SDK includes a command-line interface (`anncsu`) for managing PDND authentication and performing common operations without writing code.
932
+
933
+ ### Quick Start
934
+
935
+ ```bash
936
+ # Configure PDND credentials
937
+ anncsu config set --kid YOUR_KEY_ID --issuer YOUR_CLIENT_ID
938
+
939
+ # Login and obtain access token
940
+ anncsu auth login
941
+
942
+ # Check authentication status
943
+ anncsu auth status
944
+ ```
945
+
946
+ ### Key Features
947
+
948
+ - **Authentication Management**: Generate client assertions, obtain and refresh access tokens
949
+ - **Configuration**: Manage PDND credentials via CLI or environment variables
950
+ - **Standalone Utilities**: Create assertions independently for integration with other tools
951
+
952
+ ### Documentation
953
+
954
+ For complete CLI documentation including all commands, options, and examples, see **[docs/CLI.md](docs/CLI.md)**.
955
+ <!-- End Command Line Interface [cli] -->
956
+
911
957
  # Development
912
958
 
913
959
  ## Maturity
@@ -1,17 +1,3 @@
1
- Metadata-Version: 2.4
2
- Name: anncsu-sdk
3
- Version: 0.0.1.dev28
4
- Summary: ANNCSU Software Development Kit for API consumption
5
- Author-email: Francesco Bartoli <francesco.bartoli@geobeyond.it>
6
- License-File: LICENSE
7
- Requires-Python: >=3.12
8
- Requires-Dist: authlib>=1.3.0
9
- Requires-Dist: httpcore>=1.0.9
10
- Requires-Dist: httpx>=0.28.1
11
- Requires-Dist: pydantic-settings>=2.12.0
12
- Requires-Dist: pydantic>=2.12.5
13
- Description-Content-Type: text/markdown
14
-
15
1
  # anncsu-sdk
16
2
  ANNCSU Software Development Kit for API consumption
17
3
 
@@ -51,6 +37,7 @@ ANNCSU REST API: API dei servizi REST di ANNCSU su PDND
51
37
  * [Resource Management](#resource-management)
52
38
  * [Debugging](#debugging)
53
39
  * [Architecture](#architecture)
40
+ * [Command Line Interface](#command-line-interface)
54
41
  * [Development](#development)
55
42
  * [Maturity](#maturity)
56
43
  * [Contributions](#contributions)
@@ -922,6 +909,35 @@ This architecture allows adding new ANNCSU API specifications (e.g., aggiornamen
922
909
  For more details, see [Refactoring Documentation](./docs/refactoring/REFACTORING_SUMMARY.md).
923
910
  <!-- End Architecture [architecture] -->
924
911
 
912
+ <!-- Start Command Line Interface [cli] -->
913
+ ## Command Line Interface
914
+
915
+ The SDK includes a command-line interface (`anncsu`) for managing PDND authentication and performing common operations without writing code.
916
+
917
+ ### Quick Start
918
+
919
+ ```bash
920
+ # Configure PDND credentials
921
+ anncsu config set --kid YOUR_KEY_ID --issuer YOUR_CLIENT_ID
922
+
923
+ # Login and obtain access token
924
+ anncsu auth login
925
+
926
+ # Check authentication status
927
+ anncsu auth status
928
+ ```
929
+
930
+ ### Key Features
931
+
932
+ - **Authentication Management**: Generate client assertions, obtain and refresh access tokens
933
+ - **Configuration**: Manage PDND credentials via CLI or environment variables
934
+ - **Standalone Utilities**: Create assertions independently for integration with other tools
935
+
936
+ ### Documentation
937
+
938
+ For complete CLI documentation including all commands, options, and examples, see **[docs/CLI.md](docs/CLI.md)**.
939
+ <!-- End Command Line Interface [cli] -->
940
+
925
941
  # Development
926
942
 
927
943
  ## Maturity
@@ -0,0 +1,422 @@
1
+ # ANNCSU CLI
2
+
3
+ Command-line interface for PDND authentication and ANNCSU API interaction.
4
+
5
+ ## Installation
6
+
7
+ The CLI is included with the ANNCSU SDK:
8
+
9
+ ```bash
10
+ pip install anncsu-sdk
11
+ ```
12
+
13
+ Or with uv:
14
+
15
+ ```bash
16
+ uv add anncsu-sdk
17
+ ```
18
+
19
+ ## Quick Start
20
+
21
+ ```bash
22
+ # 1. Initialize configuration in ~/.anncsu/.env
23
+ anncsu config init
24
+
25
+ # 2. Edit ~/.anncsu/.env with your PDND credentials
26
+ nano ~/.anncsu/.env
27
+
28
+ # 3. Validate configuration
29
+ anncsu config validate
30
+
31
+ # 4. Login (generates assertion + obtains token + saves session)
32
+ anncsu auth login
33
+
34
+ # 5. Check status (loads from ~/.anncsu/session.json)
35
+ anncsu auth status
36
+
37
+ # 6. Use token in API calls (auto-refreshes if expired)
38
+ curl -H "Authorization: Bearer $(anncsu auth token)" https://api.example.com
39
+ ```
40
+
41
+ ## Commands
42
+
43
+ ### `anncsu config` - Configuration Management
44
+
45
+ Manage PDND configuration stored in `.env` file.
46
+
47
+ #### `anncsu config init`
48
+
49
+ Generate a template `.env` file with all required variables:
50
+
51
+ ```bash
52
+ anncsu config init
53
+ ```
54
+
55
+ Output:
56
+ ```
57
+ Created .env.template with the following variables:
58
+ - PDND_KID
59
+ - PDND_ISSUER
60
+ - PDND_SUBJECT
61
+ - PDND_AUDIENCE
62
+ - PDND_PURPOSE_ID
63
+ - PDND_KEY_PATH (or PDND_PRIVATE_KEY)
64
+ - PDND_TOKEN_ENDPOINT
65
+ ```
66
+
67
+ #### `anncsu config show`
68
+
69
+ Display current configuration (with masked sensitive values):
70
+
71
+ ```bash
72
+ anncsu config show
73
+ ```
74
+
75
+ Output:
76
+ ```
77
+ ┌─────────────────────────────────────────┐
78
+ │ PDND Configuration │
79
+ ├─────────────────────────────────────────┤
80
+ │ KID: abc123... │
81
+ │ Issuer: a1b2c3d4-e5f6-... │
82
+ │ Subject: a1b2c3d4-e5f6-... │
83
+ │ Audience: https://auth.uat... │
84
+ │ Purpose ID: 12345678-90ab-... │
85
+ │ Key Path: ./private_key.pem ✅ │
86
+ │ Token Endpoint: https://auth.uat... │
87
+ │ Validity: 43200 minutes (30 days) │
88
+ └─────────────────────────────────────────┘
89
+ ```
90
+
91
+ #### `anncsu config validate`
92
+
93
+ Validate that `.env` file is correctly configured:
94
+
95
+ ```bash
96
+ anncsu config validate
97
+ ```
98
+
99
+ Output (success):
100
+ ```
101
+ ✅ Configuration valid!
102
+ - All required fields present
103
+ - Key file exists and is readable
104
+ - Audience URL is valid HTTPS
105
+ ```
106
+
107
+ Output (error):
108
+ ```
109
+ ❌ Configuration errors:
110
+ - PDND_KID: Missing required field
111
+ - PDND_KEY_PATH: File not found: ./private_key.pem
112
+ ```
113
+
114
+ ---
115
+
116
+ ### `anncsu assertion` - Client Assertion Management
117
+
118
+ Generate and inspect PDND client assertions (JWT).
119
+
120
+ #### `anncsu assertion create`
121
+
122
+ Generate a new client assertion and print it:
123
+
124
+ ```bash
125
+ anncsu assertion create
126
+ ```
127
+
128
+ Output:
129
+ ```
130
+ eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImFiYzEyMyJ9.eyJpc3MiOiJhMWIyYzNkNC...
131
+ ```
132
+
133
+ Options:
134
+ - `--output FILE` - Save assertion to file instead of stdout
135
+ - `--json` - Output as JSON with metadata
136
+
137
+ #### `anncsu assertion info`
138
+
139
+ Display information about the current/cached assertion:
140
+
141
+ ```bash
142
+ anncsu assertion info
143
+ ```
144
+
145
+ Output:
146
+ ```
147
+ ┌─────────────────────────────────────────┐
148
+ │ Client Assertion Info │
149
+ ├─────────────────────────────────────────┤
150
+ │ Algorithm: RS256 │
151
+ │ Type: JWT │
152
+ │ Key ID: abc123... │
153
+ ├─────────────────────────────────────────┤
154
+ │ Issuer: a1b2c3d4-e5f6-... │
155
+ │ Subject: a1b2c3d4-e5f6-... │
156
+ │ Audience: https://auth.uat... │
157
+ │ Purpose ID: 12345678-90ab-... │
158
+ ├─────────────────────────────────────────┤
159
+ │ Issued At: 2026-01-18 10:30:00 │
160
+ │ Expires At: 2026-02-17 10:30:00 │
161
+ │ TTL: 29 days, 23 hours │
162
+ │ Status: ✅ Valid │
163
+ └─────────────────────────────────────────┘
164
+ ```
165
+
166
+ ---
167
+
168
+ ### `anncsu auth` - Authentication
169
+
170
+ Authenticate with PDND and manage access tokens.
171
+
172
+ #### `anncsu auth login`
173
+
174
+ Perform full authentication flow (assertion + token exchange):
175
+
176
+ ```bash
177
+ anncsu auth login
178
+ ```
179
+
180
+ Output:
181
+ ```
182
+ ✅ Login successful!
183
+
184
+ ┌─────────────────────────────────────────┐
185
+ │ Client Assertion │
186
+ ├─────────────────────────────────────────┤
187
+ │ TTL: 29 days, 23 hours │
188
+ │ Expires: 2026-02-17 10:30:00 │
189
+ ├─────────────────────────────────────────┤
190
+ │ Access Token │
191
+ ├─────────────────────────────────────────┤
192
+ │ TTL: 600 seconds │
193
+ │ Expires: 2026-01-18 10:40:00 │
194
+ └─────────────────────────────────────────┘
195
+ ```
196
+
197
+ Options:
198
+ - `--token-endpoint URL` - Override token endpoint from .env
199
+ - `--quiet` - Suppress output, only show errors
200
+
201
+ #### `anncsu auth status`
202
+
203
+ Show current authentication status:
204
+
205
+ ```bash
206
+ anncsu auth status
207
+ ```
208
+
209
+ Output (authenticated):
210
+ ```
211
+ ┌─────────────────────────────────────────┐
212
+ │ Authentication Status │
213
+ ├─────────────────────────────────────────┤
214
+ │ Client Assertion │
215
+ │ Status: ✅ Valid │
216
+ │ TTL: 29 days, 23 hours │
217
+ │ Expires: 2026-02-17 10:30:00 │
218
+ ├─────────────────────────────────────────┤
219
+ │ Access Token │
220
+ │ Status: ✅ Valid │
221
+ │ TTL: 542 seconds │
222
+ │ Expires: 2026-01-18 10:39:02 │
223
+ └─────────────────────────────────────────┘
224
+ ```
225
+
226
+ Output (not authenticated):
227
+ ```
228
+ ❌ Not authenticated. Run 'anncsu auth login' first.
229
+ ```
230
+
231
+ #### `anncsu auth refresh`
232
+
233
+ Force refresh of the access token:
234
+
235
+ ```bash
236
+ anncsu auth refresh
237
+ ```
238
+
239
+ Output:
240
+ ```
241
+ ✅ Token refreshed!
242
+ TTL: 600 seconds
243
+ Expires: 2026-01-18 10:50:00
244
+ ```
245
+
246
+ #### `anncsu auth token`
247
+
248
+ Print the current access token (useful for piping):
249
+
250
+ ```bash
251
+ anncsu auth token
252
+ ```
253
+
254
+ Output:
255
+ ```
256
+ eyJhbGciOiJSUzI1NiIsInR5cCI6ImF0K2p3dCJ9.eyJpc3MiOiJodHRwczovL2F1dGgudWF0...
257
+ ```
258
+
259
+ Usage with curl:
260
+ ```bash
261
+ curl -H "Authorization: Bearer $(anncsu auth token)" \
262
+ https://modipa-val.agenziaentrate.it/govway/rest/in/AgenziaEntrate-PDND/anncsu-consultazione/v1/esisteodonimo?codcom=H501
263
+ ```
264
+
265
+ ---
266
+
267
+ ## Environment Variables
268
+
269
+ The CLI reads configuration from environment variables (with `PDND_` prefix) or a `.env` file:
270
+
271
+ | Variable | Required | Description |
272
+ |----------|----------|-------------|
273
+ | `PDND_KID` | Yes | Key ID (kid) header parameter |
274
+ | `PDND_ISSUER` | Yes | Issuer (iss) claim - your client_id |
275
+ | `PDND_SUBJECT` | Yes | Subject (sub) claim - your client_id |
276
+ | `PDND_AUDIENCE` | Yes | Audience (aud) - PDND client-assertion endpoint |
277
+ | `PDND_PURPOSE_ID` | Yes | Purpose ID for the PDND request |
278
+ | `PDND_KEY_PATH` | One required | Path to RSA private key file |
279
+ | `PDND_PRIVATE_KEY` | One required | RSA private key content (alternative to KEY_PATH) |
280
+ | `PDND_TOKEN_ENDPOINT` | Yes | PDND token endpoint URL |
281
+ | `PDND_ALG` | No | Algorithm (default: RS256) |
282
+ | `PDND_TYP` | No | Token type (default: JWT) |
283
+ | `PDND_VALIDITY_MINUTES` | No | Assertion validity in minutes (default: 43200 = 30 days) |
284
+
285
+ ### Example `.env` file
286
+
287
+ ```env
288
+ # PDND Configuration
289
+ PDND_KID=your-key-id
290
+ PDND_ISSUER=your-client-id
291
+ PDND_SUBJECT=your-client-id
292
+ PDND_AUDIENCE=https://auth.uat.interop.pagopa.it/client-assertion
293
+ PDND_PURPOSE_ID=your-purpose-id
294
+ PDND_KEY_PATH=./private_key.pem
295
+ PDND_TOKEN_ENDPOINT=https://auth.uat.interop.pagopa.it/token.oauth2
296
+
297
+ # Optional
298
+ PDND_VALIDITY_MINUTES=43200
299
+ ```
300
+
301
+ ---
302
+
303
+ ## Session Persistence
304
+
305
+ The CLI automatically persists authentication tokens between sessions in `~/.anncsu/session.json`.
306
+
307
+ ### Session File Location
308
+
309
+ | Platform | Path |
310
+ |----------|------|
311
+ | Linux/macOS | `~/.anncsu/session.json` |
312
+ | Windows | `%USERPROFILE%\.anncsu\session.json` |
313
+
314
+ ### Session File Format
315
+
316
+ ```json
317
+ {
318
+ "client_assertion": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Ii4uLiJ9...",
319
+ "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6ImF0K2p3dCJ9...",
320
+ "token_endpoint": "https://auth.uat.interop.pagopa.it/token.oauth2"
321
+ }
322
+ ```
323
+
324
+ ### How It Works
325
+
326
+ 1. **Login** (`anncsu auth login`): Saves tokens to session file
327
+ 2. **Status** (`anncsu auth status`): Loads and displays tokens from session
328
+ 3. **Token** (`anncsu auth token`): Loads token, auto-refreshes if expired
329
+ 4. **Logout** (`anncsu auth logout`): Deletes session file
330
+
331
+ ### Automatic Token Refresh
332
+
333
+ When you run `anncsu auth token`, the CLI automatically:
334
+ - Loads the session from file
335
+ - Checks if the access token is expired or expiring soon (< 60 seconds)
336
+ - If expired, requests a new access token using the client assertion
337
+ - If the client assertion is also expired (< 1 day remaining), generates a new one
338
+ - Saves the updated session to file
339
+
340
+ ### Multi-Environment Support
341
+
342
+ The session file stores the `token_endpoint` URL. If you switch between environments (e.g., UAT to PROD), the CLI will not load a session for a different endpoint, preventing accidental credential mixing.
343
+
344
+ ```bash
345
+ # UAT environment - saves session with UAT endpoint
346
+ anncsu auth login --token-endpoint https://auth.uat.interop.pagopa.it/token.oauth2
347
+
348
+ # PROD environment - creates new session (different endpoint)
349
+ anncsu auth login --token-endpoint https://auth.interop.pagopa.it/token.oauth2
350
+
351
+ # Status shows only tokens for current endpoint
352
+ anncsu auth status --token-endpoint https://auth.uat.interop.pagopa.it/token.oauth2
353
+ ```
354
+
355
+ ### Clear Session
356
+
357
+ To remove all cached tokens:
358
+
359
+ ```bash
360
+ anncsu auth logout
361
+ ```
362
+
363
+ This deletes `~/.anncsu/session.json` and clears in-memory tokens.
364
+
365
+ ---
366
+
367
+ ## Exit Codes
368
+
369
+ | Code | Description |
370
+ |------|-------------|
371
+ | 0 | Success |
372
+ | 1 | Configuration error |
373
+ | 2 | Authentication error |
374
+ | 3 | Network error |
375
+ | 4 | Token expired |
376
+
377
+ ---
378
+
379
+ ## Examples
380
+
381
+ ### Script Integration
382
+
383
+ ```bash
384
+ #!/bin/bash
385
+ # Script that uses ANNCSU CLI for authentication
386
+
387
+ # Login and check status
388
+ anncsu auth login --quiet || exit 1
389
+
390
+ # Get token for API calls
391
+ TOKEN=$(anncsu auth token)
392
+
393
+ # Make API call
394
+ curl -s -H "Authorization: Bearer $TOKEN" \
395
+ "https://modipa-val.agenziaentrate.it/govway/rest/in/AgenziaEntrate-PDND/anncsu-consultazione/v1/elencoodonimi?codcom=H501&denomparz=$(echo -n 'ROMA' | base64)"
396
+ ```
397
+
398
+ ### CI/CD Pipeline
399
+
400
+ ```yaml
401
+ # GitHub Actions example
402
+ - name: ANNCSU Authentication
403
+ env:
404
+ PDND_KID: ${{ secrets.PDND_KID }}
405
+ PDND_ISSUER: ${{ secrets.PDND_ISSUER }}
406
+ PDND_SUBJECT: ${{ secrets.PDND_SUBJECT }}
407
+ PDND_AUDIENCE: ${{ secrets.PDND_AUDIENCE }}
408
+ PDND_PURPOSE_ID: ${{ secrets.PDND_PURPOSE_ID }}
409
+ PDND_PRIVATE_KEY: ${{ secrets.PDND_PRIVATE_KEY }}
410
+ PDND_TOKEN_ENDPOINT: ${{ secrets.PDND_TOKEN_ENDPOINT }}
411
+ run: |
412
+ anncsu auth login
413
+ anncsu auth status
414
+ ```
415
+
416
+ ---
417
+
418
+ ## See Also
419
+
420
+ - [Security Documentation](./SECURITY.md) - PDND authentication details
421
+ - [SDK Usage](../README.md) - Programmatic SDK usage
422
+ - [PDNDAuthManager](./conversation_log.md#session-19) - Authentication manager internals
@@ -0,0 +1,73 @@
1
+ # Speakeasy SDK Generation
2
+
3
+ This guide documents the workflow for generating and regenerating the SDK with Speakeasy.
4
+
5
+ ## Prerequisites
6
+
7
+ - [Speakeasy CLI](https://www.speakeasy.com/docs/speakeasy-cli/getting-started) installed
8
+ - OpenAPI specification file in `oas/dev/`
9
+
10
+ ## Generation Workflow
11
+
12
+ ### 1. Generate SDK with Speakeasy
13
+
14
+ ```bash
15
+ speakeasy generate sdk \
16
+ --lang python \
17
+ --out . \
18
+ --schema oas/dev/Specifica\ API\ -\ ANNCSU\ –\ Consultazione\ per\ le\ PA.yaml
19
+ ```
20
+
21
+ ### 2. Run post-generation script
22
+
23
+ After each Speakeasy generation, run the post-generation script to update the package structure:
24
+
25
+ ```bash
26
+ uv run python scripts/post_speakeasy_generation.py
27
+ ```
28
+
29
+ This script:
30
+ - Removes duplicated infrastructure files from API packages
31
+ - Updates imports to use shared modules in `anncsu.common.sdk`
32
+
33
+ ### 3. Verify with tests
34
+
35
+ ```bash
36
+ uv run pytest tests/ -q
37
+ ```
38
+
39
+ ## Post-Generation Script Options
40
+
41
+ ```bash
42
+ # Process pa/ package (default)
43
+ uv run python scripts/post_speakeasy_generation.py
44
+
45
+ # Process a specific package
46
+ uv run python scripts/post_speakeasy_generation.py --package pa
47
+
48
+ # Process all API packages
49
+ uv run python scripts/post_speakeasy_generation.py --all
50
+
51
+ # Dry run (preview changes without applying)
52
+ uv run python scripts/post_speakeasy_generation.py --dry-run
53
+
54
+ # Show help
55
+ uv run python scripts/post_speakeasy_generation.py --help
56
+ ```
57
+
58
+ ## Adding a New API Package
59
+
60
+ When adding a new API package (e.g., `odonimi` for Aggiornamento odonimi):
61
+
62
+ 1. Generate the package with Speakeasy using the appropriate OpenAPI spec
63
+ 2. Run the post-generation script:
64
+ ```bash
65
+ uv run python scripts/post_speakeasy_generation.py --package odonimi
66
+ ```
67
+ 3. Add the package to the list in `scripts/post_speakeasy_generation.py` for future `--all` runs
68
+
69
+ ## Important Notes
70
+
71
+ > **WARNING**: The `common/sdk/` directory contains shared infrastructure that is NOT regenerated by Speakeasy. Do not delete it during regeneration.
72
+
73
+ > **NOTE**: Always run the post-generation script after each Speakeasy regeneration to maintain the correct package structure.
@@ -13,7 +13,12 @@ dependencies = [
13
13
  "pydantic >=2.12.5",
14
14
  "authlib>=1.3.0",
15
15
  "pydantic-settings>=2.12.0",
16
+ "typer>=0.15.0",
17
+ "rich>=13.0.0",
16
18
  ]
19
+
20
+ [project.scripts]
21
+ anncsu = "anncsu.cli:app"
17
22
  [dependency-groups]
18
23
  dev = [
19
24
  "pytest>=9.0.0",