diff --git a/package-lock.json b/package-lock.json index ff95a2e..54de58c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,9 +6,9 @@ "": { "name": "@seamapi/python", "devDependencies": { - "@seamapi/fake-seam-connect": "1.83.1", + "@seamapi/fake-seam-connect": "1.83.2", "@seamapi/nextlove-sdk-generator": "^1.18.1", - "@seamapi/types": "1.418.1", + "@seamapi/types": "1.420.2", "del": "^7.1.0", "prettier": "^3.2.5" } @@ -434,9 +434,9 @@ } }, "node_modules/@seamapi/fake-seam-connect": { - "version": "1.83.1", - "resolved": "https://registry.npmjs.org/@seamapi/fake-seam-connect/-/fake-seam-connect-1.83.1.tgz", - "integrity": "sha512-LnVM8EL9G0UBRSKjKiZCvJaoIHC87GKf/QeLqofBQswOrKVI1LxdHIqbYMgsSZWFly1HPFBYZh0jdTh84b4Jgw==", + "version": "1.83.2", + "resolved": "https://registry.npmjs.org/@seamapi/fake-seam-connect/-/fake-seam-connect-1.83.2.tgz", + "integrity": "sha512-8WzPugS3bWh9avnC5a7dT1yeh+PUB9gBJHx0bRmJsZWjS7OUHR53U0FVAJ/p/x3MXHbF6QISpiZ/C/M0coXDBA==", "dev": true, "license": "MIT", "bin": { @@ -475,9 +475,9 @@ } }, "node_modules/@seamapi/types": { - "version": "1.418.1", - "resolved": "https://registry.npmjs.org/@seamapi/types/-/types-1.418.1.tgz", - "integrity": "sha512-BaxESv5sNtn3rHvQpSOjGGlCweLdE+rgDCSMfQ1Og5h0LN31jTTo9ZSFkFilYLBB0ihrH2g6Xo6Q+E3eKNHrCA==", + "version": "1.420.2", + "resolved": "https://registry.npmjs.org/@seamapi/types/-/types-1.420.2.tgz", + "integrity": "sha512-3W6YwDWIUsfwvEzzF6HuDNryqSqtywoGvi+zfLf9Js/wh88A3DKXYOmwamGWLus2L6vTp28F4aipcu5uNQndow==", "dev": true, "license": "MIT", "engines": { diff --git a/package.json b/package.json index c65eb5f..44bf5e6 100644 --- a/package.json +++ b/package.json @@ -10,9 +10,9 @@ "start": "fake-seam-connect --seed" }, "devDependencies": { - "@seamapi/fake-seam-connect": "1.83.1", + "@seamapi/fake-seam-connect": "1.83.2", "@seamapi/nextlove-sdk-generator": "^1.18.1", - "@seamapi/types": "1.418.1", + "@seamapi/types": "1.420.2", "del": "^7.1.0", "prettier": "^3.2.5" } diff --git a/seam/routes/access_grants.py b/seam/routes/access_grants.py index ecb1fe0..c3e341e 100644 --- a/seam/routes/access_grants.py +++ b/seam/routes/access_grants.py @@ -94,3 +94,23 @@ def list( res = self.client.post("/access_grants/list", json=json_payload) return [AccessGrant.from_dict(item) for item in res["access_grants"]] + + def update( + self, + *, + access_grant_id: str, + ends_at: Optional[str] = None, + starts_at: Optional[str] = None + ) -> None: + json_payload = {} + + if access_grant_id is not None: + json_payload["access_grant_id"] = access_grant_id + if ends_at is not None: + json_payload["ends_at"] = ends_at + if starts_at is not None: + json_payload["starts_at"] = starts_at + + self.client.post("/access_grants/update", json=json_payload) + + return None diff --git a/seam/routes/models.py b/seam/routes/models.py index 37309a0..7f8d4ff 100644 --- a/seam/routes/models.py +++ b/seam/routes/models.py @@ -68,9 +68,11 @@ class AccessGrant: access_method_ids: List[str] created_at: str display_name: str + ends_at: str location_ids: List[str] requested_access_methods: List[Dict[str, Any]] space_ids: List[str] + starts_at: str user_identity_id: str workspace_id: str @@ -81,9 +83,11 @@ def from_dict(d: Dict[str, Any]): access_method_ids=d.get("access_method_ids", None), created_at=d.get("created_at", None), display_name=d.get("display_name", None), + ends_at=d.get("ends_at", None), location_ids=d.get("location_ids", None), requested_access_methods=d.get("requested_access_methods", None), space_ids=d.get("space_ids", None), + starts_at=d.get("starts_at", None), user_identity_id=d.get("user_identity_id", None), workspace_id=d.get("workspace_id", None), ) @@ -1559,6 +1563,16 @@ def list( ) -> List[AccessGrant]: raise NotImplementedError() + @abc.abstractmethod + def update( + self, + *, + access_grant_id: str, + ends_at: Optional[str] = None, + starts_at: Optional[str] = None + ) -> None: + raise NotImplementedError() + class AbstractAccessMethods(abc.ABC):