kaggle 1.7.4.5__py3-none-any.whl → 1.8.0__py3-none-any.whl

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 (110) hide show
  1. kaggle/__init__.py +10 -6
  2. kaggle/api/kaggle_api.py +574 -598
  3. kaggle/api/kaggle_api_extended.py +5251 -4769
  4. kaggle/cli.py +1335 -1585
  5. kaggle/models/api_blob_type.py +3 -3
  6. kaggle/models/dataset_column.py +165 -174
  7. kaggle/models/dataset_new_request.py +83 -41
  8. kaggle/models/dataset_new_version_request.py +32 -25
  9. kaggle/models/dataset_update_settings_request.py +35 -27
  10. kaggle/models/kaggle_models_extended.py +169 -172
  11. kaggle/models/kernel_push_request.py +66 -49
  12. kaggle/models/model_instance_new_version_request.py +10 -18
  13. kaggle/models/model_instance_update_request.py +103 -34
  14. kaggle/models/model_new_instance_request.py +138 -41
  15. kaggle/models/model_new_request.py +35 -27
  16. kaggle/models/model_update_request.py +32 -25
  17. kaggle/models/start_blob_upload_request.py +192 -195
  18. kaggle/models/start_blob_upload_response.py +98 -98
  19. kaggle/models/upload_file.py +114 -120
  20. kaggle/test/test_authenticate.py +23 -23
  21. {kaggle-1.7.4.5.dist-info → kaggle-1.8.0.dist-info}/METADATA +11 -15
  22. kaggle-1.8.0.dist-info/RECORD +148 -0
  23. kagglesdk/__init__.py +5 -1
  24. kagglesdk/benchmarks/services/__init__.py +0 -0
  25. kagglesdk/benchmarks/services/benchmarks_api_service.py +19 -0
  26. kagglesdk/benchmarks/types/__init__.py +0 -0
  27. kagglesdk/benchmarks/types/benchmark_types.py +307 -0
  28. kagglesdk/benchmarks/types/benchmarks_api_service.py +243 -0
  29. kagglesdk/blobs/services/blob_api_service.py +1 -1
  30. kagglesdk/blobs/types/blob_api_service.py +2 -2
  31. kagglesdk/common/services/__init__.py +0 -0
  32. kagglesdk/common/services/operations_service.py +46 -0
  33. kagglesdk/common/types/file_download.py +1 -1
  34. kagglesdk/common/types/http_redirect.py +1 -1
  35. kagglesdk/common/types/operations.py +194 -0
  36. kagglesdk/common/types/operations_service.py +48 -0
  37. kagglesdk/community/__init__.py +0 -0
  38. kagglesdk/community/types/__init__.py +0 -0
  39. kagglesdk/community/types/content_enums.py +44 -0
  40. kagglesdk/community/types/organization.py +410 -0
  41. kagglesdk/competitions/services/competition_api_service.py +49 -12
  42. kagglesdk/competitions/types/competition.py +14 -0
  43. kagglesdk/competitions/types/competition_api_service.py +1639 -1275
  44. kagglesdk/competitions/types/search_competitions.py +28 -0
  45. kagglesdk/datasets/databundles/__init__.py +0 -0
  46. kagglesdk/datasets/databundles/types/__init__.py +0 -0
  47. kagglesdk/datasets/databundles/types/databundle_api_types.py +540 -0
  48. kagglesdk/datasets/services/dataset_api_service.py +39 -14
  49. kagglesdk/datasets/types/dataset_api_service.py +554 -300
  50. kagglesdk/datasets/types/dataset_enums.py +21 -0
  51. kagglesdk/datasets/types/dataset_service.py +145 -0
  52. kagglesdk/datasets/types/dataset_types.py +74 -74
  53. kagglesdk/datasets/types/search_datasets.py +6 -0
  54. kagglesdk/discussions/__init__.py +0 -0
  55. kagglesdk/discussions/types/__init__.py +0 -0
  56. kagglesdk/discussions/types/search_discussions.py +43 -0
  57. kagglesdk/discussions/types/writeup_enums.py +11 -0
  58. kagglesdk/education/services/education_api_service.py +1 -1
  59. kagglesdk/education/types/education_api_service.py +1 -1
  60. kagglesdk/kaggle_client.py +46 -23
  61. kagglesdk/kaggle_creds.py +148 -0
  62. kagglesdk/kaggle_env.py +89 -25
  63. kagglesdk/kaggle_http_client.py +216 -306
  64. kagglesdk/kaggle_oauth.py +200 -0
  65. kagglesdk/kaggle_object.py +286 -293
  66. kagglesdk/kernels/services/kernels_api_service.py +46 -9
  67. kagglesdk/kernels/types/kernels_api_service.py +635 -159
  68. kagglesdk/kernels/types/kernels_enums.py +6 -0
  69. kagglesdk/kernels/types/search_kernels.py +6 -0
  70. kagglesdk/licenses/__init__.py +0 -0
  71. kagglesdk/licenses/types/__init__.py +0 -0
  72. kagglesdk/licenses/types/licenses_types.py +182 -0
  73. kagglesdk/models/services/model_api_service.py +41 -17
  74. kagglesdk/models/types/model_api_service.py +987 -637
  75. kagglesdk/models/types/model_enums.py +8 -0
  76. kagglesdk/models/types/model_service.py +71 -71
  77. kagglesdk/models/types/model_types.py +1057 -5
  78. kagglesdk/models/types/search_models.py +8 -0
  79. kagglesdk/search/__init__.py +0 -0
  80. kagglesdk/search/services/__init__.py +0 -0
  81. kagglesdk/search/services/search_api_service.py +19 -0
  82. kagglesdk/search/types/__init__.py +0 -0
  83. kagglesdk/search/types/search_api_service.py +2435 -0
  84. kagglesdk/search/types/search_content_shared.py +50 -0
  85. kagglesdk/search/types/search_enums.py +45 -0
  86. kagglesdk/search/types/search_service.py +303 -0
  87. kagglesdk/security/services/iam_service.py +31 -0
  88. kagglesdk/security/services/oauth_service.py +27 -1
  89. kagglesdk/security/types/authentication.py +63 -63
  90. kagglesdk/security/types/iam_service.py +496 -0
  91. kagglesdk/security/types/oauth_service.py +797 -10
  92. kagglesdk/security/types/roles.py +8 -0
  93. kagglesdk/security/types/security_types.py +159 -0
  94. kagglesdk/test/__init__.py +0 -0
  95. kagglesdk/test/test_client.py +20 -22
  96. kagglesdk/users/services/account_service.py +13 -1
  97. kagglesdk/users/services/group_api_service.py +31 -0
  98. kagglesdk/users/types/account_service.py +169 -28
  99. kagglesdk/users/types/group_api_service.py +315 -0
  100. kagglesdk/users/types/group_types.py +165 -0
  101. kagglesdk/users/types/groups_enum.py +8 -0
  102. kagglesdk/users/types/progression_service.py +9 -0
  103. kagglesdk/users/types/search_users.py +23 -0
  104. kagglesdk/users/types/user_avatar.py +226 -0
  105. kaggle/configuration.py +0 -206
  106. kaggle-1.7.4.5.dist-info/RECORD +0 -98
  107. {kaggle-1.7.4.5.dist-info → kaggle-1.8.0.dist-info}/WHEEL +0 -0
  108. {kaggle-1.7.4.5.dist-info → kaggle-1.8.0.dist-info}/entry_points.txt +0 -0
  109. {kaggle-1.7.4.5.dist-info → kaggle-1.8.0.dist-info}/licenses/LICENSE.txt +0 -0
  110. {kaggle/test → kagglesdk/benchmarks}/__init__.py +0 -0
@@ -1,7 +1,11 @@
1
+ from datetime import datetime
2
+ from kagglesdk.datasets.types.dataset_enums import DatabundleVersionStatus, DatabundleVersionType
3
+ from kagglesdk.datasets.types.dataset_service import DatabundleVersionCreationStatus
1
4
  from kagglesdk.kaggle_object import *
2
- from kagglesdk.models.types.model_enums import ModelFramework, ModelVersionLinkType
5
+ from kagglesdk.licenses.types.licenses_types import License
6
+ from kagglesdk.models.types.model_enums import ModelFramework, ModelInstanceType, ModelVersionLinkType, SigstoreState
3
7
  from kagglesdk.users.types.users_enums import UserAchievementTier
4
- from typing import Optional
8
+ from typing import Optional, List
5
9
 
6
10
  class BaseModelInstanceInformation(KaggleObject):
7
11
  r"""
@@ -87,6 +91,959 @@ class BaseModelInstanceInformation(KaggleObject):
87
91
  self._framework = framework
88
92
 
89
93
 
94
+ class LicensePost(KaggleObject):
95
+ r"""
96
+ Attributes:
97
+ id (int)
98
+ content (str)
99
+ """
100
+
101
+ def __init__(self):
102
+ self._id = 0
103
+ self._content = ""
104
+ self._freeze()
105
+
106
+ @property
107
+ def id(self) -> int:
108
+ return self._id
109
+
110
+ @id.setter
111
+ def id(self, id: int):
112
+ if id is None:
113
+ del self.id
114
+ return
115
+ if not isinstance(id, int):
116
+ raise TypeError('id must be of type int')
117
+ self._id = id
118
+
119
+ @property
120
+ def content(self) -> str:
121
+ return self._content
122
+
123
+ @content.setter
124
+ def content(self, content: str):
125
+ if content is None:
126
+ del self.content
127
+ return
128
+ if not isinstance(content, str):
129
+ raise TypeError('content must be of type str')
130
+ self._content = content
131
+
132
+
133
+ class ModelActivityTimeSeriesPoint(KaggleObject):
134
+ r"""
135
+ Attributes:
136
+ date (datetime)
137
+ count (int)
138
+ """
139
+
140
+ def __init__(self):
141
+ self._date = None
142
+ self._count = 0
143
+ self._freeze()
144
+
145
+ @property
146
+ def date(self) -> datetime:
147
+ return self._date
148
+
149
+ @date.setter
150
+ def date(self, date: datetime):
151
+ if date is None:
152
+ del self.date
153
+ return
154
+ if not isinstance(date, datetime):
155
+ raise TypeError('date must be of type datetime')
156
+ self._date = date
157
+
158
+ @property
159
+ def count(self) -> int:
160
+ return self._count
161
+
162
+ @count.setter
163
+ def count(self, count: int):
164
+ if count is None:
165
+ del self.count
166
+ return
167
+ if not isinstance(count, int):
168
+ raise TypeError('count must be of type int')
169
+ self._count = count
170
+
171
+
172
+ class ModelInstance(KaggleObject):
173
+ r"""
174
+ Attributes:
175
+ id (int)
176
+ owner_slug (str)
177
+ model_slug (str)
178
+ slug (str)
179
+ version_id (int)
180
+ fine_tunable (bool)
181
+ overview (str)
182
+ usage (str)
183
+ text_representation (str)
184
+ source_url (str)
185
+ version_number (int)
186
+ framework (ModelFramework)
187
+ TODO(http://b/253694274): Add support for variation tables when that's
188
+ finished taking shape
189
+ version_notes (str)
190
+ download_url (str)
191
+ databundle_version_id (int)
192
+ last_version_id (int)
193
+ Version ID associated with the most up-to-date version of the ModelInstance
194
+ source_organization (Owner)
195
+ training_data (str)
196
+ metrics (str)
197
+ license_post (LicensePost)
198
+ rendered_usage (str)
199
+ license (License)
200
+ databundle_id (int)
201
+ firestore_path (str)
202
+ status (DatabundleVersionStatus)
203
+ error_message (str)
204
+ databundle_version_type (DatabundleVersionType)
205
+ can_use (bool)
206
+ creation_status (DatabundleVersionCreationStatus)
207
+ uncompressed_storage_uri (str)
208
+ model_instance_type (ModelInstanceType)
209
+ base_model_instance_id (int)
210
+ base_model_instance_information (BaseModelInstanceInformation)
211
+ external_base_model_url (str)
212
+ model_id (int)
213
+ download_summary (ModelInstanceDownloadSummary)
214
+ total_uncompressed_bytes (int)
215
+ sigstore_state (SigstoreState)
216
+ created_by_kernel_id (int)
217
+ creator_user_id (int)
218
+ attestation_kernel_url (str)
219
+ """
220
+
221
+ def __init__(self):
222
+ self._id = 0
223
+ self._owner_slug = ""
224
+ self._model_slug = ""
225
+ self._slug = ""
226
+ self._version_id = 0
227
+ self._fine_tunable = None
228
+ self._overview = ""
229
+ self._usage = ""
230
+ self._text_representation = None
231
+ self._source_url = None
232
+ self._version_number = 0
233
+ self._framework = ModelFramework.MODEL_FRAMEWORK_UNSPECIFIED
234
+ self._version_notes = ""
235
+ self._download_url = None
236
+ self._databundle_version_id = 0
237
+ self._last_version_id = None
238
+ self._source_organization = None
239
+ self._training_data = []
240
+ self._metrics = None
241
+ self._license_post = None
242
+ self._rendered_usage = ""
243
+ self._license = None
244
+ self._databundle_id = 0
245
+ self._firestore_path = ""
246
+ self._status = DatabundleVersionStatus.NOT_YET_PERSISTED
247
+ self._error_message = None
248
+ self._databundle_version_type = DatabundleVersionType.DATABUNDLE_VERSION_TYPE_UNSPECIFIED
249
+ self._can_use = None
250
+ self._creation_status = None
251
+ self._uncompressed_storage_uri = None
252
+ self._model_instance_type = None
253
+ self._base_model_instance_id = None
254
+ self._base_model_instance_information = None
255
+ self._external_base_model_url = None
256
+ self._model_id = 0
257
+ self._download_summary = None
258
+ self._total_uncompressed_bytes = None
259
+ self._sigstore_state = None
260
+ self._created_by_kernel_id = None
261
+ self._creator_user_id = None
262
+ self._attestation_kernel_url = None
263
+ self._freeze()
264
+
265
+ @property
266
+ def id(self) -> int:
267
+ return self._id
268
+
269
+ @id.setter
270
+ def id(self, id: int):
271
+ if id is None:
272
+ del self.id
273
+ return
274
+ if not isinstance(id, int):
275
+ raise TypeError('id must be of type int')
276
+ self._id = id
277
+
278
+ @property
279
+ def owner_slug(self) -> str:
280
+ return self._owner_slug
281
+
282
+ @owner_slug.setter
283
+ def owner_slug(self, owner_slug: str):
284
+ if owner_slug is None:
285
+ del self.owner_slug
286
+ return
287
+ if not isinstance(owner_slug, str):
288
+ raise TypeError('owner_slug must be of type str')
289
+ self._owner_slug = owner_slug
290
+
291
+ @property
292
+ def model_slug(self) -> str:
293
+ return self._model_slug
294
+
295
+ @model_slug.setter
296
+ def model_slug(self, model_slug: str):
297
+ if model_slug is None:
298
+ del self.model_slug
299
+ return
300
+ if not isinstance(model_slug, str):
301
+ raise TypeError('model_slug must be of type str')
302
+ self._model_slug = model_slug
303
+
304
+ @property
305
+ def model_id(self) -> int:
306
+ return self._model_id
307
+
308
+ @model_id.setter
309
+ def model_id(self, model_id: int):
310
+ if model_id is None:
311
+ del self.model_id
312
+ return
313
+ if not isinstance(model_id, int):
314
+ raise TypeError('model_id must be of type int')
315
+ self._model_id = model_id
316
+
317
+ @property
318
+ def slug(self) -> str:
319
+ return self._slug
320
+
321
+ @slug.setter
322
+ def slug(self, slug: str):
323
+ if slug is None:
324
+ del self.slug
325
+ return
326
+ if not isinstance(slug, str):
327
+ raise TypeError('slug must be of type str')
328
+ self._slug = slug
329
+
330
+ @property
331
+ def version_id(self) -> int:
332
+ return self._version_id
333
+
334
+ @version_id.setter
335
+ def version_id(self, version_id: int):
336
+ if version_id is None:
337
+ del self.version_id
338
+ return
339
+ if not isinstance(version_id, int):
340
+ raise TypeError('version_id must be of type int')
341
+ self._version_id = version_id
342
+
343
+ @property
344
+ def fine_tunable(self) -> bool:
345
+ return self._fine_tunable or False
346
+
347
+ @fine_tunable.setter
348
+ def fine_tunable(self, fine_tunable: Optional[bool]):
349
+ if fine_tunable is None:
350
+ del self.fine_tunable
351
+ return
352
+ if not isinstance(fine_tunable, bool):
353
+ raise TypeError('fine_tunable must be of type bool')
354
+ self._fine_tunable = fine_tunable
355
+
356
+ @property
357
+ def overview(self) -> str:
358
+ return self._overview
359
+
360
+ @overview.setter
361
+ def overview(self, overview: str):
362
+ if overview is None:
363
+ del self.overview
364
+ return
365
+ if not isinstance(overview, str):
366
+ raise TypeError('overview must be of type str')
367
+ self._overview = overview
368
+
369
+ @property
370
+ def usage(self) -> str:
371
+ return self._usage
372
+
373
+ @usage.setter
374
+ def usage(self, usage: str):
375
+ if usage is None:
376
+ del self.usage
377
+ return
378
+ if not isinstance(usage, str):
379
+ raise TypeError('usage must be of type str')
380
+ self._usage = usage
381
+
382
+ @property
383
+ def rendered_usage(self) -> str:
384
+ return self._rendered_usage
385
+
386
+ @rendered_usage.setter
387
+ def rendered_usage(self, rendered_usage: str):
388
+ if rendered_usage is None:
389
+ del self.rendered_usage
390
+ return
391
+ if not isinstance(rendered_usage, str):
392
+ raise TypeError('rendered_usage must be of type str')
393
+ self._rendered_usage = rendered_usage
394
+
395
+ @property
396
+ def text_representation(self) -> str:
397
+ return self._text_representation or ""
398
+
399
+ @text_representation.setter
400
+ def text_representation(self, text_representation: Optional[str]):
401
+ if text_representation is None:
402
+ del self.text_representation
403
+ return
404
+ if not isinstance(text_representation, str):
405
+ raise TypeError('text_representation must be of type str')
406
+ self._text_representation = text_representation
407
+
408
+ @property
409
+ def source_url(self) -> str:
410
+ return self._source_url or ""
411
+
412
+ @source_url.setter
413
+ def source_url(self, source_url: Optional[str]):
414
+ if source_url is None:
415
+ del self.source_url
416
+ return
417
+ if not isinstance(source_url, str):
418
+ raise TypeError('source_url must be of type str')
419
+ self._source_url = source_url
420
+
421
+ @property
422
+ def version_number(self) -> int:
423
+ return self._version_number
424
+
425
+ @version_number.setter
426
+ def version_number(self, version_number: int):
427
+ if version_number is None:
428
+ del self.version_number
429
+ return
430
+ if not isinstance(version_number, int):
431
+ raise TypeError('version_number must be of type int')
432
+ self._version_number = version_number
433
+
434
+ @property
435
+ def framework(self) -> 'ModelFramework':
436
+ r"""
437
+ TODO(http://b/253694274): Add support for variation tables when that's
438
+ finished taking shape
439
+ """
440
+ return self._framework
441
+
442
+ @framework.setter
443
+ def framework(self, framework: 'ModelFramework'):
444
+ if framework is None:
445
+ del self.framework
446
+ return
447
+ if not isinstance(framework, ModelFramework):
448
+ raise TypeError('framework must be of type ModelFramework')
449
+ self._framework = framework
450
+
451
+ @property
452
+ def version_notes(self) -> str:
453
+ return self._version_notes
454
+
455
+ @version_notes.setter
456
+ def version_notes(self, version_notes: str):
457
+ if version_notes is None:
458
+ del self.version_notes
459
+ return
460
+ if not isinstance(version_notes, str):
461
+ raise TypeError('version_notes must be of type str')
462
+ self._version_notes = version_notes
463
+
464
+ @property
465
+ def download_url(self) -> str:
466
+ return self._download_url or ""
467
+
468
+ @download_url.setter
469
+ def download_url(self, download_url: Optional[str]):
470
+ if download_url is None:
471
+ del self.download_url
472
+ return
473
+ if not isinstance(download_url, str):
474
+ raise TypeError('download_url must be of type str')
475
+ self._download_url = download_url
476
+
477
+ @property
478
+ def databundle_id(self) -> int:
479
+ return self._databundle_id
480
+
481
+ @databundle_id.setter
482
+ def databundle_id(self, databundle_id: int):
483
+ if databundle_id is None:
484
+ del self.databundle_id
485
+ return
486
+ if not isinstance(databundle_id, int):
487
+ raise TypeError('databundle_id must be of type int')
488
+ self._databundle_id = databundle_id
489
+
490
+ @property
491
+ def databundle_version_id(self) -> int:
492
+ return self._databundle_version_id
493
+
494
+ @databundle_version_id.setter
495
+ def databundle_version_id(self, databundle_version_id: int):
496
+ if databundle_version_id is None:
497
+ del self.databundle_version_id
498
+ return
499
+ if not isinstance(databundle_version_id, int):
500
+ raise TypeError('databundle_version_id must be of type int')
501
+ self._databundle_version_id = databundle_version_id
502
+
503
+ @property
504
+ def databundle_version_type(self) -> 'DatabundleVersionType':
505
+ return self._databundle_version_type
506
+
507
+ @databundle_version_type.setter
508
+ def databundle_version_type(self, databundle_version_type: 'DatabundleVersionType'):
509
+ if databundle_version_type is None:
510
+ del self.databundle_version_type
511
+ return
512
+ if not isinstance(databundle_version_type, DatabundleVersionType):
513
+ raise TypeError('databundle_version_type must be of type DatabundleVersionType')
514
+ self._databundle_version_type = databundle_version_type
515
+
516
+ @property
517
+ def firestore_path(self) -> str:
518
+ return self._firestore_path
519
+
520
+ @firestore_path.setter
521
+ def firestore_path(self, firestore_path: str):
522
+ if firestore_path is None:
523
+ del self.firestore_path
524
+ return
525
+ if not isinstance(firestore_path, str):
526
+ raise TypeError('firestore_path must be of type str')
527
+ self._firestore_path = firestore_path
528
+
529
+ @property
530
+ def status(self) -> 'DatabundleVersionStatus':
531
+ return self._status
532
+
533
+ @status.setter
534
+ def status(self, status: 'DatabundleVersionStatus'):
535
+ if status is None:
536
+ del self.status
537
+ return
538
+ if not isinstance(status, DatabundleVersionStatus):
539
+ raise TypeError('status must be of type DatabundleVersionStatus')
540
+ self._status = status
541
+
542
+ @property
543
+ def creation_status(self) -> Optional['DatabundleVersionCreationStatus']:
544
+ return self._creation_status or None
545
+
546
+ @creation_status.setter
547
+ def creation_status(self, creation_status: Optional[Optional['DatabundleVersionCreationStatus']]):
548
+ if creation_status is None:
549
+ del self.creation_status
550
+ return
551
+ if not isinstance(creation_status, DatabundleVersionCreationStatus):
552
+ raise TypeError('creation_status must be of type DatabundleVersionCreationStatus')
553
+ self._creation_status = creation_status
554
+
555
+ @property
556
+ def error_message(self) -> str:
557
+ return self._error_message or ""
558
+
559
+ @error_message.setter
560
+ def error_message(self, error_message: Optional[str]):
561
+ if error_message is None:
562
+ del self.error_message
563
+ return
564
+ if not isinstance(error_message, str):
565
+ raise TypeError('error_message must be of type str')
566
+ self._error_message = error_message
567
+
568
+ @property
569
+ def last_version_id(self) -> int:
570
+ """Version ID associated with the most up-to-date version of the ModelInstance"""
571
+ return self._last_version_id or 0
572
+
573
+ @last_version_id.setter
574
+ def last_version_id(self, last_version_id: Optional[int]):
575
+ if last_version_id is None:
576
+ del self.last_version_id
577
+ return
578
+ if not isinstance(last_version_id, int):
579
+ raise TypeError('last_version_id must be of type int')
580
+ self._last_version_id = last_version_id
581
+
582
+ @property
583
+ def source_organization(self) -> Optional['Owner']:
584
+ return self._source_organization or None
585
+
586
+ @source_organization.setter
587
+ def source_organization(self, source_organization: Optional[Optional['Owner']]):
588
+ if source_organization is None:
589
+ del self.source_organization
590
+ return
591
+ if not isinstance(source_organization, Owner):
592
+ raise TypeError('source_organization must be of type Owner')
593
+ self._source_organization = source_organization
594
+
595
+ @property
596
+ def training_data(self) -> Optional[List[str]]:
597
+ return self._training_data
598
+
599
+ @training_data.setter
600
+ def training_data(self, training_data: Optional[List[str]]):
601
+ if training_data is None:
602
+ del self.training_data
603
+ return
604
+ if not isinstance(training_data, list):
605
+ raise TypeError('training_data must be of type list')
606
+ if not all([isinstance(t, str) for t in training_data]):
607
+ raise TypeError('training_data must contain only items of type str')
608
+ self._training_data = training_data
609
+
610
+ @property
611
+ def metrics(self) -> str:
612
+ return self._metrics or ""
613
+
614
+ @metrics.setter
615
+ def metrics(self, metrics: Optional[str]):
616
+ if metrics is None:
617
+ del self.metrics
618
+ return
619
+ if not isinstance(metrics, str):
620
+ raise TypeError('metrics must be of type str')
621
+ self._metrics = metrics
622
+
623
+ @property
624
+ def license_post(self) -> Optional['LicensePost']:
625
+ return self._license_post or None
626
+
627
+ @license_post.setter
628
+ def license_post(self, license_post: Optional[Optional['LicensePost']]):
629
+ if license_post is None:
630
+ del self.license_post
631
+ return
632
+ if not isinstance(license_post, LicensePost):
633
+ raise TypeError('license_post must be of type LicensePost')
634
+ self._license_post = license_post
635
+
636
+ @property
637
+ def license(self) -> Optional['License']:
638
+ return self._license or None
639
+
640
+ @license.setter
641
+ def license(self, license: Optional[Optional['License']]):
642
+ if license is None:
643
+ del self.license
644
+ return
645
+ if not isinstance(license, License):
646
+ raise TypeError('license must be of type License')
647
+ self._license = license
648
+
649
+ @property
650
+ def can_use(self) -> bool:
651
+ return self._can_use or False
652
+
653
+ @can_use.setter
654
+ def can_use(self, can_use: Optional[bool]):
655
+ if can_use is None:
656
+ del self.can_use
657
+ return
658
+ if not isinstance(can_use, bool):
659
+ raise TypeError('can_use must be of type bool')
660
+ self._can_use = can_use
661
+
662
+ @property
663
+ def uncompressed_storage_uri(self) -> str:
664
+ return self._uncompressed_storage_uri or ""
665
+
666
+ @uncompressed_storage_uri.setter
667
+ def uncompressed_storage_uri(self, uncompressed_storage_uri: Optional[str]):
668
+ if uncompressed_storage_uri is None:
669
+ del self.uncompressed_storage_uri
670
+ return
671
+ if not isinstance(uncompressed_storage_uri, str):
672
+ raise TypeError('uncompressed_storage_uri must be of type str')
673
+ self._uncompressed_storage_uri = uncompressed_storage_uri
674
+
675
+ @property
676
+ def model_instance_type(self) -> 'ModelInstanceType':
677
+ return self._model_instance_type or ModelInstanceType.MODEL_INSTANCE_TYPE_UNSPECIFIED
678
+
679
+ @model_instance_type.setter
680
+ def model_instance_type(self, model_instance_type: Optional['ModelInstanceType']):
681
+ if model_instance_type is None:
682
+ del self.model_instance_type
683
+ return
684
+ if not isinstance(model_instance_type, ModelInstanceType):
685
+ raise TypeError('model_instance_type must be of type ModelInstanceType')
686
+ self._model_instance_type = model_instance_type
687
+
688
+ @property
689
+ def base_model_instance_id(self) -> int:
690
+ return self._base_model_instance_id or 0
691
+
692
+ @base_model_instance_id.setter
693
+ def base_model_instance_id(self, base_model_instance_id: Optional[int]):
694
+ if base_model_instance_id is None:
695
+ del self.base_model_instance_id
696
+ return
697
+ if not isinstance(base_model_instance_id, int):
698
+ raise TypeError('base_model_instance_id must be of type int')
699
+ self._base_model_instance_id = base_model_instance_id
700
+
701
+ @property
702
+ def base_model_instance_information(self) -> Optional['BaseModelInstanceInformation']:
703
+ return self._base_model_instance_information or None
704
+
705
+ @base_model_instance_information.setter
706
+ def base_model_instance_information(self, base_model_instance_information: Optional[Optional['BaseModelInstanceInformation']]):
707
+ if base_model_instance_information is None:
708
+ del self.base_model_instance_information
709
+ return
710
+ if not isinstance(base_model_instance_information, BaseModelInstanceInformation):
711
+ raise TypeError('base_model_instance_information must be of type BaseModelInstanceInformation')
712
+ self._base_model_instance_information = base_model_instance_information
713
+
714
+ @property
715
+ def external_base_model_url(self) -> str:
716
+ return self._external_base_model_url or ""
717
+
718
+ @external_base_model_url.setter
719
+ def external_base_model_url(self, external_base_model_url: Optional[str]):
720
+ if external_base_model_url is None:
721
+ del self.external_base_model_url
722
+ return
723
+ if not isinstance(external_base_model_url, str):
724
+ raise TypeError('external_base_model_url must be of type str')
725
+ self._external_base_model_url = external_base_model_url
726
+
727
+ @property
728
+ def download_summary(self) -> Optional['ModelInstanceDownloadSummary']:
729
+ return self._download_summary or None
730
+
731
+ @download_summary.setter
732
+ def download_summary(self, download_summary: Optional[Optional['ModelInstanceDownloadSummary']]):
733
+ if download_summary is None:
734
+ del self.download_summary
735
+ return
736
+ if not isinstance(download_summary, ModelInstanceDownloadSummary):
737
+ raise TypeError('download_summary must be of type ModelInstanceDownloadSummary')
738
+ self._download_summary = download_summary
739
+
740
+ @property
741
+ def total_uncompressed_bytes(self) -> int:
742
+ return self._total_uncompressed_bytes or 0
743
+
744
+ @total_uncompressed_bytes.setter
745
+ def total_uncompressed_bytes(self, total_uncompressed_bytes: Optional[int]):
746
+ if total_uncompressed_bytes is None:
747
+ del self.total_uncompressed_bytes
748
+ return
749
+ if not isinstance(total_uncompressed_bytes, int):
750
+ raise TypeError('total_uncompressed_bytes must be of type int')
751
+ self._total_uncompressed_bytes = total_uncompressed_bytes
752
+
753
+ @property
754
+ def sigstore_state(self) -> 'SigstoreState':
755
+ return self._sigstore_state or SigstoreState.SIGSTORE_STATE_UNSPECIFIED
756
+
757
+ @sigstore_state.setter
758
+ def sigstore_state(self, sigstore_state: Optional['SigstoreState']):
759
+ if sigstore_state is None:
760
+ del self.sigstore_state
761
+ return
762
+ if not isinstance(sigstore_state, SigstoreState):
763
+ raise TypeError('sigstore_state must be of type SigstoreState')
764
+ self._sigstore_state = sigstore_state
765
+
766
+ @property
767
+ def created_by_kernel_id(self) -> int:
768
+ return self._created_by_kernel_id or 0
769
+
770
+ @created_by_kernel_id.setter
771
+ def created_by_kernel_id(self, created_by_kernel_id: Optional[int]):
772
+ if created_by_kernel_id is None:
773
+ del self.created_by_kernel_id
774
+ return
775
+ if not isinstance(created_by_kernel_id, int):
776
+ raise TypeError('created_by_kernel_id must be of type int')
777
+ self._created_by_kernel_id = created_by_kernel_id
778
+
779
+ @property
780
+ def creator_user_id(self) -> int:
781
+ return self._creator_user_id or 0
782
+
783
+ @creator_user_id.setter
784
+ def creator_user_id(self, creator_user_id: Optional[int]):
785
+ if creator_user_id is None:
786
+ del self.creator_user_id
787
+ return
788
+ if not isinstance(creator_user_id, int):
789
+ raise TypeError('creator_user_id must be of type int')
790
+ self._creator_user_id = creator_user_id
791
+
792
+ @property
793
+ def attestation_kernel_url(self) -> str:
794
+ return self._attestation_kernel_url or ""
795
+
796
+ @attestation_kernel_url.setter
797
+ def attestation_kernel_url(self, attestation_kernel_url: Optional[str]):
798
+ if attestation_kernel_url is None:
799
+ del self.attestation_kernel_url
800
+ return
801
+ if not isinstance(attestation_kernel_url, str):
802
+ raise TypeError('attestation_kernel_url must be of type str')
803
+ self._attestation_kernel_url = attestation_kernel_url
804
+
805
+
806
+ class ModelInstanceDownloadSummary(KaggleObject):
807
+ r"""
808
+ Attributes:
809
+ total_downloads (float)
810
+ download_series_points (ModelActivityTimeSeriesPoint)
811
+ model_instance_id (int)
812
+ """
813
+
814
+ def __init__(self):
815
+ self._total_downloads = 0.0
816
+ self._download_series_points = []
817
+ self._model_instance_id = 0
818
+ self._freeze()
819
+
820
+ @property
821
+ def total_downloads(self) -> float:
822
+ return self._total_downloads
823
+
824
+ @total_downloads.setter
825
+ def total_downloads(self, total_downloads: float):
826
+ if total_downloads is None:
827
+ del self.total_downloads
828
+ return
829
+ if not isinstance(total_downloads, float):
830
+ raise TypeError('total_downloads must be of type float')
831
+ self._total_downloads = total_downloads
832
+
833
+ @property
834
+ def download_series_points(self) -> Optional[List[Optional['ModelActivityTimeSeriesPoint']]]:
835
+ return self._download_series_points
836
+
837
+ @download_series_points.setter
838
+ def download_series_points(self, download_series_points: Optional[List[Optional['ModelActivityTimeSeriesPoint']]]):
839
+ if download_series_points is None:
840
+ del self.download_series_points
841
+ return
842
+ if not isinstance(download_series_points, list):
843
+ raise TypeError('download_series_points must be of type list')
844
+ if not all([isinstance(t, ModelActivityTimeSeriesPoint) for t in download_series_points]):
845
+ raise TypeError('download_series_points must contain only items of type ModelActivityTimeSeriesPoint')
846
+ self._download_series_points = download_series_points
847
+
848
+ @property
849
+ def model_instance_id(self) -> int:
850
+ return self._model_instance_id
851
+
852
+ @model_instance_id.setter
853
+ def model_instance_id(self, model_instance_id: int):
854
+ if model_instance_id is None:
855
+ del self.model_instance_id
856
+ return
857
+ if not isinstance(model_instance_id, int):
858
+ raise TypeError('model_instance_id must be of type int')
859
+ self._model_instance_id = model_instance_id
860
+
861
+
862
+ class ModelInstanceVersion(KaggleObject):
863
+ r"""
864
+ Attributes:
865
+ id (int)
866
+ framework (ModelFramework)
867
+ is_tfhub_model (bool)
868
+ url (str)
869
+ variation_slug (str)
870
+ version_number (int)
871
+ model_title (str)
872
+ thumbnail_url (str)
873
+ is_private (bool)
874
+ sigstore_state (SigstoreState)
875
+ """
876
+
877
+ def __init__(self):
878
+ self._id = 0
879
+ self._framework = ModelFramework.MODEL_FRAMEWORK_UNSPECIFIED
880
+ self._is_tfhub_model = False
881
+ self._url = ""
882
+ self._variation_slug = ""
883
+ self._version_number = 0
884
+ self._model_title = ""
885
+ self._thumbnail_url = ""
886
+ self._is_private = False
887
+ self._sigstore_state = SigstoreState.SIGSTORE_STATE_UNSPECIFIED
888
+ self._freeze()
889
+
890
+ @property
891
+ def id(self) -> int:
892
+ return self._id
893
+
894
+ @id.setter
895
+ def id(self, id: int):
896
+ if id is None:
897
+ del self.id
898
+ return
899
+ if not isinstance(id, int):
900
+ raise TypeError('id must be of type int')
901
+ self._id = id
902
+
903
+ @property
904
+ def framework(self) -> 'ModelFramework':
905
+ return self._framework
906
+
907
+ @framework.setter
908
+ def framework(self, framework: 'ModelFramework'):
909
+ if framework is None:
910
+ del self.framework
911
+ return
912
+ if not isinstance(framework, ModelFramework):
913
+ raise TypeError('framework must be of type ModelFramework')
914
+ self._framework = framework
915
+
916
+ @property
917
+ def is_tfhub_model(self) -> bool:
918
+ return self._is_tfhub_model
919
+
920
+ @is_tfhub_model.setter
921
+ def is_tfhub_model(self, is_tfhub_model: bool):
922
+ if is_tfhub_model is None:
923
+ del self.is_tfhub_model
924
+ return
925
+ if not isinstance(is_tfhub_model, bool):
926
+ raise TypeError('is_tfhub_model must be of type bool')
927
+ self._is_tfhub_model = is_tfhub_model
928
+
929
+ @property
930
+ def url(self) -> str:
931
+ return self._url
932
+
933
+ @url.setter
934
+ def url(self, url: str):
935
+ if url is None:
936
+ del self.url
937
+ return
938
+ if not isinstance(url, str):
939
+ raise TypeError('url must be of type str')
940
+ self._url = url
941
+
942
+ @property
943
+ def variation_slug(self) -> str:
944
+ return self._variation_slug
945
+
946
+ @variation_slug.setter
947
+ def variation_slug(self, variation_slug: str):
948
+ if variation_slug is None:
949
+ del self.variation_slug
950
+ return
951
+ if not isinstance(variation_slug, str):
952
+ raise TypeError('variation_slug must be of type str')
953
+ self._variation_slug = variation_slug
954
+
955
+ @property
956
+ def version_number(self) -> int:
957
+ return self._version_number
958
+
959
+ @version_number.setter
960
+ def version_number(self, version_number: int):
961
+ if version_number is None:
962
+ del self.version_number
963
+ return
964
+ if not isinstance(version_number, int):
965
+ raise TypeError('version_number must be of type int')
966
+ self._version_number = version_number
967
+
968
+ @property
969
+ def model_title(self) -> str:
970
+ return self._model_title
971
+
972
+ @model_title.setter
973
+ def model_title(self, model_title: str):
974
+ if model_title is None:
975
+ del self.model_title
976
+ return
977
+ if not isinstance(model_title, str):
978
+ raise TypeError('model_title must be of type str')
979
+ self._model_title = model_title
980
+
981
+ @property
982
+ def thumbnail_url(self) -> str:
983
+ return self._thumbnail_url
984
+
985
+ @thumbnail_url.setter
986
+ def thumbnail_url(self, thumbnail_url: str):
987
+ if thumbnail_url is None:
988
+ del self.thumbnail_url
989
+ return
990
+ if not isinstance(thumbnail_url, str):
991
+ raise TypeError('thumbnail_url must be of type str')
992
+ self._thumbnail_url = thumbnail_url
993
+
994
+ @property
995
+ def is_private(self) -> bool:
996
+ return self._is_private
997
+
998
+ @is_private.setter
999
+ def is_private(self, is_private: bool):
1000
+ if is_private is None:
1001
+ del self.is_private
1002
+ return
1003
+ if not isinstance(is_private, bool):
1004
+ raise TypeError('is_private must be of type bool')
1005
+ self._is_private = is_private
1006
+
1007
+ @property
1008
+ def sigstore_state(self) -> 'SigstoreState':
1009
+ return self._sigstore_state
1010
+
1011
+ @sigstore_state.setter
1012
+ def sigstore_state(self, sigstore_state: 'SigstoreState'):
1013
+ if sigstore_state is None:
1014
+ del self.sigstore_state
1015
+ return
1016
+ if not isinstance(sigstore_state, SigstoreState):
1017
+ raise TypeError('sigstore_state must be of type SigstoreState')
1018
+ self._sigstore_state = sigstore_state
1019
+
1020
+
1021
+ class ModelInstanceVersionList(KaggleObject):
1022
+ r"""
1023
+ Attributes:
1024
+ versions (ModelInstanceVersion)
1025
+ """
1026
+
1027
+ def __init__(self):
1028
+ self._versions = []
1029
+ self._freeze()
1030
+
1031
+ @property
1032
+ def versions(self) -> Optional[List[Optional['ModelInstanceVersion']]]:
1033
+ return self._versions
1034
+
1035
+ @versions.setter
1036
+ def versions(self, versions: Optional[List[Optional['ModelInstanceVersion']]]):
1037
+ if versions is None:
1038
+ del self.versions
1039
+ return
1040
+ if not isinstance(versions, list):
1041
+ raise TypeError('versions must be of type list')
1042
+ if not all([isinstance(t, ModelInstanceVersion) for t in versions]):
1043
+ raise TypeError('versions must contain only items of type ModelInstanceVersion')
1044
+ self._versions = versions
1045
+
1046
+
90
1047
  class ModelLink(KaggleObject):
91
1048
  r"""
92
1049
  Attributes:
@@ -142,6 +1099,8 @@ class Owner(KaggleObject):
142
1099
  slug (str)
143
1100
  user_tier (UserAchievementTier)
144
1101
  allow_model_gating (bool)
1102
+ user_progression_opt_out (bool)
1103
+ Whether or not the owner is progression opted-out (only for user owners).
145
1104
  """
146
1105
 
147
1106
  def __init__(self):
@@ -153,6 +1112,7 @@ class Owner(KaggleObject):
153
1112
  self._slug = ""
154
1113
  self._user_tier = UserAchievementTier.NOVICE
155
1114
  self._allow_model_gating = None
1115
+ self._user_progression_opt_out = None
156
1116
  self._freeze()
157
1117
 
158
1118
  @property
@@ -173,7 +1133,7 @@ class Owner(KaggleObject):
173
1133
  return self._image_url or ""
174
1134
 
175
1135
  @image_url.setter
176
- def image_url(self, image_url: str):
1136
+ def image_url(self, image_url: Optional[str]):
177
1137
  if image_url is None:
178
1138
  del self.image_url
179
1139
  return
@@ -212,7 +1172,7 @@ class Owner(KaggleObject):
212
1172
  return self._profile_url or ""
213
1173
 
214
1174
  @profile_url.setter
215
- def profile_url(self, profile_url: str):
1175
+ def profile_url(self, profile_url: Optional[str]):
216
1176
  if profile_url is None:
217
1177
  del self.profile_url
218
1178
  return
@@ -246,12 +1206,26 @@ class Owner(KaggleObject):
246
1206
  raise TypeError('user_tier must be of type UserAchievementTier')
247
1207
  self._user_tier = user_tier
248
1208
 
1209
+ @property
1210
+ def user_progression_opt_out(self) -> bool:
1211
+ """Whether or not the owner is progression opted-out (only for user owners)."""
1212
+ return self._user_progression_opt_out or False
1213
+
1214
+ @user_progression_opt_out.setter
1215
+ def user_progression_opt_out(self, user_progression_opt_out: Optional[bool]):
1216
+ if user_progression_opt_out is None:
1217
+ del self.user_progression_opt_out
1218
+ return
1219
+ if not isinstance(user_progression_opt_out, bool):
1220
+ raise TypeError('user_progression_opt_out must be of type bool')
1221
+ self._user_progression_opt_out = user_progression_opt_out
1222
+
249
1223
  @property
250
1224
  def allow_model_gating(self) -> bool:
251
1225
  return self._allow_model_gating or False
252
1226
 
253
1227
  @allow_model_gating.setter
254
- def allow_model_gating(self, allow_model_gating: bool):
1228
+ def allow_model_gating(self, allow_model_gating: Optional[bool]):
255
1229
  if allow_model_gating is None:
256
1230
  del self.allow_model_gating
257
1231
  return
@@ -268,6 +1242,83 @@ BaseModelInstanceInformation._fields = [
268
1242
  FieldMetadata("framework", "framework", "_framework", ModelFramework, ModelFramework.MODEL_FRAMEWORK_UNSPECIFIED, EnumSerializer()),
269
1243
  ]
270
1244
 
1245
+ LicensePost._fields = [
1246
+ FieldMetadata("id", "id", "_id", int, 0, PredefinedSerializer()),
1247
+ FieldMetadata("content", "content", "_content", str, "", PredefinedSerializer()),
1248
+ ]
1249
+
1250
+ ModelActivityTimeSeriesPoint._fields = [
1251
+ FieldMetadata("date", "date", "_date", datetime, None, DateTimeSerializer()),
1252
+ FieldMetadata("count", "count", "_count", int, 0, PredefinedSerializer()),
1253
+ ]
1254
+
1255
+ ModelInstance._fields = [
1256
+ FieldMetadata("id", "id", "_id", int, 0, PredefinedSerializer()),
1257
+ FieldMetadata("ownerSlug", "owner_slug", "_owner_slug", str, "", PredefinedSerializer()),
1258
+ FieldMetadata("modelSlug", "model_slug", "_model_slug", str, "", PredefinedSerializer()),
1259
+ FieldMetadata("slug", "slug", "_slug", str, "", PredefinedSerializer()),
1260
+ FieldMetadata("versionId", "version_id", "_version_id", int, 0, PredefinedSerializer()),
1261
+ FieldMetadata("fineTunable", "fine_tunable", "_fine_tunable", bool, None, PredefinedSerializer(), optional=True),
1262
+ FieldMetadata("overview", "overview", "_overview", str, "", PredefinedSerializer()),
1263
+ FieldMetadata("usage", "usage", "_usage", str, "", PredefinedSerializer()),
1264
+ FieldMetadata("textRepresentation", "text_representation", "_text_representation", str, None, PredefinedSerializer(), optional=True),
1265
+ FieldMetadata("sourceUrl", "source_url", "_source_url", str, None, PredefinedSerializer(), optional=True),
1266
+ FieldMetadata("versionNumber", "version_number", "_version_number", int, 0, PredefinedSerializer()),
1267
+ FieldMetadata("framework", "framework", "_framework", ModelFramework, ModelFramework.MODEL_FRAMEWORK_UNSPECIFIED, EnumSerializer()),
1268
+ FieldMetadata("versionNotes", "version_notes", "_version_notes", str, "", PredefinedSerializer()),
1269
+ FieldMetadata("downloadUrl", "download_url", "_download_url", str, None, PredefinedSerializer(), optional=True),
1270
+ FieldMetadata("databundleVersionId", "databundle_version_id", "_databundle_version_id", int, 0, PredefinedSerializer()),
1271
+ FieldMetadata("lastVersionId", "last_version_id", "_last_version_id", int, None, PredefinedSerializer(), optional=True),
1272
+ FieldMetadata("sourceOrganization", "source_organization", "_source_organization", Owner, None, KaggleObjectSerializer(), optional=True),
1273
+ FieldMetadata("trainingData", "training_data", "_training_data", str, [], ListSerializer(PredefinedSerializer())),
1274
+ FieldMetadata("metrics", "metrics", "_metrics", str, None, PredefinedSerializer(), optional=True),
1275
+ FieldMetadata("licensePost", "license_post", "_license_post", LicensePost, None, KaggleObjectSerializer(), optional=True),
1276
+ FieldMetadata("renderedUsage", "rendered_usage", "_rendered_usage", str, "", PredefinedSerializer()),
1277
+ FieldMetadata("license", "license", "_license", License, None, KaggleObjectSerializer(), optional=True),
1278
+ FieldMetadata("databundleId", "databundle_id", "_databundle_id", int, 0, PredefinedSerializer()),
1279
+ FieldMetadata("firestorePath", "firestore_path", "_firestore_path", str, "", PredefinedSerializer()),
1280
+ FieldMetadata("status", "status", "_status", DatabundleVersionStatus, DatabundleVersionStatus.NOT_YET_PERSISTED, EnumSerializer()),
1281
+ FieldMetadata("errorMessage", "error_message", "_error_message", str, None, PredefinedSerializer(), optional=True),
1282
+ FieldMetadata("databundleVersionType", "databundle_version_type", "_databundle_version_type", DatabundleVersionType, DatabundleVersionType.DATABUNDLE_VERSION_TYPE_UNSPECIFIED, EnumSerializer()),
1283
+ FieldMetadata("canUse", "can_use", "_can_use", bool, None, PredefinedSerializer(), optional=True),
1284
+ FieldMetadata("creationStatus", "creation_status", "_creation_status", DatabundleVersionCreationStatus, None, KaggleObjectSerializer(), optional=True),
1285
+ FieldMetadata("uncompressedStorageUri", "uncompressed_storage_uri", "_uncompressed_storage_uri", str, None, PredefinedSerializer(), optional=True),
1286
+ FieldMetadata("modelInstanceType", "model_instance_type", "_model_instance_type", ModelInstanceType, None, EnumSerializer(), optional=True),
1287
+ FieldMetadata("baseModelInstanceId", "base_model_instance_id", "_base_model_instance_id", int, None, PredefinedSerializer(), optional=True),
1288
+ FieldMetadata("baseModelInstanceInformation", "base_model_instance_information", "_base_model_instance_information", BaseModelInstanceInformation, None, KaggleObjectSerializer(), optional=True),
1289
+ FieldMetadata("externalBaseModelUrl", "external_base_model_url", "_external_base_model_url", str, None, PredefinedSerializer(), optional=True),
1290
+ FieldMetadata("modelId", "model_id", "_model_id", int, 0, PredefinedSerializer()),
1291
+ FieldMetadata("downloadSummary", "download_summary", "_download_summary", ModelInstanceDownloadSummary, None, KaggleObjectSerializer(), optional=True),
1292
+ FieldMetadata("totalUncompressedBytes", "total_uncompressed_bytes", "_total_uncompressed_bytes", int, None, PredefinedSerializer(), optional=True),
1293
+ FieldMetadata("sigstoreState", "sigstore_state", "_sigstore_state", SigstoreState, None, EnumSerializer(), optional=True),
1294
+ FieldMetadata("createdByKernelId", "created_by_kernel_id", "_created_by_kernel_id", int, None, PredefinedSerializer(), optional=True),
1295
+ FieldMetadata("creatorUserId", "creator_user_id", "_creator_user_id", int, None, PredefinedSerializer(), optional=True),
1296
+ FieldMetadata("attestationKernelUrl", "attestation_kernel_url", "_attestation_kernel_url", str, None, PredefinedSerializer(), optional=True),
1297
+ ]
1298
+
1299
+ ModelInstanceDownloadSummary._fields = [
1300
+ FieldMetadata("totalDownloads", "total_downloads", "_total_downloads", float, 0.0, PredefinedSerializer()),
1301
+ FieldMetadata("downloadSeriesPoints", "download_series_points", "_download_series_points", ModelActivityTimeSeriesPoint, [], ListSerializer(KaggleObjectSerializer())),
1302
+ FieldMetadata("modelInstanceId", "model_instance_id", "_model_instance_id", int, 0, PredefinedSerializer()),
1303
+ ]
1304
+
1305
+ ModelInstanceVersion._fields = [
1306
+ FieldMetadata("id", "id", "_id", int, 0, PredefinedSerializer()),
1307
+ FieldMetadata("framework", "framework", "_framework", ModelFramework, ModelFramework.MODEL_FRAMEWORK_UNSPECIFIED, EnumSerializer()),
1308
+ FieldMetadata("isTfhubModel", "is_tfhub_model", "_is_tfhub_model", bool, False, PredefinedSerializer()),
1309
+ FieldMetadata("url", "url", "_url", str, "", PredefinedSerializer()),
1310
+ FieldMetadata("variationSlug", "variation_slug", "_variation_slug", str, "", PredefinedSerializer()),
1311
+ FieldMetadata("versionNumber", "version_number", "_version_number", int, 0, PredefinedSerializer()),
1312
+ FieldMetadata("modelTitle", "model_title", "_model_title", str, "", PredefinedSerializer()),
1313
+ FieldMetadata("thumbnailUrl", "thumbnail_url", "_thumbnail_url", str, "", PredefinedSerializer()),
1314
+ FieldMetadata("isPrivate", "is_private", "_is_private", bool, False, PredefinedSerializer()),
1315
+ FieldMetadata("sigstoreState", "sigstore_state", "_sigstore_state", SigstoreState, SigstoreState.SIGSTORE_STATE_UNSPECIFIED, EnumSerializer()),
1316
+ ]
1317
+
1318
+ ModelInstanceVersionList._fields = [
1319
+ FieldMetadata("versions", "versions", "_versions", ModelInstanceVersion, [], ListSerializer(KaggleObjectSerializer())),
1320
+ ]
1321
+
271
1322
  ModelLink._fields = [
272
1323
  FieldMetadata("type", "type", "_type", ModelVersionLinkType, ModelVersionLinkType.MODEL_VERSION_LINK_TYPE_UNSPECIFIED, EnumSerializer()),
273
1324
  FieldMetadata("url", "url", "_url", str, "", PredefinedSerializer()),
@@ -282,5 +1333,6 @@ Owner._fields = [
282
1333
  FieldMetadata("slug", "slug", "_slug", str, "", PredefinedSerializer()),
283
1334
  FieldMetadata("userTier", "user_tier", "_user_tier", UserAchievementTier, UserAchievementTier.NOVICE, EnumSerializer()),
284
1335
  FieldMetadata("allowModelGating", "allow_model_gating", "_allow_model_gating", bool, None, PredefinedSerializer(), optional=True),
1336
+ FieldMetadata("userProgressionOptOut", "user_progression_opt_out", "_user_progression_opt_out", bool, None, PredefinedSerializer(), optional=True),
285
1337
  ]
286
1338