looker-sdk 25.10.0__py3-none-any.whl → 25.16.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.
@@ -37,6 +37,7 @@ from typing import (
37
37
  )
38
38
 
39
39
  import cattr
40
+ from cattrs.cols import is_sequence, list_structure_factory
40
41
 
41
42
  from looker_sdk.rtl import model, hooks
42
43
 
@@ -67,6 +68,7 @@ def deserialize(
67
68
  except json.JSONDecodeError as ex:
68
69
  raise DeserializeError(f"Bad json {ex}")
69
70
  try:
71
+ converter.register_structure_hook_factory(is_sequence, list_structure_factory)
70
72
  response: TDeserializeReturn = converter.structure( # type: ignore
71
73
  data, structure
72
74
  )
@@ -21,7 +21,7 @@
21
21
  # SOFTWARE.
22
22
  #
23
23
 
24
- # 471 API methods
24
+ # 472 API methods
25
25
 
26
26
 
27
27
  # NOTE: Do not edit this file generated by Looker SDK Codegen for API 4.0
@@ -4102,16 +4102,18 @@ class Looker40SDK(api_methods.APIMethods):
4102
4102
  self,
4103
4103
  # Match content favorite id(s)
4104
4104
  id: Optional[str] = None,
4105
- # Match user id(s).To create a list of multiple ids, use commas as separators
4105
+ # Match user id(s). To create a list of multiple ids, use commas as separators
4106
4106
  user_id: Optional[str] = None,
4107
- # Match content metadata id(s).To create a list of multiple ids, use commas as separators
4107
+ # Match content metadata id(s). To create a list of multiple ids, use commas as separators
4108
4108
  content_metadata_id: Optional[str] = None,
4109
- # Match dashboard id(s).To create a list of multiple ids, use commas as separators
4109
+ # Match dashboard id(s). To create a list of multiple ids, use commas as separators
4110
4110
  dashboard_id: Optional[str] = None,
4111
- # Match look id(s).To create a list of multiple ids, use commas as separators
4111
+ # Match look id(s). To create a list of multiple ids, use commas as separators
4112
4112
  look_id: Optional[str] = None,
4113
- # Match board id(s).To create a list of multiple ids, use commas as separators
4113
+ # Match board id(s). To create a list of multiple ids, use commas as separators
4114
4114
  board_id: Optional[str] = None,
4115
+ # If true, and board_id is provided, returns the content favorites for all items on the board. If false, returns the content favorite for the board itself.
4116
+ include_board_items: Optional[bool] = None,
4115
4117
  # Number of results to return. (used with offset)
4116
4118
  limit: Optional[int] = None,
4117
4119
  # Number of results to skip before returning any. (used with limit)
@@ -4137,6 +4139,7 @@ class Looker40SDK(api_methods.APIMethods):
4137
4139
  "dashboard_id": dashboard_id,
4138
4140
  "look_id": look_id,
4139
4141
  "board_id": board_id,
4142
+ "include_board_items": include_board_items,
4140
4143
  "limit": limit,
4141
4144
  "offset": offset,
4142
4145
  "sorts": sorts,
@@ -7988,7 +7991,7 @@ class Looker40SDK(api_methods.APIMethods):
7988
7991
 
7989
7992
  # ### Fetches a CI Run.
7990
7993
  #
7991
- # GET /projects/{project_id}/ci/runs/{run_id} -> mdls.ProjectCIRun
7994
+ # GET /projects/{project_id}/ci/runs/{run_id} -> mdls.ProjectRun
7992
7995
  def get_ci_run(
7993
7996
  self,
7994
7997
  # Project Id
@@ -7998,15 +8001,15 @@ class Looker40SDK(api_methods.APIMethods):
7998
8001
  # Requested fields
7999
8002
  fields: Optional[str] = None,
8000
8003
  transport_options: Optional[transport.TransportOptions] = None,
8001
- ) -> mdls.ProjectCIRun:
8004
+ ) -> mdls.ProjectRun:
8002
8005
  """Fetch Continuous Integration run"""
8003
8006
  project_id = self.encode_path_param(project_id)
8004
8007
  run_id = self.encode_path_param(run_id)
8005
8008
  response = cast(
8006
- mdls.ProjectCIRun,
8009
+ mdls.ProjectRun,
8007
8010
  self.get(
8008
8011
  path=f"/projects/{project_id}/ci/runs/{run_id}",
8009
- structure=mdls.ProjectCIRun,
8012
+ structure=mdls.ProjectRun,
8010
8013
  query_params={"fields": fields},
8011
8014
  transport_options=transport_options,
8012
8015
  ),
@@ -12022,6 +12025,8 @@ class Looker40SDK(api_methods.APIMethods):
12022
12025
  content_metadata_id: Optional[str] = None,
12023
12026
  # Search for users who are direct members of this group
12024
12027
  group_id: Optional[str] = None,
12028
+ # Search for users who can manage API3 credentials
12029
+ can_manage_api3_creds: Optional[bool] = None,
12025
12030
  transport_options: Optional[transport.TransportOptions] = None,
12026
12031
  ) -> Sequence[mdls.User]:
12027
12032
  """Search Users"""
@@ -12047,6 +12052,7 @@ class Looker40SDK(api_methods.APIMethods):
12047
12052
  "filter_or": filter_or,
12048
12053
  "content_metadata_id": content_metadata_id,
12049
12054
  "group_id": group_id,
12055
+ "can_manage_api3_creds": can_manage_api3_creds,
12050
12056
  },
12051
12057
  transport_options=transport_options,
12052
12058
  ),
@@ -12658,6 +12664,37 @@ class Looker40SDK(api_methods.APIMethods):
12658
12664
  )
12659
12665
  return response
12660
12666
 
12667
+ # ### API login information for the specified user. This is for the newer API keys that can be added for any user.
12668
+ #
12669
+ # Calls to this endpoint may be denied by [Looker (Google Cloud core)](https://cloud.google.com/looker/docs/r/looker-core/overview).
12670
+ #
12671
+ # PATCH /users/{user_id}/credentials_api3/{credentials_api3_id} -> mdls.CredentialsApi3
12672
+ def update_user_credentials_api3(
12673
+ self,
12674
+ # Id of user
12675
+ user_id: str,
12676
+ # Id of API Credential
12677
+ credentials_api3_id: str,
12678
+ body: mdls.WriteCredentialsApi3,
12679
+ # Requested fields.
12680
+ fields: Optional[str] = None,
12681
+ transport_options: Optional[transport.TransportOptions] = None,
12682
+ ) -> mdls.CredentialsApi3:
12683
+ """Update API Credential"""
12684
+ user_id = self.encode_path_param(user_id)
12685
+ credentials_api3_id = self.encode_path_param(credentials_api3_id)
12686
+ response = cast(
12687
+ mdls.CredentialsApi3,
12688
+ self.patch(
12689
+ path=f"/users/{user_id}/credentials_api3/{credentials_api3_id}",
12690
+ structure=mdls.CredentialsApi3,
12691
+ query_params={"fields": fields},
12692
+ body=body,
12693
+ transport_options=transport_options,
12694
+ ),
12695
+ )
12696
+ return response
12697
+
12661
12698
  # ### API login information for the specified user. This is for the newer API keys that can be added for any user.
12662
12699
  #
12663
12700
  # Calls to this endpoint may be denied by [Looker (Google Cloud core)](https://cloud.google.com/looker/docs/r/looker-core/overview).
@@ -21,7 +21,7 @@
21
21
  # SOFTWARE.
22
22
  #
23
23
 
24
- # 373 API models: 287 Spec, 0 Request, 62 Write, 24 Enum
24
+ # 374 API models: 287 Spec, 0 Request, 63 Write, 24 Enum
25
25
 
26
26
 
27
27
  # NOTE: Do not edit this file generated by Looker SDK Codegen for API 4.0
@@ -1120,83 +1120,6 @@ class CIGitState(model.Model):
1120
1120
  self.target = target
1121
1121
 
1122
1122
 
1123
- @attr.s(auto_attribs=True, init=False)
1124
- class CIRun(model.Model):
1125
- """
1126
- Attributes:
1127
- run_id: ID of the CI run
1128
- created_at: Time and date that the CI run was initiated
1129
- started_at: Time and date that the CI run began executing
1130
- finished_at: Time and date that the CI run completed
1131
- status_url: Git provider URL where you can view the commit status. This is the status URL that you specify when you create a CI suite
1132
- status: Status of the CI run (unknown, failed, passed, skipped, errored, cancelled, queued, running)
1133
- git_service: Git service for CI run (e.g. GitHub)
1134
- git_state:
1135
- result:
1136
- schedule:
1137
- target_branch: Git branch that the CI run compares against during validation, used for incremental runs
1138
- title: Name of the CI suite
1139
- trigger: Trigger for CI run (unknown, manual, schedule, change_request)
1140
- change_request:
1141
- suite_id: ID of the CI suite
1142
- username: Username of the user who triggered the CI run, if the CI run was manually triggered
1143
- """
1144
-
1145
- run_id: Optional[str] = None
1146
- created_at: Optional[datetime.datetime] = None
1147
- started_at: Optional[datetime.datetime] = None
1148
- finished_at: Optional[datetime.datetime] = None
1149
- status_url: Optional[str] = None
1150
- status: Optional[str] = None
1151
- git_service: Optional[str] = None
1152
- git_state: Optional["CIGitState"] = None
1153
- result: Optional["CIRunResult"] = None
1154
- schedule: Optional["CIScheduleTrigger"] = None
1155
- target_branch: Optional[str] = None
1156
- title: Optional[str] = None
1157
- trigger: Optional[str] = None
1158
- change_request: Optional["CIChangeRequest"] = None
1159
- suite_id: Optional[str] = None
1160
- username: Optional[str] = None
1161
-
1162
- def __init__(
1163
- self,
1164
- *,
1165
- run_id: Optional[str] = None,
1166
- created_at: Optional[datetime.datetime] = None,
1167
- started_at: Optional[datetime.datetime] = None,
1168
- finished_at: Optional[datetime.datetime] = None,
1169
- status_url: Optional[str] = None,
1170
- status: Optional[str] = None,
1171
- git_service: Optional[str] = None,
1172
- git_state: Optional["CIGitState"] = None,
1173
- result: Optional["CIRunResult"] = None,
1174
- schedule: Optional["CIScheduleTrigger"] = None,
1175
- target_branch: Optional[str] = None,
1176
- title: Optional[str] = None,
1177
- trigger: Optional[str] = None,
1178
- change_request: Optional["CIChangeRequest"] = None,
1179
- suite_id: Optional[str] = None,
1180
- username: Optional[str] = None
1181
- ):
1182
- self.run_id = run_id
1183
- self.created_at = created_at
1184
- self.started_at = started_at
1185
- self.finished_at = finished_at
1186
- self.status_url = status_url
1187
- self.status = status
1188
- self.git_service = git_service
1189
- self.git_state = git_state
1190
- self.result = result
1191
- self.schedule = schedule
1192
- self.target_branch = target_branch
1193
- self.title = title
1194
- self.trigger = trigger
1195
- self.change_request = change_request
1196
- self.suite_id = suite_id
1197
- self.username = username
1198
-
1199
-
1200
1123
  @attr.s(auto_attribs=True, init=False)
1201
1124
  class CIRunResult(model.Model):
1202
1125
  """
@@ -1463,6 +1386,8 @@ class ContentFavorite(model.Model):
1463
1386
  look:
1464
1387
  dashboard:
1465
1388
  board_id: Id of a board
1389
+ lookml_dashboard_id: Id of a lookml dashboard
1390
+ lookml_dashboard:
1466
1391
  """
1467
1392
 
1468
1393
  id: Optional[str] = None
@@ -1473,6 +1398,8 @@ class ContentFavorite(model.Model):
1473
1398
  look: Optional["LookBasic"] = None
1474
1399
  dashboard: Optional["DashboardBase"] = None
1475
1400
  board_id: Optional[str] = None
1401
+ lookml_dashboard_id: Optional[str] = None
1402
+ lookml_dashboard: Optional["DashboardBase"] = None
1476
1403
 
1477
1404
  def __init__(
1478
1405
  self,
@@ -1484,7 +1411,9 @@ class ContentFavorite(model.Model):
1484
1411
  dashboard_id: Optional[str] = None,
1485
1412
  look: Optional["LookBasic"] = None,
1486
1413
  dashboard: Optional["DashboardBase"] = None,
1487
- board_id: Optional[str] = None
1414
+ board_id: Optional[str] = None,
1415
+ lookml_dashboard_id: Optional[str] = None,
1416
+ lookml_dashboard: Optional["DashboardBase"] = None
1488
1417
  ):
1489
1418
  self.id = id
1490
1419
  self.user_id = user_id
@@ -1494,6 +1423,8 @@ class ContentFavorite(model.Model):
1494
1423
  self.look = look
1495
1424
  self.dashboard = dashboard
1496
1425
  self.board_id = board_id
1426
+ self.lookml_dashboard_id = lookml_dashboard_id
1427
+ self.lookml_dashboard = lookml_dashboard
1497
1428
 
1498
1429
 
1499
1430
  @attr.s(auto_attribs=True, init=False)
@@ -1507,6 +1438,8 @@ class ContentMeta(model.Model):
1507
1438
  dashboard_id: Id of associated dashboard when content_type is "dashboard"
1508
1439
  look_id: Id of associated look when content_type is "look"
1509
1440
  folder_id: Id of associated folder when content_type is "space"
1441
+ homepage_id: Id of associated board when content_type is "board"
1442
+ agent_id: Id of associated agent when content_type is "agent"
1510
1443
  content_type: Content Type ("dashboard", "look", or "folder")
1511
1444
  inherits: Whether content inherits its access levels from parent
1512
1445
  inheriting_id: Id of Inherited Content
@@ -1520,6 +1453,8 @@ class ContentMeta(model.Model):
1520
1453
  dashboard_id: Optional[str] = None
1521
1454
  look_id: Optional[str] = None
1522
1455
  folder_id: Optional[str] = None
1456
+ homepage_id: Optional[str] = None
1457
+ agent_id: Optional[str] = None
1523
1458
  content_type: Optional[str] = None
1524
1459
  inherits: Optional[bool] = None
1525
1460
  inheriting_id: Optional[str] = None
@@ -1535,6 +1470,8 @@ class ContentMeta(model.Model):
1535
1470
  dashboard_id: Optional[str] = None,
1536
1471
  look_id: Optional[str] = None,
1537
1472
  folder_id: Optional[str] = None,
1473
+ homepage_id: Optional[str] = None,
1474
+ agent_id: Optional[str] = None,
1538
1475
  content_type: Optional[str] = None,
1539
1476
  inherits: Optional[bool] = None,
1540
1477
  inheriting_id: Optional[str] = None,
@@ -1547,6 +1484,8 @@ class ContentMeta(model.Model):
1547
1484
  self.dashboard_id = dashboard_id
1548
1485
  self.look_id = look_id
1549
1486
  self.folder_id = folder_id
1487
+ self.homepage_id = homepage_id
1488
+ self.agent_id = agent_id
1550
1489
  self.content_type = content_type
1551
1490
  self.inherits = inherits
1552
1491
  self.inheriting_id = inheriting_id
@@ -2509,6 +2448,7 @@ class CreateCredentialsApi3(model.Model):
2509
2448
  created_at: Timestamp for the creation of this credential
2510
2449
  is_disabled: Has this credential been disabled?
2511
2450
  type: Short name for the type of this kind of credential
2451
+ purpose: User defined purpose for this credential.
2512
2452
  client_secret: API key client_secret
2513
2453
  url: Link to get this item
2514
2454
  """
@@ -2519,6 +2459,7 @@ class CreateCredentialsApi3(model.Model):
2519
2459
  created_at: Optional[str] = None
2520
2460
  is_disabled: Optional[bool] = None
2521
2461
  type: Optional[str] = None
2462
+ purpose: Optional[str] = None
2522
2463
  client_secret: Optional[str] = None
2523
2464
  url: Optional[str] = None
2524
2465
 
@@ -2531,6 +2472,7 @@ class CreateCredentialsApi3(model.Model):
2531
2472
  created_at: Optional[str] = None,
2532
2473
  is_disabled: Optional[bool] = None,
2533
2474
  type: Optional[str] = None,
2475
+ purpose: Optional[str] = None,
2534
2476
  client_secret: Optional[str] = None,
2535
2477
  url: Optional[str] = None
2536
2478
  ):
@@ -2540,6 +2482,7 @@ class CreateCredentialsApi3(model.Model):
2540
2482
  self.created_at = created_at
2541
2483
  self.is_disabled = is_disabled
2542
2484
  self.type = type
2485
+ self.purpose = purpose
2543
2486
  self.client_secret = client_secret
2544
2487
  self.url = url
2545
2488
 
@@ -2780,6 +2723,7 @@ class CredentialsApi3(model.Model):
2780
2723
  created_at: Timestamp for the creation of this credential
2781
2724
  is_disabled: Has this credential been disabled?
2782
2725
  type: Short name for the type of this kind of credential
2726
+ purpose: User defined purpose for this credential.
2783
2727
  url: Link to get this item
2784
2728
  """
2785
2729
 
@@ -2789,6 +2733,7 @@ class CredentialsApi3(model.Model):
2789
2733
  created_at: Optional[str] = None
2790
2734
  is_disabled: Optional[bool] = None
2791
2735
  type: Optional[str] = None
2736
+ purpose: Optional[str] = None
2792
2737
  url: Optional[str] = None
2793
2738
 
2794
2739
  def __init__(
@@ -2800,6 +2745,7 @@ class CredentialsApi3(model.Model):
2800
2745
  created_at: Optional[str] = None,
2801
2746
  is_disabled: Optional[bool] = None,
2802
2747
  type: Optional[str] = None,
2748
+ purpose: Optional[str] = None,
2803
2749
  url: Optional[str] = None
2804
2750
  ):
2805
2751
  self.can = can
@@ -2808,6 +2754,7 @@ class CredentialsApi3(model.Model):
2808
2754
  self.created_at = created_at
2809
2755
  self.is_disabled = is_disabled
2810
2756
  self.type = type
2757
+ self.purpose = purpose
2811
2758
  self.url = url
2812
2759
 
2813
2760
 
@@ -4233,6 +4180,7 @@ class DBConnection(model.Model):
4233
4180
  uses_oauth: Whether the connection uses OAuth for authentication.
4234
4181
  uses_key_pair_auth: Whether the connection uses key-pair for authentication.
4235
4182
  uses_instance_oauth: Whether the integration uses the oauth instance account.
4183
+ uses_service_auth: Whether the connection uses service authentication certificate.
4236
4184
  certificate: (Write-Only) Base64 encoded Certificate body for server authentication (when appropriate for dialect).
4237
4185
  file_type: (Write-Only) Certificate keyfile type - .json, .p8 or .p12
4238
4186
  database: Database name
@@ -4297,6 +4245,7 @@ class DBConnection(model.Model):
4297
4245
  uses_oauth: Optional[bool] = None
4298
4246
  uses_key_pair_auth: Optional[bool] = None
4299
4247
  uses_instance_oauth: Optional[bool] = None
4248
+ uses_service_auth: Optional[bool] = None
4300
4249
  certificate: Optional[str] = None
4301
4250
  file_type: Optional[str] = None
4302
4251
  database: Optional[str] = None
@@ -4363,6 +4312,7 @@ class DBConnection(model.Model):
4363
4312
  uses_oauth: Optional[bool] = None,
4364
4313
  uses_key_pair_auth: Optional[bool] = None,
4365
4314
  uses_instance_oauth: Optional[bool] = None,
4315
+ uses_service_auth: Optional[bool] = None,
4366
4316
  certificate: Optional[str] = None,
4367
4317
  file_type: Optional[str] = None,
4368
4318
  database: Optional[str] = None,
@@ -4426,6 +4376,7 @@ class DBConnection(model.Model):
4426
4376
  self.uses_oauth = uses_oauth
4427
4377
  self.uses_key_pair_auth = uses_key_pair_auth
4428
4378
  self.uses_instance_oauth = uses_instance_oauth
4379
+ self.uses_service_auth = uses_service_auth
4429
4380
  self.certificate = certificate
4430
4381
  self.file_type = file_type
4431
4382
  self.database = database
@@ -10097,19 +10048,6 @@ class Project(model.Model):
10097
10048
  self.dependency_status = dependency_status
10098
10049
 
10099
10050
 
10100
- @attr.s(auto_attribs=True, init=False)
10101
- class ProjectCIRun(model.Model):
10102
- """
10103
- Attributes:
10104
- run:
10105
- """
10106
-
10107
- run: Optional["CIRun"] = None
10108
-
10109
- def __init__(self, *, run: Optional["CIRun"] = None):
10110
- self.run = run
10111
-
10112
-
10113
10051
  @attr.s(auto_attribs=True, init=False)
10114
10052
  class ProjectError(model.Model):
10115
10053
  """
@@ -10220,6 +10158,19 @@ class ProjectFile(model.Model):
10220
10158
  self.git_status = git_status
10221
10159
 
10222
10160
 
10161
+ @attr.s(auto_attribs=True, init=False)
10162
+ class ProjectRun(model.Model):
10163
+ """
10164
+ Attributes:
10165
+ run:
10166
+ """
10167
+
10168
+ run: Optional["Run"] = None
10169
+
10170
+ def __init__(self, *, run: Optional["Run"] = None):
10171
+ self.run = run
10172
+
10173
+
10223
10174
  @attr.s(auto_attribs=True, init=False)
10224
10175
  class ProjectValidation(model.Model):
10225
10176
  """
@@ -11008,6 +10959,83 @@ class RoleSearch(model.Model):
11008
10959
  self.users_url = users_url
11009
10960
 
11010
10961
 
10962
+ @attr.s(auto_attribs=True, init=False)
10963
+ class Run(model.Model):
10964
+ """
10965
+ Attributes:
10966
+ run_id: ID of the CI run
10967
+ created_at: Time and date that the CI run was initiated
10968
+ started_at: Time and date that the CI run began executing
10969
+ finished_at: Time and date that the CI run completed
10970
+ status_url: Git provider URL where you can view the commit status. This is the status URL that you specify when you create a CI suite
10971
+ status: Status of the CI run (unknown, failed, passed, skipped, errored, cancelled, queued, running)
10972
+ git_service: Git service for CI run (e.g. GitHub)
10973
+ git_state:
10974
+ result:
10975
+ schedule:
10976
+ target_branch: Git branch that the CI run compares against during validation, used for incremental runs
10977
+ title: Name of the CI suite
10978
+ trigger: Trigger for CI run (unknown, manual, schedule, change_request)
10979
+ change_request:
10980
+ suite_id: ID of the CI suite
10981
+ username: Username of the user who triggered the CI run, if the CI run was manually triggered
10982
+ """
10983
+
10984
+ run_id: Optional[str] = None
10985
+ created_at: Optional[datetime.datetime] = None
10986
+ started_at: Optional[datetime.datetime] = None
10987
+ finished_at: Optional[datetime.datetime] = None
10988
+ status_url: Optional[str] = None
10989
+ status: Optional[str] = None
10990
+ git_service: Optional[str] = None
10991
+ git_state: Optional["CIGitState"] = None
10992
+ result: Optional["CIRunResult"] = None
10993
+ schedule: Optional["CIScheduleTrigger"] = None
10994
+ target_branch: Optional[str] = None
10995
+ title: Optional[str] = None
10996
+ trigger: Optional[str] = None
10997
+ change_request: Optional["CIChangeRequest"] = None
10998
+ suite_id: Optional[str] = None
10999
+ username: Optional[str] = None
11000
+
11001
+ def __init__(
11002
+ self,
11003
+ *,
11004
+ run_id: Optional[str] = None,
11005
+ created_at: Optional[datetime.datetime] = None,
11006
+ started_at: Optional[datetime.datetime] = None,
11007
+ finished_at: Optional[datetime.datetime] = None,
11008
+ status_url: Optional[str] = None,
11009
+ status: Optional[str] = None,
11010
+ git_service: Optional[str] = None,
11011
+ git_state: Optional["CIGitState"] = None,
11012
+ result: Optional["CIRunResult"] = None,
11013
+ schedule: Optional["CIScheduleTrigger"] = None,
11014
+ target_branch: Optional[str] = None,
11015
+ title: Optional[str] = None,
11016
+ trigger: Optional[str] = None,
11017
+ change_request: Optional["CIChangeRequest"] = None,
11018
+ suite_id: Optional[str] = None,
11019
+ username: Optional[str] = None
11020
+ ):
11021
+ self.run_id = run_id
11022
+ self.created_at = created_at
11023
+ self.started_at = started_at
11024
+ self.finished_at = finished_at
11025
+ self.status_url = status_url
11026
+ self.status = status
11027
+ self.git_service = git_service
11028
+ self.git_state = git_state
11029
+ self.result = result
11030
+ self.schedule = schedule
11031
+ self.target_branch = target_branch
11032
+ self.title = title
11033
+ self.trigger = trigger
11034
+ self.change_request = change_request
11035
+ self.suite_id = suite_id
11036
+ self.username = username
11037
+
11038
+
11011
11039
  @attr.s(auto_attribs=True, init=False)
11012
11040
  class RunningQueries(model.Model):
11013
11041
  """
@@ -13122,7 +13150,8 @@ class User(model.Model):
13122
13150
  allow_normal_group_membership: User can be a direct member of a normal Looker group.
13123
13151
  allow_roles_from_normal_groups: User can inherit roles from a normal Looker group.
13124
13152
  embed_group_folder_id: (Embed only) ID of user's group folder based on the external_group_id optionally specified during embed user login
13125
- is_iam_admin: User is an IAM Admin - only available in Looker (Google Cloud core)
13153
+ is_iam_admin: User is an IAM Admin - only available in Looker (Google Cloud core). The is_iam_admin is not returned by default. Please explicitly request this attribute if needed via the fields query param. Note: Including the optional is_iam_admin attribute can increase API latency. For best performance, use this attribute only when filtering for users with the 'Admin via IAM' role. When using this filter, always paginate your results with the offset and limit fields to optimize response time.
13154
+ can_manage_api3_creds: Indicates if the user can manage API3 credentials
13126
13155
  url: Link to get this item
13127
13156
  """
13128
13157
 
@@ -13162,6 +13191,7 @@ class User(model.Model):
13162
13191
  allow_roles_from_normal_groups: Optional[bool] = None
13163
13192
  embed_group_folder_id: Optional[str] = None
13164
13193
  is_iam_admin: Optional[bool] = None
13194
+ can_manage_api3_creds: Optional[bool] = None
13165
13195
  url: Optional[str] = None
13166
13196
 
13167
13197
  def __init__(
@@ -13203,6 +13233,7 @@ class User(model.Model):
13203
13233
  allow_roles_from_normal_groups: Optional[bool] = None,
13204
13234
  embed_group_folder_id: Optional[str] = None,
13205
13235
  is_iam_admin: Optional[bool] = None,
13236
+ can_manage_api3_creds: Optional[bool] = None,
13206
13237
  url: Optional[str] = None
13207
13238
  ):
13208
13239
  self.can = can
@@ -13241,6 +13272,7 @@ class User(model.Model):
13241
13272
  self.allow_roles_from_normal_groups = allow_roles_from_normal_groups
13242
13273
  self.embed_group_folder_id = embed_group_folder_id
13243
13274
  self.is_iam_admin = is_iam_admin
13275
+ self.can_manage_api3_creds = can_manage_api3_creds
13244
13276
  self.url = url
13245
13277
 
13246
13278
 
@@ -14089,7 +14121,7 @@ class WriteColorCollection(model.Model):
14089
14121
  class WriteContentFavorite(model.Model):
14090
14122
  """
14091
14123
  Dynamic writeable type for ContentFavorite removes:
14092
- id, look_id, dashboard_id, board_id
14124
+ id, look_id, dashboard_id, board_id, lookml_dashboard_id
14093
14125
 
14094
14126
  Attributes:
14095
14127
  user_id: User Id which owns this ContentFavorite
@@ -14097,6 +14129,8 @@ class WriteContentFavorite(model.Model):
14097
14129
  look: Dynamic writeable type for LookBasic removes:
14098
14130
  can, content_metadata_id, id, title
14099
14131
  dashboard: Dynamic writeable type for DashboardBase removes:
14132
+ can, content_favorite_id, content_metadata_id, description, hidden, id, model, query_timezone, readonly, refresh_interval, refresh_interval_to_i, title, user_id, slug, preferred_viewer
14133
+ lookml_dashboard: Dynamic writeable type for DashboardBase removes:
14100
14134
  can, content_favorite_id, content_metadata_id, description, hidden, id, model, query_timezone, readonly, refresh_interval, refresh_interval_to_i, title, user_id, slug, preferred_viewer
14101
14135
  """
14102
14136
 
@@ -14104,6 +14138,7 @@ class WriteContentFavorite(model.Model):
14104
14138
  content_metadata_id: Optional[str] = None
14105
14139
  look: Optional["WriteLookBasic"] = None
14106
14140
  dashboard: Optional["WriteDashboardBase"] = None
14141
+ lookml_dashboard: Optional["WriteDashboardBase"] = None
14107
14142
 
14108
14143
  def __init__(
14109
14144
  self,
@@ -14111,19 +14146,21 @@ class WriteContentFavorite(model.Model):
14111
14146
  user_id: Optional[str] = None,
14112
14147
  content_metadata_id: Optional[str] = None,
14113
14148
  look: Optional["WriteLookBasic"] = None,
14114
- dashboard: Optional["WriteDashboardBase"] = None
14149
+ dashboard: Optional["WriteDashboardBase"] = None,
14150
+ lookml_dashboard: Optional["WriteDashboardBase"] = None
14115
14151
  ):
14116
14152
  self.user_id = user_id
14117
14153
  self.content_metadata_id = content_metadata_id
14118
14154
  self.look = look
14119
14155
  self.dashboard = dashboard
14156
+ self.lookml_dashboard = lookml_dashboard
14120
14157
 
14121
14158
 
14122
14159
  @attr.s(auto_attribs=True, init=False)
14123
14160
  class WriteContentMeta(model.Model):
14124
14161
  """
14125
14162
  Dynamic writeable type for ContentMeta removes:
14126
- can, id, name, parent_id, dashboard_id, look_id, folder_id, content_type, inheriting_id, slug
14163
+ can, id, name, parent_id, dashboard_id, look_id, folder_id, homepage_id, agent_id, content_type, inheriting_id, slug
14127
14164
 
14128
14165
  Attributes:
14129
14166
  inherits: Whether content inherits its access levels from parent
@@ -14251,6 +14288,22 @@ class WriteCreateQueryTask(model.Model):
14251
14288
  self.dashboard_id = dashboard_id
14252
14289
 
14253
14290
 
14291
+ @attr.s(auto_attribs=True, init=False)
14292
+ class WriteCredentialsApi3(model.Model):
14293
+ """
14294
+ Dynamic writeable type for CredentialsApi3 removes:
14295
+ can, id, client_id, created_at, is_disabled, type, url
14296
+
14297
+ Attributes:
14298
+ purpose: User defined purpose for this credential.
14299
+ """
14300
+
14301
+ purpose: Optional[str] = None
14302
+
14303
+ def __init__(self, *, purpose: Optional[str] = None):
14304
+ self.purpose = purpose
14305
+
14306
+
14254
14307
  @attr.s(auto_attribs=True, init=False)
14255
14308
  class WriteCredentialsEmail(model.Model):
14256
14309
  """
@@ -14432,7 +14485,7 @@ class WriteDashboardElement(model.Model):
14432
14485
  query_id: Id Of Query
14433
14486
  refresh_interval: Refresh Interval
14434
14487
  result_maker: Dynamic writeable type for ResultMakerWithIdVisConfigAndDynamicFields removes:
14435
- id, dynamic_fields, filterables, sorts, merge_result_id, total, query_id, sql_query_id, vis_config
14488
+ id, query_id
14436
14489
  result_maker_id: ID of the ResultMakerLookup entry.
14437
14490
  subtitle_text: Text tile subtitle text
14438
14491
  title: Title of dashboard element
@@ -14698,7 +14751,7 @@ class WriteDatagroup(model.Model):
14698
14751
  class WriteDBConnection(model.Model):
14699
14752
  """
14700
14753
  Dynamic writeable type for DBConnection removes:
14701
- can, dialect, snippets, pdts_enabled, named_driver_version_actual, uses_oauth, uses_instance_oauth, supports_data_studio_link, created_at, user_id, example, last_regen_at, last_reap_at, managed, default_bq_connection, p4sa_name
14754
+ can, dialect, snippets, pdts_enabled, named_driver_version_actual, uses_oauth, uses_instance_oauth, uses_service_auth, supports_data_studio_link, created_at, user_id, example, last_regen_at, last_reap_at, managed, default_bq_connection, p4sa_name
14702
14755
 
14703
14756
  Attributes:
14704
14757
  name: Name of the connection. Also used as the unique identifier
@@ -16110,17 +16163,49 @@ class WriteRepositoryCredential(model.Model):
16110
16163
  class WriteResultMakerWithIdVisConfigAndDynamicFields(model.Model):
16111
16164
  """
16112
16165
  Dynamic writeable type for ResultMakerWithIdVisConfigAndDynamicFields removes:
16113
- id, dynamic_fields, filterables, sorts, merge_result_id, total, query_id, sql_query_id, vis_config
16166
+ id, query_id
16114
16167
 
16115
16168
  Attributes:
16169
+ dynamic_fields: JSON string of dynamic field information.
16170
+ filterables: array of items that can be filtered and information about them.
16171
+ sorts: Sorts of the constituent Look, Query, or Merge Query
16172
+ merge_result_id: ID of merge result if this is a merge_result.
16173
+ total: Total of the constituent Look, Query, or Merge Query
16174
+ sql_query_id: ID of SQL Query if this is a SQL Runner Query
16116
16175
  query: Dynamic writeable type for Query removes:
16117
16176
  can, id, slug, share_url, expanded_share_url, url, has_table_calculations
16177
+ vis_config: Vis config of the constituent Query, or Merge Query.
16118
16178
  """
16119
16179
 
16180
+ dynamic_fields: Optional[str] = None
16181
+ filterables: Optional[Sequence["ResultMakerFilterables"]] = None
16182
+ sorts: Optional[Sequence[str]] = None
16183
+ merge_result_id: Optional[str] = None
16184
+ total: Optional[bool] = None
16185
+ sql_query_id: Optional[str] = None
16120
16186
  query: Optional["WriteQuery"] = None
16187
+ vis_config: Optional[MutableMapping[str, Any]] = None
16121
16188
 
16122
- def __init__(self, *, query: Optional["WriteQuery"] = None):
16189
+ def __init__(
16190
+ self,
16191
+ *,
16192
+ dynamic_fields: Optional[str] = None,
16193
+ filterables: Optional[Sequence["ResultMakerFilterables"]] = None,
16194
+ sorts: Optional[Sequence[str]] = None,
16195
+ merge_result_id: Optional[str] = None,
16196
+ total: Optional[bool] = None,
16197
+ sql_query_id: Optional[str] = None,
16198
+ query: Optional["WriteQuery"] = None,
16199
+ vis_config: Optional[MutableMapping[str, Any]] = None
16200
+ ):
16201
+ self.dynamic_fields = dynamic_fields
16202
+ self.filterables = filterables
16203
+ self.sorts = sorts
16204
+ self.merge_result_id = merge_result_id
16205
+ self.total = total
16206
+ self.sql_query_id = sql_query_id
16123
16207
  self.query = query
16208
+ self.vis_config = vis_config
16124
16209
 
16125
16210
 
16126
16211
  @attr.s(auto_attribs=True, init=False)
@@ -16678,6 +16763,7 @@ class WriteUser(model.Model):
16678
16763
  locale: User's preferred locale. User locale takes precedence over Looker's system-wide default locale. Locale determines language of display strings and date and numeric formatting in API responses. Locale string must be a 2 letter language code or a combination of language code and region code: 'en' or 'en-US', for example.
16679
16764
  models_dir_validated: User's dev workspace has been checked for presence of applicable production projects
16680
16765
  ui_state: Per user dictionary of undocumented state information owned by the Looker UI.
16766
+ can_manage_api3_creds: Indicates if the user can manage API3 credentials
16681
16767
  """
16682
16768
 
16683
16769
  credentials_email: Optional["WriteCredentialsEmail"] = None
@@ -16688,6 +16774,7 @@ class WriteUser(model.Model):
16688
16774
  locale: Optional[str] = None
16689
16775
  models_dir_validated: Optional[bool] = None
16690
16776
  ui_state: Optional[MutableMapping[str, Any]] = None
16777
+ can_manage_api3_creds: Optional[bool] = None
16691
16778
 
16692
16779
  def __init__(
16693
16780
  self,
@@ -16699,7 +16786,8 @@ class WriteUser(model.Model):
16699
16786
  last_name: Optional[str] = None,
16700
16787
  locale: Optional[str] = None,
16701
16788
  models_dir_validated: Optional[bool] = None,
16702
- ui_state: Optional[MutableMapping[str, Any]] = None
16789
+ ui_state: Optional[MutableMapping[str, Any]] = None,
16790
+ can_manage_api3_creds: Optional[bool] = None
16703
16791
  ):
16704
16792
  self.credentials_email = credentials_email
16705
16793
  self.first_name = first_name
@@ -16709,6 +16797,7 @@ class WriteUser(model.Model):
16709
16797
  self.locale = locale
16710
16798
  self.models_dir_validated = models_dir_validated
16711
16799
  self.ui_state = ui_state
16800
+ self.can_manage_api3_creds = can_manage_api3_creds
16712
16801
 
16713
16802
 
16714
16803
  @attr.s(auto_attribs=True, init=False)
@@ -20,5 +20,5 @@
20
20
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
21
  # THE SOFTWARE.
22
22
 
23
- sdk_version = "25.10"
23
+ sdk_version = "25.16"
24
24
  environment_prefix = "LOOKERSDK"
looker_sdk/version.py CHANGED
@@ -20,4 +20,4 @@
20
20
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
21
  # THE SOFTWARE.
22
22
 
23
- __version__ = "25.10.0"
23
+ __version__ = "25.16.0"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: looker-sdk
3
- Version: 25.10.0
3
+ Version: 25.16.0
4
4
  Summary: Looker REST API
5
5
  Home-page: https://pypi.python.org/pypi/looker_sdk
6
6
  Author: Looker Data Sciences, Inc.
@@ -1,7 +1,7 @@
1
1
  looker_sdk/__init__.py,sha256=0UOw2v-BP1bNoBIIm-BnyKUpGQB3Zx-JZRmpYyLiIuY,2589
2
2
  looker_sdk/error.py,sha256=X1TcifswI_UGOTtM4-Fn_gRVunvbJbzfd_gUJbx6mV4,4957
3
3
  looker_sdk/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
- looker_sdk/version.py,sha256=VWKWa0Qtzlac02pyHfPTzvAnJBX1pUKijoIgTBJChyA,1156
4
+ looker_sdk/version.py,sha256=2MD8L-ARa5XTBgRuGAX1t9JyFAwRszz-wnvPP38JNZ0,1156
5
5
  looker_sdk/rtl/__init__.py,sha256=hgj6CO_Du2XcJ4bRYbhaVS3dvLxjCqPQDR8KwD9IPTQ,1132
6
6
  looker_sdk/rtl/api_methods.py,sha256=J-dm7UMyJajsJDCB0JMpGUmp80I8oPMs7cggdIaCWng,8862
7
7
  looker_sdk/rtl/api_settings.py,sha256=0QbmNhfgjBJNnr1CNEMxCHoiu908jT8amAtSAha1xS8,6953
@@ -11,13 +11,13 @@ looker_sdk/rtl/constants.py,sha256=S0rfeT6CVjbPdY0Phj3NsgJ3Hm0M8ikOScadBr4pz6k,1
11
11
  looker_sdk/rtl/hooks.py,sha256=fAHQtmfEJWXIB3VODP6QaKaX2gWKpSv46Gz_ChNJUjk,3111
12
12
  looker_sdk/rtl/model.py,sha256=PAb1FiNbOsAXDmdn1QjpI-UUyWUTnrrRX2PHe-MNt-M,7227
13
13
  looker_sdk/rtl/requests_transport.py,sha256=2lckuJyjeySAuAn7v-RA_xTjjWe53uCCLSWgOGEq02s,3970
14
- looker_sdk/rtl/serialize.py,sha256=pO2arIln2QmuEjTodsVmVrJixRjBSsUGKEcMTpxshNM,4447
14
+ looker_sdk/rtl/serialize.py,sha256=q8Nu2ZYsKLH5xedwQ6LP8cZGEThBU0BrvuWzgc1P2-4,4594
15
15
  looker_sdk/rtl/transport.py,sha256=zNCaGmmJBtF87iLS6xtSTwiyEXP0BDdMJafPn0_tIrk,3911
16
16
  looker_sdk/sdk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
- looker_sdk/sdk/constants.py,sha256=8Yk1-WNAU4zJIqumb3IkWqE-mck9ptUBeJ3OxLMGG6Y,1187
17
+ looker_sdk/sdk/constants.py,sha256=lpqt7E5MB4cVFQ_koH4ASqW2qedDHnt4YspeiHzHR2A,1187
18
18
  looker_sdk/sdk/api40/__init__.py,sha256=Dvx1t9vDBvgEl-p1eeP7ebEC6Q6wb6rASPi7nx3z7dg,18
19
- looker_sdk/sdk/api40/methods.py,sha256=3vK-tTmA-JA72QF6KZEFPsA2GIvqJlbvVxWgS9hKsKs,526390
20
- looker_sdk/sdk/api40/models.py,sha256=pLYCJ0m8vWJ7Y1bNKGedE3MHgj6EAbgOMHsgfZwGFMo,682161
19
+ looker_sdk/sdk/api40/methods.py,sha256=4GIP4vImo_RYKkFDOHpOJRHo7xDB9dKiepGvGAOl1Ig,528129
20
+ looker_sdk/sdk/api40/models.py,sha256=33OteED0XzC0EH18fWQj15Wx_OCSmGwlUau9kB9xSCM,686654
21
21
  tests/integration/__init__.py,sha256=K4tvUu8CgFRwtDhDNixHKDDb8uubXgevQBq8JmZvf8Y,63
22
22
  tests/integration/test_methods.py,sha256=GXeBAxKYLH45YsPDGduRxaoGKBNoxRX1Cxdo4a_2eW8,24977
23
23
  tests/integration/test_netrc.py,sha256=XJAzCh853Q0P6ZY_Cq6CtRHAqlvjGkBItgvxJMQw4Sw,1595
@@ -29,8 +29,8 @@ tests/rtl/test_auth_token.py,sha256=Ep4u0ushHqKiIkGgw-XVn1lSzPeH6pVmDB2bw-MXNAo,
29
29
  tests/rtl/test_requests_transport.py,sha256=mSsxudpAkKe-uSVOIzDrV0XCFlj_ACt6T1yzbUbuwG0,5442
30
30
  tests/rtl/test_serialize.py,sha256=1SC8jigZFFL3mrU2oSTnc2nbDxXve224_r3GaxEeU90,25917
31
31
  tests/rtl/test_transport.py,sha256=tI83LYOeuWEmkngXyRqMjW-pv-ipLPLj4t0hGD8zqL8,1555
32
- looker_sdk-25.10.0.dist-info/LICENSE.txt,sha256=N4Rmmbuo5EryYSCXcvjuXL1ZXwyXanRzuGP-dJzwsoE,1094
33
- looker_sdk-25.10.0.dist-info/METADATA,sha256=cUZVOH_EKbpEa3UZNsmb71c2KwOng9m6obsRleNw6ZI,7022
34
- looker_sdk-25.10.0.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
35
- looker_sdk-25.10.0.dist-info/top_level.txt,sha256=tDPNJRQM_A_Oncxlgxwvnzq7hZDWZaadt_nR8DmORTI,17
36
- looker_sdk-25.10.0.dist-info/RECORD,,
32
+ looker_sdk-25.16.0.dist-info/LICENSE.txt,sha256=N4Rmmbuo5EryYSCXcvjuXL1ZXwyXanRzuGP-dJzwsoE,1094
33
+ looker_sdk-25.16.0.dist-info/METADATA,sha256=dbW6HPTmSgsiqgWbm88V6LxwXoShEyn_6MmowhAYTNU,7022
34
+ looker_sdk-25.16.0.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
35
+ looker_sdk-25.16.0.dist-info/top_level.txt,sha256=tDPNJRQM_A_Oncxlgxwvnzq7hZDWZaadt_nR8DmORTI,17
36
+ looker_sdk-25.16.0.dist-info/RECORD,,