fountain-life-service-clients 3.29.1__tar.gz → 3.30.0__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 (29) hide show
  1. {fountain_life_service_clients-3.29.1 → fountain_life_service_clients-3.30.0}/PKG-INFO +1 -1
  2. {fountain_life_service_clients-3.29.1 → fountain_life_service_clients-3.30.0}/fountain_life_service_clients/ai_template_service.py +182 -7
  3. {fountain_life_service_clients-3.29.1 → fountain_life_service_clients-3.30.0}/pyproject.toml +1 -1
  4. {fountain_life_service_clients-3.29.1 → fountain_life_service_clients-3.30.0}/README.md +0 -0
  5. {fountain_life_service_clients-3.29.1 → fountain_life_service_clients-3.30.0}/fountain_life_service_clients/__init__.py +0 -0
  6. {fountain_life_service_clients-3.29.1 → fountain_life_service_clients-3.30.0}/fountain_life_service_clients/_base_client.py +0 -0
  7. {fountain_life_service_clients-3.29.1 → fountain_life_service_clients-3.30.0}/fountain_life_service_clients/account_service.py +0 -0
  8. {fountain_life_service_clients-3.29.1 → fountain_life_service_clients-3.30.0}/fountain_life_service_clients/account_service_policy_attributes.py +0 -0
  9. {fountain_life_service_clients-3.29.1 → fountain_life_service_clients-3.30.0}/fountain_life_service_clients/agents_api_service.py +0 -0
  10. {fountain_life_service_clients-3.29.1 → fountain_life_service_clients-3.30.0}/fountain_life_service_clients/claimed_domains_service.py +0 -0
  11. {fountain_life_service_clients-3.29.1 → fountain_life_service_clients-3.30.0}/fountain_life_service_clients/cohorts_service.py +0 -0
  12. {fountain_life_service_clients-3.29.1 → fountain_life_service_clients-3.30.0}/fountain_life_service_clients/ehr_ingestion_wearables_api.py +0 -0
  13. {fountain_life_service_clients-3.29.1 → fountain_life_service_clients-3.30.0}/fountain_life_service_clients/ehr_service.py +0 -0
  14. {fountain_life_service_clients-3.29.1 → fountain_life_service_clients-3.30.0}/fountain_life_service_clients/email_service_email.py +0 -0
  15. {fountain_life_service_clients-3.29.1 → fountain_life_service_clients-3.30.0}/fountain_life_service_clients/email_service_sms.py +0 -0
  16. {fountain_life_service_clients-3.29.1 → fountain_life_service_clients-3.30.0}/fountain_life_service_clients/fhir_post_processor_service.py +0 -0
  17. {fountain_life_service_clients-3.29.1 → fountain_life_service_clients-3.30.0}/fountain_life_service_clients/fhir_search_service.py +0 -0
  18. {fountain_life_service_clients-3.29.1 → fountain_life_service_clients-3.30.0}/fountain_life_service_clients/file_service.py +0 -0
  19. {fountain_life_service_clients-3.29.1 → fountain_life_service_clients-3.30.0}/fountain_life_service_clients/invitation_service.py +0 -0
  20. {fountain_life_service_clients-3.29.1 → fountain_life_service_clients-3.30.0}/fountain_life_service_clients/medical_results_service_results.py +0 -0
  21. {fountain_life_service_clients-3.29.1 → fountain_life_service_clients-3.30.0}/fountain_life_service_clients/member_notification_service.py +0 -0
  22. {fountain_life_service_clients-3.29.1 → fountain_life_service_clients-3.30.0}/fountain_life_service_clients/member_operations_service_members.py +0 -0
  23. {fountain_life_service_clients-3.29.1 → fountain_life_service_clients-3.30.0}/fountain_life_service_clients/member_scheduling_service_scheduling_prompts.py +0 -0
  24. {fountain_life_service_clients-3.29.1 → fountain_life_service_clients-3.30.0}/fountain_life_service_clients/oauth_apps_service.py +0 -0
  25. {fountain_life_service_clients-3.29.1 → fountain_life_service_clients-3.30.0}/fountain_life_service_clients/patient_service.py +0 -0
  26. {fountain_life_service_clients-3.29.1 → fountain_life_service_clients-3.30.0}/fountain_life_service_clients/rules_service.py +0 -0
  27. {fountain_life_service_clients-3.29.1 → fountain_life_service_clients-3.30.0}/fountain_life_service_clients/scheduler_service.py +0 -0
  28. {fountain_life_service_clients-3.29.1 → fountain_life_service_clients-3.30.0}/fountain_life_service_clients/survey_service.py +0 -0
  29. {fountain_life_service_clients-3.29.1 → fountain_life_service_clients-3.30.0}/fountain_life_service_clients/user_service.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fountain-life-service-clients
3
- Version: 3.29.1
3
+ Version: 3.30.0
4
4
  Summary:
5
5
  License: UNLICENSED
6
6
  Author: Fountain Life
@@ -24,7 +24,23 @@ class items(TypedDict):
24
24
  type: Literal["template"]
25
25
  path: str
26
26
  description: NotRequired[str]
27
+ impressionType: NotRequired[
28
+ Literal[
29
+ "brain",
30
+ "cancer",
31
+ "heart",
32
+ "metabolic",
33
+ "musculoskeletal",
34
+ "nutrition",
35
+ "overview",
36
+ "synopsis",
37
+ "supplements",
38
+ "general",
39
+ "functional-biomarker-profile",
40
+ ]
41
+ ]
27
42
  id: str
43
+ durableId: str
28
44
  accountId: str
29
45
  createdAt: str
30
46
  updatedAt: str
@@ -36,6 +52,7 @@ class Items2(TypedDict):
36
52
  path: str
37
53
  description: NotRequired[str]
38
54
  id: str
55
+ durableId: str
39
56
  accountId: str
40
57
  createdAt: str
41
58
  updatedAt: str
@@ -56,6 +73,21 @@ class CreateTemplateRequest1(TypedDict):
56
73
  path: str
57
74
  description: NotRequired[str]
58
75
  content: str
76
+ impressionType: NotRequired[
77
+ Literal[
78
+ "brain",
79
+ "cancer",
80
+ "heart",
81
+ "metabolic",
82
+ "musculoskeletal",
83
+ "nutrition",
84
+ "overview",
85
+ "synopsis",
86
+ "supplements",
87
+ "general",
88
+ "functional-biomarker-profile",
89
+ ]
90
+ ]
59
91
 
60
92
 
61
93
  class Section(TypedDict):
@@ -77,7 +109,23 @@ class Template(TypedDict):
77
109
  path: str
78
110
  description: NotRequired[str]
79
111
  content: str
112
+ impressionType: NotRequired[
113
+ Literal[
114
+ "brain",
115
+ "cancer",
116
+ "heart",
117
+ "metabolic",
118
+ "musculoskeletal",
119
+ "nutrition",
120
+ "overview",
121
+ "synopsis",
122
+ "supplements",
123
+ "general",
124
+ "functional-biomarker-profile",
125
+ ]
126
+ ]
80
127
  id: str
128
+ durableId: str
81
129
  accountId: str
82
130
  createdAt: str
83
131
  updatedAt: str
@@ -90,6 +138,7 @@ class template(TypedDict):
90
138
  description: NotRequired[str]
91
139
  sections: List[Section]
92
140
  id: str
141
+ durableId: str
93
142
  accountId: str
94
143
  createdAt: str
95
144
  updatedAt: str
@@ -109,7 +158,23 @@ class Template2(TypedDict):
109
158
  path: str
110
159
  description: NotRequired[str]
111
160
  content: str
161
+ impressionType: NotRequired[
162
+ Literal[
163
+ "brain",
164
+ "cancer",
165
+ "heart",
166
+ "metabolic",
167
+ "musculoskeletal",
168
+ "nutrition",
169
+ "overview",
170
+ "synopsis",
171
+ "supplements",
172
+ "general",
173
+ "functional-biomarker-profile",
174
+ ]
175
+ ]
112
176
  id: str
177
+ durableId: str
113
178
  accountId: str
114
179
  createdAt: str
115
180
  updatedAt: str
@@ -126,21 +191,90 @@ class Template3(TypedDict):
126
191
  description: NotRequired[str]
127
192
  sections: List[Section]
128
193
  id: str
194
+ durableId: str
129
195
  accountId: str
130
196
  createdAt: str
131
197
  updatedAt: str
132
198
  lastUpdatedBy: str
133
199
 
134
200
 
135
- class GetTemplateResponse(TypedDict):
201
+ class GetTemplateByDurableIdResponse(TypedDict):
136
202
  template: Union[Template2, Template3]
137
203
 
138
204
 
205
+ class Template4(TypedDict):
206
+ """
207
+ The template or composite report definition
208
+ """
209
+
210
+ type: Literal["template"]
211
+ path: str
212
+ description: NotRequired[str]
213
+ content: str
214
+ impressionType: NotRequired[
215
+ Literal[
216
+ "brain",
217
+ "cancer",
218
+ "heart",
219
+ "metabolic",
220
+ "musculoskeletal",
221
+ "nutrition",
222
+ "overview",
223
+ "synopsis",
224
+ "supplements",
225
+ "general",
226
+ "functional-biomarker-profile",
227
+ ]
228
+ ]
229
+ id: str
230
+ durableId: str
231
+ accountId: str
232
+ createdAt: str
233
+ updatedAt: str
234
+ lastUpdatedBy: str
235
+
236
+
237
+ class Template5(TypedDict):
238
+ """
239
+ The template or composite report definition
240
+ """
241
+
242
+ type: Literal["compositeReportDefinition"]
243
+ path: str
244
+ description: NotRequired[str]
245
+ sections: List[Section]
246
+ id: str
247
+ durableId: str
248
+ accountId: str
249
+ createdAt: str
250
+ updatedAt: str
251
+ lastUpdatedBy: str
252
+
253
+
254
+ class GetTemplateResponse(TypedDict):
255
+ template: Union[Template4, Template5]
256
+
257
+
139
258
  class PatchTemplateRequest1(TypedDict):
140
259
  type: Literal["template"]
141
260
  path: NotRequired[str]
142
261
  description: NotRequired[str]
143
262
  content: NotRequired[str]
263
+ impressionType: NotRequired[
264
+ Literal[
265
+ "brain",
266
+ "cancer",
267
+ "heart",
268
+ "metabolic",
269
+ "musculoskeletal",
270
+ "nutrition",
271
+ "overview",
272
+ "synopsis",
273
+ "supplements",
274
+ "general",
275
+ "functional-biomarker-profile",
276
+ ]
277
+ ]
144
278
 
145
279
 
146
280
  class PatchTemplateRequest2(TypedDict):
@@ -153,24 +287,41 @@ class PatchTemplateRequest2(TypedDict):
153
287
  PatchTemplateRequest = Union[PatchTemplateRequest1, PatchTemplateRequest2]
154
288
 
155
289
 
156
- class Template4(TypedDict):
290
+ class Template6(TypedDict):
157
291
  type: Literal["template"]
158
292
  path: str
159
293
  description: NotRequired[str]
160
294
  content: str
295
+ impressionType: NotRequired[
296
+ Literal[
297
+ "brain",
298
+ "cancer",
299
+ "heart",
300
+ "metabolic",
301
+ "musculoskeletal",
302
+ "nutrition",
303
+ "overview",
304
+ "synopsis",
305
+ "supplements",
306
+ "general",
307
+ "functional-biomarker-profile",
308
+ ]
309
+ ]
161
310
  id: str
311
+ durableId: str
162
312
  accountId: str
163
313
  createdAt: str
164
314
  updatedAt: str
165
315
  lastUpdatedBy: str
166
316
 
167
317
 
168
- class Template5(TypedDict):
318
+ class Template7(TypedDict):
169
319
  type: Literal["compositeReportDefinition"]
170
320
  path: str
171
321
  description: NotRequired[str]
172
322
  sections: List[Section]
173
323
  id: str
324
+ durableId: str
174
325
  accountId: str
175
326
  createdAt: str
176
327
  updatedAt: str
@@ -178,7 +329,7 @@ class Template5(TypedDict):
178
329
 
179
330
 
180
331
  class PatchTemplateResponse(TypedDict):
181
- template: Union[Template4, Template5]
332
+ template: Union[Template6, Template7]
182
333
 
183
334
 
184
335
  class DeleteTemplateResponse(TypedDict):
@@ -189,24 +340,41 @@ class CopyTemplateRequest(TypedDict):
189
340
  path: NotRequired[str]
190
341
 
191
342
 
192
- class Template6(TypedDict):
343
+ class Template8(TypedDict):
193
344
  type: Literal["template"]
194
345
  path: str
195
346
  description: NotRequired[str]
196
347
  content: str
348
+ impressionType: NotRequired[
349
+ Literal[
350
+ "brain",
351
+ "cancer",
352
+ "heart",
353
+ "metabolic",
354
+ "musculoskeletal",
355
+ "nutrition",
356
+ "overview",
357
+ "synopsis",
358
+ "supplements",
359
+ "general",
360
+ "functional-biomarker-profile",
361
+ ]
362
+ ]
197
363
  id: str
364
+ durableId: str
198
365
  accountId: str
199
366
  createdAt: str
200
367
  updatedAt: str
201
368
  lastUpdatedBy: str
202
369
 
203
370
 
204
- class Template7(TypedDict):
371
+ class Template9(TypedDict):
205
372
  type: Literal["compositeReportDefinition"]
206
373
  path: str
207
374
  description: NotRequired[str]
208
375
  sections: List[Section]
209
376
  id: str
377
+ durableId: str
210
378
  accountId: str
211
379
  createdAt: str
212
380
  updatedAt: str
@@ -214,7 +382,7 @@ class Template7(TypedDict):
214
382
 
215
383
 
216
384
  class CopyTemplateResponse(TypedDict):
217
- template: Union[Template6, Template7]
385
+ template: Union[Template8, Template9]
218
386
 
219
387
 
220
388
  class AiTemplateServiceClient(BaseClient):
@@ -236,6 +404,13 @@ class AiTemplateServiceClient(BaseClient):
236
404
  )
237
405
  return cast(AlphaResponse[CreateTemplateResponse], res)
238
406
 
407
+ async def get_template_by_durable_id(self, durable_id: str):
408
+ """Gets a template by its durable ID. Returns 404 if not found."""
409
+ res = await self.client.request(
410
+ path=f"/v1/ai-templates/durable/{quote(durable_id)}", method="GET"
411
+ )
412
+ return cast(AlphaResponse[GetTemplateByDurableIdResponse], res)
413
+
239
414
  async def get_template(self, id: str):
240
415
  """Gets a template by ID. Returns 404 if the template does not exist."""
241
416
  res = await self.client.request(
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "fountain-life-service-clients"
3
- version = "3.29.1"
3
+ version = "3.30.0"
4
4
  description = ""
5
5
  authors = ["Fountain Life <dev@fountainlife.com>"]
6
6
  license = "UNLICENSED"