looker-sdk 25.2.0__py3-none-any.whl → 25.4.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/rtl/serialize.py +1 -1
- looker_sdk/sdk/api40/methods.py +81 -1
- looker_sdk/sdk/api40/models.py +200 -19
- looker_sdk/sdk/constants.py +1 -1
- looker_sdk/version.py +1 -1
- {looker_sdk-25.2.0.dist-info → looker_sdk-25.4.0.dist-info}/METADATA +1 -1
- {looker_sdk-25.2.0.dist-info → looker_sdk-25.4.0.dist-info}/RECORD +10 -10
- {looker_sdk-25.2.0.dist-info → looker_sdk-25.4.0.dist-info}/LICENSE.txt +0 -0
- {looker_sdk-25.2.0.dist-info → looker_sdk-25.4.0.dist-info}/WHEEL +0 -0
- {looker_sdk-25.2.0.dist-info → looker_sdk-25.4.0.dist-info}/top_level.txt +0 -0
looker_sdk/rtl/serialize.py
CHANGED
|
@@ -78,7 +78,7 @@ def deserialize(
|
|
|
78
78
|
def serialize(*, api_model: TModelOrSequence, converter: cattr.Converter) -> bytes:
|
|
79
79
|
"""Translate api_model into formdata encoded json bytes"""
|
|
80
80
|
data = converter.unstructure(api_model) # type: ignore
|
|
81
|
-
return json.dumps(data).encode("utf-8") # type: ignore
|
|
81
|
+
return json.dumps(data,default=lambda o: o.__dict__).encode("utf-8") # type: ignore
|
|
82
82
|
|
|
83
83
|
|
|
84
84
|
def forward_ref_structure_hook(context, converter, data, forward_ref):
|
looker_sdk/sdk/api40/methods.py
CHANGED
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
# SOFTWARE.
|
|
22
22
|
#
|
|
23
23
|
|
|
24
|
-
#
|
|
24
|
+
# 469 API methods
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
# NOTE: Do not edit this file generated by Looker SDK Codegen for API 4.0
|
|
@@ -602,6 +602,8 @@ class Looker40SDK(api_methods.APIMethods):
|
|
|
602
602
|
limit: Optional[int] = None,
|
|
603
603
|
# Number of results to skip before returning any. (used with limit)
|
|
604
604
|
offset: Optional[int] = None,
|
|
605
|
+
# Return the full count of results in the X-Total-Count response header. (Slight performance hit.)
|
|
606
|
+
tally: Optional[bool] = None,
|
|
605
607
|
transport_options: Optional[transport.TransportOptions] = None,
|
|
606
608
|
) -> Sequence[mdls.Artifact]:
|
|
607
609
|
"""Search artifacts"""
|
|
@@ -619,6 +621,7 @@ class Looker40SDK(api_methods.APIMethods):
|
|
|
619
621
|
"max_size": max_size,
|
|
620
622
|
"limit": limit,
|
|
621
623
|
"offset": offset,
|
|
624
|
+
"tally": tally,
|
|
622
625
|
},
|
|
623
626
|
transport_options=transport_options,
|
|
624
627
|
),
|
|
@@ -644,6 +647,8 @@ class Looker40SDK(api_methods.APIMethods):
|
|
|
644
647
|
limit: Optional[int] = None,
|
|
645
648
|
# Number of results to skip before returning any. (used with limit)
|
|
646
649
|
offset: Optional[int] = None,
|
|
650
|
+
# Return the full count of results in the X-Total-Count response header. (Slight performance hit.)
|
|
651
|
+
tally: Optional[bool] = None,
|
|
647
652
|
transport_options: Optional[transport.TransportOptions] = None,
|
|
648
653
|
) -> Sequence[mdls.Artifact]:
|
|
649
654
|
"""Get one or more artifacts"""
|
|
@@ -658,6 +663,7 @@ class Looker40SDK(api_methods.APIMethods):
|
|
|
658
663
|
"fields": fields,
|
|
659
664
|
"limit": limit,
|
|
660
665
|
"offset": offset,
|
|
666
|
+
"tally": tally,
|
|
661
667
|
},
|
|
662
668
|
transport_options=transport_options,
|
|
663
669
|
),
|
|
@@ -9831,6 +9837,80 @@ class Looker40SDK(api_methods.APIMethods):
|
|
|
9831
9837
|
|
|
9832
9838
|
# endregion
|
|
9833
9839
|
|
|
9840
|
+
# region Report: Report
|
|
9841
|
+
|
|
9842
|
+
# ### Search Reports
|
|
9843
|
+
#
|
|
9844
|
+
# Returns an **array of Report objects** that match the specified search criteria.
|
|
9845
|
+
#
|
|
9846
|
+
# If multiple search params are given and `filter_or` is FALSE or not specified,
|
|
9847
|
+
# search params are combined in a logical AND operation.
|
|
9848
|
+
# Only rows that match *all* search param criteria will be returned.
|
|
9849
|
+
#
|
|
9850
|
+
# If `filter_or` is TRUE, multiple search params are combined in a logical OR operation.
|
|
9851
|
+
# Results will include rows that match **any** of the search criteria.
|
|
9852
|
+
#
|
|
9853
|
+
# String search params use case-insensitive matching.
|
|
9854
|
+
# String search params can contain `%` and '_' as SQL LIKE pattern match wildcard expressions.
|
|
9855
|
+
# example="dan%" will match "danger" and "Danzig" but not "David"
|
|
9856
|
+
# example="D_m%" will match "Damage" and "dump"
|
|
9857
|
+
#
|
|
9858
|
+
# Integer search params can accept a single value or a comma separated list of values. The multiple
|
|
9859
|
+
# values will be combined under a logical OR operation - results will match at least one of
|
|
9860
|
+
# the given values.
|
|
9861
|
+
#
|
|
9862
|
+
# Most search params can accept "IS NULL" and "NOT NULL" as special expressions to match
|
|
9863
|
+
# or exclude (respectively) rows where the column is null.
|
|
9864
|
+
#
|
|
9865
|
+
# Boolean search params accept only "true" and "false" as values.
|
|
9866
|
+
#
|
|
9867
|
+
# GET /reports/search -> Sequence[mdls.Report]
|
|
9868
|
+
def search_reports(
|
|
9869
|
+
self,
|
|
9870
|
+
# Select reports in a particular folder.
|
|
9871
|
+
folder_id: Optional[str] = None,
|
|
9872
|
+
# Select favorite reports.
|
|
9873
|
+
favorite: Optional[bool] = None,
|
|
9874
|
+
# Select reports viewed recently.
|
|
9875
|
+
recent: Optional[bool] = None,
|
|
9876
|
+
# Match report id.
|
|
9877
|
+
id: Optional[str] = None,
|
|
9878
|
+
# Match report title.
|
|
9879
|
+
title: Optional[str] = None,
|
|
9880
|
+
# One or more fields to sort results by.
|
|
9881
|
+
sorts: Optional[str] = None,
|
|
9882
|
+
# Number of results to return.(used with next_page_token)
|
|
9883
|
+
limit: Optional[int] = None,
|
|
9884
|
+
# Comma delimited list of field names. If provided, only the fields specified will be included in the response.
|
|
9885
|
+
fields: Optional[str] = None,
|
|
9886
|
+
# Contains a token that can be used to return up to Number of results to return.(used with next_page_token) additional results. A next_page_token will not be returned if there are no additional results to display.
|
|
9887
|
+
next_page_token: Optional[str] = None,
|
|
9888
|
+
transport_options: Optional[transport.TransportOptions] = None,
|
|
9889
|
+
) -> Sequence[mdls.Report]:
|
|
9890
|
+
"""Search Reports"""
|
|
9891
|
+
response = cast(
|
|
9892
|
+
Sequence[mdls.Report],
|
|
9893
|
+
self.get(
|
|
9894
|
+
path="/reports/search",
|
|
9895
|
+
structure=Sequence[mdls.Report],
|
|
9896
|
+
query_params={
|
|
9897
|
+
"folder_id": folder_id,
|
|
9898
|
+
"favorite": favorite,
|
|
9899
|
+
"recent": recent,
|
|
9900
|
+
"id": id,
|
|
9901
|
+
"title": title,
|
|
9902
|
+
"sorts": sorts,
|
|
9903
|
+
"limit": limit,
|
|
9904
|
+
"fields": fields,
|
|
9905
|
+
"next_page_token": next_page_token,
|
|
9906
|
+
},
|
|
9907
|
+
transport_options=transport_options,
|
|
9908
|
+
),
|
|
9909
|
+
)
|
|
9910
|
+
return response
|
|
9911
|
+
|
|
9912
|
+
# endregion
|
|
9913
|
+
|
|
9834
9914
|
# region Role: Manage Roles
|
|
9835
9915
|
|
|
9836
9916
|
# ### Search model sets
|
looker_sdk/sdk/api40/models.py
CHANGED
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
# SOFTWARE.
|
|
22
22
|
#
|
|
23
23
|
|
|
24
|
-
#
|
|
24
|
+
# 344 API models: 260 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
|
|
@@ -3685,7 +3685,8 @@ class DBConnection(model.Model):
|
|
|
3685
3685
|
dialect:
|
|
3686
3686
|
snippets: SQL Runner snippets for this connection
|
|
3687
3687
|
pdts_enabled: True if PDTs are enabled on this connection
|
|
3688
|
-
|
|
3688
|
+
named_driver_version_requested: Requested JDBC driver version name
|
|
3689
|
+
named_driver_version_actual: Resolved JDBC driver version
|
|
3689
3690
|
host: Host name/address of server; or the string 'localhost' in case of a connection over an SSH tunnel.
|
|
3690
3691
|
port: Port number on server. If the connection is over an SSH tunnel, then the local port associated with the SSH tunnel.
|
|
3691
3692
|
username: Username for server authentication
|
|
@@ -3747,7 +3748,8 @@ class DBConnection(model.Model):
|
|
|
3747
3748
|
dialect: Optional["Dialect"] = None
|
|
3748
3749
|
snippets: Optional[Sequence["Snippet"]] = None
|
|
3749
3750
|
pdts_enabled: Optional[bool] = None
|
|
3750
|
-
|
|
3751
|
+
named_driver_version_requested: Optional[str] = None
|
|
3752
|
+
named_driver_version_actual: Optional[str] = None
|
|
3751
3753
|
host: Optional[str] = None
|
|
3752
3754
|
port: Optional[str] = None
|
|
3753
3755
|
username: Optional[str] = None
|
|
@@ -3811,7 +3813,8 @@ class DBConnection(model.Model):
|
|
|
3811
3813
|
dialect: Optional["Dialect"] = None,
|
|
3812
3814
|
snippets: Optional[Sequence["Snippet"]] = None,
|
|
3813
3815
|
pdts_enabled: Optional[bool] = None,
|
|
3814
|
-
|
|
3816
|
+
named_driver_version_requested: Optional[str] = None,
|
|
3817
|
+
named_driver_version_actual: Optional[str] = None,
|
|
3815
3818
|
host: Optional[str] = None,
|
|
3816
3819
|
port: Optional[str] = None,
|
|
3817
3820
|
username: Optional[str] = None,
|
|
@@ -3872,7 +3875,8 @@ class DBConnection(model.Model):
|
|
|
3872
3875
|
self.dialect = dialect
|
|
3873
3876
|
self.snippets = snippets
|
|
3874
3877
|
self.pdts_enabled = pdts_enabled
|
|
3875
|
-
self.
|
|
3878
|
+
self.named_driver_version_requested = named_driver_version_requested
|
|
3879
|
+
self.named_driver_version_actual = named_driver_version_actual
|
|
3876
3880
|
self.host = host
|
|
3877
3881
|
self.port = port
|
|
3878
3882
|
self.username = username
|
|
@@ -3968,59 +3972,99 @@ class DBConnectionOverride(model.Model):
|
|
|
3968
3972
|
Attributes:
|
|
3969
3973
|
context: Context in which to override (`pdt` is the only allowed value)
|
|
3970
3974
|
host: Host name/address of server
|
|
3975
|
+
pdt_host: Host name/address of server (same as host)
|
|
3971
3976
|
port: Port number on server
|
|
3977
|
+
pdt_port: Port number on server (same as port)
|
|
3972
3978
|
username: Username for server authentication
|
|
3979
|
+
pdt_username: Username for server authentication (same as username)
|
|
3973
3980
|
password: (Write-Only) Password for server authentication
|
|
3981
|
+
pdt_password: (Write-Only) Password for server authentication (same as password)
|
|
3974
3982
|
has_password: Whether or not the password is overridden in this context
|
|
3975
3983
|
certificate: (Write-Only) Base64 encoded Certificate body for server authentication (when appropriate for dialect).
|
|
3984
|
+
pdt_certificate: (Write-Only) Base64 encoded Certificate body for server authentication (when appropriate for dialect) (same as certificate).
|
|
3976
3985
|
file_type: (Write-Only) Certificate keyfile type - .json or .p12
|
|
3986
|
+
pdt_file_type: (Write-Only) Certificate keyfile type - .json or .p12 (same as file_type)
|
|
3977
3987
|
database: Database name
|
|
3988
|
+
pdt_database: Database name (same as database)
|
|
3978
3989
|
schema: Schema name
|
|
3990
|
+
pdt_schema: Schema name (same as schema)
|
|
3979
3991
|
jdbc_additional_params: Additional params to add to JDBC connection string
|
|
3992
|
+
pdt_jdbc_additional_params: Additional params to add to JDBC connection string (same as jdbc_additional_params)
|
|
3980
3993
|
after_connect_statements: SQL statements (semicolon separated) to issue after connecting to the database. Requires `custom_after_connect_statements` license feature
|
|
3994
|
+
pdt_after_connect_statements: SQL statements (semicolon separated) to issue after connecting to the database. Requires `custom_after_connect_statements` license feature (same as after_connect_statements)
|
|
3981
3995
|
"""
|
|
3982
3996
|
|
|
3983
3997
|
context: Optional[str] = None
|
|
3984
3998
|
host: Optional[str] = None
|
|
3999
|
+
pdt_host: Optional[str] = None
|
|
3985
4000
|
port: Optional[str] = None
|
|
4001
|
+
pdt_port: Optional[str] = None
|
|
3986
4002
|
username: Optional[str] = None
|
|
4003
|
+
pdt_username: Optional[str] = None
|
|
3987
4004
|
password: Optional[str] = None
|
|
4005
|
+
pdt_password: Optional[str] = None
|
|
3988
4006
|
has_password: Optional[bool] = None
|
|
3989
4007
|
certificate: Optional[str] = None
|
|
4008
|
+
pdt_certificate: Optional[str] = None
|
|
3990
4009
|
file_type: Optional[str] = None
|
|
4010
|
+
pdt_file_type: Optional[str] = None
|
|
3991
4011
|
database: Optional[str] = None
|
|
4012
|
+
pdt_database: Optional[str] = None
|
|
3992
4013
|
schema: Optional[str] = None
|
|
4014
|
+
pdt_schema: Optional[str] = None
|
|
3993
4015
|
jdbc_additional_params: Optional[str] = None
|
|
4016
|
+
pdt_jdbc_additional_params: Optional[str] = None
|
|
3994
4017
|
after_connect_statements: Optional[str] = None
|
|
4018
|
+
pdt_after_connect_statements: Optional[str] = None
|
|
3995
4019
|
|
|
3996
4020
|
def __init__(
|
|
3997
4021
|
self,
|
|
3998
4022
|
*,
|
|
3999
4023
|
context: Optional[str] = None,
|
|
4000
4024
|
host: Optional[str] = None,
|
|
4025
|
+
pdt_host: Optional[str] = None,
|
|
4001
4026
|
port: Optional[str] = None,
|
|
4027
|
+
pdt_port: Optional[str] = None,
|
|
4002
4028
|
username: Optional[str] = None,
|
|
4029
|
+
pdt_username: Optional[str] = None,
|
|
4003
4030
|
password: Optional[str] = None,
|
|
4031
|
+
pdt_password: Optional[str] = None,
|
|
4004
4032
|
has_password: Optional[bool] = None,
|
|
4005
4033
|
certificate: Optional[str] = None,
|
|
4034
|
+
pdt_certificate: Optional[str] = None,
|
|
4006
4035
|
file_type: Optional[str] = None,
|
|
4036
|
+
pdt_file_type: Optional[str] = None,
|
|
4007
4037
|
database: Optional[str] = None,
|
|
4038
|
+
pdt_database: Optional[str] = None,
|
|
4008
4039
|
schema: Optional[str] = None,
|
|
4040
|
+
pdt_schema: Optional[str] = None,
|
|
4009
4041
|
jdbc_additional_params: Optional[str] = None,
|
|
4010
|
-
|
|
4042
|
+
pdt_jdbc_additional_params: Optional[str] = None,
|
|
4043
|
+
after_connect_statements: Optional[str] = None,
|
|
4044
|
+
pdt_after_connect_statements: Optional[str] = None
|
|
4011
4045
|
):
|
|
4012
4046
|
self.context = context
|
|
4013
4047
|
self.host = host
|
|
4048
|
+
self.pdt_host = pdt_host
|
|
4014
4049
|
self.port = port
|
|
4050
|
+
self.pdt_port = pdt_port
|
|
4015
4051
|
self.username = username
|
|
4052
|
+
self.pdt_username = pdt_username
|
|
4016
4053
|
self.password = password
|
|
4054
|
+
self.pdt_password = pdt_password
|
|
4017
4055
|
self.has_password = has_password
|
|
4018
4056
|
self.certificate = certificate
|
|
4057
|
+
self.pdt_certificate = pdt_certificate
|
|
4019
4058
|
self.file_type = file_type
|
|
4059
|
+
self.pdt_file_type = pdt_file_type
|
|
4020
4060
|
self.database = database
|
|
4061
|
+
self.pdt_database = pdt_database
|
|
4021
4062
|
self.schema = schema
|
|
4063
|
+
self.pdt_schema = pdt_schema
|
|
4022
4064
|
self.jdbc_additional_params = jdbc_additional_params
|
|
4065
|
+
self.pdt_jdbc_additional_params = pdt_jdbc_additional_params
|
|
4023
4066
|
self.after_connect_statements = after_connect_statements
|
|
4067
|
+
self.pdt_after_connect_statements = pdt_after_connect_statements
|
|
4024
4068
|
|
|
4025
4069
|
|
|
4026
4070
|
@attr.s(auto_attribs=True, init=False)
|
|
@@ -4228,6 +4272,8 @@ class DialectInfo(model.Model):
|
|
|
4228
4272
|
label_for_database_equivalent: What the dialect calls the equivalent of a normal SQL table
|
|
4229
4273
|
label_for_schema_equivalent: What the dialect calls the equivalent of a schema-level namespace
|
|
4230
4274
|
name: The name of the dialect
|
|
4275
|
+
supported_driver_name: The name of the driver used for this dialect
|
|
4276
|
+
supported_driver_versions: Array of supported drivers for a given dialect
|
|
4231
4277
|
supported_options:
|
|
4232
4278
|
"""
|
|
4233
4279
|
|
|
@@ -4239,6 +4285,8 @@ class DialectInfo(model.Model):
|
|
|
4239
4285
|
label_for_database_equivalent: Optional[str] = None
|
|
4240
4286
|
label_for_schema_equivalent: Optional[str] = None
|
|
4241
4287
|
name: Optional[str] = None
|
|
4288
|
+
supported_driver_name: Optional[str] = None
|
|
4289
|
+
supported_driver_versions: Optional[Sequence[str]] = None
|
|
4242
4290
|
supported_options: Optional["DialectInfoOptions"] = None
|
|
4243
4291
|
|
|
4244
4292
|
def __init__(
|
|
@@ -4252,6 +4300,8 @@ class DialectInfo(model.Model):
|
|
|
4252
4300
|
label_for_database_equivalent: Optional[str] = None,
|
|
4253
4301
|
label_for_schema_equivalent: Optional[str] = None,
|
|
4254
4302
|
name: Optional[str] = None,
|
|
4303
|
+
supported_driver_name: Optional[str] = None,
|
|
4304
|
+
supported_driver_versions: Optional[Sequence[str]] = None,
|
|
4255
4305
|
supported_options: Optional["DialectInfoOptions"] = None
|
|
4256
4306
|
):
|
|
4257
4307
|
self.can = can
|
|
@@ -4262,6 +4312,8 @@ class DialectInfo(model.Model):
|
|
|
4262
4312
|
self.label_for_database_equivalent = label_for_database_equivalent
|
|
4263
4313
|
self.label_for_schema_equivalent = label_for_schema_equivalent
|
|
4264
4314
|
self.name = name
|
|
4315
|
+
self.supported_driver_name = supported_driver_name
|
|
4316
|
+
self.supported_driver_versions = supported_driver_versions
|
|
4265
4317
|
self.supported_options = supported_options
|
|
4266
4318
|
|
|
4267
4319
|
|
|
@@ -9778,6 +9830,91 @@ class RenderTask(model.Model):
|
|
|
9778
9830
|
self.width = width
|
|
9779
9831
|
|
|
9780
9832
|
|
|
9833
|
+
@attr.s(auto_attribs=True, init=False)
|
|
9834
|
+
class Report(model.Model):
|
|
9835
|
+
"""
|
|
9836
|
+
Attributes:
|
|
9837
|
+
can: Operations the current user is able to perform on this object
|
|
9838
|
+
id: ID of the report
|
|
9839
|
+
title: Title of the report
|
|
9840
|
+
user_id: User Id of the owner of the report
|
|
9841
|
+
created_at: Created at
|
|
9842
|
+
updated_at: Modified at
|
|
9843
|
+
last_viewed_at: Last viewed at
|
|
9844
|
+
favorite: Is favorite report
|
|
9845
|
+
favorite_count: Favorite count
|
|
9846
|
+
view_count: View count
|
|
9847
|
+
folder:
|
|
9848
|
+
folder_id: Id of the folder where the report is stored
|
|
9849
|
+
url: Relative URL of the report
|
|
9850
|
+
user_name: Name of User that created the Studio Report.
|
|
9851
|
+
deleted_at: Deleted at
|
|
9852
|
+
last_accessed_at: Last Accessed at
|
|
9853
|
+
deleter_user_id: User Id of the deleter of the report
|
|
9854
|
+
deleter_user_name: Name of User that deleted the Report.
|
|
9855
|
+
"""
|
|
9856
|
+
|
|
9857
|
+
can: Optional[MutableMapping[str, bool]] = None
|
|
9858
|
+
id: Optional[str] = None
|
|
9859
|
+
title: Optional[str] = None
|
|
9860
|
+
user_id: Optional[str] = None
|
|
9861
|
+
created_at: Optional[datetime.datetime] = None
|
|
9862
|
+
updated_at: Optional[datetime.datetime] = None
|
|
9863
|
+
last_viewed_at: Optional[datetime.datetime] = None
|
|
9864
|
+
favorite: Optional[bool] = None
|
|
9865
|
+
favorite_count: Optional[int] = None
|
|
9866
|
+
view_count: Optional[int] = None
|
|
9867
|
+
folder: Optional["FolderBase"] = None
|
|
9868
|
+
folder_id: Optional[str] = None
|
|
9869
|
+
url: Optional[str] = None
|
|
9870
|
+
user_name: Optional[str] = None
|
|
9871
|
+
deleted_at: Optional[datetime.datetime] = None
|
|
9872
|
+
last_accessed_at: Optional[datetime.datetime] = None
|
|
9873
|
+
deleter_user_id: Optional[str] = None
|
|
9874
|
+
deleter_user_name: Optional[str] = None
|
|
9875
|
+
|
|
9876
|
+
def __init__(
|
|
9877
|
+
self,
|
|
9878
|
+
*,
|
|
9879
|
+
can: Optional[MutableMapping[str, bool]] = None,
|
|
9880
|
+
id: Optional[str] = None,
|
|
9881
|
+
title: Optional[str] = None,
|
|
9882
|
+
user_id: Optional[str] = None,
|
|
9883
|
+
created_at: Optional[datetime.datetime] = None,
|
|
9884
|
+
updated_at: Optional[datetime.datetime] = None,
|
|
9885
|
+
last_viewed_at: Optional[datetime.datetime] = None,
|
|
9886
|
+
favorite: Optional[bool] = None,
|
|
9887
|
+
favorite_count: Optional[int] = None,
|
|
9888
|
+
view_count: Optional[int] = None,
|
|
9889
|
+
folder: Optional["FolderBase"] = None,
|
|
9890
|
+
folder_id: Optional[str] = None,
|
|
9891
|
+
url: Optional[str] = None,
|
|
9892
|
+
user_name: Optional[str] = None,
|
|
9893
|
+
deleted_at: Optional[datetime.datetime] = None,
|
|
9894
|
+
last_accessed_at: Optional[datetime.datetime] = None,
|
|
9895
|
+
deleter_user_id: Optional[str] = None,
|
|
9896
|
+
deleter_user_name: Optional[str] = None
|
|
9897
|
+
):
|
|
9898
|
+
self.can = can
|
|
9899
|
+
self.id = id
|
|
9900
|
+
self.title = title
|
|
9901
|
+
self.user_id = user_id
|
|
9902
|
+
self.created_at = created_at
|
|
9903
|
+
self.updated_at = updated_at
|
|
9904
|
+
self.last_viewed_at = last_viewed_at
|
|
9905
|
+
self.favorite = favorite
|
|
9906
|
+
self.favorite_count = favorite_count
|
|
9907
|
+
self.view_count = view_count
|
|
9908
|
+
self.folder = folder
|
|
9909
|
+
self.folder_id = folder_id
|
|
9910
|
+
self.url = url
|
|
9911
|
+
self.user_name = user_name
|
|
9912
|
+
self.deleted_at = deleted_at
|
|
9913
|
+
self.last_accessed_at = last_accessed_at
|
|
9914
|
+
self.deleter_user_id = deleter_user_id
|
|
9915
|
+
self.deleter_user_name = deleter_user_name
|
|
9916
|
+
|
|
9917
|
+
|
|
9781
9918
|
@attr.s(auto_attribs=True, init=False)
|
|
9782
9919
|
class RepositoryCredential(model.Model):
|
|
9783
9920
|
"""
|
|
@@ -11000,7 +11137,7 @@ class Setting(model.Model):
|
|
|
11000
11137
|
login_notification_text: Login notification text
|
|
11001
11138
|
dashboard_auto_refresh_restriction: Toggle Dashboard Auto Refresh restriction
|
|
11002
11139
|
dashboard_auto_refresh_minimum_interval: Minimum time interval for dashboard element automatic refresh. Examples: (30 seconds, 1 minute)
|
|
11003
|
-
managed_certificate_uri:
|
|
11140
|
+
managed_certificate_uri: Array of URIs pointing to the location of a root certificate in Secret Manager
|
|
11004
11141
|
"""
|
|
11005
11142
|
|
|
11006
11143
|
instance_config: Optional["InstanceConfig"] = None
|
|
@@ -11027,7 +11164,7 @@ class Setting(model.Model):
|
|
|
11027
11164
|
login_notification_text: Optional[str] = None
|
|
11028
11165
|
dashboard_auto_refresh_restriction: Optional[bool] = None
|
|
11029
11166
|
dashboard_auto_refresh_minimum_interval: Optional[str] = None
|
|
11030
|
-
managed_certificate_uri: Optional[str] = None
|
|
11167
|
+
managed_certificate_uri: Optional[Sequence[str]] = None
|
|
11031
11168
|
|
|
11032
11169
|
def __init__(
|
|
11033
11170
|
self,
|
|
@@ -11056,7 +11193,7 @@ class Setting(model.Model):
|
|
|
11056
11193
|
login_notification_text: Optional[str] = None,
|
|
11057
11194
|
dashboard_auto_refresh_restriction: Optional[bool] = None,
|
|
11058
11195
|
dashboard_auto_refresh_minimum_interval: Optional[str] = None,
|
|
11059
|
-
managed_certificate_uri: Optional[str] = None
|
|
11196
|
+
managed_certificate_uri: Optional[Sequence[str]] = None
|
|
11060
11197
|
):
|
|
11061
11198
|
self.instance_config = instance_config
|
|
11062
11199
|
self.extension_framework_enabled = extension_framework_enabled
|
|
@@ -12020,6 +12157,7 @@ class User(model.Model):
|
|
|
12020
12157
|
allow_normal_group_membership: User can be a direct member of a normal Looker group.
|
|
12021
12158
|
allow_roles_from_normal_groups: User can inherit roles from a normal Looker group.
|
|
12022
12159
|
embed_group_folder_id: (Embed only) ID of user's group folder based on the external_group_id optionally specified during embed user login
|
|
12160
|
+
is_iam_admin: User is an IAM Admin - only available in Looker (Google Cloud core)
|
|
12023
12161
|
url: Link to get this item
|
|
12024
12162
|
"""
|
|
12025
12163
|
|
|
@@ -12058,6 +12196,7 @@ class User(model.Model):
|
|
|
12058
12196
|
allow_normal_group_membership: Optional[bool] = None
|
|
12059
12197
|
allow_roles_from_normal_groups: Optional[bool] = None
|
|
12060
12198
|
embed_group_folder_id: Optional[str] = None
|
|
12199
|
+
is_iam_admin: Optional[bool] = None
|
|
12061
12200
|
url: Optional[str] = None
|
|
12062
12201
|
|
|
12063
12202
|
def __init__(
|
|
@@ -12098,6 +12237,7 @@ class User(model.Model):
|
|
|
12098
12237
|
allow_normal_group_membership: Optional[bool] = None,
|
|
12099
12238
|
allow_roles_from_normal_groups: Optional[bool] = None,
|
|
12100
12239
|
embed_group_folder_id: Optional[str] = None,
|
|
12240
|
+
is_iam_admin: Optional[bool] = None,
|
|
12101
12241
|
url: Optional[str] = None
|
|
12102
12242
|
):
|
|
12103
12243
|
self.can = can
|
|
@@ -12135,6 +12275,7 @@ class User(model.Model):
|
|
|
12135
12275
|
self.allow_normal_group_membership = allow_normal_group_membership
|
|
12136
12276
|
self.allow_roles_from_normal_groups = allow_roles_from_normal_groups
|
|
12137
12277
|
self.embed_group_folder_id = embed_group_folder_id
|
|
12278
|
+
self.is_iam_admin = is_iam_admin
|
|
12138
12279
|
self.url = url
|
|
12139
12280
|
|
|
12140
12281
|
|
|
@@ -13592,11 +13733,11 @@ class WriteDatagroup(model.Model):
|
|
|
13592
13733
|
class WriteDBConnection(model.Model):
|
|
13593
13734
|
"""
|
|
13594
13735
|
Dynamic writeable type for DBConnection removes:
|
|
13595
|
-
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
|
|
13736
|
+
can, dialect, snippets, pdts_enabled, named_driver_version_actual, uses_oauth, uses_instance_oauth, supports_data_studio_link, created_at, user_id, example, last_regen_at, last_reap_at, managed, default_bq_connection, p4sa_name
|
|
13596
13737
|
|
|
13597
13738
|
Attributes:
|
|
13598
13739
|
name: Name of the connection. Also used as the unique identifier
|
|
13599
|
-
|
|
13740
|
+
named_driver_version_requested: Requested JDBC driver version name
|
|
13600
13741
|
host: Host name/address of server; or the string 'localhost' in case of a connection over an SSH tunnel.
|
|
13601
13742
|
port: Port number on server. If the connection is over an SSH tunnel, then the local port associated with the SSH tunnel.
|
|
13602
13743
|
username: Username for server authentication
|
|
@@ -13644,7 +13785,7 @@ class WriteDBConnection(model.Model):
|
|
|
13644
13785
|
"""
|
|
13645
13786
|
|
|
13646
13787
|
name: Optional[str] = None
|
|
13647
|
-
|
|
13788
|
+
named_driver_version_requested: Optional[str] = None
|
|
13648
13789
|
host: Optional[str] = None
|
|
13649
13790
|
port: Optional[str] = None
|
|
13650
13791
|
username: Optional[str] = None
|
|
@@ -13693,7 +13834,7 @@ class WriteDBConnection(model.Model):
|
|
|
13693
13834
|
self,
|
|
13694
13835
|
*,
|
|
13695
13836
|
name: Optional[str] = None,
|
|
13696
|
-
|
|
13837
|
+
named_driver_version_requested: Optional[str] = None,
|
|
13697
13838
|
host: Optional[str] = None,
|
|
13698
13839
|
port: Optional[str] = None,
|
|
13699
13840
|
username: Optional[str] = None,
|
|
@@ -13739,7 +13880,7 @@ class WriteDBConnection(model.Model):
|
|
|
13739
13880
|
query_holding_disabled: Optional[bool] = None
|
|
13740
13881
|
):
|
|
13741
13882
|
self.name = name
|
|
13742
|
-
self.
|
|
13883
|
+
self.named_driver_version_requested = named_driver_version_requested
|
|
13743
13884
|
self.host = host
|
|
13744
13885
|
self.port = port
|
|
13745
13886
|
self.username = username
|
|
@@ -13794,55 +13935,95 @@ class WriteDBConnectionOverride(model.Model):
|
|
|
13794
13935
|
Attributes:
|
|
13795
13936
|
context: Context in which to override (`pdt` is the only allowed value)
|
|
13796
13937
|
host: Host name/address of server
|
|
13938
|
+
pdt_host: Host name/address of server (same as host)
|
|
13797
13939
|
port: Port number on server
|
|
13940
|
+
pdt_port: Port number on server (same as port)
|
|
13798
13941
|
username: Username for server authentication
|
|
13942
|
+
pdt_username: Username for server authentication (same as username)
|
|
13799
13943
|
password: (Write-Only) Password for server authentication
|
|
13944
|
+
pdt_password: (Write-Only) Password for server authentication (same as password)
|
|
13800
13945
|
certificate: (Write-Only) Base64 encoded Certificate body for server authentication (when appropriate for dialect).
|
|
13946
|
+
pdt_certificate: (Write-Only) Base64 encoded Certificate body for server authentication (when appropriate for dialect) (same as certificate).
|
|
13801
13947
|
file_type: (Write-Only) Certificate keyfile type - .json or .p12
|
|
13948
|
+
pdt_file_type: (Write-Only) Certificate keyfile type - .json or .p12 (same as file_type)
|
|
13802
13949
|
database: Database name
|
|
13950
|
+
pdt_database: Database name (same as database)
|
|
13803
13951
|
schema: Schema name
|
|
13952
|
+
pdt_schema: Schema name (same as schema)
|
|
13804
13953
|
jdbc_additional_params: Additional params to add to JDBC connection string
|
|
13954
|
+
pdt_jdbc_additional_params: Additional params to add to JDBC connection string (same as jdbc_additional_params)
|
|
13805
13955
|
after_connect_statements: SQL statements (semicolon separated) to issue after connecting to the database. Requires `custom_after_connect_statements` license feature
|
|
13956
|
+
pdt_after_connect_statements: SQL statements (semicolon separated) to issue after connecting to the database. Requires `custom_after_connect_statements` license feature (same as after_connect_statements)
|
|
13806
13957
|
"""
|
|
13807
13958
|
|
|
13808
13959
|
context: Optional[str] = None
|
|
13809
13960
|
host: Optional[str] = None
|
|
13961
|
+
pdt_host: Optional[str] = None
|
|
13810
13962
|
port: Optional[str] = None
|
|
13963
|
+
pdt_port: Optional[str] = None
|
|
13811
13964
|
username: Optional[str] = None
|
|
13965
|
+
pdt_username: Optional[str] = None
|
|
13812
13966
|
password: Optional[str] = None
|
|
13967
|
+
pdt_password: Optional[str] = None
|
|
13813
13968
|
certificate: Optional[str] = None
|
|
13969
|
+
pdt_certificate: Optional[str] = None
|
|
13814
13970
|
file_type: Optional[str] = None
|
|
13971
|
+
pdt_file_type: Optional[str] = None
|
|
13815
13972
|
database: Optional[str] = None
|
|
13973
|
+
pdt_database: Optional[str] = None
|
|
13816
13974
|
schema: Optional[str] = None
|
|
13975
|
+
pdt_schema: Optional[str] = None
|
|
13817
13976
|
jdbc_additional_params: Optional[str] = None
|
|
13977
|
+
pdt_jdbc_additional_params: Optional[str] = None
|
|
13818
13978
|
after_connect_statements: Optional[str] = None
|
|
13979
|
+
pdt_after_connect_statements: Optional[str] = None
|
|
13819
13980
|
|
|
13820
13981
|
def __init__(
|
|
13821
13982
|
self,
|
|
13822
13983
|
*,
|
|
13823
13984
|
context: Optional[str] = None,
|
|
13824
13985
|
host: Optional[str] = None,
|
|
13986
|
+
pdt_host: Optional[str] = None,
|
|
13825
13987
|
port: Optional[str] = None,
|
|
13988
|
+
pdt_port: Optional[str] = None,
|
|
13826
13989
|
username: Optional[str] = None,
|
|
13990
|
+
pdt_username: Optional[str] = None,
|
|
13827
13991
|
password: Optional[str] = None,
|
|
13992
|
+
pdt_password: Optional[str] = None,
|
|
13828
13993
|
certificate: Optional[str] = None,
|
|
13994
|
+
pdt_certificate: Optional[str] = None,
|
|
13829
13995
|
file_type: Optional[str] = None,
|
|
13996
|
+
pdt_file_type: Optional[str] = None,
|
|
13830
13997
|
database: Optional[str] = None,
|
|
13998
|
+
pdt_database: Optional[str] = None,
|
|
13831
13999
|
schema: Optional[str] = None,
|
|
14000
|
+
pdt_schema: Optional[str] = None,
|
|
13832
14001
|
jdbc_additional_params: Optional[str] = None,
|
|
13833
|
-
|
|
14002
|
+
pdt_jdbc_additional_params: Optional[str] = None,
|
|
14003
|
+
after_connect_statements: Optional[str] = None,
|
|
14004
|
+
pdt_after_connect_statements: Optional[str] = None
|
|
13834
14005
|
):
|
|
13835
14006
|
self.context = context
|
|
13836
14007
|
self.host = host
|
|
14008
|
+
self.pdt_host = pdt_host
|
|
13837
14009
|
self.port = port
|
|
14010
|
+
self.pdt_port = pdt_port
|
|
13838
14011
|
self.username = username
|
|
14012
|
+
self.pdt_username = pdt_username
|
|
13839
14013
|
self.password = password
|
|
14014
|
+
self.pdt_password = pdt_password
|
|
13840
14015
|
self.certificate = certificate
|
|
14016
|
+
self.pdt_certificate = pdt_certificate
|
|
13841
14017
|
self.file_type = file_type
|
|
14018
|
+
self.pdt_file_type = pdt_file_type
|
|
13842
14019
|
self.database = database
|
|
14020
|
+
self.pdt_database = pdt_database
|
|
13843
14021
|
self.schema = schema
|
|
14022
|
+
self.pdt_schema = pdt_schema
|
|
13844
14023
|
self.jdbc_additional_params = jdbc_additional_params
|
|
14024
|
+
self.pdt_jdbc_additional_params = pdt_jdbc_additional_params
|
|
13845
14025
|
self.after_connect_statements = after_connect_statements
|
|
14026
|
+
self.pdt_after_connect_statements = pdt_after_connect_statements
|
|
13846
14027
|
|
|
13847
14028
|
|
|
13848
14029
|
@attr.s(auto_attribs=True, init=False)
|
|
@@ -15325,7 +15506,7 @@ class WriteSetting(model.Model):
|
|
|
15325
15506
|
embed_enabled
|
|
15326
15507
|
dashboard_auto_refresh_restriction: Toggle Dashboard Auto Refresh restriction
|
|
15327
15508
|
dashboard_auto_refresh_minimum_interval: Minimum time interval for dashboard element automatic refresh. Examples: (30 seconds, 1 minute)
|
|
15328
|
-
managed_certificate_uri:
|
|
15509
|
+
managed_certificate_uri: Array of URIs pointing to the location of a root certificate in Secret Manager
|
|
15329
15510
|
"""
|
|
15330
15511
|
|
|
15331
15512
|
extension_framework_enabled: Optional[bool] = None
|
|
@@ -15347,7 +15528,7 @@ class WriteSetting(model.Model):
|
|
|
15347
15528
|
embed_config: Optional["WriteEmbedConfig"] = None
|
|
15348
15529
|
dashboard_auto_refresh_restriction: Optional[bool] = None
|
|
15349
15530
|
dashboard_auto_refresh_minimum_interval: Optional[str] = None
|
|
15350
|
-
managed_certificate_uri: Optional[str] = None
|
|
15531
|
+
managed_certificate_uri: Optional[Sequence[str]] = None
|
|
15351
15532
|
|
|
15352
15533
|
def __init__(
|
|
15353
15534
|
self,
|
|
@@ -15371,7 +15552,7 @@ class WriteSetting(model.Model):
|
|
|
15371
15552
|
embed_config: Optional["WriteEmbedConfig"] = None,
|
|
15372
15553
|
dashboard_auto_refresh_restriction: Optional[bool] = None,
|
|
15373
15554
|
dashboard_auto_refresh_minimum_interval: Optional[str] = None,
|
|
15374
|
-
managed_certificate_uri: Optional[str] = None
|
|
15555
|
+
managed_certificate_uri: Optional[Sequence[str]] = None
|
|
15375
15556
|
):
|
|
15376
15557
|
self.extension_framework_enabled = extension_framework_enabled
|
|
15377
15558
|
self.extension_load_url_enabled = extension_load_url_enabled
|
|
@@ -15516,7 +15697,7 @@ class WriteTheme(model.Model):
|
|
|
15516
15697
|
class WriteUser(model.Model):
|
|
15517
15698
|
"""
|
|
15518
15699
|
Dynamic writeable type for User removes:
|
|
15519
|
-
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
|
|
15700
|
+
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, is_iam_admin, url
|
|
15520
15701
|
|
|
15521
15702
|
Attributes:
|
|
15522
15703
|
credentials_email: Dynamic writeable type for CredentialsEmail removes:
|
looker_sdk/sdk/constants.py
CHANGED
looker_sdk/version.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
looker_sdk/__init__.py,sha256=0UOw2v-BP1bNoBIIm-BnyKUpGQB3Zx-JZRmpYyLiIuY,2589
|
|
2
2
|
looker_sdk/error.py,sha256=XTKuy1zEyhSVd-VCWHKB2zVjj0X7VUzVwq9y9L22Bo0,4941
|
|
3
3
|
looker_sdk/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
|
-
looker_sdk/version.py,sha256=
|
|
4
|
+
looker_sdk/version.py,sha256=UoVBBcwNZOgrivWuNITWgZEgc_i6_b42vI5J1ZEshwA,1155
|
|
5
5
|
looker_sdk/rtl/__init__.py,sha256=hgj6CO_Du2XcJ4bRYbhaVS3dvLxjCqPQDR8KwD9IPTQ,1132
|
|
6
6
|
looker_sdk/rtl/api_methods.py,sha256=J-dm7UMyJajsJDCB0JMpGUmp80I8oPMs7cggdIaCWng,8862
|
|
7
7
|
looker_sdk/rtl/api_settings.py,sha256=0QbmNhfgjBJNnr1CNEMxCHoiu908jT8amAtSAha1xS8,6953
|
|
@@ -11,13 +11,13 @@ looker_sdk/rtl/constants.py,sha256=S0rfeT6CVjbPdY0Phj3NsgJ3Hm0M8ikOScadBr4pz6k,1
|
|
|
11
11
|
looker_sdk/rtl/hooks.py,sha256=fAHQtmfEJWXIB3VODP6QaKaX2gWKpSv46Gz_ChNJUjk,3111
|
|
12
12
|
looker_sdk/rtl/model.py,sha256=PAb1FiNbOsAXDmdn1QjpI-UUyWUTnrrRX2PHe-MNt-M,7227
|
|
13
13
|
looker_sdk/rtl/requests_transport.py,sha256=2lckuJyjeySAuAn7v-RA_xTjjWe53uCCLSWgOGEq02s,3970
|
|
14
|
-
looker_sdk/rtl/serialize.py,sha256=
|
|
14
|
+
looker_sdk/rtl/serialize.py,sha256=pO2arIln2QmuEjTodsVmVrJixRjBSsUGKEcMTpxshNM,4447
|
|
15
15
|
looker_sdk/rtl/transport.py,sha256=zNCaGmmJBtF87iLS6xtSTwiyEXP0BDdMJafPn0_tIrk,3911
|
|
16
16
|
looker_sdk/sdk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
17
|
-
looker_sdk/sdk/constants.py,sha256=
|
|
17
|
+
looker_sdk/sdk/constants.py,sha256=jbnba1WD_1YTS9iTniCGqchfUro0F-wV1FIlt1AtW7w,1186
|
|
18
18
|
looker_sdk/sdk/api40/__init__.py,sha256=Dvx1t9vDBvgEl-p1eeP7ebEC6Q6wb6rASPi7nx3z7dg,18
|
|
19
|
-
looker_sdk/sdk/api40/methods.py,sha256=
|
|
20
|
-
looker_sdk/sdk/api40/models.py,sha256=
|
|
19
|
+
looker_sdk/sdk/api40/methods.py,sha256=mc2gMeI7e6d9Zc9Aj28BiSdUa5AD6H9BkOJSH6fFJ44,524722
|
|
20
|
+
looker_sdk/sdk/api40/models.py,sha256=rakJinNxjroGcSQWJZuMr3tAZmyCJu-q5b7Ot7q6F7k,649896
|
|
21
21
|
tests/integration/__init__.py,sha256=K4tvUu8CgFRwtDhDNixHKDDb8uubXgevQBq8JmZvf8Y,63
|
|
22
22
|
tests/integration/test_methods.py,sha256=GXeBAxKYLH45YsPDGduRxaoGKBNoxRX1Cxdo4a_2eW8,24977
|
|
23
23
|
tests/integration/test_netrc.py,sha256=XJAzCh853Q0P6ZY_Cq6CtRHAqlvjGkBItgvxJMQw4Sw,1595
|
|
@@ -29,8 +29,8 @@ tests/rtl/test_auth_token.py,sha256=Ep4u0ushHqKiIkGgw-XVn1lSzPeH6pVmDB2bw-MXNAo,
|
|
|
29
29
|
tests/rtl/test_requests_transport.py,sha256=mSsxudpAkKe-uSVOIzDrV0XCFlj_ACt6T1yzbUbuwG0,5442
|
|
30
30
|
tests/rtl/test_serialize.py,sha256=1SC8jigZFFL3mrU2oSTnc2nbDxXve224_r3GaxEeU90,25917
|
|
31
31
|
tests/rtl/test_transport.py,sha256=tI83LYOeuWEmkngXyRqMjW-pv-ipLPLj4t0hGD8zqL8,1555
|
|
32
|
-
looker_sdk-25.
|
|
33
|
-
looker_sdk-25.
|
|
34
|
-
looker_sdk-25.
|
|
35
|
-
looker_sdk-25.
|
|
36
|
-
looker_sdk-25.
|
|
32
|
+
looker_sdk-25.4.0.dist-info/LICENSE.txt,sha256=N4Rmmbuo5EryYSCXcvjuXL1ZXwyXanRzuGP-dJzwsoE,1094
|
|
33
|
+
looker_sdk-25.4.0.dist-info/METADATA,sha256=UUgQQ5pQqGpejJIihQ0Cx4Car7nnl8jwL6hUTXS_3R8,7021
|
|
34
|
+
looker_sdk-25.4.0.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
|
|
35
|
+
looker_sdk-25.4.0.dist-info/top_level.txt,sha256=tDPNJRQM_A_Oncxlgxwvnzq7hZDWZaadt_nR8DmORTI,17
|
|
36
|
+
looker_sdk-25.4.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|