Skip to content

Commit f1e0ba5

Browse files
jfrench9claude
andauthored
Add email_verified field to user response and update shared repo docs (#68)
## Summary This PR introduces the `email_verified` field to the `UserResponse` model and updates documentation for shared repository endpoints across the graphs and service offerings APIs. ## Key Accomplishments - **User Response Model Enhancement**: Extended `UserResponse` model with a new `email_verified` attribute, providing visibility into whether a user's email address has been verified. This adds an important field for downstream consumers that need to make authorization or display decisions based on email verification status. - **Documentation Updates for Shared Repositories**: Updated docstrings and parameter documentation in both `get_graphs` and `get_service_offerings` API modules to clarify behavior related to shared repositories, ensuring consistency and accuracy across the client library. ## Changes Breakdown | Area | Change | |------|--------| | `models/user_response.py` | Added `email_verified` field (+13/-2 lines), including type annotation and serialization support | | `api/graphs/get_graphs.py` | Updated documentation for shared repository parameters (+4/-4 lines) | | `api/service_offerings/get_service_offerings.py` | Updated documentation for shared repository parameters (+4/-4 lines) | ## Breaking Changes - **Potential minor impact**: Consumers that perform strict schema validation on `UserResponse` may need to account for the new `email_verified` field. However, since this is an additive change, most clients should handle it gracefully. ## Testing Notes - Verify that the `UserResponse` model correctly deserializes API responses that include the `email_verified` field - Confirm backward compatibility when the field is absent from older API responses (ensure proper default/optional handling) - Validate that the graphs and service offerings endpoints continue to function correctly with the updated parameter documentation ## Infrastructure Considerations - No infrastructure changes required - API consumers should be aware of the new field availability for any email verification workflows - Client library version should be bumped appropriately to signal the model enhancement to downstream users --- 🤖 Generated with [Claude Code](https://claude.ai/code) **Branch Info:** - Source: `feature/user-email-verified` - Target: `main` - Type: feature Co-Authored-By: Claude <noreply@anthropic.com>
2 parents 3475012 + 5969d97 commit f1e0ba5

File tree

3 files changed

+19
-10
lines changed

3 files changed

+19
-10
lines changed

robosystems_client/api/graphs/get_graphs.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ def sync_detailed(
7272
- Graphs you create or have been invited to
7373
7474
**Shared Repositories (isRepository: true):**
75-
- Read-only data repositories like SEC filings, industry benchmarks
75+
- Read-only data repositories (e.g., SEC filings)
7676
- Access levels: `read`, `write` (for data contributions), `admin`
7777
- Cannot be selected (each has separate subscription)
7878
- Require separate subscriptions (personal, cannot be shared)
@@ -137,7 +137,7 @@ def sync(
137137
- Graphs you create or have been invited to
138138
139139
**Shared Repositories (isRepository: true):**
140-
- Read-only data repositories like SEC filings, industry benchmarks
140+
- Read-only data repositories (e.g., SEC filings)
141141
- Access levels: `read`, `write` (for data contributions), `admin`
142142
- Cannot be selected (each has separate subscription)
143143
- Require separate subscriptions (personal, cannot be shared)
@@ -198,7 +198,7 @@ async def asyncio_detailed(
198198
- Graphs you create or have been invited to
199199
200200
**Shared Repositories (isRepository: true):**
201-
- Read-only data repositories like SEC filings, industry benchmarks
201+
- Read-only data repositories (e.g., SEC filings)
202202
- Access levels: `read`, `write` (for data contributions), `admin`
203203
- Cannot be selected (each has separate subscription)
204204
- Require separate subscriptions (personal, cannot be shared)
@@ -261,7 +261,7 @@ async def asyncio(
261261
- Graphs you create or have been invited to
262262
263263
**Shared Repositories (isRepository: true):**
264-
- Read-only data repositories like SEC filings, industry benchmarks
264+
- Read-only data repositories (e.g., SEC filings)
265265
- Access levels: `read`, `write` (for data contributions), `admin`
266266
- Cannot be selected (each has separate subscription)
267267
- Require separate subscriptions (personal, cannot be shared)

robosystems_client/api/service_offerings/get_service_offerings.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ def sync_detailed(
6969
7070
Includes:
7171
- Graph infrastructure tiers (ladybug-standard, ladybug-large, ladybug-xlarge) - per-graph pricing
72-
- Shared repository subscriptions (SEC, industry, economic data) - org-level
72+
- Shared repository subscriptions - org-level
7373
- Operation costs and credit information
7474
- Features and capabilities for each tier
7575
- Enabled/disabled status for repositories
@@ -115,7 +115,7 @@ def sync(
115115
116116
Includes:
117117
- Graph infrastructure tiers (ladybug-standard, ladybug-large, ladybug-xlarge) - per-graph pricing
118-
- Shared repository subscriptions (SEC, industry, economic data) - org-level
118+
- Shared repository subscriptions - org-level
119119
- Operation costs and credit information
120120
- Features and capabilities for each tier
121121
- Enabled/disabled status for repositories
@@ -157,7 +157,7 @@ async def asyncio_detailed(
157157
158158
Includes:
159159
- Graph infrastructure tiers (ladybug-standard, ladybug-large, ladybug-xlarge) - per-graph pricing
160-
- Shared repository subscriptions (SEC, industry, economic data) - org-level
160+
- Shared repository subscriptions - org-level
161161
- Operation costs and credit information
162162
- Features and capabilities for each tier
163163
- Enabled/disabled status for repositories
@@ -201,7 +201,7 @@ async def asyncio(
201201
202202
Includes:
203203
- Graph infrastructure tiers (ladybug-standard, ladybug-large, ladybug-xlarge) - per-graph pricing
204-
- Shared repository subscriptions (SEC, industry, economic data) - org-level
204+
- Shared repository subscriptions - org-level
205205
- Operation costs and credit information
206206
- Features and capabilities for each tier
207207
- Enabled/disabled status for repositories

robosystems_client/models/user_response.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,19 +21,21 @@ class UserResponse:
2121
2222
Example:
2323
{'accounts': [{'provider': 'github', 'provider_account_id': '12345', 'provider_type': 'oauth'}, {'provider':
24-
'google', 'provider_account_id': '67890', 'provider_type': 'oauth'}], 'email': 'john@example.com', 'id':
25-
'user-123', 'name': 'johndoe'}
24+
'google', 'provider_account_id': '67890', 'provider_type': 'oauth'}], 'email': 'john@example.com',
25+
'email_verified': True, 'id': 'user-123', 'name': 'johndoe'}
2626
2727
Attributes:
2828
id (str): Unique identifier for the user
2929
name (None | str | Unset): User's display name
3030
email (None | str | Unset): User's email address
31+
email_verified (bool | Unset): Whether user's email is verified Default: False.
3132
accounts (list[AccountInfo] | Unset): User's authentication accounts
3233
"""
3334

3435
id: str
3536
name: None | str | Unset = UNSET
3637
email: None | str | Unset = UNSET
38+
email_verified: bool | Unset = False
3739
accounts: list[AccountInfo] | Unset = UNSET
3840
additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
3941

@@ -52,6 +54,8 @@ def to_dict(self) -> dict[str, Any]:
5254
else:
5355
email = self.email
5456

57+
email_verified = self.email_verified
58+
5559
accounts: list[dict[str, Any]] | Unset = UNSET
5660
if not isinstance(self.accounts, Unset):
5761
accounts = []
@@ -70,6 +74,8 @@ def to_dict(self) -> dict[str, Any]:
7074
field_dict["name"] = name
7175
if email is not UNSET:
7276
field_dict["email"] = email
77+
if email_verified is not UNSET:
78+
field_dict["email_verified"] = email_verified
7379
if accounts is not UNSET:
7480
field_dict["accounts"] = accounts
7581

@@ -100,6 +106,8 @@ def _parse_email(data: object) -> None | str | Unset:
100106

101107
email = _parse_email(d.pop("email", UNSET))
102108

109+
email_verified = d.pop("email_verified", UNSET)
110+
103111
_accounts = d.pop("accounts", UNSET)
104112
accounts: list[AccountInfo] | Unset = UNSET
105113
if _accounts is not UNSET:
@@ -113,6 +121,7 @@ def _parse_email(data: object) -> None | str | Unset:
113121
id=id,
114122
name=name,
115123
email=email,
124+
email_verified=email_verified,
116125
accounts=accounts,
117126
)
118127

0 commit comments

Comments
 (0)