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
@@ -0,0 +1,8 @@
1
+ import enum
2
+
3
+ class CanonicalRole(enum.Enum):
4
+ CANONICAL_ROLE_UNSPECIFIED = 0
5
+ CANONICAL_ROLE_VIEWER = 1
6
+ CANONICAL_ROLE_EDITOR = 2
7
+ CANONICAL_ROLE_ADMIN = 3
8
+
@@ -0,0 +1,159 @@
1
+ import enum
2
+ from kagglesdk.kaggle_object import *
3
+ from typing import Optional
4
+
5
+ class KaggleResourceType(enum.Enum):
6
+ r"""
7
+ Types of Kaggle resources on which permissions can be defined. Each entry in
8
+ this proto must correspond to a permission block in the Permission enum in
9
+ 'permissions.proto'. For example COMPETITIONS_GET permission
10
+ applies to resource of type COMPETITIONS and thus has value of 300 because
11
+ COMPETITIONS_X permissions block start at 3000. The formula
12
+ ValueOfFirstCanonicalPermission / 10. (COMPETITIONS_GET = 3001) / 10 =>
13
+ (COMPETITIONS = 300).
14
+ Please see the documentation of the Permission enum to understand permission
15
+ blocks better.
16
+ """
17
+ KAGGLE_RESOURCE_TYPE_UNSPECIFIED = 0
18
+ KAGGLE_RESOURCE_TYPE_WILDCARD_ALL = -1
19
+ KAGGLE_RESOURCE_TYPE_USERS = 100
20
+ """---------- Shared ----------"""
21
+ KAGGLE_RESOURCE_TYPE_USER_ATTRIBUTES = 102
22
+ KAGGLE_RESOURCE_TYPE_ATTRIBUTES = 104
23
+ KAGGLE_RESOURCE_TYPE_ACCESS_TOKENS = 106
24
+ KAGGLE_RESOURCE_TYPE_API_TOKENS = 108
25
+ KAGGLE_RESOURCE_TYPE_SYNCHRONIZED_GROUPS = 110
26
+ KAGGLE_RESOURCE_TYPE_BLOBS = 112
27
+ KAGGLE_RESOURCE_TYPE_LICENSES = 114
28
+ KAGGLE_RESOURCE_TYPE_LICENSE_USER_AGREEMENTS = 116
29
+ KAGGLE_RESOURCE_TYPE_SEARCH_PROXY = 118
30
+ KAGGLE_RESOURCE_TYPE_SECRETS = 120
31
+ KAGGLE_RESOURCE_TYPE_SECRET_ATTACHMENTS = 122
32
+ KAGGLE_RESOURCE_TYPE_TAGS = 124
33
+ KAGGLE_RESOURCE_TYPE_RESOURCES = 130
34
+ KAGGLE_RESOURCE_TYPE_USER_MANAGED_GROUPS = 132
35
+ KAGGLE_RESOURCE_TYPE_USER_MANAGED_GROUP_INVITES = 134
36
+ KAGGLE_RESOURCE_TYPE_USER_MANAGED_GROUP_MEMBERSHIPS = 136
37
+ KAGGLE_RESOURCE_TYPE_OAUTH_CLIENTS = 138
38
+ KAGGLE_RESOURCE_TYPE_RESOURCE_ACCESS_GROUPS = 140
39
+ KAGGLE_RESOURCE_TYPE_OPERATIONS = 142
40
+ KAGGLE_RESOURCE_TYPE_FORUMS = 200
41
+ """---------- Community ----------"""
42
+ KAGGLE_RESOURCE_TYPE_FORUM_TOPICS = 202
43
+ KAGGLE_RESOURCE_TYPE_FORUM_MESSAGES = 204
44
+ KAGGLE_RESOURCE_TYPE_FORUM_MESSAGE_ATTACHMENTS = 208
45
+ KAGGLE_RESOURCE_TYPE_BADGES = 210
46
+ KAGGLE_RESOURCE_TYPE_USER_BADGES = 212
47
+ KAGGLE_RESOURCE_TYPE_BOOKMARKS = 214
48
+ KAGGLE_RESOURCE_TYPE_COLLECTIONS = 216
49
+ KAGGLE_RESOURCE_TYPE_NUDGES = 218
50
+ KAGGLE_RESOURCE_TYPE_ORGANIZATIONS = 220
51
+ KAGGLE_RESOURCE_TYPE_ORGANIZATION_MEMBERS = 224
52
+ KAGGLE_RESOURCE_TYPE_SUGGESTED_ITEMS = 226
53
+ KAGGLE_RESOURCE_TYPE_WRITE_UPS = 228
54
+ KAGGLE_RESOURCE_TYPE_VOTES = 230
55
+ KAGGLE_RESOURCE_TYPE_OPEN_GRAPH_IMAGE_METADATUM = 232
56
+ KAGGLE_RESOURCE_TYPE_COMPETITIONS = 300
57
+ """---------- Competitions ----------"""
58
+ KAGGLE_RESOURCE_TYPE_COMPETITION_LEADERBOARDS = 304
59
+ KAGGLE_RESOURCE_TYPE_EPISODES = 306
60
+ KAGGLE_RESOURCE_TYPE_EPISODE_AGENTS = 308
61
+ KAGGLE_RESOURCE_TYPE_EVALUATION_ALGORITHMS = 310
62
+ KAGGLE_RESOURCE_TYPE_HOST_SEGMENTS = 312
63
+ KAGGLE_RESOURCE_TYPE_PAGES = 314
64
+ KAGGLE_RESOURCE_TYPE_SUBMISSIONS = 316
65
+ KAGGLE_RESOURCE_TYPE_SUBMISSION_RESCORES = 318
66
+ KAGGLE_RESOURCE_TYPE_TEAMS = 320
67
+ KAGGLE_RESOURCE_TYPE_TEAM_MERGE_REQUESTS = 322
68
+ KAGGLE_RESOURCE_TYPE_HACKATHON_WRITE_UPS = 324
69
+ KAGGLE_RESOURCE_TYPE_COMPETITION_METRIC_VERSIONS = 326
70
+ KAGGLE_RESOURCE_TYPE_DATASETS = 400
71
+ """---------- Datasets ----------"""
72
+ KAGGLE_RESOURCE_TYPE_DATASET_VERSIONS = 404
73
+ KAGGLE_RESOURCE_TYPE_DATASET_SUGGESTION_BUNDLES = 406
74
+ KAGGLE_RESOURCE_TYPE_DATABUNDLES = 408
75
+ KAGGLE_RESOURCE_TYPE_DATABUNDLE_VERSIONS = 410
76
+ KAGGLE_RESOURCE_TYPE_DATA_VIEWS = 412
77
+ KAGGLE_RESOURCE_TYPE_KERNELS = 500
78
+ """---------- Kernels ----------"""
79
+ KAGGLE_RESOURCE_TYPE_KERNEL_SESSIONS = 504
80
+ KAGGLE_RESOURCE_TYPE_KERNEL_SNIPPETS = 508
81
+ KAGGLE_RESOURCE_TYPE_KERNEL_SOURCE_REFERENCES = 510
82
+ KAGGLE_RESOURCE_TYPE_KERNEL_VERSIONS = 512
83
+ KAGGLE_RESOURCE_TYPE_RESOURCE_REFERENCES = 520
84
+ KAGGLE_RESOURCE_TYPE_MODELS = 600
85
+ """---------- Models ----------"""
86
+ KAGGLE_RESOURCE_TYPE_MODEL_INSTANCES = 608
87
+ KAGGLE_RESOURCE_TYPE_MODEL_INSTANCE_VERSIONS = 610
88
+ KAGGLE_RESOURCE_TYPE_MODEL_VERSIONS = 612
89
+ KAGGLE_RESOURCE_TYPE_GATING_AGREEMENTS = 614
90
+ KAGGLE_RESOURCE_TYPE_GATING_AGREEMENTS_USER_CONSENTS = 616
91
+ KAGGLE_RESOURCE_TYPE_BENCHMARKS = 700
92
+ """---------- Benchmarks ----------"""
93
+ KAGGLE_RESOURCE_TYPE_BENCHMARK_VERSIONS = 704
94
+ KAGGLE_RESOURCE_TYPE_BENCHMARK_MODELS = 706
95
+ KAGGLE_RESOURCE_TYPE_BENCHMARK_MODEL_VERSIONS = 708
96
+ KAGGLE_RESOURCE_TYPE_BENCHMARK_TASKS = 710
97
+ KAGGLE_RESOURCE_TYPE_BENCHMARK_TASK_VERSIONS = 712
98
+ KAGGLE_RESOURCE_TYPE_BENCHMARK_TASK_RUNS = 714
99
+
100
+ class KaggleResourceId(KaggleObject):
101
+ r"""
102
+ Attributes:
103
+ type (KaggleResourceType)
104
+ id (int)
105
+ hash_link (str)
106
+ """
107
+
108
+ def __init__(self):
109
+ self._type = KaggleResourceType.KAGGLE_RESOURCE_TYPE_UNSPECIFIED
110
+ self._id = 0
111
+ self._hash_link = None
112
+ self._freeze()
113
+
114
+ @property
115
+ def type(self) -> 'KaggleResourceType':
116
+ return self._type
117
+
118
+ @type.setter
119
+ def type(self, type: 'KaggleResourceType'):
120
+ if type is None:
121
+ del self.type
122
+ return
123
+ if not isinstance(type, KaggleResourceType):
124
+ raise TypeError('type must be of type KaggleResourceType')
125
+ self._type = type
126
+
127
+ @property
128
+ def id(self) -> int:
129
+ return self._id
130
+
131
+ @id.setter
132
+ def id(self, id: int):
133
+ if id is None:
134
+ del self.id
135
+ return
136
+ if not isinstance(id, int):
137
+ raise TypeError('id must be of type int')
138
+ self._id = id
139
+
140
+ @property
141
+ def hash_link(self) -> str:
142
+ return self._hash_link or ""
143
+
144
+ @hash_link.setter
145
+ def hash_link(self, hash_link: Optional[str]):
146
+ if hash_link is None:
147
+ del self.hash_link
148
+ return
149
+ if not isinstance(hash_link, str):
150
+ raise TypeError('hash_link must be of type str')
151
+ self._hash_link = hash_link
152
+
153
+
154
+ KaggleResourceId._fields = [
155
+ FieldMetadata("type", "type", "_type", KaggleResourceType, KaggleResourceType.KAGGLE_RESOURCE_TYPE_UNSPECIFIED, EnumSerializer()),
156
+ FieldMetadata("id", "id", "_id", int, 0, PredefinedSerializer()),
157
+ FieldMetadata("hashLink", "hash_link", "_hash_link", str, None, PredefinedSerializer(), optional=True),
158
+ ]
159
+
File without changes
@@ -9,35 +9,33 @@ import unittest
9
9
 
10
10
  class TestClient(unittest.TestCase):
11
11
 
12
- def setUp(self):
13
- print('setup class:%s' % self)
12
+ def setUp(self):
13
+ print("setup class:%s" % self)
14
14
 
15
- def tearDown(self):
16
- print('teardown class:TestStuff')
15
+ def tearDown(self):
16
+ print("teardown class:TestStuff")
17
17
 
18
- # Environment
18
+ # Environment
19
19
 
20
- def test_kaggle_environment(self):
21
- os.environ['KAGGLE_API_ENVIRONMENT'] = 'PROD'
20
+ def test_kaggle_environment(self):
21
+ os.environ["KAGGLE_API_ENVIRONMENT"] = "PROD"
22
22
 
23
- env = kaggle_env.get_env()
24
- self.assertEqual(env, KaggleEnv.PROD)
23
+ env = kaggle_env.get_env()
24
+ self.assertEqual(env, KaggleEnv.PROD)
25
25
 
26
- endpoint = kaggle_env.get_endpoint(env)
27
- self.assertEqual(endpoint, 'https://www.kaggle.com')
26
+ endpoint = kaggle_env.get_endpoint(env)
27
+ self.assertEqual(endpoint, "https://www.kaggle.com")
28
28
 
29
- # Client
29
+ # Client
30
30
 
31
- def test_kaggle_client(self):
32
- client = KaggleClient(
33
- env=KaggleEnv.PROD, verbose=False, username='dinosaur', password='xxxxxxxxxxxx'
34
- )
31
+ def test_kaggle_client(self):
32
+ client = KaggleClient(env=KaggleEnv.PROD, verbose=False, username="dinosaur", password="xxxxxxxxxxxx")
35
33
 
36
- self.assertEqual(client.username, 'dinosaur')
37
- self.assertEqual(client.password, 'xxxxxxxxxxxx')
38
- self.assertEqual(client.http_client()._endpoint, 'https://www.kaggle.com')
39
- self.assertEqual(client.http_client()._verbose, False)
34
+ self.assertEqual(client.username, "dinosaur")
35
+ self.assertEqual(client.password, "xxxxxxxxxxxx")
36
+ self.assertEqual(client.http_client()._endpoint, "https://www.kaggle.com")
37
+ self.assertEqual(client.http_client()._verbose, False)
40
38
 
41
39
 
42
- if __name__ == '__main__':
43
- unittest.main()
40
+ if __name__ == "__main__":
41
+ unittest.main()
@@ -1,11 +1,23 @@
1
1
  from kagglesdk.kaggle_http_client import KaggleHttpClient
2
- from kagglesdk.users.types.account_service import GenerateAccessTokenRequest, GenerateAccessTokenResponse
2
+ from kagglesdk.users.types.account_service import ExpireApiTokenRequest, GenerateAccessTokenRequest, GenerateAccessTokenResponse
3
3
 
4
4
  class AccountClient(object):
5
5
 
6
6
  def __init__(self, client: KaggleHttpClient):
7
7
  self._client = client
8
8
 
9
+ def expire_api_token(self, request: ExpireApiTokenRequest = None):
10
+ r"""
11
+ Args:
12
+ request (ExpireApiTokenRequest):
13
+ The request object; initialized to empty instance if not specified.
14
+ """
15
+
16
+ if request is None:
17
+ request = ExpireApiTokenRequest()
18
+
19
+ self._client.call("users.AccountService", "ExpireApiToken", request, None)
20
+
9
21
  def generate_access_token(self, request: GenerateAccessTokenRequest = None) -> GenerateAccessTokenResponse:
10
22
  r"""
11
23
  Args:
@@ -0,0 +1,31 @@
1
+ from kagglesdk.kaggle_http_client import KaggleHttpClient
2
+ from kagglesdk.users.types.group_api_service import ApiListSynchronizedGroupMembershipsRequest, ApiListSynchronizedGroupMembershipsResponse, ApiListUserManagedGroupMembershipsRequest, ApiListUserManagedGroupMembershipsResponse
3
+
4
+ class GroupApiClient(object):
5
+
6
+ def __init__(self, client: KaggleHttpClient):
7
+ self._client = client
8
+
9
+ def list_user_managed_group_memberships(self, request: ApiListUserManagedGroupMembershipsRequest = None) -> ApiListUserManagedGroupMembershipsResponse:
10
+ r"""
11
+ Args:
12
+ request (ApiListUserManagedGroupMembershipsRequest):
13
+ The request object; initialized to empty instance if not specified.
14
+ """
15
+
16
+ if request is None:
17
+ request = ApiListUserManagedGroupMembershipsRequest()
18
+
19
+ return self._client.call("users.GroupApiService", "ListUserManagedGroupMemberships", request, ApiListUserManagedGroupMembershipsResponse)
20
+
21
+ def list_synchronized_group_memberships(self, request: ApiListSynchronizedGroupMembershipsRequest = None) -> ApiListSynchronizedGroupMembershipsResponse:
22
+ r"""
23
+ Args:
24
+ request (ApiListSynchronizedGroupMembershipsRequest):
25
+ The request object; initialized to empty instance if not specified.
26
+ """
27
+
28
+ if request is None:
29
+ request = ApiListSynchronizedGroupMembershipsRequest()
30
+
31
+ return self._client.call("users.GroupApiService", "ListSynchronizedGroupMemberships", request, ApiListSynchronizedGroupMembershipsResponse)
@@ -11,6 +11,111 @@ class ApiVersion(enum.Enum):
11
11
  API_VERSION_V2 = 2
12
12
  """Experimental, admin-only, internal ('/api/i' endpoints)."""
13
13
 
14
+ class AuthorizationContext(KaggleObject):
15
+ r"""
16
+ Attributes:
17
+ kernel_session_id (int)
18
+ If set, access token is restricted to be used only from the specified
19
+ notebook session.
20
+ """
21
+
22
+ def __init__(self):
23
+ self._kernel_session_id = None
24
+ self._freeze()
25
+
26
+ @property
27
+ def kernel_session_id(self) -> int:
28
+ r"""
29
+ If set, access token is restricted to be used only from the specified
30
+ notebook session.
31
+ """
32
+ return self._kernel_session_id or 0
33
+
34
+ @kernel_session_id.setter
35
+ def kernel_session_id(self, kernel_session_id: Optional[int]):
36
+ if kernel_session_id is None:
37
+ del self.kernel_session_id
38
+ return
39
+ if not isinstance(kernel_session_id, int):
40
+ raise TypeError('kernel_session_id must be of type int')
41
+ self._kernel_session_id = kernel_session_id
42
+
43
+
44
+ class ExpireApiTokenRequest(KaggleObject):
45
+ r"""
46
+ Attributes:
47
+ token_id (int)
48
+ Id of the token.
49
+ token (str)
50
+ Value of the token.
51
+ reason (str)
52
+ Reason why this token is expired.
53
+ """
54
+
55
+ def __init__(self):
56
+ self._token_id = None
57
+ self._token = None
58
+ self._reason = None
59
+ self._freeze()
60
+
61
+ @property
62
+ def token_id(self) -> int:
63
+ """Id of the token."""
64
+ return self._token_id or 0
65
+
66
+ @token_id.setter
67
+ def token_id(self, token_id: int):
68
+ if token_id is None:
69
+ del self.token_id
70
+ return
71
+ if not isinstance(token_id, int):
72
+ raise TypeError('token_id must be of type int')
73
+ del self.token
74
+ self._token_id = token_id
75
+
76
+ @property
77
+ def token(self) -> str:
78
+ """Value of the token."""
79
+ return self._token or ""
80
+
81
+ @token.setter
82
+ def token(self, token: str):
83
+ if token is None:
84
+ del self.token
85
+ return
86
+ if not isinstance(token, str):
87
+ raise TypeError('token must be of type str')
88
+ del self.token_id
89
+ self._token = token
90
+
91
+ @property
92
+ def reason(self) -> str:
93
+ """Reason why this token is expired."""
94
+ return self._reason or ""
95
+
96
+ @reason.setter
97
+ def reason(self, reason: Optional[str]):
98
+ if reason is None:
99
+ del self.reason
100
+ return
101
+ if not isinstance(reason, str):
102
+ raise TypeError('reason must be of type str')
103
+ self._reason = reason
104
+
105
+ def endpoint(self):
106
+ path = '/api/v1/tokens/revoke'
107
+ return path.format_map(self.to_field_map(self))
108
+
109
+
110
+ @staticmethod
111
+ def method():
112
+ return 'POST'
113
+
114
+ @staticmethod
115
+ def body_fields():
116
+ return '*'
117
+
118
+
14
119
  class GenerateAccessTokenRequest(KaggleObject):
15
120
  r"""
16
121
  Attributes:
@@ -48,7 +153,7 @@ class GenerateAccessTokenRequest(KaggleObject):
48
153
  return self._refresh_token or ""
49
154
 
50
155
  @refresh_token.setter
51
- def refresh_token(self, refresh_token: str):
156
+ def refresh_token(self, refresh_token: Optional[str]):
52
157
  if refresh_token is None:
53
158
  del self.refresh_token
54
159
  return
@@ -136,10 +241,16 @@ class GenerateAccessTokenResponse(KaggleObject):
136
241
  r"""
137
242
  Attributes:
138
243
  token (str)
244
+ expires_in (int)
245
+ user_name (str)
246
+ user_id (int)
139
247
  """
140
248
 
141
249
  def __init__(self):
142
250
  self._token = ""
251
+ self._expires_in = 0
252
+ self._user_name = ""
253
+ self._user_id = 0
143
254
  self._freeze()
144
255
 
145
256
  @property
@@ -155,36 +266,67 @@ class GenerateAccessTokenResponse(KaggleObject):
155
266
  raise TypeError('token must be of type str')
156
267
  self._token = token
157
268
 
269
+ @property
270
+ def expires_in(self) -> int:
271
+ return self._expires_in
158
272
 
159
- class AuthorizationContext(KaggleObject):
160
- r"""
161
- Attributes:
162
- kernel_session_id (int)
163
- If set, access token is restricted to be used only from the specified
164
- notebook session.
165
- """
273
+ @expires_in.setter
274
+ def expires_in(self, expires_in: int):
275
+ if expires_in is None:
276
+ del self.expires_in
277
+ return
278
+ if not isinstance(expires_in, int):
279
+ raise TypeError('expires_in must be of type int')
280
+ self._expires_in = expires_in
166
281
 
167
- def __init__(self):
168
- self._kernel_session_id = None
169
- self._freeze()
282
+ @property
283
+ def user_name(self) -> str:
284
+ return self._user_name
285
+
286
+ @user_name.setter
287
+ def user_name(self, user_name: str):
288
+ if user_name is None:
289
+ del self.user_name
290
+ return
291
+ if not isinstance(user_name, str):
292
+ raise TypeError('user_name must be of type str')
293
+ self._user_name = user_name
170
294
 
171
295
  @property
172
- def kernel_session_id(self) -> int:
173
- r"""
174
- If set, access token is restricted to be used only from the specified
175
- notebook session.
176
- """
177
- return self._kernel_session_id or 0
296
+ def user_id(self) -> int:
297
+ return self._user_id
178
298
 
179
- @kernel_session_id.setter
180
- def kernel_session_id(self, kernel_session_id: int):
181
- if kernel_session_id is None:
182
- del self.kernel_session_id
299
+ @user_id.setter
300
+ def user_id(self, user_id: int):
301
+ if user_id is None:
302
+ del self.user_id
183
303
  return
184
- if not isinstance(kernel_session_id, int):
185
- raise TypeError('kernel_session_id must be of type int')
186
- self._kernel_session_id = kernel_session_id
304
+ if not isinstance(user_id, int):
305
+ raise TypeError('user_id must be of type int')
306
+ self._user_id = user_id
187
307
 
308
+ @property
309
+ def expiresIn(self):
310
+ return self.expires_in
311
+
312
+ @property
313
+ def userName(self):
314
+ return self.user_name
315
+
316
+ @property
317
+ def userId(self):
318
+ return self.user_id
319
+
320
+
321
+ AuthorizationContext._fields = [
322
+ FieldMetadata("kernelSessionId", "kernel_session_id", "_kernel_session_id", int, None, PredefinedSerializer(), optional=True),
323
+ ]
324
+
325
+ ExpireApiTokenRequest._fields = [
326
+ FieldMetadata("tokenId", "token_id", "_token_id", int, None, PredefinedSerializer(), optional=True),
327
+ FieldMetadata("token", "token", "_token", str, None, PredefinedSerializer(), optional=True),
328
+ FieldMetadata("reason", "reason", "_reason", str, None, PredefinedSerializer(), optional=True),
329
+ ]
188
330
 
189
331
  GenerateAccessTokenRequest._fields = [
190
332
  FieldMetadata("refreshToken", "refresh_token", "_refresh_token", str, None, PredefinedSerializer(), optional=True),
@@ -196,9 +338,8 @@ GenerateAccessTokenRequest._fields = [
196
338
 
197
339
  GenerateAccessTokenResponse._fields = [
198
340
  FieldMetadata("token", "token", "_token", str, "", PredefinedSerializer()),
199
- ]
200
-
201
- AuthorizationContext._fields = [
202
- FieldMetadata("kernelSessionId", "kernel_session_id", "_kernel_session_id", int, None, PredefinedSerializer(), optional=True),
341
+ FieldMetadata("expiresIn", "expires_in", "_expires_in", int, 0, PredefinedSerializer()),
342
+ FieldMetadata("userName", "user_name", "_user_name", str, "", PredefinedSerializer()),
343
+ FieldMetadata("userId", "user_id", "_user_id", int, 0, PredefinedSerializer()),
203
344
  ]
204
345