looker-sdk 24.2.1__py3-none-any.whl → 25.0.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 +2 -2
- looker_sdk/sdk/api40/methods.py +212 -37
- looker_sdk/sdk/api40/models.py +477 -142
- looker_sdk/sdk/constants.py +1 -1
- looker_sdk/version.py +1 -1
- {looker_sdk-24.2.1.dist-info → looker_sdk-25.0.0.dist-info}/METADATA +5 -5
- {looker_sdk-24.2.1.dist-info → looker_sdk-25.0.0.dist-info}/RECORD +10 -12
- {looker_sdk-24.2.1.dist-info → looker_sdk-25.0.0.dist-info}/WHEEL +1 -1
- tests/__init__.py +0 -0
- tests/conftest.py +0 -133
- {looker_sdk-24.2.1.dist-info → looker_sdk-25.0.0.dist-info}/LICENSE.txt +0 -0
- {looker_sdk-24.2.1.dist-info → looker_sdk-25.0.0.dist-info}/top_level.txt +0 -0
looker_sdk/sdk/api40/models.py
CHANGED
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
# SOFTWARE.
|
|
22
22
|
#
|
|
23
23
|
|
|
24
|
-
#
|
|
24
|
+
# 343 API models: 259 Spec, 0 Request, 62 Write, 22 Enum
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
# NOTE: Do not edit this file generated by Looker SDK Codegen for API 4.0
|
|
@@ -1247,6 +1247,7 @@ class ContentSearch(model.Model):
|
|
|
1247
1247
|
folder_name: Name of the folder where the content is saved
|
|
1248
1248
|
view_count: Number of times the content has been viewed
|
|
1249
1249
|
preferred_viewer: Preferred way of viewing the content (only applies to dashboards)
|
|
1250
|
+
model: Name of the model the explore belongs to
|
|
1250
1251
|
"""
|
|
1251
1252
|
|
|
1252
1253
|
can: Optional[MutableMapping[str, bool]] = None
|
|
@@ -1258,6 +1259,7 @@ class ContentSearch(model.Model):
|
|
|
1258
1259
|
folder_name: Optional[str] = None
|
|
1259
1260
|
view_count: Optional[int] = None
|
|
1260
1261
|
preferred_viewer: Optional[str] = None
|
|
1262
|
+
model: Optional[str] = None
|
|
1261
1263
|
|
|
1262
1264
|
def __init__(
|
|
1263
1265
|
self,
|
|
@@ -1270,7 +1272,8 @@ class ContentSearch(model.Model):
|
|
|
1270
1272
|
folder_id: Optional[str] = None,
|
|
1271
1273
|
folder_name: Optional[str] = None,
|
|
1272
1274
|
view_count: Optional[int] = None,
|
|
1273
|
-
preferred_viewer: Optional[str] = None
|
|
1275
|
+
preferred_viewer: Optional[str] = None,
|
|
1276
|
+
model: Optional[str] = None
|
|
1274
1277
|
):
|
|
1275
1278
|
self.can = can
|
|
1276
1279
|
self.content_id = content_id
|
|
@@ -1281,6 +1284,96 @@ class ContentSearch(model.Model):
|
|
|
1281
1284
|
self.folder_name = folder_name
|
|
1282
1285
|
self.view_count = view_count
|
|
1283
1286
|
self.preferred_viewer = preferred_viewer
|
|
1287
|
+
self.model = model
|
|
1288
|
+
|
|
1289
|
+
|
|
1290
|
+
@attr.s(auto_attribs=True, init=False)
|
|
1291
|
+
class ContentSummary(model.Model):
|
|
1292
|
+
"""
|
|
1293
|
+
Attributes:
|
|
1294
|
+
can: Operations the current user is able to perform on this object
|
|
1295
|
+
id: Unique id
|
|
1296
|
+
content_type: Content type
|
|
1297
|
+
content_id: Content id
|
|
1298
|
+
content_slug: Content slug
|
|
1299
|
+
content_url: Content url
|
|
1300
|
+
title: Content title
|
|
1301
|
+
description: Content Description
|
|
1302
|
+
last_viewed_at: Last time viewed by current user
|
|
1303
|
+
user_id: ID of user who created the content
|
|
1304
|
+
user_full_name: Full name of user who created the content
|
|
1305
|
+
is_scheduled: If the content is scheduled by the current user
|
|
1306
|
+
favorite_count: Number of favorites
|
|
1307
|
+
view_count: Number of views
|
|
1308
|
+
favorite_id: Corresponding favorite id if item is favorited by current user
|
|
1309
|
+
weighted_score:
|
|
1310
|
+
group_weighted_score:
|
|
1311
|
+
suggestion_score:
|
|
1312
|
+
preferred_viewer: The preferred route for viewing this content (ie: dashboards or dashboards-next)
|
|
1313
|
+
"""
|
|
1314
|
+
|
|
1315
|
+
can: Optional[MutableMapping[str, bool]] = None
|
|
1316
|
+
id: Optional[str] = None
|
|
1317
|
+
content_type: Optional[str] = None
|
|
1318
|
+
content_id: Optional[str] = None
|
|
1319
|
+
content_slug: Optional[str] = None
|
|
1320
|
+
content_url: Optional[str] = None
|
|
1321
|
+
title: Optional[str] = None
|
|
1322
|
+
description: Optional[str] = None
|
|
1323
|
+
last_viewed_at: Optional[datetime.datetime] = None
|
|
1324
|
+
user_id: Optional[str] = None
|
|
1325
|
+
user_full_name: Optional[str] = None
|
|
1326
|
+
is_scheduled: Optional[bool] = None
|
|
1327
|
+
favorite_count: Optional[int] = None
|
|
1328
|
+
view_count: Optional[int] = None
|
|
1329
|
+
favorite_id: Optional[str] = None
|
|
1330
|
+
weighted_score: Optional[float] = None
|
|
1331
|
+
group_weighted_score: Optional[float] = None
|
|
1332
|
+
suggestion_score: Optional[float] = None
|
|
1333
|
+
preferred_viewer: Optional[str] = None
|
|
1334
|
+
|
|
1335
|
+
def __init__(
|
|
1336
|
+
self,
|
|
1337
|
+
*,
|
|
1338
|
+
can: Optional[MutableMapping[str, bool]] = None,
|
|
1339
|
+
id: Optional[str] = None,
|
|
1340
|
+
content_type: Optional[str] = None,
|
|
1341
|
+
content_id: Optional[str] = None,
|
|
1342
|
+
content_slug: Optional[str] = None,
|
|
1343
|
+
content_url: Optional[str] = None,
|
|
1344
|
+
title: Optional[str] = None,
|
|
1345
|
+
description: Optional[str] = None,
|
|
1346
|
+
last_viewed_at: Optional[datetime.datetime] = None,
|
|
1347
|
+
user_id: Optional[str] = None,
|
|
1348
|
+
user_full_name: Optional[str] = None,
|
|
1349
|
+
is_scheduled: Optional[bool] = None,
|
|
1350
|
+
favorite_count: Optional[int] = None,
|
|
1351
|
+
view_count: Optional[int] = None,
|
|
1352
|
+
favorite_id: Optional[str] = None,
|
|
1353
|
+
weighted_score: Optional[float] = None,
|
|
1354
|
+
group_weighted_score: Optional[float] = None,
|
|
1355
|
+
suggestion_score: Optional[float] = None,
|
|
1356
|
+
preferred_viewer: Optional[str] = None
|
|
1357
|
+
):
|
|
1358
|
+
self.can = can
|
|
1359
|
+
self.id = id
|
|
1360
|
+
self.content_type = content_type
|
|
1361
|
+
self.content_id = content_id
|
|
1362
|
+
self.content_slug = content_slug
|
|
1363
|
+
self.content_url = content_url
|
|
1364
|
+
self.title = title
|
|
1365
|
+
self.description = description
|
|
1366
|
+
self.last_viewed_at = last_viewed_at
|
|
1367
|
+
self.user_id = user_id
|
|
1368
|
+
self.user_full_name = user_full_name
|
|
1369
|
+
self.is_scheduled = is_scheduled
|
|
1370
|
+
self.favorite_count = favorite_count
|
|
1371
|
+
self.view_count = view_count
|
|
1372
|
+
self.favorite_id = favorite_id
|
|
1373
|
+
self.weighted_score = weighted_score
|
|
1374
|
+
self.group_weighted_score = group_weighted_score
|
|
1375
|
+
self.suggestion_score = suggestion_score
|
|
1376
|
+
self.preferred_viewer = preferred_viewer
|
|
1284
1377
|
|
|
1285
1378
|
|
|
1286
1379
|
@attr.s(auto_attribs=True, init=False)
|
|
@@ -2192,6 +2285,8 @@ class CredentialsEmail(model.Model):
|
|
|
2192
2285
|
logged_in_at: Timestamp for most recent login using credential
|
|
2193
2286
|
password_reset_url: Url with one-time use secret token that the user can use to reset password
|
|
2194
2287
|
account_setup_url: Url with one-time use secret token that the user can use to setup account
|
|
2288
|
+
password_reset_url_expired: Is password_reset_url expired or not present?
|
|
2289
|
+
account_setup_url_expired: Is account_setup_url expired or not present?
|
|
2195
2290
|
type: Short name for the type of this kind of credential
|
|
2196
2291
|
url: Link to get this item
|
|
2197
2292
|
user_url: Link to get this user
|
|
@@ -2206,6 +2301,8 @@ class CredentialsEmail(model.Model):
|
|
|
2206
2301
|
logged_in_at: Optional[str] = None
|
|
2207
2302
|
password_reset_url: Optional[str] = None
|
|
2208
2303
|
account_setup_url: Optional[str] = None
|
|
2304
|
+
password_reset_url_expired: Optional[bool] = None
|
|
2305
|
+
account_setup_url_expired: Optional[bool] = None
|
|
2209
2306
|
type: Optional[str] = None
|
|
2210
2307
|
url: Optional[str] = None
|
|
2211
2308
|
user_url: Optional[str] = None
|
|
@@ -2222,6 +2319,8 @@ class CredentialsEmail(model.Model):
|
|
|
2222
2319
|
logged_in_at: Optional[str] = None,
|
|
2223
2320
|
password_reset_url: Optional[str] = None,
|
|
2224
2321
|
account_setup_url: Optional[str] = None,
|
|
2322
|
+
password_reset_url_expired: Optional[bool] = None,
|
|
2323
|
+
account_setup_url_expired: Optional[bool] = None,
|
|
2225
2324
|
type: Optional[str] = None,
|
|
2226
2325
|
url: Optional[str] = None,
|
|
2227
2326
|
user_url: Optional[str] = None
|
|
@@ -2235,6 +2334,8 @@ class CredentialsEmail(model.Model):
|
|
|
2235
2334
|
self.logged_in_at = logged_in_at
|
|
2236
2335
|
self.password_reset_url = password_reset_url
|
|
2237
2336
|
self.account_setup_url = account_setup_url
|
|
2337
|
+
self.password_reset_url_expired = password_reset_url_expired
|
|
2338
|
+
self.account_setup_url_expired = account_setup_url_expired
|
|
2238
2339
|
self.type = type
|
|
2239
2340
|
self.url = url
|
|
2240
2341
|
self.user_url = user_url
|
|
@@ -2253,6 +2354,8 @@ class CredentialsEmailSearch(model.Model):
|
|
|
2253
2354
|
logged_in_at: Timestamp for most recent login using credential
|
|
2254
2355
|
password_reset_url: Url with one-time use secret token that the user can use to reset password
|
|
2255
2356
|
account_setup_url: Url with one-time use secret token that the user can use to setup account
|
|
2357
|
+
password_reset_url_expired: Is password_reset_url expired or not present?
|
|
2358
|
+
account_setup_url_expired: Is account_setup_url expired or not present?
|
|
2256
2359
|
type: Short name for the type of this kind of credential
|
|
2257
2360
|
url: Link to get this item
|
|
2258
2361
|
user_url: Link to get this user
|
|
@@ -2267,6 +2370,8 @@ class CredentialsEmailSearch(model.Model):
|
|
|
2267
2370
|
logged_in_at: Optional[str] = None
|
|
2268
2371
|
password_reset_url: Optional[str] = None
|
|
2269
2372
|
account_setup_url: Optional[str] = None
|
|
2373
|
+
password_reset_url_expired: Optional[bool] = None
|
|
2374
|
+
account_setup_url_expired: Optional[bool] = None
|
|
2270
2375
|
type: Optional[str] = None
|
|
2271
2376
|
url: Optional[str] = None
|
|
2272
2377
|
user_url: Optional[str] = None
|
|
@@ -2283,6 +2388,8 @@ class CredentialsEmailSearch(model.Model):
|
|
|
2283
2388
|
logged_in_at: Optional[str] = None,
|
|
2284
2389
|
password_reset_url: Optional[str] = None,
|
|
2285
2390
|
account_setup_url: Optional[str] = None,
|
|
2391
|
+
password_reset_url_expired: Optional[bool] = None,
|
|
2392
|
+
account_setup_url_expired: Optional[bool] = None,
|
|
2286
2393
|
type: Optional[str] = None,
|
|
2287
2394
|
url: Optional[str] = None,
|
|
2288
2395
|
user_url: Optional[str] = None
|
|
@@ -2296,6 +2403,8 @@ class CredentialsEmailSearch(model.Model):
|
|
|
2296
2403
|
self.logged_in_at = logged_in_at
|
|
2297
2404
|
self.password_reset_url = password_reset_url
|
|
2298
2405
|
self.account_setup_url = account_setup_url
|
|
2406
|
+
self.password_reset_url_expired = password_reset_url_expired
|
|
2407
|
+
self.account_setup_url_expired = account_setup_url_expired
|
|
2299
2408
|
self.type = type
|
|
2300
2409
|
self.url = url
|
|
2301
2410
|
self.user_url = user_url
|
|
@@ -3581,6 +3690,7 @@ class DBConnection(model.Model):
|
|
|
3581
3690
|
username: Username for server authentication
|
|
3582
3691
|
password: (Write-Only) Password for server authentication
|
|
3583
3692
|
uses_oauth: Whether the connection uses OAuth for authentication.
|
|
3693
|
+
uses_instance_oauth: Whether the integration uses the oauth instance account.
|
|
3584
3694
|
certificate: (Write-Only) Base64 encoded Certificate body for server authentication (when appropriate for dialect).
|
|
3585
3695
|
file_type: (Write-Only) Certificate keyfile type - .json or .p12
|
|
3586
3696
|
database: Database name
|
|
@@ -3588,10 +3698,13 @@ class DBConnection(model.Model):
|
|
|
3588
3698
|
query_timezone: Timezone to use in queries
|
|
3589
3699
|
schema: Schema name
|
|
3590
3700
|
max_connections: Maximum number of concurrent connection to use
|
|
3701
|
+
max_queries: Maximum number of concurrent queries to begin on this connection
|
|
3702
|
+
max_queries_per_user: Maximum number of concurrent queries per user to begin on this connection
|
|
3591
3703
|
max_billing_gigabytes: Maximum size of query in GBs (BigQuery only, can be a user_attribute name)
|
|
3592
3704
|
ssl: Use SSL/TLS when connecting to server
|
|
3593
3705
|
verify_ssl: Verify the SSL
|
|
3594
3706
|
tmp_db_name: Name of temporary database (if used)
|
|
3707
|
+
tmp_db_host: Name of temporary host (if used)
|
|
3595
3708
|
jdbc_additional_params: Additional params to add to JDBC connection string
|
|
3596
3709
|
pool_timeout: Connection Pool Timeout, in seconds
|
|
3597
3710
|
dialect_name: (Read/Write) SQL Dialect name
|
|
@@ -3616,8 +3729,15 @@ class DBConnection(model.Model):
|
|
|
3616
3729
|
disable_context_comment: When disable_context_comment is true comment will not be added to SQL
|
|
3617
3730
|
oauth_application_id: An External OAuth Application to use for authenticating to the database
|
|
3618
3731
|
always_retry_failed_builds: When true, error PDTs will be retried every regenerator cycle
|
|
3732
|
+
uses_application_default_credentials: Whether the connection should authenticate with the Application Default Credentials of the host environment (limited to GCP and certain dialects).
|
|
3733
|
+
impersonated_service_account: An alternative Service Account to use for querying datasets (used primarily with `uses_application_default_credentials`) (limited to GCP and certain dialects).
|
|
3619
3734
|
cost_estimate_enabled: When true, query cost estimate will be displayed in explore.
|
|
3620
3735
|
pdt_api_control_enabled: PDT builds on this connection can be kicked off and cancelled via API.
|
|
3736
|
+
connection_pooling: Enable database connection pooling.
|
|
3737
|
+
default_bq_connection: When true, represents that this connection is the default BQ connection.
|
|
3738
|
+
bq_storage_project_id: The project id of the default BigQuery storage project.
|
|
3739
|
+
bq_roles_verified: When true, represents that all project roles have been verified.
|
|
3740
|
+
p4sa_name: The name of P4SA service account that is associated with the Looker instance
|
|
3621
3741
|
"""
|
|
3622
3742
|
|
|
3623
3743
|
can: Optional[MutableMapping[str, bool]] = None
|
|
@@ -3630,6 +3750,7 @@ class DBConnection(model.Model):
|
|
|
3630
3750
|
username: Optional[str] = None
|
|
3631
3751
|
password: Optional[str] = None
|
|
3632
3752
|
uses_oauth: Optional[bool] = None
|
|
3753
|
+
uses_instance_oauth: Optional[bool] = None
|
|
3633
3754
|
certificate: Optional[str] = None
|
|
3634
3755
|
file_type: Optional[str] = None
|
|
3635
3756
|
database: Optional[str] = None
|
|
@@ -3637,10 +3758,13 @@ class DBConnection(model.Model):
|
|
|
3637
3758
|
query_timezone: Optional[str] = None
|
|
3638
3759
|
schema: Optional[str] = None
|
|
3639
3760
|
max_connections: Optional[int] = None
|
|
3761
|
+
max_queries: Optional[int] = None
|
|
3762
|
+
max_queries_per_user: Optional[int] = None
|
|
3640
3763
|
max_billing_gigabytes: Optional[str] = None
|
|
3641
3764
|
ssl: Optional[bool] = None
|
|
3642
3765
|
verify_ssl: Optional[bool] = None
|
|
3643
3766
|
tmp_db_name: Optional[str] = None
|
|
3767
|
+
tmp_db_host: Optional[str] = None
|
|
3644
3768
|
jdbc_additional_params: Optional[str] = None
|
|
3645
3769
|
pool_timeout: Optional[int] = None
|
|
3646
3770
|
dialect_name: Optional[str] = None
|
|
@@ -3665,8 +3789,15 @@ class DBConnection(model.Model):
|
|
|
3665
3789
|
disable_context_comment: Optional[bool] = None
|
|
3666
3790
|
oauth_application_id: Optional[str] = None
|
|
3667
3791
|
always_retry_failed_builds: Optional[bool] = None
|
|
3792
|
+
uses_application_default_credentials: Optional[bool] = None
|
|
3793
|
+
impersonated_service_account: Optional[str] = None
|
|
3668
3794
|
cost_estimate_enabled: Optional[bool] = None
|
|
3669
3795
|
pdt_api_control_enabled: Optional[bool] = None
|
|
3796
|
+
connection_pooling: Optional[bool] = None
|
|
3797
|
+
default_bq_connection: Optional[bool] = None
|
|
3798
|
+
bq_storage_project_id: Optional[str] = None
|
|
3799
|
+
bq_roles_verified: Optional[bool] = None
|
|
3800
|
+
p4sa_name: Optional[str] = None
|
|
3670
3801
|
|
|
3671
3802
|
def __init__(
|
|
3672
3803
|
self,
|
|
@@ -3681,6 +3812,7 @@ class DBConnection(model.Model):
|
|
|
3681
3812
|
username: Optional[str] = None,
|
|
3682
3813
|
password: Optional[str] = None,
|
|
3683
3814
|
uses_oauth: Optional[bool] = None,
|
|
3815
|
+
uses_instance_oauth: Optional[bool] = None,
|
|
3684
3816
|
certificate: Optional[str] = None,
|
|
3685
3817
|
file_type: Optional[str] = None,
|
|
3686
3818
|
database: Optional[str] = None,
|
|
@@ -3688,10 +3820,13 @@ class DBConnection(model.Model):
|
|
|
3688
3820
|
query_timezone: Optional[str] = None,
|
|
3689
3821
|
schema: Optional[str] = None,
|
|
3690
3822
|
max_connections: Optional[int] = None,
|
|
3823
|
+
max_queries: Optional[int] = None,
|
|
3824
|
+
max_queries_per_user: Optional[int] = None,
|
|
3691
3825
|
max_billing_gigabytes: Optional[str] = None,
|
|
3692
3826
|
ssl: Optional[bool] = None,
|
|
3693
3827
|
verify_ssl: Optional[bool] = None,
|
|
3694
3828
|
tmp_db_name: Optional[str] = None,
|
|
3829
|
+
tmp_db_host: Optional[str] = None,
|
|
3695
3830
|
jdbc_additional_params: Optional[str] = None,
|
|
3696
3831
|
pool_timeout: Optional[int] = None,
|
|
3697
3832
|
dialect_name: Optional[str] = None,
|
|
@@ -3716,8 +3851,15 @@ class DBConnection(model.Model):
|
|
|
3716
3851
|
disable_context_comment: Optional[bool] = None,
|
|
3717
3852
|
oauth_application_id: Optional[str] = None,
|
|
3718
3853
|
always_retry_failed_builds: Optional[bool] = None,
|
|
3854
|
+
uses_application_default_credentials: Optional[bool] = None,
|
|
3855
|
+
impersonated_service_account: Optional[str] = None,
|
|
3719
3856
|
cost_estimate_enabled: Optional[bool] = None,
|
|
3720
|
-
pdt_api_control_enabled: Optional[bool] = None
|
|
3857
|
+
pdt_api_control_enabled: Optional[bool] = None,
|
|
3858
|
+
connection_pooling: Optional[bool] = None,
|
|
3859
|
+
default_bq_connection: Optional[bool] = None,
|
|
3860
|
+
bq_storage_project_id: Optional[str] = None,
|
|
3861
|
+
bq_roles_verified: Optional[bool] = None,
|
|
3862
|
+
p4sa_name: Optional[str] = None
|
|
3721
3863
|
):
|
|
3722
3864
|
self.can = can
|
|
3723
3865
|
self.name = name
|
|
@@ -3729,6 +3871,7 @@ class DBConnection(model.Model):
|
|
|
3729
3871
|
self.username = username
|
|
3730
3872
|
self.password = password
|
|
3731
3873
|
self.uses_oauth = uses_oauth
|
|
3874
|
+
self.uses_instance_oauth = uses_instance_oauth
|
|
3732
3875
|
self.certificate = certificate
|
|
3733
3876
|
self.file_type = file_type
|
|
3734
3877
|
self.database = database
|
|
@@ -3736,10 +3879,13 @@ class DBConnection(model.Model):
|
|
|
3736
3879
|
self.query_timezone = query_timezone
|
|
3737
3880
|
self.schema = schema
|
|
3738
3881
|
self.max_connections = max_connections
|
|
3882
|
+
self.max_queries = max_queries
|
|
3883
|
+
self.max_queries_per_user = max_queries_per_user
|
|
3739
3884
|
self.max_billing_gigabytes = max_billing_gigabytes
|
|
3740
3885
|
self.ssl = ssl
|
|
3741
3886
|
self.verify_ssl = verify_ssl
|
|
3742
3887
|
self.tmp_db_name = tmp_db_name
|
|
3888
|
+
self.tmp_db_host = tmp_db_host
|
|
3743
3889
|
self.jdbc_additional_params = jdbc_additional_params
|
|
3744
3890
|
self.pool_timeout = pool_timeout
|
|
3745
3891
|
self.dialect_name = dialect_name
|
|
@@ -3764,8 +3910,15 @@ class DBConnection(model.Model):
|
|
|
3764
3910
|
self.disable_context_comment = disable_context_comment
|
|
3765
3911
|
self.oauth_application_id = oauth_application_id
|
|
3766
3912
|
self.always_retry_failed_builds = always_retry_failed_builds
|
|
3913
|
+
self.uses_application_default_credentials = uses_application_default_credentials
|
|
3914
|
+
self.impersonated_service_account = impersonated_service_account
|
|
3767
3915
|
self.cost_estimate_enabled = cost_estimate_enabled
|
|
3768
3916
|
self.pdt_api_control_enabled = pdt_api_control_enabled
|
|
3917
|
+
self.connection_pooling = connection_pooling
|
|
3918
|
+
self.default_bq_connection = default_bq_connection
|
|
3919
|
+
self.bq_storage_project_id = bq_storage_project_id
|
|
3920
|
+
self.bq_roles_verified = bq_roles_verified
|
|
3921
|
+
self.p4sa_name = p4sa_name
|
|
3769
3922
|
|
|
3770
3923
|
|
|
3771
3924
|
@attr.s(auto_attribs=True, init=False)
|
|
@@ -4065,6 +4218,7 @@ class DialectInfo(model.Model):
|
|
|
4065
4218
|
installed: Is the supporting driver installed
|
|
4066
4219
|
label: The human-readable label of the connection
|
|
4067
4220
|
label_for_database_equivalent: What the dialect calls the equivalent of a normal SQL table
|
|
4221
|
+
label_for_schema_equivalent: What the dialect calls the equivalent of a schema-level namespace
|
|
4068
4222
|
name: The name of the dialect
|
|
4069
4223
|
supported_options:
|
|
4070
4224
|
"""
|
|
@@ -4075,6 +4229,7 @@ class DialectInfo(model.Model):
|
|
|
4075
4229
|
installed: Optional[bool] = None
|
|
4076
4230
|
label: Optional[str] = None
|
|
4077
4231
|
label_for_database_equivalent: Optional[str] = None
|
|
4232
|
+
label_for_schema_equivalent: Optional[str] = None
|
|
4078
4233
|
name: Optional[str] = None
|
|
4079
4234
|
supported_options: Optional["DialectInfoOptions"] = None
|
|
4080
4235
|
|
|
@@ -4087,6 +4242,7 @@ class DialectInfo(model.Model):
|
|
|
4087
4242
|
installed: Optional[bool] = None,
|
|
4088
4243
|
label: Optional[str] = None,
|
|
4089
4244
|
label_for_database_equivalent: Optional[str] = None,
|
|
4245
|
+
label_for_schema_equivalent: Optional[str] = None,
|
|
4090
4246
|
name: Optional[str] = None,
|
|
4091
4247
|
supported_options: Optional["DialectInfoOptions"] = None
|
|
4092
4248
|
):
|
|
@@ -4096,6 +4252,7 @@ class DialectInfo(model.Model):
|
|
|
4096
4252
|
self.installed = installed
|
|
4097
4253
|
self.label = label
|
|
4098
4254
|
self.label_for_database_equivalent = label_for_database_equivalent
|
|
4255
|
+
self.label_for_schema_equivalent = label_for_schema_equivalent
|
|
4099
4256
|
self.name = name
|
|
4100
4257
|
self.supported_options = supported_options
|
|
4101
4258
|
|
|
@@ -4125,6 +4282,7 @@ class DialectInfoOptions(model.Model):
|
|
|
4125
4282
|
tns: Has Oracle TNS support
|
|
4126
4283
|
username: Username can be specified
|
|
4127
4284
|
username_required: Username is required
|
|
4285
|
+
supports_connection_pooling: Has support for connection pooling
|
|
4128
4286
|
"""
|
|
4129
4287
|
|
|
4130
4288
|
additional_params: Optional[bool] = None
|
|
@@ -4148,6 +4306,7 @@ class DialectInfoOptions(model.Model):
|
|
|
4148
4306
|
tns: Optional[bool] = None
|
|
4149
4307
|
username: Optional[bool] = None
|
|
4150
4308
|
username_required: Optional[bool] = None
|
|
4309
|
+
supports_connection_pooling: Optional[bool] = None
|
|
4151
4310
|
|
|
4152
4311
|
def __init__(
|
|
4153
4312
|
self,
|
|
@@ -4172,7 +4331,8 @@ class DialectInfoOptions(model.Model):
|
|
|
4172
4331
|
tmp_table: Optional[bool] = None,
|
|
4173
4332
|
tns: Optional[bool] = None,
|
|
4174
4333
|
username: Optional[bool] = None,
|
|
4175
|
-
username_required: Optional[bool] = None
|
|
4334
|
+
username_required: Optional[bool] = None,
|
|
4335
|
+
supports_connection_pooling: Optional[bool] = None
|
|
4176
4336
|
):
|
|
4177
4337
|
self.additional_params = additional_params
|
|
4178
4338
|
self.after_connect_statements = after_connect_statements
|
|
@@ -4195,6 +4355,7 @@ class DialectInfoOptions(model.Model):
|
|
|
4195
4355
|
self.tns = tns
|
|
4196
4356
|
self.username = username
|
|
4197
4357
|
self.username_required = username_required
|
|
4358
|
+
self.supports_connection_pooling = supports_connection_pooling
|
|
4198
4359
|
|
|
4199
4360
|
|
|
4200
4361
|
@attr.s(auto_attribs=True, init=False)
|
|
@@ -4280,6 +4441,7 @@ class EmbedConfig(model.Model):
|
|
|
4280
4441
|
strict_sameorigin_for_login: When true, prohibits the use of Looker login pages in non-Looker iframes. When false, Looker login pages may be used in non-Looker hosted iframes.
|
|
4281
4442
|
look_filters: When true, filters are enabled on embedded Looks
|
|
4282
4443
|
hide_look_navigation: When true, removes navigation to Looks from embedded dashboards and explores.
|
|
4444
|
+
embed_enabled: True if embedding is licensed for this Looker instance.
|
|
4283
4445
|
"""
|
|
4284
4446
|
|
|
4285
4447
|
domain_allowlist: Optional[Sequence[str]] = None
|
|
@@ -4293,6 +4455,7 @@ class EmbedConfig(model.Model):
|
|
|
4293
4455
|
strict_sameorigin_for_login: Optional[bool] = None
|
|
4294
4456
|
look_filters: Optional[bool] = None
|
|
4295
4457
|
hide_look_navigation: Optional[bool] = None
|
|
4458
|
+
embed_enabled: Optional[bool] = None
|
|
4296
4459
|
|
|
4297
4460
|
def __init__(
|
|
4298
4461
|
self,
|
|
@@ -4307,7 +4470,8 @@ class EmbedConfig(model.Model):
|
|
|
4307
4470
|
embed_content_management: Optional[bool] = None,
|
|
4308
4471
|
strict_sameorigin_for_login: Optional[bool] = None,
|
|
4309
4472
|
look_filters: Optional[bool] = None,
|
|
4310
|
-
hide_look_navigation: Optional[bool] = None
|
|
4473
|
+
hide_look_navigation: Optional[bool] = None,
|
|
4474
|
+
embed_enabled: Optional[bool] = None
|
|
4311
4475
|
):
|
|
4312
4476
|
self.domain_allowlist = domain_allowlist
|
|
4313
4477
|
self.alert_url_allowlist = alert_url_allowlist
|
|
@@ -4320,6 +4484,7 @@ class EmbedConfig(model.Model):
|
|
|
4320
4484
|
self.strict_sameorigin_for_login = strict_sameorigin_for_login
|
|
4321
4485
|
self.look_filters = look_filters
|
|
4322
4486
|
self.hide_look_navigation = hide_look_navigation
|
|
4487
|
+
self.embed_enabled = embed_enabled
|
|
4323
4488
|
|
|
4324
4489
|
|
|
4325
4490
|
@attr.s(auto_attribs=True, init=False)
|
|
@@ -4667,6 +4832,7 @@ class ExternalOauthApplication(model.Model):
|
|
|
4667
4832
|
name: The name of this application. For Snowflake connections, this should be the name of the host database.
|
|
4668
4833
|
client_id: The OAuth Client ID for this application
|
|
4669
4834
|
client_secret: (Write-Only) The OAuth Client Secret for this application
|
|
4835
|
+
tenant_id: The OAuth Tenant ID for this application
|
|
4670
4836
|
dialect_name: The database dialect for this application.
|
|
4671
4837
|
created_at: Creation time for this application
|
|
4672
4838
|
"""
|
|
@@ -4676,6 +4842,7 @@ class ExternalOauthApplication(model.Model):
|
|
|
4676
4842
|
name: Optional[str] = None
|
|
4677
4843
|
client_id: Optional[str] = None
|
|
4678
4844
|
client_secret: Optional[str] = None
|
|
4845
|
+
tenant_id: Optional[str] = None
|
|
4679
4846
|
dialect_name: Optional[str] = None
|
|
4680
4847
|
created_at: Optional[datetime.datetime] = None
|
|
4681
4848
|
|
|
@@ -4687,6 +4854,7 @@ class ExternalOauthApplication(model.Model):
|
|
|
4687
4854
|
name: Optional[str] = None,
|
|
4688
4855
|
client_id: Optional[str] = None,
|
|
4689
4856
|
client_secret: Optional[str] = None,
|
|
4857
|
+
tenant_id: Optional[str] = None,
|
|
4690
4858
|
dialect_name: Optional[str] = None,
|
|
4691
4859
|
created_at: Optional[datetime.datetime] = None
|
|
4692
4860
|
):
|
|
@@ -4695,6 +4863,7 @@ class ExternalOauthApplication(model.Model):
|
|
|
4695
4863
|
self.name = name
|
|
4696
4864
|
self.client_id = client_id
|
|
4697
4865
|
self.client_secret = client_secret
|
|
4866
|
+
self.tenant_id = tenant_id
|
|
4698
4867
|
self.dialect_name = dialect_name
|
|
4699
4868
|
self.created_at = created_at
|
|
4700
4869
|
|
|
@@ -5463,6 +5632,27 @@ class ImportedProject(model.Model):
|
|
|
5463
5632
|
self.is_remote = is_remote
|
|
5464
5633
|
|
|
5465
5634
|
|
|
5635
|
+
@attr.s(auto_attribs=True, init=False)
|
|
5636
|
+
class InstanceConfig(model.Model):
|
|
5637
|
+
"""
|
|
5638
|
+
Attributes:
|
|
5639
|
+
feature_flags: Feature flags enabled on the instance
|
|
5640
|
+
license_features: License features enabled on the instance
|
|
5641
|
+
"""
|
|
5642
|
+
|
|
5643
|
+
feature_flags: Optional[MutableMapping[str, bool]] = None
|
|
5644
|
+
license_features: Optional[MutableMapping[str, bool]] = None
|
|
5645
|
+
|
|
5646
|
+
def __init__(
|
|
5647
|
+
self,
|
|
5648
|
+
*,
|
|
5649
|
+
feature_flags: Optional[MutableMapping[str, bool]] = None,
|
|
5650
|
+
license_features: Optional[MutableMapping[str, bool]] = None
|
|
5651
|
+
):
|
|
5652
|
+
self.feature_flags = feature_flags
|
|
5653
|
+
self.license_features = license_features
|
|
5654
|
+
|
|
5655
|
+
|
|
5466
5656
|
@attr.s(auto_attribs=True, init=False)
|
|
5467
5657
|
class Integration(model.Model):
|
|
5468
5658
|
"""
|
|
@@ -5778,65 +5968,17 @@ InvestigativeContentType.__new__ = model.safe_enum__new__ # type: ignore
|
|
|
5778
5968
|
class JsonBi(model.Model):
|
|
5779
5969
|
"""
|
|
5780
5970
|
Attributes:
|
|
5781
|
-
|
|
5782
|
-
|
|
5783
|
-
pivots: Pivots
|
|
5784
|
-
has_subtotals: If the query has subtotals
|
|
5785
|
-
has_totals: If the query has totals
|
|
5786
|
-
columns_truncated: If the query results hit the maximum column limit and additional columns were truncated
|
|
5787
|
-
filter_expression: Filter expression applied to the query results
|
|
5788
|
-
filters: Filters applied to the query results
|
|
5789
|
-
sql: Raw sql query. Null if user does not have permission to view sql
|
|
5790
|
-
data: Json query results
|
|
5971
|
+
metadata:
|
|
5972
|
+
rows: Json query results
|
|
5791
5973
|
"""
|
|
5792
5974
|
|
|
5793
|
-
|
|
5794
|
-
|
|
5795
|
-
|
|
5796
|
-
has_subtotals: bool
|
|
5797
|
-
has_totals: bool
|
|
5798
|
-
columns_truncated: str
|
|
5799
|
-
filter_expression: str
|
|
5800
|
-
filters: MutableMapping[str, Any]
|
|
5801
|
-
sql: str
|
|
5802
|
-
data: Sequence[str]
|
|
5803
|
-
__annotations__ = {
|
|
5804
|
-
"big_query_metadata": ForwardRef("JsonBiBigQueryMetadata"),
|
|
5805
|
-
"fields": ForwardRef("JsonBiFields"),
|
|
5806
|
-
"pivots": Sequence["JsonBiPivots"],
|
|
5807
|
-
"has_subtotals": bool,
|
|
5808
|
-
"has_totals": bool,
|
|
5809
|
-
"columns_truncated": str,
|
|
5810
|
-
"filter_expression": str,
|
|
5811
|
-
"filters": MutableMapping[str, Any],
|
|
5812
|
-
"sql": str,
|
|
5813
|
-
"data": Sequence[str],
|
|
5814
|
-
}
|
|
5975
|
+
metadata: "JsonBiMetadata"
|
|
5976
|
+
rows: Sequence[str]
|
|
5977
|
+
__annotations__ = {"metadata": ForwardRef("JsonBiMetadata"), "rows": Sequence[str]}
|
|
5815
5978
|
|
|
5816
|
-
def __init__(
|
|
5817
|
-
self
|
|
5818
|
-
|
|
5819
|
-
big_query_metadata: "JsonBiBigQueryMetadata",
|
|
5820
|
-
fields: "JsonBiFields",
|
|
5821
|
-
pivots: Sequence["JsonBiPivots"],
|
|
5822
|
-
has_subtotals: bool,
|
|
5823
|
-
has_totals: bool,
|
|
5824
|
-
columns_truncated: str,
|
|
5825
|
-
filter_expression: str,
|
|
5826
|
-
filters: MutableMapping[str, Any],
|
|
5827
|
-
sql: str,
|
|
5828
|
-
data: Sequence[str]
|
|
5829
|
-
):
|
|
5830
|
-
self.big_query_metadata = big_query_metadata
|
|
5831
|
-
self.fields = fields
|
|
5832
|
-
self.pivots = pivots
|
|
5833
|
-
self.has_subtotals = has_subtotals
|
|
5834
|
-
self.has_totals = has_totals
|
|
5835
|
-
self.columns_truncated = columns_truncated
|
|
5836
|
-
self.filter_expression = filter_expression
|
|
5837
|
-
self.filters = filters
|
|
5838
|
-
self.sql = sql
|
|
5839
|
-
self.data = data
|
|
5979
|
+
def __init__(self, *, metadata: "JsonBiMetadata", rows: Sequence[str]):
|
|
5980
|
+
self.metadata = metadata
|
|
5981
|
+
self.rows = rows
|
|
5840
5982
|
|
|
5841
5983
|
|
|
5842
5984
|
@attr.s(auto_attribs=True, init=False)
|
|
@@ -5923,22 +6065,86 @@ class JsonBiFields(model.Model):
|
|
|
5923
6065
|
dimensions: Dimensions represent a column in a table, or a computed value based on some sort of column manipulation or combination
|
|
5924
6066
|
measures: Measures are similar to aggregate functions in SQL (for example, COUNT, SUM, AVG) and represent information about multiple rows
|
|
5925
6067
|
pivots: Pivots
|
|
6068
|
+
table_calculations: Table Calculations
|
|
5926
6069
|
"""
|
|
5927
6070
|
|
|
5928
6071
|
dimensions: Sequence["JsonBiField"]
|
|
5929
6072
|
measures: Sequence["JsonBiField"]
|
|
5930
6073
|
pivots: Sequence["JsonBiField"]
|
|
6074
|
+
table_calculations: Sequence["JsonBiTableCalc"]
|
|
5931
6075
|
|
|
5932
6076
|
def __init__(
|
|
5933
6077
|
self,
|
|
5934
6078
|
*,
|
|
5935
6079
|
dimensions: Sequence["JsonBiField"],
|
|
5936
6080
|
measures: Sequence["JsonBiField"],
|
|
5937
|
-
pivots: Sequence["JsonBiField"]
|
|
6081
|
+
pivots: Sequence["JsonBiField"],
|
|
6082
|
+
table_calculations: Sequence["JsonBiTableCalc"]
|
|
5938
6083
|
):
|
|
5939
6084
|
self.dimensions = dimensions
|
|
5940
6085
|
self.measures = measures
|
|
5941
6086
|
self.pivots = pivots
|
|
6087
|
+
self.table_calculations = table_calculations
|
|
6088
|
+
|
|
6089
|
+
|
|
6090
|
+
@attr.s(auto_attribs=True, init=False)
|
|
6091
|
+
class JsonBiMetadata(model.Model):
|
|
6092
|
+
"""
|
|
6093
|
+
Attributes:
|
|
6094
|
+
big_query_metadata:
|
|
6095
|
+
fields:
|
|
6096
|
+
pivots: Pivots
|
|
6097
|
+
has_subtotals: If the query has subtotals
|
|
6098
|
+
has_totals: If the query has totals
|
|
6099
|
+
columns_truncated: If the query results hit the maximum column limit and additional columns were truncated
|
|
6100
|
+
filter_expression: Filter expression applied to the query results
|
|
6101
|
+
filters: Filters applied to the query results
|
|
6102
|
+
sql: Raw sql query. Null if user does not have permission to view sql
|
|
6103
|
+
"""
|
|
6104
|
+
|
|
6105
|
+
big_query_metadata: "JsonBiBigQueryMetadata"
|
|
6106
|
+
fields: "JsonBiFields"
|
|
6107
|
+
pivots: Sequence["JsonBiPivots"]
|
|
6108
|
+
has_subtotals: bool
|
|
6109
|
+
has_totals: bool
|
|
6110
|
+
columns_truncated: str
|
|
6111
|
+
filter_expression: str
|
|
6112
|
+
filters: MutableMapping[str, Any]
|
|
6113
|
+
sql: str
|
|
6114
|
+
__annotations__ = {
|
|
6115
|
+
"big_query_metadata": ForwardRef("JsonBiBigQueryMetadata"),
|
|
6116
|
+
"fields": ForwardRef("JsonBiFields"),
|
|
6117
|
+
"pivots": Sequence["JsonBiPivots"],
|
|
6118
|
+
"has_subtotals": bool,
|
|
6119
|
+
"has_totals": bool,
|
|
6120
|
+
"columns_truncated": str,
|
|
6121
|
+
"filter_expression": str,
|
|
6122
|
+
"filters": MutableMapping[str, Any],
|
|
6123
|
+
"sql": str,
|
|
6124
|
+
}
|
|
6125
|
+
|
|
6126
|
+
def __init__(
|
|
6127
|
+
self,
|
|
6128
|
+
*,
|
|
6129
|
+
big_query_metadata: "JsonBiBigQueryMetadata",
|
|
6130
|
+
fields: "JsonBiFields",
|
|
6131
|
+
pivots: Sequence["JsonBiPivots"],
|
|
6132
|
+
has_subtotals: bool,
|
|
6133
|
+
has_totals: bool,
|
|
6134
|
+
columns_truncated: str,
|
|
6135
|
+
filter_expression: str,
|
|
6136
|
+
filters: MutableMapping[str, Any],
|
|
6137
|
+
sql: str
|
|
6138
|
+
):
|
|
6139
|
+
self.big_query_metadata = big_query_metadata
|
|
6140
|
+
self.fields = fields
|
|
6141
|
+
self.pivots = pivots
|
|
6142
|
+
self.has_subtotals = has_subtotals
|
|
6143
|
+
self.has_totals = has_totals
|
|
6144
|
+
self.columns_truncated = columns_truncated
|
|
6145
|
+
self.filter_expression = filter_expression
|
|
6146
|
+
self.filters = filters
|
|
6147
|
+
self.sql = sql
|
|
5942
6148
|
|
|
5943
6149
|
|
|
5944
6150
|
@attr.s(auto_attribs=True, init=False)
|
|
@@ -5970,6 +6176,43 @@ class JsonBiPivots(model.Model):
|
|
|
5970
6176
|
self.is_total = is_total
|
|
5971
6177
|
|
|
5972
6178
|
|
|
6179
|
+
@attr.s(auto_attribs=True, init=False)
|
|
6180
|
+
class JsonBiTableCalc(model.Model):
|
|
6181
|
+
"""
|
|
6182
|
+
Attributes:
|
|
6183
|
+
name: Table Calc Name
|
|
6184
|
+
label: Table Calc Label
|
|
6185
|
+
align: Alignment
|
|
6186
|
+
expression: Evaluated table calculation expression
|
|
6187
|
+
value_format: Value format
|
|
6188
|
+
measure: If table calculation is a measure
|
|
6189
|
+
"""
|
|
6190
|
+
|
|
6191
|
+
name: str
|
|
6192
|
+
label: str
|
|
6193
|
+
align: str
|
|
6194
|
+
expression: str
|
|
6195
|
+
value_format: str
|
|
6196
|
+
measure: bool
|
|
6197
|
+
|
|
6198
|
+
def __init__(
|
|
6199
|
+
self,
|
|
6200
|
+
*,
|
|
6201
|
+
name: str,
|
|
6202
|
+
label: str,
|
|
6203
|
+
align: str,
|
|
6204
|
+
expression: str,
|
|
6205
|
+
value_format: str,
|
|
6206
|
+
measure: bool
|
|
6207
|
+
):
|
|
6208
|
+
self.name = name
|
|
6209
|
+
self.label = label
|
|
6210
|
+
self.align = align
|
|
6211
|
+
self.expression = expression
|
|
6212
|
+
self.value_format = value_format
|
|
6213
|
+
self.measure = measure
|
|
6214
|
+
|
|
6215
|
+
|
|
5973
6216
|
@attr.s(auto_attribs=True, init=False)
|
|
5974
6217
|
class LDAPConfig(model.Model):
|
|
5975
6218
|
"""
|
|
@@ -6543,6 +6786,7 @@ class Look(model.Model):
|
|
|
6543
6786
|
folder:
|
|
6544
6787
|
folder_id: Folder Id
|
|
6545
6788
|
updated_at: Time that the Look was updated.
|
|
6789
|
+
user_name: Name of User that created the look.
|
|
6546
6790
|
view_count: Number of times viewed in the Looker web UI
|
|
6547
6791
|
"""
|
|
6548
6792
|
|
|
@@ -6575,6 +6819,7 @@ class Look(model.Model):
|
|
|
6575
6819
|
folder: Optional["FolderBase"] = None
|
|
6576
6820
|
folder_id: Optional[str] = None
|
|
6577
6821
|
updated_at: Optional[datetime.datetime] = None
|
|
6822
|
+
user_name: Optional[str] = None
|
|
6578
6823
|
view_count: Optional[int] = None
|
|
6579
6824
|
|
|
6580
6825
|
def __init__(
|
|
@@ -6609,6 +6854,7 @@ class Look(model.Model):
|
|
|
6609
6854
|
folder: Optional["FolderBase"] = None,
|
|
6610
6855
|
folder_id: Optional[str] = None,
|
|
6611
6856
|
updated_at: Optional[datetime.datetime] = None,
|
|
6857
|
+
user_name: Optional[str] = None,
|
|
6612
6858
|
view_count: Optional[int] = None
|
|
6613
6859
|
):
|
|
6614
6860
|
self.can = can
|
|
@@ -6640,6 +6886,7 @@ class Look(model.Model):
|
|
|
6640
6886
|
self.folder = folder
|
|
6641
6887
|
self.folder_id = folder_id
|
|
6642
6888
|
self.updated_at = updated_at
|
|
6889
|
+
self.user_name = user_name
|
|
6643
6890
|
self.view_count = view_count
|
|
6644
6891
|
|
|
6645
6892
|
|
|
@@ -7679,6 +7926,7 @@ class LookWithDashboards(model.Model):
|
|
|
7679
7926
|
folder:
|
|
7680
7927
|
folder_id: Folder Id
|
|
7681
7928
|
updated_at: Time that the Look was updated.
|
|
7929
|
+
user_name: Name of User that created the look.
|
|
7682
7930
|
view_count: Number of times viewed in the Looker web UI
|
|
7683
7931
|
dashboards: Dashboards
|
|
7684
7932
|
"""
|
|
@@ -7712,6 +7960,7 @@ class LookWithDashboards(model.Model):
|
|
|
7712
7960
|
folder: Optional["FolderBase"] = None
|
|
7713
7961
|
folder_id: Optional[str] = None
|
|
7714
7962
|
updated_at: Optional[datetime.datetime] = None
|
|
7963
|
+
user_name: Optional[str] = None
|
|
7715
7964
|
view_count: Optional[int] = None
|
|
7716
7965
|
dashboards: Optional[Sequence["DashboardBase"]] = None
|
|
7717
7966
|
|
|
@@ -7747,6 +7996,7 @@ class LookWithDashboards(model.Model):
|
|
|
7747
7996
|
folder: Optional["FolderBase"] = None,
|
|
7748
7997
|
folder_id: Optional[str] = None,
|
|
7749
7998
|
updated_at: Optional[datetime.datetime] = None,
|
|
7999
|
+
user_name: Optional[str] = None,
|
|
7750
8000
|
view_count: Optional[int] = None,
|
|
7751
8001
|
dashboards: Optional[Sequence["DashboardBase"]] = None
|
|
7752
8002
|
):
|
|
@@ -7779,6 +8029,7 @@ class LookWithDashboards(model.Model):
|
|
|
7779
8029
|
self.folder = folder
|
|
7780
8030
|
self.folder_id = folder_id
|
|
7781
8031
|
self.updated_at = updated_at
|
|
8032
|
+
self.user_name = user_name
|
|
7782
8033
|
self.view_count = view_count
|
|
7783
8034
|
self.dashboards = dashboards
|
|
7784
8035
|
|
|
@@ -7816,6 +8067,7 @@ class LookWithQuery(model.Model):
|
|
|
7816
8067
|
folder:
|
|
7817
8068
|
folder_id: Folder Id
|
|
7818
8069
|
updated_at: Time that the Look was updated.
|
|
8070
|
+
user_name: Name of User that created the look.
|
|
7819
8071
|
view_count: Number of times viewed in the Looker web UI
|
|
7820
8072
|
query:
|
|
7821
8073
|
url: Url
|
|
@@ -7850,6 +8102,7 @@ class LookWithQuery(model.Model):
|
|
|
7850
8102
|
folder: Optional["FolderBase"] = None
|
|
7851
8103
|
folder_id: Optional[str] = None
|
|
7852
8104
|
updated_at: Optional[datetime.datetime] = None
|
|
8105
|
+
user_name: Optional[str] = None
|
|
7853
8106
|
view_count: Optional[int] = None
|
|
7854
8107
|
query: Optional["Query"] = None
|
|
7855
8108
|
url: Optional[str] = None
|
|
@@ -7886,6 +8139,7 @@ class LookWithQuery(model.Model):
|
|
|
7886
8139
|
folder: Optional["FolderBase"] = None,
|
|
7887
8140
|
folder_id: Optional[str] = None,
|
|
7888
8141
|
updated_at: Optional[datetime.datetime] = None,
|
|
8142
|
+
user_name: Optional[str] = None,
|
|
7889
8143
|
view_count: Optional[int] = None,
|
|
7890
8144
|
query: Optional["Query"] = None,
|
|
7891
8145
|
url: Optional[str] = None
|
|
@@ -7919,6 +8173,7 @@ class LookWithQuery(model.Model):
|
|
|
7919
8173
|
self.folder = folder
|
|
7920
8174
|
self.folder_id = folder_id
|
|
7921
8175
|
self.updated_at = updated_at
|
|
8176
|
+
self.user_name = user_name
|
|
7922
8177
|
self.view_count = view_count
|
|
7923
8178
|
self.query = query
|
|
7924
8179
|
self.url = url
|
|
@@ -9227,10 +9482,10 @@ class Query(model.Model):
|
|
|
9227
9482
|
fields: Fields
|
|
9228
9483
|
pivots: Pivots
|
|
9229
9484
|
fill_fields: Fill Fields
|
|
9230
|
-
filters: Filters
|
|
9485
|
+
filters: Filters will contain data pertaining to complex filters that do not contain "or" conditions. When "or" conditions are present, filter data will be found on the `filter_expression` property.
|
|
9231
9486
|
filter_expression: Filter Expression
|
|
9232
9487
|
sorts: Sorting for the query results. Use the format `["view.field", ...]` to sort on fields in ascending order. Use the format `["view.field desc", ...]` to sort on fields in descending order. Use `["__UNSORTED__"]` (2 underscores before and after) to disable sorting entirely. Empty sorts `[]` will trigger a default sort.
|
|
9233
|
-
limit:
|
|
9488
|
+
limit: Row limit. To download unlimited results, set the limit to -1 (negative one).
|
|
9234
9489
|
column_limit: Column Limit
|
|
9235
9490
|
total: Total
|
|
9236
9491
|
row_total: Raw Total
|
|
@@ -9333,55 +9588,6 @@ class Query(model.Model):
|
|
|
9333
9588
|
self.has_table_calculations = has_table_calculations
|
|
9334
9589
|
|
|
9335
9590
|
|
|
9336
|
-
@attr.s(auto_attribs=True, init=False)
|
|
9337
|
-
class QueryFormats(model.Model):
|
|
9338
|
-
"""
|
|
9339
|
-
Attributes:
|
|
9340
|
-
json_bi:
|
|
9341
|
-
json:
|
|
9342
|
-
json_detail:
|
|
9343
|
-
csv:
|
|
9344
|
-
txt:
|
|
9345
|
-
html:
|
|
9346
|
-
md:
|
|
9347
|
-
xlsx:
|
|
9348
|
-
sql:
|
|
9349
|
-
"""
|
|
9350
|
-
|
|
9351
|
-
json_bi: Optional["JsonBi"] = None
|
|
9352
|
-
json: Optional[str] = None
|
|
9353
|
-
json_detail: Optional[str] = None
|
|
9354
|
-
csv: Optional[str] = None
|
|
9355
|
-
txt: Optional[str] = None
|
|
9356
|
-
html: Optional[str] = None
|
|
9357
|
-
md: Optional[str] = None
|
|
9358
|
-
xlsx: Optional[str] = None
|
|
9359
|
-
sql: Optional[str] = None
|
|
9360
|
-
|
|
9361
|
-
def __init__(
|
|
9362
|
-
self,
|
|
9363
|
-
*,
|
|
9364
|
-
json_bi: Optional["JsonBi"] = None,
|
|
9365
|
-
json: Optional[str] = None,
|
|
9366
|
-
json_detail: Optional[str] = None,
|
|
9367
|
-
csv: Optional[str] = None,
|
|
9368
|
-
txt: Optional[str] = None,
|
|
9369
|
-
html: Optional[str] = None,
|
|
9370
|
-
md: Optional[str] = None,
|
|
9371
|
-
xlsx: Optional[str] = None,
|
|
9372
|
-
sql: Optional[str] = None
|
|
9373
|
-
):
|
|
9374
|
-
self.json_bi = json_bi
|
|
9375
|
-
self.json = json
|
|
9376
|
-
self.json_detail = json_detail
|
|
9377
|
-
self.csv = csv
|
|
9378
|
-
self.txt = txt
|
|
9379
|
-
self.html = html
|
|
9380
|
-
self.md = md
|
|
9381
|
-
self.xlsx = xlsx
|
|
9382
|
-
self.sql = sql
|
|
9383
|
-
|
|
9384
|
-
|
|
9385
9591
|
@attr.s(auto_attribs=True, init=False)
|
|
9386
9592
|
class QueryTask(model.Model):
|
|
9387
9593
|
"""
|
|
@@ -9864,6 +10070,7 @@ class RunningQueries(model.Model):
|
|
|
9864
10070
|
status: Status description
|
|
9865
10071
|
runtime: Number of seconds elapsed running the Query
|
|
9866
10072
|
sql: SQL text of the query as run
|
|
10073
|
+
sql_interface_sql: SQL text of the SQL Interface query as run
|
|
9867
10074
|
"""
|
|
9868
10075
|
|
|
9869
10076
|
can: Optional[MutableMapping[str, bool]] = None
|
|
@@ -9887,6 +10094,7 @@ class RunningQueries(model.Model):
|
|
|
9887
10094
|
status: Optional[str] = None
|
|
9888
10095
|
runtime: Optional[float] = None
|
|
9889
10096
|
sql: Optional[str] = None
|
|
10097
|
+
sql_interface_sql: Optional[str] = None
|
|
9890
10098
|
|
|
9891
10099
|
def __init__(
|
|
9892
10100
|
self,
|
|
@@ -9911,7 +10119,8 @@ class RunningQueries(model.Model):
|
|
|
9911
10119
|
message: Optional[str] = None,
|
|
9912
10120
|
status: Optional[str] = None,
|
|
9913
10121
|
runtime: Optional[float] = None,
|
|
9914
|
-
sql: Optional[str] = None
|
|
10122
|
+
sql: Optional[str] = None,
|
|
10123
|
+
sql_interface_sql: Optional[str] = None
|
|
9915
10124
|
):
|
|
9916
10125
|
self.can = can
|
|
9917
10126
|
self.id = id
|
|
@@ -9934,6 +10143,7 @@ class RunningQueries(model.Model):
|
|
|
9934
10143
|
self.status = status
|
|
9935
10144
|
self.runtime = runtime
|
|
9936
10145
|
self.sql = sql
|
|
10146
|
+
self.sql_interface_sql = sql_interface_sql
|
|
9937
10147
|
|
|
9938
10148
|
|
|
9939
10149
|
@attr.s(auto_attribs=True, init=False)
|
|
@@ -10262,7 +10472,6 @@ class ScheduledPlan(model.Model):
|
|
|
10262
10472
|
crontab: Vixie-Style crontab specification when to run
|
|
10263
10473
|
datagroup: Name of a datagroup; if specified will run when datagroup triggered (can't be used with cron string)
|
|
10264
10474
|
timezone: Timezone for interpreting the specified crontab (default is Looker instance timezone)
|
|
10265
|
-
query_id: Query id
|
|
10266
10475
|
scheduled_plan_destination: Scheduled plan destinations
|
|
10267
10476
|
run_once: Whether the plan in question should only be run once (usually for testing)
|
|
10268
10477
|
include_links: Whether links back to Looker should be included in this ScheduledPlan
|
|
@@ -10276,6 +10485,7 @@ class ScheduledPlan(model.Model):
|
|
|
10276
10485
|
color_theme: Color scheme of the dashboard if applicable
|
|
10277
10486
|
long_tables: Whether or not to expand table vis to full length
|
|
10278
10487
|
inline_table_width: The pixel width at which we render the inline table visualizations
|
|
10488
|
+
query_id: Query id
|
|
10279
10489
|
id: Unique Id
|
|
10280
10490
|
created_at: Date and time when ScheduledPlan was created
|
|
10281
10491
|
updated_at: Date and time when ScheduledPlan was last updated
|
|
@@ -10302,7 +10512,6 @@ class ScheduledPlan(model.Model):
|
|
|
10302
10512
|
crontab: Optional[str] = None
|
|
10303
10513
|
datagroup: Optional[str] = None
|
|
10304
10514
|
timezone: Optional[str] = None
|
|
10305
|
-
query_id: Optional[str] = None
|
|
10306
10515
|
scheduled_plan_destination: Optional[Sequence["ScheduledPlanDestination"]] = None
|
|
10307
10516
|
run_once: Optional[bool] = None
|
|
10308
10517
|
include_links: Optional[bool] = None
|
|
@@ -10316,6 +10525,7 @@ class ScheduledPlan(model.Model):
|
|
|
10316
10525
|
color_theme: Optional[str] = None
|
|
10317
10526
|
long_tables: Optional[bool] = None
|
|
10318
10527
|
inline_table_width: Optional[int] = None
|
|
10528
|
+
query_id: Optional[str] = None
|
|
10319
10529
|
id: Optional[str] = None
|
|
10320
10530
|
created_at: Optional[datetime.datetime] = None
|
|
10321
10531
|
updated_at: Optional[datetime.datetime] = None
|
|
@@ -10344,7 +10554,6 @@ class ScheduledPlan(model.Model):
|
|
|
10344
10554
|
crontab: Optional[str] = None,
|
|
10345
10555
|
datagroup: Optional[str] = None,
|
|
10346
10556
|
timezone: Optional[str] = None,
|
|
10347
|
-
query_id: Optional[str] = None,
|
|
10348
10557
|
scheduled_plan_destination: Optional[
|
|
10349
10558
|
Sequence["ScheduledPlanDestination"]
|
|
10350
10559
|
] = None,
|
|
@@ -10360,6 +10569,7 @@ class ScheduledPlan(model.Model):
|
|
|
10360
10569
|
color_theme: Optional[str] = None,
|
|
10361
10570
|
long_tables: Optional[bool] = None,
|
|
10362
10571
|
inline_table_width: Optional[int] = None,
|
|
10572
|
+
query_id: Optional[str] = None,
|
|
10363
10573
|
id: Optional[str] = None,
|
|
10364
10574
|
created_at: Optional[datetime.datetime] = None,
|
|
10365
10575
|
updated_at: Optional[datetime.datetime] = None,
|
|
@@ -10385,7 +10595,6 @@ class ScheduledPlan(model.Model):
|
|
|
10385
10595
|
self.crontab = crontab
|
|
10386
10596
|
self.datagroup = datagroup
|
|
10387
10597
|
self.timezone = timezone
|
|
10388
|
-
self.query_id = query_id
|
|
10389
10598
|
self.scheduled_plan_destination = scheduled_plan_destination
|
|
10390
10599
|
self.run_once = run_once
|
|
10391
10600
|
self.include_links = include_links
|
|
@@ -10399,6 +10608,7 @@ class ScheduledPlan(model.Model):
|
|
|
10399
10608
|
self.color_theme = color_theme
|
|
10400
10609
|
self.long_tables = long_tables
|
|
10401
10610
|
self.inline_table_width = inline_table_width
|
|
10611
|
+
self.query_id = query_id
|
|
10402
10612
|
self.id = id
|
|
10403
10613
|
self.created_at = created_at
|
|
10404
10614
|
self.updated_at = updated_at
|
|
@@ -10757,6 +10967,7 @@ class SessionConfig(model.Model):
|
|
|
10757
10967
|
class Setting(model.Model):
|
|
10758
10968
|
"""
|
|
10759
10969
|
Attributes:
|
|
10970
|
+
instance_config:
|
|
10760
10971
|
extension_framework_enabled: Toggle extension framework on or off
|
|
10761
10972
|
extension_load_url_enabled: (DEPRECATED) Toggle extension load url on or off. Do not use. This is temporary setting that will eventually become a noop and subsequently deleted.
|
|
10762
10973
|
marketplace_auto_install_enabled: (DEPRECATED) Toggle marketplace auto install on or off. Deprecated - do not use. Auto install can now be enabled via marketplace automation settings
|
|
@@ -10778,8 +10989,12 @@ class Setting(model.Model):
|
|
|
10778
10989
|
embed_config:
|
|
10779
10990
|
login_notification_enabled: Login notification enabled
|
|
10780
10991
|
login_notification_text: Login notification text
|
|
10992
|
+
dashboard_auto_refresh_restriction: Toggle Dashboard Auto Refresh restriction
|
|
10993
|
+
dashboard_auto_refresh_minimum_interval: Minimum time interval for dashboard element automatic refresh. Examples: (30 seconds, 1 minute)
|
|
10994
|
+
managed_certificate_uri: URI pointing to the location of a private root certificate in Secret Manager
|
|
10781
10995
|
"""
|
|
10782
10996
|
|
|
10997
|
+
instance_config: Optional["InstanceConfig"] = None
|
|
10783
10998
|
extension_framework_enabled: Optional[bool] = None
|
|
10784
10999
|
extension_load_url_enabled: Optional[bool] = None
|
|
10785
11000
|
marketplace_auto_install_enabled: Optional[bool] = None
|
|
@@ -10801,10 +11016,14 @@ class Setting(model.Model):
|
|
|
10801
11016
|
embed_config: Optional["EmbedConfig"] = None
|
|
10802
11017
|
login_notification_enabled: Optional[bool] = None
|
|
10803
11018
|
login_notification_text: Optional[str] = None
|
|
11019
|
+
dashboard_auto_refresh_restriction: Optional[bool] = None
|
|
11020
|
+
dashboard_auto_refresh_minimum_interval: Optional[str] = None
|
|
11021
|
+
managed_certificate_uri: Optional[str] = None
|
|
10804
11022
|
|
|
10805
11023
|
def __init__(
|
|
10806
11024
|
self,
|
|
10807
11025
|
*,
|
|
11026
|
+
instance_config: Optional["InstanceConfig"] = None,
|
|
10808
11027
|
extension_framework_enabled: Optional[bool] = None,
|
|
10809
11028
|
extension_load_url_enabled: Optional[bool] = None,
|
|
10810
11029
|
marketplace_auto_install_enabled: Optional[bool] = None,
|
|
@@ -10825,8 +11044,12 @@ class Setting(model.Model):
|
|
|
10825
11044
|
embed_enabled: Optional[bool] = None,
|
|
10826
11045
|
embed_config: Optional["EmbedConfig"] = None,
|
|
10827
11046
|
login_notification_enabled: Optional[bool] = None,
|
|
10828
|
-
login_notification_text: Optional[str] = None
|
|
11047
|
+
login_notification_text: Optional[str] = None,
|
|
11048
|
+
dashboard_auto_refresh_restriction: Optional[bool] = None,
|
|
11049
|
+
dashboard_auto_refresh_minimum_interval: Optional[str] = None,
|
|
11050
|
+
managed_certificate_uri: Optional[str] = None
|
|
10829
11051
|
):
|
|
11052
|
+
self.instance_config = instance_config
|
|
10830
11053
|
self.extension_framework_enabled = extension_framework_enabled
|
|
10831
11054
|
self.extension_load_url_enabled = extension_load_url_enabled
|
|
10832
11055
|
self.marketplace_auto_install_enabled = marketplace_auto_install_enabled
|
|
@@ -10848,6 +11071,11 @@ class Setting(model.Model):
|
|
|
10848
11071
|
self.embed_config = embed_config
|
|
10849
11072
|
self.login_notification_enabled = login_notification_enabled
|
|
10850
11073
|
self.login_notification_text = login_notification_text
|
|
11074
|
+
self.dashboard_auto_refresh_restriction = dashboard_auto_refresh_restriction
|
|
11075
|
+
self.dashboard_auto_refresh_minimum_interval = (
|
|
11076
|
+
dashboard_auto_refresh_minimum_interval
|
|
11077
|
+
)
|
|
11078
|
+
self.managed_certificate_uri = managed_certificate_uri
|
|
10851
11079
|
|
|
10852
11080
|
|
|
10853
11081
|
@attr.s(auto_attribs=True, init=False)
|
|
@@ -11773,7 +12001,7 @@ class User(model.Model):
|
|
|
11773
12001
|
looker_versions: Array of strings representing the Looker versions that this user has used (this only goes back as far as '3.54.0')
|
|
11774
12002
|
models_dir_validated: User's dev workspace has been checked for presence of applicable production projects
|
|
11775
12003
|
personal_folder_id: ID of user's personal folder
|
|
11776
|
-
presumed_looker_employee: User is identified as an employee of Looker
|
|
12004
|
+
presumed_looker_employee: (DEPRECATED) User is identified as an employee of Looker
|
|
11777
12005
|
role_ids: Array of ids of the roles for this user
|
|
11778
12006
|
sessions: Active sessions
|
|
11779
12007
|
ui_state: Per user dictionary of undocumented state information owned by the Looker UI.
|
|
@@ -11783,7 +12011,6 @@ class User(model.Model):
|
|
|
11783
12011
|
allow_normal_group_membership: User can be a direct member of a normal Looker group.
|
|
11784
12012
|
allow_roles_from_normal_groups: User can inherit roles from a normal Looker group.
|
|
11785
12013
|
embed_group_folder_id: (Embed only) ID of user's group folder based on the external_group_id optionally specified during embed user login
|
|
11786
|
-
is_iam_admin: User is an IAM Admin - only available in Looker (Google Cloud core)
|
|
11787
12014
|
url: Link to get this item
|
|
11788
12015
|
"""
|
|
11789
12016
|
|
|
@@ -11822,7 +12049,6 @@ class User(model.Model):
|
|
|
11822
12049
|
allow_normal_group_membership: Optional[bool] = None
|
|
11823
12050
|
allow_roles_from_normal_groups: Optional[bool] = None
|
|
11824
12051
|
embed_group_folder_id: Optional[str] = None
|
|
11825
|
-
is_iam_admin: Optional[bool] = None
|
|
11826
12052
|
url: Optional[str] = None
|
|
11827
12053
|
|
|
11828
12054
|
def __init__(
|
|
@@ -11863,7 +12089,6 @@ class User(model.Model):
|
|
|
11863
12089
|
allow_normal_group_membership: Optional[bool] = None,
|
|
11864
12090
|
allow_roles_from_normal_groups: Optional[bool] = None,
|
|
11865
12091
|
embed_group_folder_id: Optional[str] = None,
|
|
11866
|
-
is_iam_admin: Optional[bool] = None,
|
|
11867
12092
|
url: Optional[str] = None
|
|
11868
12093
|
):
|
|
11869
12094
|
self.can = can
|
|
@@ -11901,7 +12126,6 @@ class User(model.Model):
|
|
|
11901
12126
|
self.allow_normal_group_membership = allow_normal_group_membership
|
|
11902
12127
|
self.allow_roles_from_normal_groups = allow_roles_from_normal_groups
|
|
11903
12128
|
self.embed_group_folder_id = embed_group_folder_id
|
|
11904
|
-
self.is_iam_admin = is_iam_admin
|
|
11905
12129
|
self.url = url
|
|
11906
12130
|
|
|
11907
12131
|
|
|
@@ -12916,7 +13140,7 @@ class WriteCreateQueryTask(model.Model):
|
|
|
12916
13140
|
class WriteCredentialsEmail(model.Model):
|
|
12917
13141
|
"""
|
|
12918
13142
|
Dynamic writeable type for CredentialsEmail removes:
|
|
12919
|
-
can, created_at, user_id, is_disabled, logged_in_at, password_reset_url, account_setup_url, type, url, user_url
|
|
13143
|
+
can, created_at, user_id, is_disabled, logged_in_at, password_reset_url, account_setup_url, password_reset_url_expired, account_setup_url_expired, type, url, user_url
|
|
12920
13144
|
|
|
12921
13145
|
Attributes:
|
|
12922
13146
|
email: EMail address used for user login
|
|
@@ -13082,7 +13306,7 @@ class WriteDashboardElement(model.Model):
|
|
|
13082
13306
|
body_text: Text tile body text
|
|
13083
13307
|
dashboard_id: Id of Dashboard
|
|
13084
13308
|
look: Dynamic writeable type for LookWithQuery removes:
|
|
13085
|
-
can, content_metadata_id, id, content_favorite_id, created_at, deleted_at, deleter_id, embed_url, excel_file_url, favorite_count, google_spreadsheet_formula, image_embed_url, last_accessed_at, last_updater_id, last_viewed_at, model, public_slug, public_url, short_url, updated_at, view_count, url
|
|
13309
|
+
can, content_metadata_id, id, content_favorite_id, created_at, deleted_at, deleter_id, embed_url, excel_file_url, favorite_count, google_spreadsheet_formula, image_embed_url, last_accessed_at, last_updater_id, last_viewed_at, model, public_slug, public_url, short_url, updated_at, user_name, view_count, url
|
|
13086
13310
|
look_id: Id Of Look
|
|
13087
13311
|
merge_result_id: ID of merge result
|
|
13088
13312
|
note_display: Note Display
|
|
@@ -13359,7 +13583,7 @@ class WriteDatagroup(model.Model):
|
|
|
13359
13583
|
class WriteDBConnection(model.Model):
|
|
13360
13584
|
"""
|
|
13361
13585
|
Dynamic writeable type for DBConnection removes:
|
|
13362
|
-
can, dialect, snippets, pdts_enabled, uses_oauth, supports_data_studio_link, created_at, user_id, example, last_regen_at, last_reap_at, managed
|
|
13586
|
+
can, dialect, snippets, pdts_enabled, 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
|
|
13363
13587
|
|
|
13364
13588
|
Attributes:
|
|
13365
13589
|
name: Name of the connection. Also used as the unique identifier
|
|
@@ -13374,10 +13598,13 @@ class WriteDBConnection(model.Model):
|
|
|
13374
13598
|
query_timezone: Timezone to use in queries
|
|
13375
13599
|
schema: Schema name
|
|
13376
13600
|
max_connections: Maximum number of concurrent connection to use
|
|
13601
|
+
max_queries: Maximum number of concurrent queries to begin on this connection
|
|
13602
|
+
max_queries_per_user: Maximum number of concurrent queries per user to begin on this connection
|
|
13377
13603
|
max_billing_gigabytes: Maximum size of query in GBs (BigQuery only, can be a user_attribute name)
|
|
13378
13604
|
ssl: Use SSL/TLS when connecting to server
|
|
13379
13605
|
verify_ssl: Verify the SSL
|
|
13380
13606
|
tmp_db_name: Name of temporary database (if used)
|
|
13607
|
+
tmp_db_host: Name of temporary host (if used)
|
|
13381
13608
|
jdbc_additional_params: Additional params to add to JDBC connection string
|
|
13382
13609
|
pool_timeout: Connection Pool Timeout, in seconds
|
|
13383
13610
|
dialect_name: (Read/Write) SQL Dialect name
|
|
@@ -13396,8 +13623,13 @@ class WriteDBConnection(model.Model):
|
|
|
13396
13623
|
disable_context_comment: When disable_context_comment is true comment will not be added to SQL
|
|
13397
13624
|
oauth_application_id: An External OAuth Application to use for authenticating to the database
|
|
13398
13625
|
always_retry_failed_builds: When true, error PDTs will be retried every regenerator cycle
|
|
13626
|
+
uses_application_default_credentials: Whether the connection should authenticate with the Application Default Credentials of the host environment (limited to GCP and certain dialects).
|
|
13627
|
+
impersonated_service_account: An alternative Service Account to use for querying datasets (used primarily with `uses_application_default_credentials`) (limited to GCP and certain dialects).
|
|
13399
13628
|
cost_estimate_enabled: When true, query cost estimate will be displayed in explore.
|
|
13400
13629
|
pdt_api_control_enabled: PDT builds on this connection can be kicked off and cancelled via API.
|
|
13630
|
+
connection_pooling: Enable database connection pooling.
|
|
13631
|
+
bq_storage_project_id: The project id of the default BigQuery storage project.
|
|
13632
|
+
bq_roles_verified: When true, represents that all project roles have been verified.
|
|
13401
13633
|
"""
|
|
13402
13634
|
|
|
13403
13635
|
name: Optional[str] = None
|
|
@@ -13412,10 +13644,13 @@ class WriteDBConnection(model.Model):
|
|
|
13412
13644
|
query_timezone: Optional[str] = None
|
|
13413
13645
|
schema: Optional[str] = None
|
|
13414
13646
|
max_connections: Optional[int] = None
|
|
13647
|
+
max_queries: Optional[int] = None
|
|
13648
|
+
max_queries_per_user: Optional[int] = None
|
|
13415
13649
|
max_billing_gigabytes: Optional[str] = None
|
|
13416
13650
|
ssl: Optional[bool] = None
|
|
13417
13651
|
verify_ssl: Optional[bool] = None
|
|
13418
13652
|
tmp_db_name: Optional[str] = None
|
|
13653
|
+
tmp_db_host: Optional[str] = None
|
|
13419
13654
|
jdbc_additional_params: Optional[str] = None
|
|
13420
13655
|
pool_timeout: Optional[int] = None
|
|
13421
13656
|
dialect_name: Optional[str] = None
|
|
@@ -13433,8 +13668,13 @@ class WriteDBConnection(model.Model):
|
|
|
13433
13668
|
disable_context_comment: Optional[bool] = None
|
|
13434
13669
|
oauth_application_id: Optional[str] = None
|
|
13435
13670
|
always_retry_failed_builds: Optional[bool] = None
|
|
13671
|
+
uses_application_default_credentials: Optional[bool] = None
|
|
13672
|
+
impersonated_service_account: Optional[str] = None
|
|
13436
13673
|
cost_estimate_enabled: Optional[bool] = None
|
|
13437
13674
|
pdt_api_control_enabled: Optional[bool] = None
|
|
13675
|
+
connection_pooling: Optional[bool] = None
|
|
13676
|
+
bq_storage_project_id: Optional[str] = None
|
|
13677
|
+
bq_roles_verified: Optional[bool] = None
|
|
13438
13678
|
|
|
13439
13679
|
def __init__(
|
|
13440
13680
|
self,
|
|
@@ -13451,10 +13691,13 @@ class WriteDBConnection(model.Model):
|
|
|
13451
13691
|
query_timezone: Optional[str] = None,
|
|
13452
13692
|
schema: Optional[str] = None,
|
|
13453
13693
|
max_connections: Optional[int] = None,
|
|
13694
|
+
max_queries: Optional[int] = None,
|
|
13695
|
+
max_queries_per_user: Optional[int] = None,
|
|
13454
13696
|
max_billing_gigabytes: Optional[str] = None,
|
|
13455
13697
|
ssl: Optional[bool] = None,
|
|
13456
13698
|
verify_ssl: Optional[bool] = None,
|
|
13457
13699
|
tmp_db_name: Optional[str] = None,
|
|
13700
|
+
tmp_db_host: Optional[str] = None,
|
|
13458
13701
|
jdbc_additional_params: Optional[str] = None,
|
|
13459
13702
|
pool_timeout: Optional[int] = None,
|
|
13460
13703
|
dialect_name: Optional[str] = None,
|
|
@@ -13472,8 +13715,13 @@ class WriteDBConnection(model.Model):
|
|
|
13472
13715
|
disable_context_comment: Optional[bool] = None,
|
|
13473
13716
|
oauth_application_id: Optional[str] = None,
|
|
13474
13717
|
always_retry_failed_builds: Optional[bool] = None,
|
|
13718
|
+
uses_application_default_credentials: Optional[bool] = None,
|
|
13719
|
+
impersonated_service_account: Optional[str] = None,
|
|
13475
13720
|
cost_estimate_enabled: Optional[bool] = None,
|
|
13476
|
-
pdt_api_control_enabled: Optional[bool] = None
|
|
13721
|
+
pdt_api_control_enabled: Optional[bool] = None,
|
|
13722
|
+
connection_pooling: Optional[bool] = None,
|
|
13723
|
+
bq_storage_project_id: Optional[str] = None,
|
|
13724
|
+
bq_roles_verified: Optional[bool] = None
|
|
13477
13725
|
):
|
|
13478
13726
|
self.name = name
|
|
13479
13727
|
self.host = host
|
|
@@ -13487,10 +13735,13 @@ class WriteDBConnection(model.Model):
|
|
|
13487
13735
|
self.query_timezone = query_timezone
|
|
13488
13736
|
self.schema = schema
|
|
13489
13737
|
self.max_connections = max_connections
|
|
13738
|
+
self.max_queries = max_queries
|
|
13739
|
+
self.max_queries_per_user = max_queries_per_user
|
|
13490
13740
|
self.max_billing_gigabytes = max_billing_gigabytes
|
|
13491
13741
|
self.ssl = ssl
|
|
13492
13742
|
self.verify_ssl = verify_ssl
|
|
13493
13743
|
self.tmp_db_name = tmp_db_name
|
|
13744
|
+
self.tmp_db_host = tmp_db_host
|
|
13494
13745
|
self.jdbc_additional_params = jdbc_additional_params
|
|
13495
13746
|
self.pool_timeout = pool_timeout
|
|
13496
13747
|
self.dialect_name = dialect_name
|
|
@@ -13508,8 +13759,13 @@ class WriteDBConnection(model.Model):
|
|
|
13508
13759
|
self.disable_context_comment = disable_context_comment
|
|
13509
13760
|
self.oauth_application_id = oauth_application_id
|
|
13510
13761
|
self.always_retry_failed_builds = always_retry_failed_builds
|
|
13762
|
+
self.uses_application_default_credentials = uses_application_default_credentials
|
|
13763
|
+
self.impersonated_service_account = impersonated_service_account
|
|
13511
13764
|
self.cost_estimate_enabled = cost_estimate_enabled
|
|
13512
13765
|
self.pdt_api_control_enabled = pdt_api_control_enabled
|
|
13766
|
+
self.connection_pooling = connection_pooling
|
|
13767
|
+
self.bq_storage_project_id = bq_storage_project_id
|
|
13768
|
+
self.bq_roles_verified = bq_roles_verified
|
|
13513
13769
|
|
|
13514
13770
|
|
|
13515
13771
|
@attr.s(auto_attribs=True, init=False)
|
|
@@ -13572,6 +13828,66 @@ class WriteDBConnectionOverride(model.Model):
|
|
|
13572
13828
|
self.after_connect_statements = after_connect_statements
|
|
13573
13829
|
|
|
13574
13830
|
|
|
13831
|
+
@attr.s(auto_attribs=True, init=False)
|
|
13832
|
+
class WriteEmbedConfig(model.Model):
|
|
13833
|
+
"""
|
|
13834
|
+
Dynamic writeable type for EmbedConfig removes:
|
|
13835
|
+
embed_enabled
|
|
13836
|
+
|
|
13837
|
+
Attributes:
|
|
13838
|
+
domain_allowlist: List of domains to allow for embedding
|
|
13839
|
+
alert_url_allowlist: List of base urls to allow for alert/schedule
|
|
13840
|
+
alert_url_param_owner: Owner of who defines the alert/schedule params on the base url
|
|
13841
|
+
alert_url_label: Label for the alert/schedule url
|
|
13842
|
+
sso_auth_enabled: Is SSO embedding enabled for this Looker
|
|
13843
|
+
embed_cookieless_v2: Is Cookieless embedding enabled for this Looker
|
|
13844
|
+
embed_content_navigation: Is embed content navigation enabled for this looker
|
|
13845
|
+
embed_content_management: Is embed content management enabled for this Looker
|
|
13846
|
+
strict_sameorigin_for_login: When true, prohibits the use of Looker login pages in non-Looker iframes. When false, Looker login pages may be used in non-Looker hosted iframes.
|
|
13847
|
+
look_filters: When true, filters are enabled on embedded Looks
|
|
13848
|
+
hide_look_navigation: When true, removes navigation to Looks from embedded dashboards and explores.
|
|
13849
|
+
"""
|
|
13850
|
+
|
|
13851
|
+
domain_allowlist: Optional[Sequence[str]] = None
|
|
13852
|
+
alert_url_allowlist: Optional[Sequence[str]] = None
|
|
13853
|
+
alert_url_param_owner: Optional[str] = None
|
|
13854
|
+
alert_url_label: Optional[str] = None
|
|
13855
|
+
sso_auth_enabled: Optional[bool] = None
|
|
13856
|
+
embed_cookieless_v2: Optional[bool] = None
|
|
13857
|
+
embed_content_navigation: Optional[bool] = None
|
|
13858
|
+
embed_content_management: Optional[bool] = None
|
|
13859
|
+
strict_sameorigin_for_login: Optional[bool] = None
|
|
13860
|
+
look_filters: Optional[bool] = None
|
|
13861
|
+
hide_look_navigation: Optional[bool] = None
|
|
13862
|
+
|
|
13863
|
+
def __init__(
|
|
13864
|
+
self,
|
|
13865
|
+
*,
|
|
13866
|
+
domain_allowlist: Optional[Sequence[str]] = None,
|
|
13867
|
+
alert_url_allowlist: Optional[Sequence[str]] = None,
|
|
13868
|
+
alert_url_param_owner: Optional[str] = None,
|
|
13869
|
+
alert_url_label: Optional[str] = None,
|
|
13870
|
+
sso_auth_enabled: Optional[bool] = None,
|
|
13871
|
+
embed_cookieless_v2: Optional[bool] = None,
|
|
13872
|
+
embed_content_navigation: Optional[bool] = None,
|
|
13873
|
+
embed_content_management: Optional[bool] = None,
|
|
13874
|
+
strict_sameorigin_for_login: Optional[bool] = None,
|
|
13875
|
+
look_filters: Optional[bool] = None,
|
|
13876
|
+
hide_look_navigation: Optional[bool] = None
|
|
13877
|
+
):
|
|
13878
|
+
self.domain_allowlist = domain_allowlist
|
|
13879
|
+
self.alert_url_allowlist = alert_url_allowlist
|
|
13880
|
+
self.alert_url_param_owner = alert_url_param_owner
|
|
13881
|
+
self.alert_url_label = alert_url_label
|
|
13882
|
+
self.sso_auth_enabled = sso_auth_enabled
|
|
13883
|
+
self.embed_cookieless_v2 = embed_cookieless_v2
|
|
13884
|
+
self.embed_content_navigation = embed_content_navigation
|
|
13885
|
+
self.embed_content_management = embed_content_management
|
|
13886
|
+
self.strict_sameorigin_for_login = strict_sameorigin_for_login
|
|
13887
|
+
self.look_filters = look_filters
|
|
13888
|
+
self.hide_look_navigation = hide_look_navigation
|
|
13889
|
+
|
|
13890
|
+
|
|
13575
13891
|
@attr.s(auto_attribs=True, init=False)
|
|
13576
13892
|
class WriteEmbedSecret(model.Model):
|
|
13577
13893
|
"""
|
|
@@ -13610,12 +13926,14 @@ class WriteExternalOauthApplication(model.Model):
|
|
|
13610
13926
|
name: The name of this application. For Snowflake connections, this should be the name of the host database.
|
|
13611
13927
|
client_id: The OAuth Client ID for this application
|
|
13612
13928
|
client_secret: (Write-Only) The OAuth Client Secret for this application
|
|
13929
|
+
tenant_id: The OAuth Tenant ID for this application
|
|
13613
13930
|
dialect_name: The database dialect for this application.
|
|
13614
13931
|
"""
|
|
13615
13932
|
|
|
13616
13933
|
name: Optional[str] = None
|
|
13617
13934
|
client_id: Optional[str] = None
|
|
13618
13935
|
client_secret: Optional[str] = None
|
|
13936
|
+
tenant_id: Optional[str] = None
|
|
13619
13937
|
dialect_name: Optional[str] = None
|
|
13620
13938
|
|
|
13621
13939
|
def __init__(
|
|
@@ -13624,11 +13942,13 @@ class WriteExternalOauthApplication(model.Model):
|
|
|
13624
13942
|
name: Optional[str] = None,
|
|
13625
13943
|
client_id: Optional[str] = None,
|
|
13626
13944
|
client_secret: Optional[str] = None,
|
|
13945
|
+
tenant_id: Optional[str] = None,
|
|
13627
13946
|
dialect_name: Optional[str] = None
|
|
13628
13947
|
):
|
|
13629
13948
|
self.name = name
|
|
13630
13949
|
self.client_id = client_id
|
|
13631
13950
|
self.client_secret = client_secret
|
|
13951
|
+
self.tenant_id = tenant_id
|
|
13632
13952
|
self.dialect_name = dialect_name
|
|
13633
13953
|
|
|
13634
13954
|
|
|
@@ -14003,7 +14323,7 @@ class WriteLookmlModel(model.Model):
|
|
|
14003
14323
|
class WriteLookWithQuery(model.Model):
|
|
14004
14324
|
"""
|
|
14005
14325
|
Dynamic writeable type for LookWithQuery removes:
|
|
14006
|
-
can, content_metadata_id, id, content_favorite_id, created_at, deleted_at, deleter_id, embed_url, excel_file_url, favorite_count, google_spreadsheet_formula, image_embed_url, last_accessed_at, last_updater_id, last_viewed_at, model, public_slug, public_url, short_url, updated_at, view_count, url
|
|
14326
|
+
can, content_metadata_id, id, content_favorite_id, created_at, deleted_at, deleter_id, embed_url, excel_file_url, favorite_count, google_spreadsheet_formula, image_embed_url, last_accessed_at, last_updater_id, last_viewed_at, model, public_slug, public_url, short_url, updated_at, user_name, view_count, url
|
|
14007
14327
|
|
|
14008
14328
|
Attributes:
|
|
14009
14329
|
title: Look Title
|
|
@@ -14511,10 +14831,10 @@ class WriteQuery(model.Model):
|
|
|
14511
14831
|
fields: Fields
|
|
14512
14832
|
pivots: Pivots
|
|
14513
14833
|
fill_fields: Fill Fields
|
|
14514
|
-
filters: Filters
|
|
14834
|
+
filters: Filters will contain data pertaining to complex filters that do not contain "or" conditions. When "or" conditions are present, filter data will be found on the `filter_expression` property.
|
|
14515
14835
|
filter_expression: Filter Expression
|
|
14516
14836
|
sorts: Sorting for the query results. Use the format `["view.field", ...]` to sort on fields in ascending order. Use the format `["view.field desc", ...]` to sort on fields in descending order. Use `["__UNSORTED__"]` (2 underscores before and after) to disable sorting entirely. Empty sorts `[]` will trigger a default sort.
|
|
14517
|
-
limit:
|
|
14837
|
+
limit: Row limit. To download unlimited results, set the limit to -1 (negative one).
|
|
14518
14838
|
column_limit: Column Limit
|
|
14519
14839
|
total: Total
|
|
14520
14840
|
row_total: Raw Total
|
|
@@ -14809,7 +15129,6 @@ class WriteScheduledPlan(model.Model):
|
|
|
14809
15129
|
crontab: Vixie-Style crontab specification when to run
|
|
14810
15130
|
datagroup: Name of a datagroup; if specified will run when datagroup triggered (can't be used with cron string)
|
|
14811
15131
|
timezone: Timezone for interpreting the specified crontab (default is Looker instance timezone)
|
|
14812
|
-
query_id: Query id
|
|
14813
15132
|
scheduled_plan_destination: Scheduled plan destinations
|
|
14814
15133
|
run_once: Whether the plan in question should only be run once (usually for testing)
|
|
14815
15134
|
include_links: Whether links back to Looker should be included in this ScheduledPlan
|
|
@@ -14823,6 +15142,7 @@ class WriteScheduledPlan(model.Model):
|
|
|
14823
15142
|
color_theme: Color scheme of the dashboard if applicable
|
|
14824
15143
|
long_tables: Whether or not to expand table vis to full length
|
|
14825
15144
|
inline_table_width: The pixel width at which we render the inline table visualizations
|
|
15145
|
+
query_id: Query id
|
|
14826
15146
|
"""
|
|
14827
15147
|
|
|
14828
15148
|
name: Optional[str] = None
|
|
@@ -14841,7 +15161,6 @@ class WriteScheduledPlan(model.Model):
|
|
|
14841
15161
|
crontab: Optional[str] = None
|
|
14842
15162
|
datagroup: Optional[str] = None
|
|
14843
15163
|
timezone: Optional[str] = None
|
|
14844
|
-
query_id: Optional[str] = None
|
|
14845
15164
|
scheduled_plan_destination: Optional[Sequence["ScheduledPlanDestination"]] = None
|
|
14846
15165
|
run_once: Optional[bool] = None
|
|
14847
15166
|
include_links: Optional[bool] = None
|
|
@@ -14855,6 +15174,7 @@ class WriteScheduledPlan(model.Model):
|
|
|
14855
15174
|
color_theme: Optional[str] = None
|
|
14856
15175
|
long_tables: Optional[bool] = None
|
|
14857
15176
|
inline_table_width: Optional[int] = None
|
|
15177
|
+
query_id: Optional[str] = None
|
|
14858
15178
|
|
|
14859
15179
|
def __init__(
|
|
14860
15180
|
self,
|
|
@@ -14875,7 +15195,6 @@ class WriteScheduledPlan(model.Model):
|
|
|
14875
15195
|
crontab: Optional[str] = None,
|
|
14876
15196
|
datagroup: Optional[str] = None,
|
|
14877
15197
|
timezone: Optional[str] = None,
|
|
14878
|
-
query_id: Optional[str] = None,
|
|
14879
15198
|
scheduled_plan_destination: Optional[
|
|
14880
15199
|
Sequence["ScheduledPlanDestination"]
|
|
14881
15200
|
] = None,
|
|
@@ -14890,7 +15209,8 @@ class WriteScheduledPlan(model.Model):
|
|
|
14890
15209
|
embed: Optional[bool] = None,
|
|
14891
15210
|
color_theme: Optional[str] = None,
|
|
14892
15211
|
long_tables: Optional[bool] = None,
|
|
14893
|
-
inline_table_width: Optional[int] = None
|
|
15212
|
+
inline_table_width: Optional[int] = None,
|
|
15213
|
+
query_id: Optional[str] = None
|
|
14894
15214
|
):
|
|
14895
15215
|
self.name = name
|
|
14896
15216
|
self.user_id = user_id
|
|
@@ -14908,7 +15228,6 @@ class WriteScheduledPlan(model.Model):
|
|
|
14908
15228
|
self.crontab = crontab
|
|
14909
15229
|
self.datagroup = datagroup
|
|
14910
15230
|
self.timezone = timezone
|
|
14911
|
-
self.query_id = query_id
|
|
14912
15231
|
self.scheduled_plan_destination = scheduled_plan_destination
|
|
14913
15232
|
self.run_once = run_once
|
|
14914
15233
|
self.include_links = include_links
|
|
@@ -14922,6 +15241,7 @@ class WriteScheduledPlan(model.Model):
|
|
|
14922
15241
|
self.color_theme = color_theme
|
|
14923
15242
|
self.long_tables = long_tables
|
|
14924
15243
|
self.inline_table_width = inline_table_width
|
|
15244
|
+
self.query_id = query_id
|
|
14925
15245
|
|
|
14926
15246
|
|
|
14927
15247
|
@attr.s(auto_attribs=True, init=False)
|
|
@@ -14964,7 +15284,7 @@ class WriteSessionConfig(model.Model):
|
|
|
14964
15284
|
class WriteSetting(model.Model):
|
|
14965
15285
|
"""
|
|
14966
15286
|
Dynamic writeable type for Setting removes:
|
|
14967
|
-
marketplace_site, embed_enabled, login_notification_enabled, login_notification_text
|
|
15287
|
+
instance_config, marketplace_site, embed_enabled, login_notification_enabled, login_notification_text
|
|
14968
15288
|
|
|
14969
15289
|
Attributes:
|
|
14970
15290
|
extension_framework_enabled: Toggle extension framework on or off
|
|
@@ -14984,7 +15304,11 @@ class WriteSetting(model.Model):
|
|
|
14984
15304
|
override_warnings: (Write-Only) If warnings are preventing a host URL change, this parameter allows for overriding warnings to force update the setting. Does not directly change any Looker settings.
|
|
14985
15305
|
email_domain_allowlist: An array of Email Domain Allowlist of type string for Scheduled Content
|
|
14986
15306
|
embed_cookieless_v2: (DEPRECATED) Use embed_config.embed_cookieless_v2 instead. If embed_config.embed_cookieless_v2 is specified, it overrides this value.
|
|
14987
|
-
embed_config:
|
|
15307
|
+
embed_config: Dynamic writeable type for EmbedConfig removes:
|
|
15308
|
+
embed_enabled
|
|
15309
|
+
dashboard_auto_refresh_restriction: Toggle Dashboard Auto Refresh restriction
|
|
15310
|
+
dashboard_auto_refresh_minimum_interval: Minimum time interval for dashboard element automatic refresh. Examples: (30 seconds, 1 minute)
|
|
15311
|
+
managed_certificate_uri: URI pointing to the location of a private root certificate in Secret Manager
|
|
14988
15312
|
"""
|
|
14989
15313
|
|
|
14990
15314
|
extension_framework_enabled: Optional[bool] = None
|
|
@@ -15003,7 +15327,10 @@ class WriteSetting(model.Model):
|
|
|
15003
15327
|
override_warnings: Optional[bool] = None
|
|
15004
15328
|
email_domain_allowlist: Optional[Sequence[str]] = None
|
|
15005
15329
|
embed_cookieless_v2: Optional[bool] = None
|
|
15006
|
-
embed_config: Optional["
|
|
15330
|
+
embed_config: Optional["WriteEmbedConfig"] = None
|
|
15331
|
+
dashboard_auto_refresh_restriction: Optional[bool] = None
|
|
15332
|
+
dashboard_auto_refresh_minimum_interval: Optional[str] = None
|
|
15333
|
+
managed_certificate_uri: Optional[str] = None
|
|
15007
15334
|
|
|
15008
15335
|
def __init__(
|
|
15009
15336
|
self,
|
|
@@ -15024,7 +15351,10 @@ class WriteSetting(model.Model):
|
|
|
15024
15351
|
override_warnings: Optional[bool] = None,
|
|
15025
15352
|
email_domain_allowlist: Optional[Sequence[str]] = None,
|
|
15026
15353
|
embed_cookieless_v2: Optional[bool] = None,
|
|
15027
|
-
embed_config: Optional["
|
|
15354
|
+
embed_config: Optional["WriteEmbedConfig"] = None,
|
|
15355
|
+
dashboard_auto_refresh_restriction: Optional[bool] = None,
|
|
15356
|
+
dashboard_auto_refresh_minimum_interval: Optional[str] = None,
|
|
15357
|
+
managed_certificate_uri: Optional[str] = None
|
|
15028
15358
|
):
|
|
15029
15359
|
self.extension_framework_enabled = extension_framework_enabled
|
|
15030
15360
|
self.extension_load_url_enabled = extension_load_url_enabled
|
|
@@ -15043,6 +15373,11 @@ class WriteSetting(model.Model):
|
|
|
15043
15373
|
self.email_domain_allowlist = email_domain_allowlist
|
|
15044
15374
|
self.embed_cookieless_v2 = embed_cookieless_v2
|
|
15045
15375
|
self.embed_config = embed_config
|
|
15376
|
+
self.dashboard_auto_refresh_restriction = dashboard_auto_refresh_restriction
|
|
15377
|
+
self.dashboard_auto_refresh_minimum_interval = (
|
|
15378
|
+
dashboard_auto_refresh_minimum_interval
|
|
15379
|
+
)
|
|
15380
|
+
self.managed_certificate_uri = managed_certificate_uri
|
|
15046
15381
|
|
|
15047
15382
|
|
|
15048
15383
|
@attr.s(auto_attribs=True, init=False)
|
|
@@ -15164,11 +15499,11 @@ class WriteTheme(model.Model):
|
|
|
15164
15499
|
class WriteUser(model.Model):
|
|
15165
15500
|
"""
|
|
15166
15501
|
Dynamic writeable type for User removes:
|
|
15167
|
-
can, avatar_url, avatar_url_without_sizing, credentials_api3, credentials_embed, credentials_google, credentials_ldap, credentials_looker_openid, credentials_oidc, credentials_saml, credentials_totp, display_name, email, embed_group_space_id, group_ids, id, looker_versions, personal_folder_id, presumed_looker_employee, role_ids, sessions, verified_looker_employee, roles_externally_managed, allow_direct_roles, allow_normal_group_membership, allow_roles_from_normal_groups, embed_group_folder_id,
|
|
15502
|
+
can, avatar_url, avatar_url_without_sizing, credentials_api3, credentials_embed, credentials_google, credentials_ldap, credentials_looker_openid, credentials_oidc, credentials_saml, credentials_totp, display_name, email, embed_group_space_id, group_ids, id, looker_versions, personal_folder_id, presumed_looker_employee, role_ids, sessions, verified_looker_employee, roles_externally_managed, allow_direct_roles, allow_normal_group_membership, allow_roles_from_normal_groups, embed_group_folder_id, url
|
|
15168
15503
|
|
|
15169
15504
|
Attributes:
|
|
15170
15505
|
credentials_email: Dynamic writeable type for CredentialsEmail removes:
|
|
15171
|
-
can, created_at, user_id, is_disabled, logged_in_at, password_reset_url, account_setup_url, type, url, user_url
|
|
15506
|
+
can, created_at, user_id, is_disabled, logged_in_at, password_reset_url, account_setup_url, password_reset_url_expired, account_setup_url_expired, type, url, user_url
|
|
15172
15507
|
first_name: First name
|
|
15173
15508
|
home_folder_id: ID string for user's home folder
|
|
15174
15509
|
is_disabled: Account has been disabled
|