looker-sdk 25.0.1__tar.gz → 25.4.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.
Files changed (42) hide show
  1. {looker_sdk-25.0.1 → looker_sdk-25.4.0}/PKG-INFO +1 -1
  2. {looker_sdk-25.0.1 → looker_sdk-25.4.0}/looker_sdk/rtl/serialize.py +1 -1
  3. {looker_sdk-25.0.1 → looker_sdk-25.4.0}/looker_sdk/sdk/api40/methods.py +88 -2
  4. {looker_sdk-25.0.1 → looker_sdk-25.4.0}/looker_sdk/sdk/api40/models.py +214 -16
  5. {looker_sdk-25.0.1 → looker_sdk-25.4.0}/looker_sdk/sdk/constants.py +1 -1
  6. {looker_sdk-25.0.1 → looker_sdk-25.4.0}/looker_sdk/version.py +1 -1
  7. {looker_sdk-25.0.1 → looker_sdk-25.4.0}/looker_sdk.egg-info/PKG-INFO +1 -1
  8. {looker_sdk-25.0.1 → looker_sdk-25.4.0}/LICENSE.txt +0 -0
  9. {looker_sdk-25.0.1 → looker_sdk-25.4.0}/MANIFEST.in +0 -0
  10. {looker_sdk-25.0.1 → looker_sdk-25.4.0}/README.rst +0 -0
  11. {looker_sdk-25.0.1 → looker_sdk-25.4.0}/looker_sdk/__init__.py +0 -0
  12. {looker_sdk-25.0.1 → looker_sdk-25.4.0}/looker_sdk/error.py +0 -0
  13. {looker_sdk-25.0.1 → looker_sdk-25.4.0}/looker_sdk/py.typed +0 -0
  14. {looker_sdk-25.0.1 → looker_sdk-25.4.0}/looker_sdk/rtl/__init__.py +0 -0
  15. {looker_sdk-25.0.1 → looker_sdk-25.4.0}/looker_sdk/rtl/api_methods.py +0 -0
  16. {looker_sdk-25.0.1 → looker_sdk-25.4.0}/looker_sdk/rtl/api_settings.py +0 -0
  17. {looker_sdk-25.0.1 → looker_sdk-25.4.0}/looker_sdk/rtl/auth_session.py +0 -0
  18. {looker_sdk-25.0.1 → looker_sdk-25.4.0}/looker_sdk/rtl/auth_token.py +0 -0
  19. {looker_sdk-25.0.1 → looker_sdk-25.4.0}/looker_sdk/rtl/constants.py +0 -0
  20. {looker_sdk-25.0.1 → looker_sdk-25.4.0}/looker_sdk/rtl/hooks.py +0 -0
  21. {looker_sdk-25.0.1 → looker_sdk-25.4.0}/looker_sdk/rtl/model.py +0 -0
  22. {looker_sdk-25.0.1 → looker_sdk-25.4.0}/looker_sdk/rtl/requests_transport.py +0 -0
  23. {looker_sdk-25.0.1 → looker_sdk-25.4.0}/looker_sdk/rtl/transport.py +0 -0
  24. {looker_sdk-25.0.1 → looker_sdk-25.4.0}/looker_sdk/sdk/__init__.py +0 -0
  25. {looker_sdk-25.0.1 → looker_sdk-25.4.0}/looker_sdk/sdk/api40/__init__.py +0 -0
  26. {looker_sdk-25.0.1 → looker_sdk-25.4.0}/looker_sdk.egg-info/SOURCES.txt +0 -0
  27. {looker_sdk-25.0.1 → looker_sdk-25.4.0}/looker_sdk.egg-info/dependency_links.txt +0 -0
  28. {looker_sdk-25.0.1 → looker_sdk-25.4.0}/looker_sdk.egg-info/requires.txt +0 -0
  29. {looker_sdk-25.0.1 → looker_sdk-25.4.0}/looker_sdk.egg-info/top_level.txt +0 -0
  30. {looker_sdk-25.0.1 → looker_sdk-25.4.0}/setup.cfg +0 -0
  31. {looker_sdk-25.0.1 → looker_sdk-25.4.0}/setup.py +0 -0
  32. {looker_sdk-25.0.1 → looker_sdk-25.4.0}/tests/integration/__init__.py +0 -0
  33. {looker_sdk-25.0.1 → looker_sdk-25.4.0}/tests/integration/test_methods.py +0 -0
  34. {looker_sdk-25.0.1 → looker_sdk-25.4.0}/tests/integration/test_netrc.py +0 -0
  35. {looker_sdk-25.0.1 → looker_sdk-25.4.0}/tests/rtl/__init__.py +0 -0
  36. {looker_sdk-25.0.1 → looker_sdk-25.4.0}/tests/rtl/test_api_methods.py +0 -0
  37. {looker_sdk-25.0.1 → looker_sdk-25.4.0}/tests/rtl/test_api_settings.py +0 -0
  38. {looker_sdk-25.0.1 → looker_sdk-25.4.0}/tests/rtl/test_auth_session.py +0 -0
  39. {looker_sdk-25.0.1 → looker_sdk-25.4.0}/tests/rtl/test_auth_token.py +0 -0
  40. {looker_sdk-25.0.1 → looker_sdk-25.4.0}/tests/rtl/test_requests_transport.py +0 -0
  41. {looker_sdk-25.0.1 → looker_sdk-25.4.0}/tests/rtl/test_serialize.py +0 -0
  42. {looker_sdk-25.0.1 → looker_sdk-25.4.0}/tests/rtl/test_transport.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: looker_sdk
3
- Version: 25.0.1
3
+ Version: 25.4.0
4
4
  Summary: Looker REST API
5
5
  Home-page: https://pypi.python.org/pypi/looker_sdk
6
6
  Author: Looker Data Sciences, Inc.
@@ -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):
@@ -21,7 +21,7 @@
21
21
  # SOFTWARE.
22
22
  #
23
23
 
24
- # 467 API methods
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
  ),
@@ -9202,6 +9208,8 @@ class Looker40SDK(api_methods.APIMethods):
9202
9208
  server_table_calcs: Optional[bool] = None,
9203
9209
  # Specifies the source of this call.
9204
9210
  source: Optional[str] = None,
9211
+ # Return a specialized OAuth error response if a database OAuth error occurs.
9212
+ enable_oauth_error_response: Optional[bool] = None,
9205
9213
  transport_options: Optional[transport.TransportOptions] = None,
9206
9214
  ) -> Union[str, bytes]:
9207
9215
  """Run Query"""
@@ -9226,6 +9234,7 @@ class Looker40SDK(api_methods.APIMethods):
9226
9234
  "rebuild_pdts": rebuild_pdts,
9227
9235
  "server_table_calcs": server_table_calcs,
9228
9236
  "source": source,
9237
+ "enable_oauth_error_response": enable_oauth_error_response,
9229
9238
  },
9230
9239
  transport_options=transport_options,
9231
9240
  ),
@@ -9314,6 +9323,8 @@ class Looker40SDK(api_methods.APIMethods):
9314
9323
  rebuild_pdts: Optional[bool] = None,
9315
9324
  # Perform table calculations on query results
9316
9325
  server_table_calcs: Optional[bool] = None,
9326
+ # Return a specialized OAuth error response if a database OAuth error occurs.
9327
+ enable_oauth_error_response: Optional[bool] = None,
9317
9328
  transport_options: Optional[transport.TransportOptions] = None,
9318
9329
  ) -> Union[str, bytes]:
9319
9330
  """Run Inline Query"""
@@ -9336,6 +9347,7 @@ class Looker40SDK(api_methods.APIMethods):
9336
9347
  "path_prefix": path_prefix,
9337
9348
  "rebuild_pdts": rebuild_pdts,
9338
9349
  "server_table_calcs": server_table_calcs,
9350
+ "enable_oauth_error_response": enable_oauth_error_response,
9339
9351
  },
9340
9352
  body=body,
9341
9353
  transport_options=transport_options,
@@ -9576,7 +9588,7 @@ class Looker40SDK(api_methods.APIMethods):
9576
9588
  self,
9577
9589
  # slug of query
9578
9590
  slug: str,
9579
- # Format of result, options are: ["inline_json", "json", "json_detail", "json_fe", "json_bi", "csv", "html", "md", "txt", "xlsx", "gsxml", "sql", "json_label"]
9591
+ # Format of result, options are: ["inline_json", "json", "json_detail", "json_fe", "json_bi", "csv", "html", "md", "txt", "xlsx", "gsxml", "sql", "odc", "json_label"]
9580
9592
  result_format: str,
9581
9593
  # Defaults to false. If set to true, the HTTP response will have content-disposition and other headers set to make the HTTP response behave as a downloadable attachment instead of as inline content.
9582
9594
  download: Optional[str] = None,
@@ -9825,6 +9837,80 @@ class Looker40SDK(api_methods.APIMethods):
9825
9837
 
9826
9838
  # endregion
9827
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
+
9828
9914
  # region Role: Manage Roles
9829
9915
 
9830
9916
  # ### Search model sets
@@ -21,7 +21,7 @@
21
21
  # SOFTWARE.
22
22
  #
23
23
 
24
- # 343 API models: 259 Spec, 0 Request, 62 Write, 22 Enum
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
@@ -2186,7 +2186,7 @@ class CreateQueryTask(model.Model):
2186
2186
  """
2187
2187
  Attributes:
2188
2188
  query_id: Id of query to run
2189
- result_format: Desired async query result format. Valid values are: "inline_json", "json", "json_detail", "json_fe", "json_bi", "csv", "html", "md", "txt", "xlsx", "gsxml", "sql".
2189
+ result_format: Desired async query result format. Valid values are: "inline_json", "json", "json_detail", "json_fe", "json_bi", "csv", "html", "md", "txt", "xlsx", "gsxml", "sql", "odc".
2190
2190
  can: Operations the current user is able to perform on this object
2191
2191
  source: Source of query task
2192
2192
  deferred: Create the task but defer execution
@@ -3685,6 +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
+ named_driver_version_requested: Requested JDBC driver version name
3689
+ named_driver_version_actual: Resolved JDBC driver version
3688
3690
  host: Host name/address of server; or the string 'localhost' in case of a connection over an SSH tunnel.
3689
3691
  port: Port number on server. If the connection is over an SSH tunnel, then the local port associated with the SSH tunnel.
3690
3692
  username: Username for server authentication
@@ -3738,6 +3740,7 @@ class DBConnection(model.Model):
3738
3740
  bq_storage_project_id: The project id of the default BigQuery storage project.
3739
3741
  bq_roles_verified: When true, represents that all project roles have been verified.
3740
3742
  p4sa_name: The name of P4SA service account that is associated with the Looker instance
3743
+ query_holding_disabled: Disable query holding for this connection.
3741
3744
  """
3742
3745
 
3743
3746
  can: Optional[MutableMapping[str, bool]] = None
@@ -3745,6 +3748,8 @@ class DBConnection(model.Model):
3745
3748
  dialect: Optional["Dialect"] = None
3746
3749
  snippets: Optional[Sequence["Snippet"]] = None
3747
3750
  pdts_enabled: Optional[bool] = None
3751
+ named_driver_version_requested: Optional[str] = None
3752
+ named_driver_version_actual: Optional[str] = None
3748
3753
  host: Optional[str] = None
3749
3754
  port: Optional[str] = None
3750
3755
  username: Optional[str] = None
@@ -3798,6 +3803,7 @@ class DBConnection(model.Model):
3798
3803
  bq_storage_project_id: Optional[str] = None
3799
3804
  bq_roles_verified: Optional[bool] = None
3800
3805
  p4sa_name: Optional[str] = None
3806
+ query_holding_disabled: Optional[bool] = None
3801
3807
 
3802
3808
  def __init__(
3803
3809
  self,
@@ -3807,6 +3813,8 @@ class DBConnection(model.Model):
3807
3813
  dialect: Optional["Dialect"] = None,
3808
3814
  snippets: Optional[Sequence["Snippet"]] = None,
3809
3815
  pdts_enabled: Optional[bool] = None,
3816
+ named_driver_version_requested: Optional[str] = None,
3817
+ named_driver_version_actual: Optional[str] = None,
3810
3818
  host: Optional[str] = None,
3811
3819
  port: Optional[str] = None,
3812
3820
  username: Optional[str] = None,
@@ -3859,13 +3867,16 @@ class DBConnection(model.Model):
3859
3867
  default_bq_connection: Optional[bool] = None,
3860
3868
  bq_storage_project_id: Optional[str] = None,
3861
3869
  bq_roles_verified: Optional[bool] = None,
3862
- p4sa_name: Optional[str] = None
3870
+ p4sa_name: Optional[str] = None,
3871
+ query_holding_disabled: Optional[bool] = None
3863
3872
  ):
3864
3873
  self.can = can
3865
3874
  self.name = name
3866
3875
  self.dialect = dialect
3867
3876
  self.snippets = snippets
3868
3877
  self.pdts_enabled = pdts_enabled
3878
+ self.named_driver_version_requested = named_driver_version_requested
3879
+ self.named_driver_version_actual = named_driver_version_actual
3869
3880
  self.host = host
3870
3881
  self.port = port
3871
3882
  self.username = username
@@ -3919,6 +3930,7 @@ class DBConnection(model.Model):
3919
3930
  self.bq_storage_project_id = bq_storage_project_id
3920
3931
  self.bq_roles_verified = bq_roles_verified
3921
3932
  self.p4sa_name = p4sa_name
3933
+ self.query_holding_disabled = query_holding_disabled
3922
3934
 
3923
3935
 
3924
3936
  @attr.s(auto_attribs=True, init=False)
@@ -3960,59 +3972,99 @@ class DBConnectionOverride(model.Model):
3960
3972
  Attributes:
3961
3973
  context: Context in which to override (`pdt` is the only allowed value)
3962
3974
  host: Host name/address of server
3975
+ pdt_host: Host name/address of server (same as host)
3963
3976
  port: Port number on server
3977
+ pdt_port: Port number on server (same as port)
3964
3978
  username: Username for server authentication
3979
+ pdt_username: Username for server authentication (same as username)
3965
3980
  password: (Write-Only) Password for server authentication
3981
+ pdt_password: (Write-Only) Password for server authentication (same as password)
3966
3982
  has_password: Whether or not the password is overridden in this context
3967
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).
3968
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)
3969
3987
  database: Database name
3988
+ pdt_database: Database name (same as database)
3970
3989
  schema: Schema name
3990
+ pdt_schema: Schema name (same as schema)
3971
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)
3972
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)
3973
3995
  """
3974
3996
 
3975
3997
  context: Optional[str] = None
3976
3998
  host: Optional[str] = None
3999
+ pdt_host: Optional[str] = None
3977
4000
  port: Optional[str] = None
4001
+ pdt_port: Optional[str] = None
3978
4002
  username: Optional[str] = None
4003
+ pdt_username: Optional[str] = None
3979
4004
  password: Optional[str] = None
4005
+ pdt_password: Optional[str] = None
3980
4006
  has_password: Optional[bool] = None
3981
4007
  certificate: Optional[str] = None
4008
+ pdt_certificate: Optional[str] = None
3982
4009
  file_type: Optional[str] = None
4010
+ pdt_file_type: Optional[str] = None
3983
4011
  database: Optional[str] = None
4012
+ pdt_database: Optional[str] = None
3984
4013
  schema: Optional[str] = None
4014
+ pdt_schema: Optional[str] = None
3985
4015
  jdbc_additional_params: Optional[str] = None
4016
+ pdt_jdbc_additional_params: Optional[str] = None
3986
4017
  after_connect_statements: Optional[str] = None
4018
+ pdt_after_connect_statements: Optional[str] = None
3987
4019
 
3988
4020
  def __init__(
3989
4021
  self,
3990
4022
  *,
3991
4023
  context: Optional[str] = None,
3992
4024
  host: Optional[str] = None,
4025
+ pdt_host: Optional[str] = None,
3993
4026
  port: Optional[str] = None,
4027
+ pdt_port: Optional[str] = None,
3994
4028
  username: Optional[str] = None,
4029
+ pdt_username: Optional[str] = None,
3995
4030
  password: Optional[str] = None,
4031
+ pdt_password: Optional[str] = None,
3996
4032
  has_password: Optional[bool] = None,
3997
4033
  certificate: Optional[str] = None,
4034
+ pdt_certificate: Optional[str] = None,
3998
4035
  file_type: Optional[str] = None,
4036
+ pdt_file_type: Optional[str] = None,
3999
4037
  database: Optional[str] = None,
4038
+ pdt_database: Optional[str] = None,
4000
4039
  schema: Optional[str] = None,
4040
+ pdt_schema: Optional[str] = None,
4001
4041
  jdbc_additional_params: Optional[str] = None,
4002
- after_connect_statements: Optional[str] = None
4042
+ pdt_jdbc_additional_params: Optional[str] = None,
4043
+ after_connect_statements: Optional[str] = None,
4044
+ pdt_after_connect_statements: Optional[str] = None
4003
4045
  ):
4004
4046
  self.context = context
4005
4047
  self.host = host
4048
+ self.pdt_host = pdt_host
4006
4049
  self.port = port
4050
+ self.pdt_port = pdt_port
4007
4051
  self.username = username
4052
+ self.pdt_username = pdt_username
4008
4053
  self.password = password
4054
+ self.pdt_password = pdt_password
4009
4055
  self.has_password = has_password
4010
4056
  self.certificate = certificate
4057
+ self.pdt_certificate = pdt_certificate
4011
4058
  self.file_type = file_type
4059
+ self.pdt_file_type = pdt_file_type
4012
4060
  self.database = database
4061
+ self.pdt_database = pdt_database
4013
4062
  self.schema = schema
4063
+ self.pdt_schema = pdt_schema
4014
4064
  self.jdbc_additional_params = jdbc_additional_params
4065
+ self.pdt_jdbc_additional_params = pdt_jdbc_additional_params
4015
4066
  self.after_connect_statements = after_connect_statements
4067
+ self.pdt_after_connect_statements = pdt_after_connect_statements
4016
4068
 
4017
4069
 
4018
4070
  @attr.s(auto_attribs=True, init=False)
@@ -4220,6 +4272,8 @@ class DialectInfo(model.Model):
4220
4272
  label_for_database_equivalent: What the dialect calls the equivalent of a normal SQL table
4221
4273
  label_for_schema_equivalent: What the dialect calls the equivalent of a schema-level namespace
4222
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
4223
4277
  supported_options:
4224
4278
  """
4225
4279
 
@@ -4231,6 +4285,8 @@ class DialectInfo(model.Model):
4231
4285
  label_for_database_equivalent: Optional[str] = None
4232
4286
  label_for_schema_equivalent: Optional[str] = None
4233
4287
  name: Optional[str] = None
4288
+ supported_driver_name: Optional[str] = None
4289
+ supported_driver_versions: Optional[Sequence[str]] = None
4234
4290
  supported_options: Optional["DialectInfoOptions"] = None
4235
4291
 
4236
4292
  def __init__(
@@ -4244,6 +4300,8 @@ class DialectInfo(model.Model):
4244
4300
  label_for_database_equivalent: Optional[str] = None,
4245
4301
  label_for_schema_equivalent: Optional[str] = None,
4246
4302
  name: Optional[str] = None,
4303
+ supported_driver_name: Optional[str] = None,
4304
+ supported_driver_versions: Optional[Sequence[str]] = None,
4247
4305
  supported_options: Optional["DialectInfoOptions"] = None
4248
4306
  ):
4249
4307
  self.can = can
@@ -4254,6 +4312,8 @@ class DialectInfo(model.Model):
4254
4312
  self.label_for_database_equivalent = label_for_database_equivalent
4255
4313
  self.label_for_schema_equivalent = label_for_schema_equivalent
4256
4314
  self.name = name
4315
+ self.supported_driver_name = supported_driver_name
4316
+ self.supported_driver_versions = supported_driver_versions
4257
4317
  self.supported_options = supported_options
4258
4318
 
4259
4319
 
@@ -9770,6 +9830,91 @@ class RenderTask(model.Model):
9770
9830
  self.width = width
9771
9831
 
9772
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
+
9773
9918
  @attr.s(auto_attribs=True, init=False)
9774
9919
  class RepositoryCredential(model.Model):
9775
9920
  """
@@ -9817,7 +9962,7 @@ class RepositoryCredential(model.Model):
9817
9962
 
9818
9963
  class ResultFormat(enum.Enum):
9819
9964
  """
9820
- Desired async query result format. Valid values are: "inline_json", "json", "json_detail", "json_fe", "json_bi", "csv", "html", "md", "txt", "xlsx", "gsxml", "sql". (Enum defined in CreateQueryTask)
9965
+ Desired async query result format. Valid values are: "inline_json", "json", "json_detail", "json_fe", "json_bi", "csv", "html", "md", "txt", "xlsx", "gsxml", "sql", "odc". (Enum defined in CreateQueryTask)
9821
9966
 
9822
9967
  """
9823
9968
 
@@ -9833,6 +9978,7 @@ class ResultFormat(enum.Enum):
9833
9978
  xlsx = "xlsx"
9834
9979
  gsxml = "gsxml"
9835
9980
  sql = "sql"
9981
+ odc = "odc"
9836
9982
  invalid_api_enum_value = "invalid_api_enum_value"
9837
9983
 
9838
9984
 
@@ -10991,7 +11137,7 @@ class Setting(model.Model):
10991
11137
  login_notification_text: Login notification text
10992
11138
  dashboard_auto_refresh_restriction: Toggle Dashboard Auto Refresh restriction
10993
11139
  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
11140
+ managed_certificate_uri: Array of URIs pointing to the location of a root certificate in Secret Manager
10995
11141
  """
10996
11142
 
10997
11143
  instance_config: Optional["InstanceConfig"] = None
@@ -11018,7 +11164,7 @@ class Setting(model.Model):
11018
11164
  login_notification_text: Optional[str] = None
11019
11165
  dashboard_auto_refresh_restriction: Optional[bool] = None
11020
11166
  dashboard_auto_refresh_minimum_interval: Optional[str] = None
11021
- managed_certificate_uri: Optional[str] = None
11167
+ managed_certificate_uri: Optional[Sequence[str]] = None
11022
11168
 
11023
11169
  def __init__(
11024
11170
  self,
@@ -11047,7 +11193,7 @@ class Setting(model.Model):
11047
11193
  login_notification_text: Optional[str] = None,
11048
11194
  dashboard_auto_refresh_restriction: Optional[bool] = None,
11049
11195
  dashboard_auto_refresh_minimum_interval: Optional[str] = None,
11050
- managed_certificate_uri: Optional[str] = None
11196
+ managed_certificate_uri: Optional[Sequence[str]] = None
11051
11197
  ):
11052
11198
  self.instance_config = instance_config
11053
11199
  self.extension_framework_enabled = extension_framework_enabled
@@ -12011,6 +12157,7 @@ class User(model.Model):
12011
12157
  allow_normal_group_membership: User can be a direct member of a normal Looker group.
12012
12158
  allow_roles_from_normal_groups: User can inherit roles from a normal Looker group.
12013
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)
12014
12161
  url: Link to get this item
12015
12162
  """
12016
12163
 
@@ -12049,6 +12196,7 @@ class User(model.Model):
12049
12196
  allow_normal_group_membership: Optional[bool] = None
12050
12197
  allow_roles_from_normal_groups: Optional[bool] = None
12051
12198
  embed_group_folder_id: Optional[str] = None
12199
+ is_iam_admin: Optional[bool] = None
12052
12200
  url: Optional[str] = None
12053
12201
 
12054
12202
  def __init__(
@@ -12089,6 +12237,7 @@ class User(model.Model):
12089
12237
  allow_normal_group_membership: Optional[bool] = None,
12090
12238
  allow_roles_from_normal_groups: Optional[bool] = None,
12091
12239
  embed_group_folder_id: Optional[str] = None,
12240
+ is_iam_admin: Optional[bool] = None,
12092
12241
  url: Optional[str] = None
12093
12242
  ):
12094
12243
  self.can = can
@@ -12126,6 +12275,7 @@ class User(model.Model):
12126
12275
  self.allow_normal_group_membership = allow_normal_group_membership
12127
12276
  self.allow_roles_from_normal_groups = allow_roles_from_normal_groups
12128
12277
  self.embed_group_folder_id = embed_group_folder_id
12278
+ self.is_iam_admin = is_iam_admin
12129
12279
  self.url = url
12130
12280
 
12131
12281
 
@@ -13096,7 +13246,7 @@ class WriteCreateQueryTask(model.Model):
13096
13246
 
13097
13247
  Attributes:
13098
13248
  query_id: Id of query to run
13099
- result_format: Desired async query result format. Valid values are: "inline_json", "json", "json_detail", "json_fe", "json_bi", "csv", "html", "md", "txt", "xlsx", "gsxml", "sql".
13249
+ result_format: Desired async query result format. Valid values are: "inline_json", "json", "json_detail", "json_fe", "json_bi", "csv", "html", "md", "txt", "xlsx", "gsxml", "sql", "odc".
13100
13250
  source: Source of query task
13101
13251
  deferred: Create the task but defer execution
13102
13252
  look_id: Id of look associated with query.
@@ -13583,10 +13733,11 @@ class WriteDatagroup(model.Model):
13583
13733
  class WriteDBConnection(model.Model):
13584
13734
  """
13585
13735
  Dynamic writeable type for DBConnection removes:
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
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
13587
13737
 
13588
13738
  Attributes:
13589
13739
  name: Name of the connection. Also used as the unique identifier
13740
+ named_driver_version_requested: Requested JDBC driver version name
13590
13741
  host: Host name/address of server; or the string 'localhost' in case of a connection over an SSH tunnel.
13591
13742
  port: Port number on server. If the connection is over an SSH tunnel, then the local port associated with the SSH tunnel.
13592
13743
  username: Username for server authentication
@@ -13630,9 +13781,11 @@ class WriteDBConnection(model.Model):
13630
13781
  connection_pooling: Enable database connection pooling.
13631
13782
  bq_storage_project_id: The project id of the default BigQuery storage project.
13632
13783
  bq_roles_verified: When true, represents that all project roles have been verified.
13784
+ query_holding_disabled: Disable query holding for this connection.
13633
13785
  """
13634
13786
 
13635
13787
  name: Optional[str] = None
13788
+ named_driver_version_requested: Optional[str] = None
13636
13789
  host: Optional[str] = None
13637
13790
  port: Optional[str] = None
13638
13791
  username: Optional[str] = None
@@ -13675,11 +13828,13 @@ class WriteDBConnection(model.Model):
13675
13828
  connection_pooling: Optional[bool] = None
13676
13829
  bq_storage_project_id: Optional[str] = None
13677
13830
  bq_roles_verified: Optional[bool] = None
13831
+ query_holding_disabled: Optional[bool] = None
13678
13832
 
13679
13833
  def __init__(
13680
13834
  self,
13681
13835
  *,
13682
13836
  name: Optional[str] = None,
13837
+ named_driver_version_requested: Optional[str] = None,
13683
13838
  host: Optional[str] = None,
13684
13839
  port: Optional[str] = None,
13685
13840
  username: Optional[str] = None,
@@ -13721,9 +13876,11 @@ class WriteDBConnection(model.Model):
13721
13876
  pdt_api_control_enabled: Optional[bool] = None,
13722
13877
  connection_pooling: Optional[bool] = None,
13723
13878
  bq_storage_project_id: Optional[str] = None,
13724
- bq_roles_verified: Optional[bool] = None
13879
+ bq_roles_verified: Optional[bool] = None,
13880
+ query_holding_disabled: Optional[bool] = None
13725
13881
  ):
13726
13882
  self.name = name
13883
+ self.named_driver_version_requested = named_driver_version_requested
13727
13884
  self.host = host
13728
13885
  self.port = port
13729
13886
  self.username = username
@@ -13766,6 +13923,7 @@ class WriteDBConnection(model.Model):
13766
13923
  self.connection_pooling = connection_pooling
13767
13924
  self.bq_storage_project_id = bq_storage_project_id
13768
13925
  self.bq_roles_verified = bq_roles_verified
13926
+ self.query_holding_disabled = query_holding_disabled
13769
13927
 
13770
13928
 
13771
13929
  @attr.s(auto_attribs=True, init=False)
@@ -13777,55 +13935,95 @@ class WriteDBConnectionOverride(model.Model):
13777
13935
  Attributes:
13778
13936
  context: Context in which to override (`pdt` is the only allowed value)
13779
13937
  host: Host name/address of server
13938
+ pdt_host: Host name/address of server (same as host)
13780
13939
  port: Port number on server
13940
+ pdt_port: Port number on server (same as port)
13781
13941
  username: Username for server authentication
13942
+ pdt_username: Username for server authentication (same as username)
13782
13943
  password: (Write-Only) Password for server authentication
13944
+ pdt_password: (Write-Only) Password for server authentication (same as password)
13783
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).
13784
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)
13785
13949
  database: Database name
13950
+ pdt_database: Database name (same as database)
13786
13951
  schema: Schema name
13952
+ pdt_schema: Schema name (same as schema)
13787
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)
13788
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)
13789
13957
  """
13790
13958
 
13791
13959
  context: Optional[str] = None
13792
13960
  host: Optional[str] = None
13961
+ pdt_host: Optional[str] = None
13793
13962
  port: Optional[str] = None
13963
+ pdt_port: Optional[str] = None
13794
13964
  username: Optional[str] = None
13965
+ pdt_username: Optional[str] = None
13795
13966
  password: Optional[str] = None
13967
+ pdt_password: Optional[str] = None
13796
13968
  certificate: Optional[str] = None
13969
+ pdt_certificate: Optional[str] = None
13797
13970
  file_type: Optional[str] = None
13971
+ pdt_file_type: Optional[str] = None
13798
13972
  database: Optional[str] = None
13973
+ pdt_database: Optional[str] = None
13799
13974
  schema: Optional[str] = None
13975
+ pdt_schema: Optional[str] = None
13800
13976
  jdbc_additional_params: Optional[str] = None
13977
+ pdt_jdbc_additional_params: Optional[str] = None
13801
13978
  after_connect_statements: Optional[str] = None
13979
+ pdt_after_connect_statements: Optional[str] = None
13802
13980
 
13803
13981
  def __init__(
13804
13982
  self,
13805
13983
  *,
13806
13984
  context: Optional[str] = None,
13807
13985
  host: Optional[str] = None,
13986
+ pdt_host: Optional[str] = None,
13808
13987
  port: Optional[str] = None,
13988
+ pdt_port: Optional[str] = None,
13809
13989
  username: Optional[str] = None,
13990
+ pdt_username: Optional[str] = None,
13810
13991
  password: Optional[str] = None,
13992
+ pdt_password: Optional[str] = None,
13811
13993
  certificate: Optional[str] = None,
13994
+ pdt_certificate: Optional[str] = None,
13812
13995
  file_type: Optional[str] = None,
13996
+ pdt_file_type: Optional[str] = None,
13813
13997
  database: Optional[str] = None,
13998
+ pdt_database: Optional[str] = None,
13814
13999
  schema: Optional[str] = None,
14000
+ pdt_schema: Optional[str] = None,
13815
14001
  jdbc_additional_params: Optional[str] = None,
13816
- after_connect_statements: Optional[str] = None
14002
+ pdt_jdbc_additional_params: Optional[str] = None,
14003
+ after_connect_statements: Optional[str] = None,
14004
+ pdt_after_connect_statements: Optional[str] = None
13817
14005
  ):
13818
14006
  self.context = context
13819
14007
  self.host = host
14008
+ self.pdt_host = pdt_host
13820
14009
  self.port = port
14010
+ self.pdt_port = pdt_port
13821
14011
  self.username = username
14012
+ self.pdt_username = pdt_username
13822
14013
  self.password = password
14014
+ self.pdt_password = pdt_password
13823
14015
  self.certificate = certificate
14016
+ self.pdt_certificate = pdt_certificate
13824
14017
  self.file_type = file_type
14018
+ self.pdt_file_type = pdt_file_type
13825
14019
  self.database = database
14020
+ self.pdt_database = pdt_database
13826
14021
  self.schema = schema
14022
+ self.pdt_schema = pdt_schema
13827
14023
  self.jdbc_additional_params = jdbc_additional_params
14024
+ self.pdt_jdbc_additional_params = pdt_jdbc_additional_params
13828
14025
  self.after_connect_statements = after_connect_statements
14026
+ self.pdt_after_connect_statements = pdt_after_connect_statements
13829
14027
 
13830
14028
 
13831
14029
  @attr.s(auto_attribs=True, init=False)
@@ -15308,7 +15506,7 @@ class WriteSetting(model.Model):
15308
15506
  embed_enabled
15309
15507
  dashboard_auto_refresh_restriction: Toggle Dashboard Auto Refresh restriction
15310
15508
  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
15509
+ managed_certificate_uri: Array of URIs pointing to the location of a root certificate in Secret Manager
15312
15510
  """
15313
15511
 
15314
15512
  extension_framework_enabled: Optional[bool] = None
@@ -15330,7 +15528,7 @@ class WriteSetting(model.Model):
15330
15528
  embed_config: Optional["WriteEmbedConfig"] = None
15331
15529
  dashboard_auto_refresh_restriction: Optional[bool] = None
15332
15530
  dashboard_auto_refresh_minimum_interval: Optional[str] = None
15333
- managed_certificate_uri: Optional[str] = None
15531
+ managed_certificate_uri: Optional[Sequence[str]] = None
15334
15532
 
15335
15533
  def __init__(
15336
15534
  self,
@@ -15354,7 +15552,7 @@ class WriteSetting(model.Model):
15354
15552
  embed_config: Optional["WriteEmbedConfig"] = None,
15355
15553
  dashboard_auto_refresh_restriction: Optional[bool] = None,
15356
15554
  dashboard_auto_refresh_minimum_interval: Optional[str] = None,
15357
- managed_certificate_uri: Optional[str] = None
15555
+ managed_certificate_uri: Optional[Sequence[str]] = None
15358
15556
  ):
15359
15557
  self.extension_framework_enabled = extension_framework_enabled
15360
15558
  self.extension_load_url_enabled = extension_load_url_enabled
@@ -15499,7 +15697,7 @@ class WriteTheme(model.Model):
15499
15697
  class WriteUser(model.Model):
15500
15698
  """
15501
15699
  Dynamic writeable type for User removes:
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
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
15503
15701
 
15504
15702
  Attributes:
15505
15703
  credentials_email: Dynamic writeable type for CredentialsEmail removes:
@@ -20,5 +20,5 @@
20
20
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
21
  # THE SOFTWARE.
22
22
 
23
- sdk_version = "25.0"
23
+ sdk_version = "25.4"
24
24
  environment_prefix = "LOOKERSDK"
@@ -20,4 +20,4 @@
20
20
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
21
  # THE SOFTWARE.
22
22
 
23
- __version__ = "25.0.1"
23
+ __version__ = "25.4.0"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: looker-sdk
3
- Version: 25.0.1
3
+ Version: 25.4.0
4
4
  Summary: Looker REST API
5
5
  Home-page: https://pypi.python.org/pypi/looker_sdk
6
6
  Author: Looker Data Sciences, Inc.
File without changes
File without changes
File without changes
File without changes
File without changes