looker-sdk 25.8.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.
- looker_sdk/error.py +1 -1
- looker_sdk/rtl/serialize.py +2 -0
- looker_sdk/sdk/api40/methods.py +96 -62
- looker_sdk/sdk/api40/models.py +199 -102
- looker_sdk/sdk/constants.py +1 -1
- looker_sdk/version.py +1 -1
- {looker_sdk-25.8.0.dist-info → looker_sdk-25.16.0.dist-info}/METADATA +1 -1
- {looker_sdk-25.8.0.dist-info → looker_sdk-25.16.0.dist-info}/RECORD +11 -11
- {looker_sdk-25.8.0.dist-info → looker_sdk-25.16.0.dist-info}/LICENSE.txt +0 -0
- {looker_sdk-25.8.0.dist-info → looker_sdk-25.16.0.dist-info}/WHEEL +0 -0
- {looker_sdk-25.8.0.dist-info → looker_sdk-25.16.0.dist-info}/top_level.txt +0 -0
looker_sdk/error.py
CHANGED
|
@@ -82,7 +82,7 @@ class SDKError(Exception):
|
|
|
82
82
|
documentation_url: {self.documentation_url}
|
|
83
83
|
error_doc_url: {self.error_doc_url}
|
|
84
84
|
error details:
|
|
85
|
-
{sep.join(str(
|
|
85
|
+
{sep.join(str(error_details) for error_details in self.errors)}
|
|
86
86
|
"""
|
|
87
87
|
|
|
88
88
|
|
looker_sdk/rtl/serialize.py
CHANGED
|
@@ -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
|
)
|
looker_sdk/sdk/api40/methods.py
CHANGED
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
# SOFTWARE.
|
|
22
22
|
#
|
|
23
23
|
|
|
24
|
-
#
|
|
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,
|
|
@@ -7986,6 +7989,59 @@ class Looker40SDK(api_methods.APIMethods):
|
|
|
7986
7989
|
|
|
7987
7990
|
# region Project: Manage Projects
|
|
7988
7991
|
|
|
7992
|
+
# ### Fetches a CI Run.
|
|
7993
|
+
#
|
|
7994
|
+
# GET /projects/{project_id}/ci/runs/{run_id} -> mdls.ProjectRun
|
|
7995
|
+
def get_ci_run(
|
|
7996
|
+
self,
|
|
7997
|
+
# Project Id
|
|
7998
|
+
project_id: str,
|
|
7999
|
+
# Run Id
|
|
8000
|
+
run_id: str,
|
|
8001
|
+
# Requested fields
|
|
8002
|
+
fields: Optional[str] = None,
|
|
8003
|
+
transport_options: Optional[transport.TransportOptions] = None,
|
|
8004
|
+
) -> mdls.ProjectRun:
|
|
8005
|
+
"""Fetch Continuous Integration run"""
|
|
8006
|
+
project_id = self.encode_path_param(project_id)
|
|
8007
|
+
run_id = self.encode_path_param(run_id)
|
|
8008
|
+
response = cast(
|
|
8009
|
+
mdls.ProjectRun,
|
|
8010
|
+
self.get(
|
|
8011
|
+
path=f"/projects/{project_id}/ci/runs/{run_id}",
|
|
8012
|
+
structure=mdls.ProjectRun,
|
|
8013
|
+
query_params={"fields": fields},
|
|
8014
|
+
transport_options=transport_options,
|
|
8015
|
+
),
|
|
8016
|
+
)
|
|
8017
|
+
return response
|
|
8018
|
+
|
|
8019
|
+
# ### Creates a CI Run.
|
|
8020
|
+
#
|
|
8021
|
+
# POST /projects/{project_id}/ci/run -> mdls.CreateCIRunResponse
|
|
8022
|
+
def create_ci_run(
|
|
8023
|
+
self,
|
|
8024
|
+
# Project Id
|
|
8025
|
+
project_id: str,
|
|
8026
|
+
body: mdls.CreateCIRunRequest,
|
|
8027
|
+
# Requested fields
|
|
8028
|
+
fields: Optional[str] = None,
|
|
8029
|
+
transport_options: Optional[transport.TransportOptions] = None,
|
|
8030
|
+
) -> mdls.CreateCIRunResponse:
|
|
8031
|
+
"""Create a Continuous Integration run"""
|
|
8032
|
+
project_id = self.encode_path_param(project_id)
|
|
8033
|
+
response = cast(
|
|
8034
|
+
mdls.CreateCIRunResponse,
|
|
8035
|
+
self.post(
|
|
8036
|
+
path=f"/projects/{project_id}/ci/run",
|
|
8037
|
+
structure=mdls.CreateCIRunResponse,
|
|
8038
|
+
query_params={"fields": fields},
|
|
8039
|
+
body=body,
|
|
8040
|
+
transport_options=transport_options,
|
|
8041
|
+
),
|
|
8042
|
+
)
|
|
8043
|
+
return response
|
|
8044
|
+
|
|
7989
8045
|
# ### Generate Lockfile for All LookML Dependencies
|
|
7990
8046
|
#
|
|
7991
8047
|
# Git must have been configured, must be in dev mode and deploy permission required
|
|
@@ -8633,9 +8689,6 @@ class Looker40SDK(api_methods.APIMethods):
|
|
|
8633
8689
|
|
|
8634
8690
|
# ### Get All Git Connection Tests
|
|
8635
8691
|
#
|
|
8636
|
-
# dev mode required.
|
|
8637
|
-
# - Call `update_session` to select the 'dev' workspace.
|
|
8638
|
-
#
|
|
8639
8692
|
# Returns a list of tests which can be run against a project's (or the dependency project for the provided remote_url) git connection. Call [Run Git Connection Test](#!/Project/run_git_connection_test) to execute each test in sequence.
|
|
8640
8693
|
#
|
|
8641
8694
|
# Tests are ordered by increasing specificity. Tests should be run in the order returned because later tests require functionality tested by tests earlier in the test list.
|
|
@@ -8794,59 +8847,6 @@ class Looker40SDK(api_methods.APIMethods):
|
|
|
8794
8847
|
)
|
|
8795
8848
|
return response
|
|
8796
8849
|
|
|
8797
|
-
# ### Fetches a CI Run.
|
|
8798
|
-
#
|
|
8799
|
-
# GET /projects/{project_id}/ci/runs/{run_id} -> mdls.ProjectCIRun
|
|
8800
|
-
def get_ci_run(
|
|
8801
|
-
self,
|
|
8802
|
-
# Project Id
|
|
8803
|
-
project_id: str,
|
|
8804
|
-
# Run Id
|
|
8805
|
-
run_id: str,
|
|
8806
|
-
# Requested fields
|
|
8807
|
-
fields: Optional[str] = None,
|
|
8808
|
-
transport_options: Optional[transport.TransportOptions] = None,
|
|
8809
|
-
) -> mdls.ProjectCIRun:
|
|
8810
|
-
"""Fetch Continuous Integration run"""
|
|
8811
|
-
project_id = self.encode_path_param(project_id)
|
|
8812
|
-
run_id = self.encode_path_param(run_id)
|
|
8813
|
-
response = cast(
|
|
8814
|
-
mdls.ProjectCIRun,
|
|
8815
|
-
self.get(
|
|
8816
|
-
path=f"/projects/{project_id}/ci/runs/{run_id}",
|
|
8817
|
-
structure=mdls.ProjectCIRun,
|
|
8818
|
-
query_params={"fields": fields},
|
|
8819
|
-
transport_options=transport_options,
|
|
8820
|
-
),
|
|
8821
|
-
)
|
|
8822
|
-
return response
|
|
8823
|
-
|
|
8824
|
-
# ### Creates a CI Run.
|
|
8825
|
-
#
|
|
8826
|
-
# POST /projects/{project_id}/ci/run -> mdls.CreateCIRunResponse
|
|
8827
|
-
def create_ci_run(
|
|
8828
|
-
self,
|
|
8829
|
-
# Project Id
|
|
8830
|
-
project_id: str,
|
|
8831
|
-
body: mdls.CreateCIRunRequest,
|
|
8832
|
-
# Requested fields
|
|
8833
|
-
fields: Optional[str] = None,
|
|
8834
|
-
transport_options: Optional[transport.TransportOptions] = None,
|
|
8835
|
-
) -> mdls.CreateCIRunResponse:
|
|
8836
|
-
"""Create a Continuous Integration run"""
|
|
8837
|
-
project_id = self.encode_path_param(project_id)
|
|
8838
|
-
response = cast(
|
|
8839
|
-
mdls.CreateCIRunResponse,
|
|
8840
|
-
self.post(
|
|
8841
|
-
path=f"/projects/{project_id}/ci/run",
|
|
8842
|
-
structure=mdls.CreateCIRunResponse,
|
|
8843
|
-
query_params={"fields": fields},
|
|
8844
|
-
body=body,
|
|
8845
|
-
transport_options=transport_options,
|
|
8846
|
-
),
|
|
8847
|
-
)
|
|
8848
|
-
return response
|
|
8849
|
-
|
|
8850
8850
|
# ### Configure Repository Credential for a remote dependency
|
|
8851
8851
|
#
|
|
8852
8852
|
# Admin required.
|
|
@@ -12025,6 +12025,8 @@ class Looker40SDK(api_methods.APIMethods):
|
|
|
12025
12025
|
content_metadata_id: Optional[str] = None,
|
|
12026
12026
|
# Search for users who are direct members of this group
|
|
12027
12027
|
group_id: Optional[str] = None,
|
|
12028
|
+
# Search for users who can manage API3 credentials
|
|
12029
|
+
can_manage_api3_creds: Optional[bool] = None,
|
|
12028
12030
|
transport_options: Optional[transport.TransportOptions] = None,
|
|
12029
12031
|
) -> Sequence[mdls.User]:
|
|
12030
12032
|
"""Search Users"""
|
|
@@ -12050,6 +12052,7 @@ class Looker40SDK(api_methods.APIMethods):
|
|
|
12050
12052
|
"filter_or": filter_or,
|
|
12051
12053
|
"content_metadata_id": content_metadata_id,
|
|
12052
12054
|
"group_id": group_id,
|
|
12055
|
+
"can_manage_api3_creds": can_manage_api3_creds,
|
|
12053
12056
|
},
|
|
12054
12057
|
transport_options=transport_options,
|
|
12055
12058
|
),
|
|
@@ -12661,6 +12664,37 @@ class Looker40SDK(api_methods.APIMethods):
|
|
|
12661
12664
|
)
|
|
12662
12665
|
return response
|
|
12663
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
|
+
|
|
12664
12698
|
# ### API login information for the specified user. This is for the newer API keys that can be added for any user.
|
|
12665
12699
|
#
|
|
12666
12700
|
# Calls to this endpoint may be denied by [Looker (Google Cloud core)](https://cloud.google.com/looker/docs/r/looker-core/overview).
|
looker_sdk/sdk/api40/models.py
CHANGED
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
# SOFTWARE.
|
|
22
22
|
#
|
|
23
23
|
|
|
24
|
-
#
|
|
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
|
|
@@ -7997,6 +7948,7 @@ class LookmlModelExploreField(model.Model):
|
|
|
7997
7948
|
suggest_explore: The name of the explore to base suggest queries from.
|
|
7998
7949
|
suggestable: Whether or not suggestions are possible for this field.
|
|
7999
7950
|
suggestions: If available, a list of suggestions for this field. For most fields, a suggest query is a more appropriate way to get an up-to-date list of suggestions. Or use enumerations to list all the possible values.
|
|
7951
|
+
synonyms: A list of string synonyms (words or phrases) that can be used to help large language models and app developers understand other ways that users may refer to a field.
|
|
8000
7952
|
tags: An array of arbitrary string tags provided in the model for this field.
|
|
8001
7953
|
type: The LookML type of the field.
|
|
8002
7954
|
user_attribute_filter_types: An array of user attribute types that are allowed to be used in filters on this field. Valid values are: "advanced_filter_string", "advanced_filter_number", "advanced_filter_datetime", "string", "number", "datetime", "relative_url", "yesno", "zipcode".
|
|
@@ -8059,6 +8011,7 @@ class LookmlModelExploreField(model.Model):
|
|
|
8059
8011
|
suggest_explore: Optional[str] = None
|
|
8060
8012
|
suggestable: Optional[bool] = None
|
|
8061
8013
|
suggestions: Optional[Sequence[str]] = None
|
|
8014
|
+
synonyms: Optional[Sequence[str]] = None
|
|
8062
8015
|
tags: Optional[Sequence[str]] = None
|
|
8063
8016
|
type: Optional[str] = None
|
|
8064
8017
|
user_attribute_filter_types: Optional[Sequence["UserAttributeFilterTypes"]] = None
|
|
@@ -8123,6 +8076,7 @@ class LookmlModelExploreField(model.Model):
|
|
|
8123
8076
|
suggest_explore: Optional[str] = None,
|
|
8124
8077
|
suggestable: Optional[bool] = None,
|
|
8125
8078
|
suggestions: Optional[Sequence[str]] = None,
|
|
8079
|
+
synonyms: Optional[Sequence[str]] = None,
|
|
8126
8080
|
tags: Optional[Sequence[str]] = None,
|
|
8127
8081
|
type: Optional[str] = None,
|
|
8128
8082
|
user_attribute_filter_types: Optional[
|
|
@@ -8184,6 +8138,7 @@ class LookmlModelExploreField(model.Model):
|
|
|
8184
8138
|
self.suggest_explore = suggest_explore
|
|
8185
8139
|
self.suggestable = suggestable
|
|
8186
8140
|
self.suggestions = suggestions
|
|
8141
|
+
self.synonyms = synonyms
|
|
8187
8142
|
self.tags = tags
|
|
8188
8143
|
self.type = type
|
|
8189
8144
|
self.user_attribute_filter_types = user_attribute_filter_types
|
|
@@ -8289,12 +8244,14 @@ class LookmlModelExploreFieldPeriodOverPeriodParams(model.Model):
|
|
|
8289
8244
|
based_on_time: Specifies the time dimension that this measure will operate over.
|
|
8290
8245
|
period: Specifies the time frame for the comparison. Valid values are: "year", "fiscal_year", "quarter", "fiscal_quarter", "month", "week", "date".
|
|
8291
8246
|
kind: The type of calculation for the period_over_period measure. Valid values are: "previous", "difference", "relative_change".
|
|
8247
|
+
value_to_date: specifies whether to compare the current partially completed period to an equivalent part of the previous period, or to use the entire previous period.
|
|
8292
8248
|
"""
|
|
8293
8249
|
|
|
8294
8250
|
based_on: Optional[str] = None
|
|
8295
8251
|
based_on_time: Optional[str] = None
|
|
8296
8252
|
period: Optional["Period"] = None
|
|
8297
8253
|
kind: Optional["Kind"] = None
|
|
8254
|
+
value_to_date: Optional[bool] = None
|
|
8298
8255
|
|
|
8299
8256
|
def __init__(
|
|
8300
8257
|
self,
|
|
@@ -8302,12 +8259,14 @@ class LookmlModelExploreFieldPeriodOverPeriodParams(model.Model):
|
|
|
8302
8259
|
based_on: Optional[str] = None,
|
|
8303
8260
|
based_on_time: Optional[str] = None,
|
|
8304
8261
|
period: Optional["Period"] = None,
|
|
8305
|
-
kind: Optional["Kind"] = None
|
|
8262
|
+
kind: Optional["Kind"] = None,
|
|
8263
|
+
value_to_date: Optional[bool] = None
|
|
8306
8264
|
):
|
|
8307
8265
|
self.based_on = based_on
|
|
8308
8266
|
self.based_on_time = based_on_time
|
|
8309
8267
|
self.period = period
|
|
8310
8268
|
self.kind = kind
|
|
8269
|
+
self.value_to_date = value_to_date
|
|
8311
8270
|
|
|
8312
8271
|
|
|
8313
8272
|
@attr.s(auto_attribs=True, init=False)
|
|
@@ -10089,19 +10048,6 @@ class Project(model.Model):
|
|
|
10089
10048
|
self.dependency_status = dependency_status
|
|
10090
10049
|
|
|
10091
10050
|
|
|
10092
|
-
@attr.s(auto_attribs=True, init=False)
|
|
10093
|
-
class ProjectCIRun(model.Model):
|
|
10094
|
-
"""
|
|
10095
|
-
Attributes:
|
|
10096
|
-
run:
|
|
10097
|
-
"""
|
|
10098
|
-
|
|
10099
|
-
run: Optional["CIRun"] = None
|
|
10100
|
-
|
|
10101
|
-
def __init__(self, *, run: Optional["CIRun"] = None):
|
|
10102
|
-
self.run = run
|
|
10103
|
-
|
|
10104
|
-
|
|
10105
10051
|
@attr.s(auto_attribs=True, init=False)
|
|
10106
10052
|
class ProjectError(model.Model):
|
|
10107
10053
|
"""
|
|
@@ -10212,6 +10158,19 @@ class ProjectFile(model.Model):
|
|
|
10212
10158
|
self.git_status = git_status
|
|
10213
10159
|
|
|
10214
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
|
+
|
|
10215
10174
|
@attr.s(auto_attribs=True, init=False)
|
|
10216
10175
|
class ProjectValidation(model.Model):
|
|
10217
10176
|
"""
|
|
@@ -11000,6 +10959,83 @@ class RoleSearch(model.Model):
|
|
|
11000
10959
|
self.users_url = users_url
|
|
11001
10960
|
|
|
11002
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
|
+
|
|
11003
11039
|
@attr.s(auto_attribs=True, init=False)
|
|
11004
11040
|
class RunningQueries(model.Model):
|
|
11005
11041
|
"""
|
|
@@ -13114,7 +13150,8 @@ class User(model.Model):
|
|
|
13114
13150
|
allow_normal_group_membership: User can be a direct member of a normal Looker group.
|
|
13115
13151
|
allow_roles_from_normal_groups: User can inherit roles from a normal Looker group.
|
|
13116
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
|
|
13117
|
-
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
|
|
13118
13155
|
url: Link to get this item
|
|
13119
13156
|
"""
|
|
13120
13157
|
|
|
@@ -13154,6 +13191,7 @@ class User(model.Model):
|
|
|
13154
13191
|
allow_roles_from_normal_groups: Optional[bool] = None
|
|
13155
13192
|
embed_group_folder_id: Optional[str] = None
|
|
13156
13193
|
is_iam_admin: Optional[bool] = None
|
|
13194
|
+
can_manage_api3_creds: Optional[bool] = None
|
|
13157
13195
|
url: Optional[str] = None
|
|
13158
13196
|
|
|
13159
13197
|
def __init__(
|
|
@@ -13195,6 +13233,7 @@ class User(model.Model):
|
|
|
13195
13233
|
allow_roles_from_normal_groups: Optional[bool] = None,
|
|
13196
13234
|
embed_group_folder_id: Optional[str] = None,
|
|
13197
13235
|
is_iam_admin: Optional[bool] = None,
|
|
13236
|
+
can_manage_api3_creds: Optional[bool] = None,
|
|
13198
13237
|
url: Optional[str] = None
|
|
13199
13238
|
):
|
|
13200
13239
|
self.can = can
|
|
@@ -13233,6 +13272,7 @@ class User(model.Model):
|
|
|
13233
13272
|
self.allow_roles_from_normal_groups = allow_roles_from_normal_groups
|
|
13234
13273
|
self.embed_group_folder_id = embed_group_folder_id
|
|
13235
13274
|
self.is_iam_admin = is_iam_admin
|
|
13275
|
+
self.can_manage_api3_creds = can_manage_api3_creds
|
|
13236
13276
|
self.url = url
|
|
13237
13277
|
|
|
13238
13278
|
|
|
@@ -14081,7 +14121,7 @@ class WriteColorCollection(model.Model):
|
|
|
14081
14121
|
class WriteContentFavorite(model.Model):
|
|
14082
14122
|
"""
|
|
14083
14123
|
Dynamic writeable type for ContentFavorite removes:
|
|
14084
|
-
id, look_id, dashboard_id, board_id
|
|
14124
|
+
id, look_id, dashboard_id, board_id, lookml_dashboard_id
|
|
14085
14125
|
|
|
14086
14126
|
Attributes:
|
|
14087
14127
|
user_id: User Id which owns this ContentFavorite
|
|
@@ -14089,6 +14129,8 @@ class WriteContentFavorite(model.Model):
|
|
|
14089
14129
|
look: Dynamic writeable type for LookBasic removes:
|
|
14090
14130
|
can, content_metadata_id, id, title
|
|
14091
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:
|
|
14092
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
|
|
14093
14135
|
"""
|
|
14094
14136
|
|
|
@@ -14096,6 +14138,7 @@ class WriteContentFavorite(model.Model):
|
|
|
14096
14138
|
content_metadata_id: Optional[str] = None
|
|
14097
14139
|
look: Optional["WriteLookBasic"] = None
|
|
14098
14140
|
dashboard: Optional["WriteDashboardBase"] = None
|
|
14141
|
+
lookml_dashboard: Optional["WriteDashboardBase"] = None
|
|
14099
14142
|
|
|
14100
14143
|
def __init__(
|
|
14101
14144
|
self,
|
|
@@ -14103,19 +14146,21 @@ class WriteContentFavorite(model.Model):
|
|
|
14103
14146
|
user_id: Optional[str] = None,
|
|
14104
14147
|
content_metadata_id: Optional[str] = None,
|
|
14105
14148
|
look: Optional["WriteLookBasic"] = None,
|
|
14106
|
-
dashboard: Optional["WriteDashboardBase"] = None
|
|
14149
|
+
dashboard: Optional["WriteDashboardBase"] = None,
|
|
14150
|
+
lookml_dashboard: Optional["WriteDashboardBase"] = None
|
|
14107
14151
|
):
|
|
14108
14152
|
self.user_id = user_id
|
|
14109
14153
|
self.content_metadata_id = content_metadata_id
|
|
14110
14154
|
self.look = look
|
|
14111
14155
|
self.dashboard = dashboard
|
|
14156
|
+
self.lookml_dashboard = lookml_dashboard
|
|
14112
14157
|
|
|
14113
14158
|
|
|
14114
14159
|
@attr.s(auto_attribs=True, init=False)
|
|
14115
14160
|
class WriteContentMeta(model.Model):
|
|
14116
14161
|
"""
|
|
14117
14162
|
Dynamic writeable type for ContentMeta removes:
|
|
14118
|
-
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
|
|
14119
14164
|
|
|
14120
14165
|
Attributes:
|
|
14121
14166
|
inherits: Whether content inherits its access levels from parent
|
|
@@ -14243,6 +14288,22 @@ class WriteCreateQueryTask(model.Model):
|
|
|
14243
14288
|
self.dashboard_id = dashboard_id
|
|
14244
14289
|
|
|
14245
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
|
+
|
|
14246
14307
|
@attr.s(auto_attribs=True, init=False)
|
|
14247
14308
|
class WriteCredentialsEmail(model.Model):
|
|
14248
14309
|
"""
|
|
@@ -14424,7 +14485,7 @@ class WriteDashboardElement(model.Model):
|
|
|
14424
14485
|
query_id: Id Of Query
|
|
14425
14486
|
refresh_interval: Refresh Interval
|
|
14426
14487
|
result_maker: Dynamic writeable type for ResultMakerWithIdVisConfigAndDynamicFields removes:
|
|
14427
|
-
id,
|
|
14488
|
+
id, query_id
|
|
14428
14489
|
result_maker_id: ID of the ResultMakerLookup entry.
|
|
14429
14490
|
subtitle_text: Text tile subtitle text
|
|
14430
14491
|
title: Title of dashboard element
|
|
@@ -14690,7 +14751,7 @@ class WriteDatagroup(model.Model):
|
|
|
14690
14751
|
class WriteDBConnection(model.Model):
|
|
14691
14752
|
"""
|
|
14692
14753
|
Dynamic writeable type for DBConnection removes:
|
|
14693
|
-
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
|
|
14694
14755
|
|
|
14695
14756
|
Attributes:
|
|
14696
14757
|
name: Name of the connection. Also used as the unique identifier
|
|
@@ -16102,17 +16163,49 @@ class WriteRepositoryCredential(model.Model):
|
|
|
16102
16163
|
class WriteResultMakerWithIdVisConfigAndDynamicFields(model.Model):
|
|
16103
16164
|
"""
|
|
16104
16165
|
Dynamic writeable type for ResultMakerWithIdVisConfigAndDynamicFields removes:
|
|
16105
|
-
id,
|
|
16166
|
+
id, query_id
|
|
16106
16167
|
|
|
16107
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
|
|
16108
16175
|
query: Dynamic writeable type for Query removes:
|
|
16109
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.
|
|
16110
16178
|
"""
|
|
16111
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
|
|
16112
16186
|
query: Optional["WriteQuery"] = None
|
|
16187
|
+
vis_config: Optional[MutableMapping[str, Any]] = None
|
|
16113
16188
|
|
|
16114
|
-
def __init__(
|
|
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
|
|
16115
16207
|
self.query = query
|
|
16208
|
+
self.vis_config = vis_config
|
|
16116
16209
|
|
|
16117
16210
|
|
|
16118
16211
|
@attr.s(auto_attribs=True, init=False)
|
|
@@ -16670,6 +16763,7 @@ class WriteUser(model.Model):
|
|
|
16670
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.
|
|
16671
16764
|
models_dir_validated: User's dev workspace has been checked for presence of applicable production projects
|
|
16672
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
|
|
16673
16767
|
"""
|
|
16674
16768
|
|
|
16675
16769
|
credentials_email: Optional["WriteCredentialsEmail"] = None
|
|
@@ -16680,6 +16774,7 @@ class WriteUser(model.Model):
|
|
|
16680
16774
|
locale: Optional[str] = None
|
|
16681
16775
|
models_dir_validated: Optional[bool] = None
|
|
16682
16776
|
ui_state: Optional[MutableMapping[str, Any]] = None
|
|
16777
|
+
can_manage_api3_creds: Optional[bool] = None
|
|
16683
16778
|
|
|
16684
16779
|
def __init__(
|
|
16685
16780
|
self,
|
|
@@ -16691,7 +16786,8 @@ class WriteUser(model.Model):
|
|
|
16691
16786
|
last_name: Optional[str] = None,
|
|
16692
16787
|
locale: Optional[str] = None,
|
|
16693
16788
|
models_dir_validated: Optional[bool] = None,
|
|
16694
|
-
ui_state: Optional[MutableMapping[str, Any]] = None
|
|
16789
|
+
ui_state: Optional[MutableMapping[str, Any]] = None,
|
|
16790
|
+
can_manage_api3_creds: Optional[bool] = None
|
|
16695
16791
|
):
|
|
16696
16792
|
self.credentials_email = credentials_email
|
|
16697
16793
|
self.first_name = first_name
|
|
@@ -16701,6 +16797,7 @@ class WriteUser(model.Model):
|
|
|
16701
16797
|
self.locale = locale
|
|
16702
16798
|
self.models_dir_validated = models_dir_validated
|
|
16703
16799
|
self.ui_state = ui_state
|
|
16800
|
+
self.can_manage_api3_creds = can_manage_api3_creds
|
|
16704
16801
|
|
|
16705
16802
|
|
|
16706
16803
|
@attr.s(auto_attribs=True, init=False)
|
looker_sdk/sdk/constants.py
CHANGED
looker_sdk/version.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
looker_sdk/__init__.py,sha256=0UOw2v-BP1bNoBIIm-BnyKUpGQB3Zx-JZRmpYyLiIuY,2589
|
|
2
|
-
looker_sdk/error.py,sha256=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
20
|
-
looker_sdk/sdk/api40/models.py,sha256=
|
|
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.
|
|
33
|
-
looker_sdk-25.
|
|
34
|
-
looker_sdk-25.
|
|
35
|
-
looker_sdk-25.
|
|
36
|
-
looker_sdk-25.
|
|
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,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|