looker-sdk 24.8.0__tar.gz → 24.12.0__tar.gz
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-24.8.0 → looker_sdk-24.12.0}/PKG-INFO +1 -1
- {looker_sdk-24.8.0 → looker_sdk-24.12.0}/looker_sdk/sdk/api40/methods.py +7 -1
- {looker_sdk-24.8.0 → looker_sdk-24.12.0}/looker_sdk/sdk/api40/models.py +44 -7
- {looker_sdk-24.8.0 → looker_sdk-24.12.0}/looker_sdk/sdk/constants.py +1 -1
- {looker_sdk-24.8.0 → looker_sdk-24.12.0}/looker_sdk/version.py +1 -1
- {looker_sdk-24.8.0 → looker_sdk-24.12.0}/looker_sdk.egg-info/PKG-INFO +1 -1
- {looker_sdk-24.8.0 → looker_sdk-24.12.0}/LICENSE.txt +0 -0
- {looker_sdk-24.8.0 → looker_sdk-24.12.0}/MANIFEST.in +0 -0
- {looker_sdk-24.8.0 → looker_sdk-24.12.0}/README.rst +0 -0
- {looker_sdk-24.8.0 → looker_sdk-24.12.0}/looker_sdk/__init__.py +0 -0
- {looker_sdk-24.8.0 → looker_sdk-24.12.0}/looker_sdk/error.py +0 -0
- {looker_sdk-24.8.0 → looker_sdk-24.12.0}/looker_sdk/py.typed +0 -0
- {looker_sdk-24.8.0 → looker_sdk-24.12.0}/looker_sdk/rtl/__init__.py +0 -0
- {looker_sdk-24.8.0 → looker_sdk-24.12.0}/looker_sdk/rtl/api_methods.py +0 -0
- {looker_sdk-24.8.0 → looker_sdk-24.12.0}/looker_sdk/rtl/api_settings.py +0 -0
- {looker_sdk-24.8.0 → looker_sdk-24.12.0}/looker_sdk/rtl/auth_session.py +0 -0
- {looker_sdk-24.8.0 → looker_sdk-24.12.0}/looker_sdk/rtl/auth_token.py +0 -0
- {looker_sdk-24.8.0 → looker_sdk-24.12.0}/looker_sdk/rtl/constants.py +0 -0
- {looker_sdk-24.8.0 → looker_sdk-24.12.0}/looker_sdk/rtl/hooks.py +0 -0
- {looker_sdk-24.8.0 → looker_sdk-24.12.0}/looker_sdk/rtl/model.py +0 -0
- {looker_sdk-24.8.0 → looker_sdk-24.12.0}/looker_sdk/rtl/requests_transport.py +0 -0
- {looker_sdk-24.8.0 → looker_sdk-24.12.0}/looker_sdk/rtl/serialize.py +0 -0
- {looker_sdk-24.8.0 → looker_sdk-24.12.0}/looker_sdk/rtl/transport.py +0 -0
- {looker_sdk-24.8.0 → looker_sdk-24.12.0}/looker_sdk/sdk/__init__.py +0 -0
- {looker_sdk-24.8.0 → looker_sdk-24.12.0}/looker_sdk/sdk/api40/__init__.py +0 -0
- {looker_sdk-24.8.0 → looker_sdk-24.12.0}/looker_sdk.egg-info/SOURCES.txt +0 -0
- {looker_sdk-24.8.0 → looker_sdk-24.12.0}/looker_sdk.egg-info/dependency_links.txt +0 -0
- {looker_sdk-24.8.0 → looker_sdk-24.12.0}/looker_sdk.egg-info/requires.txt +0 -0
- {looker_sdk-24.8.0 → looker_sdk-24.12.0}/looker_sdk.egg-info/top_level.txt +0 -0
- {looker_sdk-24.8.0 → looker_sdk-24.12.0}/setup.cfg +0 -0
- {looker_sdk-24.8.0 → looker_sdk-24.12.0}/setup.py +0 -0
- {looker_sdk-24.8.0 → looker_sdk-24.12.0}/tests/__init__.py +0 -0
- {looker_sdk-24.8.0 → looker_sdk-24.12.0}/tests/conftest.py +0 -0
- {looker_sdk-24.8.0 → looker_sdk-24.12.0}/tests/integration/__init__.py +0 -0
- {looker_sdk-24.8.0 → looker_sdk-24.12.0}/tests/integration/test_methods.py +0 -0
- {looker_sdk-24.8.0 → looker_sdk-24.12.0}/tests/integration/test_netrc.py +0 -0
- {looker_sdk-24.8.0 → looker_sdk-24.12.0}/tests/rtl/__init__.py +0 -0
- {looker_sdk-24.8.0 → looker_sdk-24.12.0}/tests/rtl/test_api_methods.py +0 -0
- {looker_sdk-24.8.0 → looker_sdk-24.12.0}/tests/rtl/test_api_settings.py +0 -0
- {looker_sdk-24.8.0 → looker_sdk-24.12.0}/tests/rtl/test_auth_session.py +0 -0
- {looker_sdk-24.8.0 → looker_sdk-24.12.0}/tests/rtl/test_auth_token.py +0 -0
- {looker_sdk-24.8.0 → looker_sdk-24.12.0}/tests/rtl/test_requests_transport.py +0 -0
- {looker_sdk-24.8.0 → looker_sdk-24.12.0}/tests/rtl/test_serialize.py +0 -0
- {looker_sdk-24.8.0 → looker_sdk-24.12.0}/tests/rtl/test_transport.py +0 -0
|
@@ -819,8 +819,11 @@ class Looker40SDK(api_methods.APIMethods):
|
|
|
819
819
|
#
|
|
820
820
|
# This function does not strictly require all group_ids, user attribute names, or model names to exist at the moment the
|
|
821
821
|
# embed url is created. Unknown group_id, user attribute names or model names will be passed through to the output URL.
|
|
822
|
+
# Because of this, **these parameters are not validated** when the API call is made.
|
|
822
823
|
#
|
|
823
|
-
#
|
|
824
|
+
# The [Get Embed Url](https://cloud.google.com/looker/docs/r/get-signed-url) dialog can be used to determine and validate the correct permissions for signing an embed url.
|
|
825
|
+
# This dialog also provides the SDK syntax for the API call to make. Alternatively, you can copy the signed URL into the Embed URI Validator text box
|
|
826
|
+
# in `<your looker instance>/admin/embed` to diagnose potential problems.
|
|
824
827
|
#
|
|
825
828
|
# The `secret_id` parameter is optional. If specified, its value must be the id of an active secret defined in the Looker instance.
|
|
826
829
|
# if not specified, the URL will be signed using the most recent active signing secret. If there is no active secret for signing embed urls,
|
|
@@ -3236,6 +3239,7 @@ class Looker40SDK(api_methods.APIMethods):
|
|
|
3236
3239
|
# - data_connector_default_enabled
|
|
3237
3240
|
# - extension_framework_enabled
|
|
3238
3241
|
# - extension_load_url_enabled
|
|
3242
|
+
# - instance_config
|
|
3239
3243
|
# - marketplace_auto_install_enabled
|
|
3240
3244
|
# - marketplace_automation
|
|
3241
3245
|
# - marketplace_terms_accepted
|
|
@@ -3277,6 +3281,7 @@ class Looker40SDK(api_methods.APIMethods):
|
|
|
3277
3281
|
# - data_connector_default_enabled
|
|
3278
3282
|
# - extension_framework_enabled
|
|
3279
3283
|
# - extension_load_url_enabled
|
|
3284
|
+
# - instance_config
|
|
3280
3285
|
# - marketplace_auto_install_enabled
|
|
3281
3286
|
# - marketplace_automation
|
|
3282
3287
|
# - marketplace_terms_accepted
|
|
@@ -12874,6 +12879,7 @@ class Looker40SDK(api_methods.APIMethods):
|
|
|
12874
12879
|
# associated credentials. Will overwrite all associated email addresses with
|
|
12875
12880
|
# the value supplied in the 'email' body param.
|
|
12876
12881
|
# The user's 'is_disabled' status must be true.
|
|
12882
|
+
# If the user has a credential email, they will receive a verification email and the user will be disabled until they verify the email
|
|
12877
12883
|
#
|
|
12878
12884
|
# Calls to this endpoint may be denied by [Looker (Google Cloud core)](https://cloud.google.com/looker/docs/r/looker-core/overview).
|
|
12879
12885
|
#
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
# SOFTWARE.
|
|
22
22
|
#
|
|
23
23
|
|
|
24
|
-
#
|
|
24
|
+
# 342 API models: 259 Spec, 0 Request, 61 Write, 22 Enum
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
# NOTE: Do not edit this file generated by Looker SDK Codegen for API 4.0
|
|
@@ -4069,6 +4069,7 @@ class DialectInfo(model.Model):
|
|
|
4069
4069
|
installed: Is the supporting driver installed
|
|
4070
4070
|
label: The human-readable label of the connection
|
|
4071
4071
|
label_for_database_equivalent: What the dialect calls the equivalent of a normal SQL table
|
|
4072
|
+
label_for_schema_equivalent: What the dialect calls the equivalent of a schema-level namespace
|
|
4072
4073
|
name: The name of the dialect
|
|
4073
4074
|
supported_options:
|
|
4074
4075
|
"""
|
|
@@ -4079,6 +4080,7 @@ class DialectInfo(model.Model):
|
|
|
4079
4080
|
installed: Optional[bool] = None
|
|
4080
4081
|
label: Optional[str] = None
|
|
4081
4082
|
label_for_database_equivalent: Optional[str] = None
|
|
4083
|
+
label_for_schema_equivalent: Optional[str] = None
|
|
4082
4084
|
name: Optional[str] = None
|
|
4083
4085
|
supported_options: Optional["DialectInfoOptions"] = None
|
|
4084
4086
|
|
|
@@ -4091,6 +4093,7 @@ class DialectInfo(model.Model):
|
|
|
4091
4093
|
installed: Optional[bool] = None,
|
|
4092
4094
|
label: Optional[str] = None,
|
|
4093
4095
|
label_for_database_equivalent: Optional[str] = None,
|
|
4096
|
+
label_for_schema_equivalent: Optional[str] = None,
|
|
4094
4097
|
name: Optional[str] = None,
|
|
4095
4098
|
supported_options: Optional["DialectInfoOptions"] = None
|
|
4096
4099
|
):
|
|
@@ -4100,6 +4103,7 @@ class DialectInfo(model.Model):
|
|
|
4100
4103
|
self.installed = installed
|
|
4101
4104
|
self.label = label
|
|
4102
4105
|
self.label_for_database_equivalent = label_for_database_equivalent
|
|
4106
|
+
self.label_for_schema_equivalent = label_for_schema_equivalent
|
|
4103
4107
|
self.name = name
|
|
4104
4108
|
self.supported_options = supported_options
|
|
4105
4109
|
|
|
@@ -4675,6 +4679,7 @@ class ExternalOauthApplication(model.Model):
|
|
|
4675
4679
|
name: The name of this application. For Snowflake connections, this should be the name of the host database.
|
|
4676
4680
|
client_id: The OAuth Client ID for this application
|
|
4677
4681
|
client_secret: (Write-Only) The OAuth Client Secret for this application
|
|
4682
|
+
tenant_id: The OAuth Tenant ID for this application
|
|
4678
4683
|
dialect_name: The database dialect for this application.
|
|
4679
4684
|
created_at: Creation time for this application
|
|
4680
4685
|
"""
|
|
@@ -4684,6 +4689,7 @@ class ExternalOauthApplication(model.Model):
|
|
|
4684
4689
|
name: Optional[str] = None
|
|
4685
4690
|
client_id: Optional[str] = None
|
|
4686
4691
|
client_secret: Optional[str] = None
|
|
4692
|
+
tenant_id: Optional[str] = None
|
|
4687
4693
|
dialect_name: Optional[str] = None
|
|
4688
4694
|
created_at: Optional[datetime.datetime] = None
|
|
4689
4695
|
|
|
@@ -4695,6 +4701,7 @@ class ExternalOauthApplication(model.Model):
|
|
|
4695
4701
|
name: Optional[str] = None,
|
|
4696
4702
|
client_id: Optional[str] = None,
|
|
4697
4703
|
client_secret: Optional[str] = None,
|
|
4704
|
+
tenant_id: Optional[str] = None,
|
|
4698
4705
|
dialect_name: Optional[str] = None,
|
|
4699
4706
|
created_at: Optional[datetime.datetime] = None
|
|
4700
4707
|
):
|
|
@@ -4703,6 +4710,7 @@ class ExternalOauthApplication(model.Model):
|
|
|
4703
4710
|
self.name = name
|
|
4704
4711
|
self.client_id = client_id
|
|
4705
4712
|
self.client_secret = client_secret
|
|
4713
|
+
self.tenant_id = tenant_id
|
|
4706
4714
|
self.dialect_name = dialect_name
|
|
4707
4715
|
self.created_at = created_at
|
|
4708
4716
|
|
|
@@ -5471,6 +5479,27 @@ class ImportedProject(model.Model):
|
|
|
5471
5479
|
self.is_remote = is_remote
|
|
5472
5480
|
|
|
5473
5481
|
|
|
5482
|
+
@attr.s(auto_attribs=True, init=False)
|
|
5483
|
+
class InstanceConfig(model.Model):
|
|
5484
|
+
"""
|
|
5485
|
+
Attributes:
|
|
5486
|
+
feature_flags: Feature flags enabled on the instance
|
|
5487
|
+
license_features: License features enabled on the instance
|
|
5488
|
+
"""
|
|
5489
|
+
|
|
5490
|
+
feature_flags: Optional[MutableMapping[str, bool]] = None
|
|
5491
|
+
license_features: Optional[MutableMapping[str, bool]] = None
|
|
5492
|
+
|
|
5493
|
+
def __init__(
|
|
5494
|
+
self,
|
|
5495
|
+
*,
|
|
5496
|
+
feature_flags: Optional[MutableMapping[str, bool]] = None,
|
|
5497
|
+
license_features: Optional[MutableMapping[str, bool]] = None
|
|
5498
|
+
):
|
|
5499
|
+
self.feature_flags = feature_flags
|
|
5500
|
+
self.license_features = license_features
|
|
5501
|
+
|
|
5502
|
+
|
|
5474
5503
|
@attr.s(auto_attribs=True, init=False)
|
|
5475
5504
|
class Integration(model.Model):
|
|
5476
5505
|
"""
|
|
@@ -5883,13 +5912,13 @@ class JsonBiFields(model.Model):
|
|
|
5883
5912
|
dimensions: Dimensions represent a column in a table, or a computed value based on some sort of column manipulation or combination
|
|
5884
5913
|
measures: Measures are similar to aggregate functions in SQL (for example, COUNT, SUM, AVG) and represent information about multiple rows
|
|
5885
5914
|
pivots: Pivots
|
|
5886
|
-
table_calculations: Table Calculations
|
|
5915
|
+
table_calculations: Table Calculations
|
|
5887
5916
|
"""
|
|
5888
5917
|
|
|
5889
5918
|
dimensions: Sequence["JsonBiField"]
|
|
5890
5919
|
measures: Sequence["JsonBiField"]
|
|
5891
5920
|
pivots: Sequence["JsonBiField"]
|
|
5892
|
-
table_calculations:
|
|
5921
|
+
table_calculations: Sequence["JsonBiTableCalc"]
|
|
5893
5922
|
|
|
5894
5923
|
def __init__(
|
|
5895
5924
|
self,
|
|
@@ -5897,7 +5926,7 @@ class JsonBiFields(model.Model):
|
|
|
5897
5926
|
dimensions: Sequence["JsonBiField"],
|
|
5898
5927
|
measures: Sequence["JsonBiField"],
|
|
5899
5928
|
pivots: Sequence["JsonBiField"],
|
|
5900
|
-
table_calculations:
|
|
5929
|
+
table_calculations: Sequence["JsonBiTableCalc"]
|
|
5901
5930
|
):
|
|
5902
5931
|
self.dimensions = dimensions
|
|
5903
5932
|
self.measures = measures
|
|
@@ -9288,7 +9317,7 @@ class Query(model.Model):
|
|
|
9288
9317
|
fields: Fields
|
|
9289
9318
|
pivots: Pivots
|
|
9290
9319
|
fill_fields: Fill Fields
|
|
9291
|
-
filters: Filters
|
|
9320
|
+
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.
|
|
9292
9321
|
filter_expression: Filter Expression
|
|
9293
9322
|
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.
|
|
9294
9323
|
limit: Limit
|
|
@@ -10818,6 +10847,7 @@ class SessionConfig(model.Model):
|
|
|
10818
10847
|
class Setting(model.Model):
|
|
10819
10848
|
"""
|
|
10820
10849
|
Attributes:
|
|
10850
|
+
instance_config:
|
|
10821
10851
|
extension_framework_enabled: Toggle extension framework on or off
|
|
10822
10852
|
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.
|
|
10823
10853
|
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
|
|
@@ -10841,6 +10871,7 @@ class Setting(model.Model):
|
|
|
10841
10871
|
login_notification_text: Login notification text
|
|
10842
10872
|
"""
|
|
10843
10873
|
|
|
10874
|
+
instance_config: Optional["InstanceConfig"] = None
|
|
10844
10875
|
extension_framework_enabled: Optional[bool] = None
|
|
10845
10876
|
extension_load_url_enabled: Optional[bool] = None
|
|
10846
10877
|
marketplace_auto_install_enabled: Optional[bool] = None
|
|
@@ -10866,6 +10897,7 @@ class Setting(model.Model):
|
|
|
10866
10897
|
def __init__(
|
|
10867
10898
|
self,
|
|
10868
10899
|
*,
|
|
10900
|
+
instance_config: Optional["InstanceConfig"] = None,
|
|
10869
10901
|
extension_framework_enabled: Optional[bool] = None,
|
|
10870
10902
|
extension_load_url_enabled: Optional[bool] = None,
|
|
10871
10903
|
marketplace_auto_install_enabled: Optional[bool] = None,
|
|
@@ -10888,6 +10920,7 @@ class Setting(model.Model):
|
|
|
10888
10920
|
login_notification_enabled: Optional[bool] = None,
|
|
10889
10921
|
login_notification_text: Optional[str] = None
|
|
10890
10922
|
):
|
|
10923
|
+
self.instance_config = instance_config
|
|
10891
10924
|
self.extension_framework_enabled = extension_framework_enabled
|
|
10892
10925
|
self.extension_load_url_enabled = extension_load_url_enabled
|
|
10893
10926
|
self.marketplace_auto_install_enabled = marketplace_auto_install_enabled
|
|
@@ -13675,12 +13708,14 @@ class WriteExternalOauthApplication(model.Model):
|
|
|
13675
13708
|
name: The name of this application. For Snowflake connections, this should be the name of the host database.
|
|
13676
13709
|
client_id: The OAuth Client ID for this application
|
|
13677
13710
|
client_secret: (Write-Only) The OAuth Client Secret for this application
|
|
13711
|
+
tenant_id: The OAuth Tenant ID for this application
|
|
13678
13712
|
dialect_name: The database dialect for this application.
|
|
13679
13713
|
"""
|
|
13680
13714
|
|
|
13681
13715
|
name: Optional[str] = None
|
|
13682
13716
|
client_id: Optional[str] = None
|
|
13683
13717
|
client_secret: Optional[str] = None
|
|
13718
|
+
tenant_id: Optional[str] = None
|
|
13684
13719
|
dialect_name: Optional[str] = None
|
|
13685
13720
|
|
|
13686
13721
|
def __init__(
|
|
@@ -13689,11 +13724,13 @@ class WriteExternalOauthApplication(model.Model):
|
|
|
13689
13724
|
name: Optional[str] = None,
|
|
13690
13725
|
client_id: Optional[str] = None,
|
|
13691
13726
|
client_secret: Optional[str] = None,
|
|
13727
|
+
tenant_id: Optional[str] = None,
|
|
13692
13728
|
dialect_name: Optional[str] = None
|
|
13693
13729
|
):
|
|
13694
13730
|
self.name = name
|
|
13695
13731
|
self.client_id = client_id
|
|
13696
13732
|
self.client_secret = client_secret
|
|
13733
|
+
self.tenant_id = tenant_id
|
|
13697
13734
|
self.dialect_name = dialect_name
|
|
13698
13735
|
|
|
13699
13736
|
|
|
@@ -14576,7 +14613,7 @@ class WriteQuery(model.Model):
|
|
|
14576
14613
|
fields: Fields
|
|
14577
14614
|
pivots: Pivots
|
|
14578
14615
|
fill_fields: Fill Fields
|
|
14579
|
-
filters: Filters
|
|
14616
|
+
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.
|
|
14580
14617
|
filter_expression: Filter Expression
|
|
14581
14618
|
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.
|
|
14582
14619
|
limit: Limit
|
|
@@ -15029,7 +15066,7 @@ class WriteSessionConfig(model.Model):
|
|
|
15029
15066
|
class WriteSetting(model.Model):
|
|
15030
15067
|
"""
|
|
15031
15068
|
Dynamic writeable type for Setting removes:
|
|
15032
|
-
marketplace_site, embed_enabled, login_notification_enabled, login_notification_text
|
|
15069
|
+
instance_config, marketplace_site, embed_enabled, login_notification_enabled, login_notification_text
|
|
15033
15070
|
|
|
15034
15071
|
Attributes:
|
|
15035
15072
|
extension_framework_enabled: Toggle extension framework on or off
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|