22
33from __future__ import annotations
44
5- from typing import overload
5+ from typing import Optional , overload
66
77from requests import Response , Session
88
1414from .metrics import Metrics
1515from .oauth import OAuth
1616from .resources import ResourceParameters
17+ from .settings import Settings
1718from .tasks import Tasks
1819from .users import User , Users
20+ from .version import requires_version
1921
2022
2123class Client :
@@ -158,7 +160,7 @@ def __init__(self, *args, **kwargs) -> None:
158160 self .resource_params = ResourceParameters (session , self .cfg .url )
159161
160162 @property
161- def version (self ) -> str :
163+ def version (self ) -> Optional [ str ] :
162164 """
163165 The server version.
164166
@@ -167,7 +169,8 @@ def version(self) -> str:
167169 str
168170 The version of the Posit Connect server.
169171 """
170- return self .get ("server_settings" ).json ()["version" ]
172+ settings = Settings (self .session , self .cfg .url )
173+ return settings .version
171174
172175 @property
173176 def me (self ) -> User :
@@ -257,6 +260,7 @@ def metrics(self) -> Metrics:
257260 return Metrics (self .resource_params )
258261
259262 @property
263+ @requires_version ("2024.08.0" )
260264 def oauth (self ) -> OAuth :
261265 """
262266 The OAuth API interface.
0 commit comments