looker-sdk 24.2.1__tar.gz → 25.0.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 (44) hide show
  1. {looker_sdk-24.2.1 → looker_sdk-25.0.0}/PKG-INFO +1 -1
  2. {looker_sdk-24.2.1 → looker_sdk-25.0.0}/looker_sdk/error.py +2 -2
  3. {looker_sdk-24.2.1 → looker_sdk-25.0.0}/looker_sdk/sdk/api40/methods.py +212 -37
  4. {looker_sdk-24.2.1 → looker_sdk-25.0.0}/looker_sdk/sdk/api40/models.py +477 -142
  5. {looker_sdk-24.2.1 → looker_sdk-25.0.0}/looker_sdk/sdk/constants.py +1 -1
  6. {looker_sdk-24.2.1 → looker_sdk-25.0.0}/looker_sdk/version.py +1 -1
  7. {looker_sdk-24.2.1 → looker_sdk-25.0.0}/looker_sdk.egg-info/PKG-INFO +1 -1
  8. {looker_sdk-24.2.1 → looker_sdk-25.0.0}/looker_sdk.egg-info/SOURCES.txt +0 -2
  9. {looker_sdk-24.2.1 → looker_sdk-25.0.0}/setup.py +1 -1
  10. looker_sdk-24.2.1/tests/__init__.py +0 -0
  11. looker_sdk-24.2.1/tests/conftest.py +0 -133
  12. {looker_sdk-24.2.1 → looker_sdk-25.0.0}/LICENSE.txt +0 -0
  13. {looker_sdk-24.2.1 → looker_sdk-25.0.0}/MANIFEST.in +0 -0
  14. {looker_sdk-24.2.1 → looker_sdk-25.0.0}/README.rst +0 -0
  15. {looker_sdk-24.2.1 → looker_sdk-25.0.0}/looker_sdk/__init__.py +0 -0
  16. {looker_sdk-24.2.1 → looker_sdk-25.0.0}/looker_sdk/py.typed +0 -0
  17. {looker_sdk-24.2.1 → looker_sdk-25.0.0}/looker_sdk/rtl/__init__.py +0 -0
  18. {looker_sdk-24.2.1 → looker_sdk-25.0.0}/looker_sdk/rtl/api_methods.py +0 -0
  19. {looker_sdk-24.2.1 → looker_sdk-25.0.0}/looker_sdk/rtl/api_settings.py +0 -0
  20. {looker_sdk-24.2.1 → looker_sdk-25.0.0}/looker_sdk/rtl/auth_session.py +0 -0
  21. {looker_sdk-24.2.1 → looker_sdk-25.0.0}/looker_sdk/rtl/auth_token.py +0 -0
  22. {looker_sdk-24.2.1 → looker_sdk-25.0.0}/looker_sdk/rtl/constants.py +0 -0
  23. {looker_sdk-24.2.1 → looker_sdk-25.0.0}/looker_sdk/rtl/hooks.py +0 -0
  24. {looker_sdk-24.2.1 → looker_sdk-25.0.0}/looker_sdk/rtl/model.py +0 -0
  25. {looker_sdk-24.2.1 → looker_sdk-25.0.0}/looker_sdk/rtl/requests_transport.py +0 -0
  26. {looker_sdk-24.2.1 → looker_sdk-25.0.0}/looker_sdk/rtl/serialize.py +0 -0
  27. {looker_sdk-24.2.1 → looker_sdk-25.0.0}/looker_sdk/rtl/transport.py +0 -0
  28. {looker_sdk-24.2.1 → looker_sdk-25.0.0}/looker_sdk/sdk/__init__.py +0 -0
  29. {looker_sdk-24.2.1 → looker_sdk-25.0.0}/looker_sdk/sdk/api40/__init__.py +0 -0
  30. {looker_sdk-24.2.1 → looker_sdk-25.0.0}/looker_sdk.egg-info/dependency_links.txt +0 -0
  31. {looker_sdk-24.2.1 → looker_sdk-25.0.0}/looker_sdk.egg-info/requires.txt +0 -0
  32. {looker_sdk-24.2.1 → looker_sdk-25.0.0}/looker_sdk.egg-info/top_level.txt +0 -0
  33. {looker_sdk-24.2.1 → looker_sdk-25.0.0}/setup.cfg +0 -0
  34. {looker_sdk-24.2.1 → looker_sdk-25.0.0}/tests/integration/__init__.py +0 -0
  35. {looker_sdk-24.2.1 → looker_sdk-25.0.0}/tests/integration/test_methods.py +0 -0
  36. {looker_sdk-24.2.1 → looker_sdk-25.0.0}/tests/integration/test_netrc.py +0 -0
  37. {looker_sdk-24.2.1 → looker_sdk-25.0.0}/tests/rtl/__init__.py +0 -0
  38. {looker_sdk-24.2.1 → looker_sdk-25.0.0}/tests/rtl/test_api_methods.py +0 -0
  39. {looker_sdk-24.2.1 → looker_sdk-25.0.0}/tests/rtl/test_api_settings.py +0 -0
  40. {looker_sdk-24.2.1 → looker_sdk-25.0.0}/tests/rtl/test_auth_session.py +0 -0
  41. {looker_sdk-24.2.1 → looker_sdk-25.0.0}/tests/rtl/test_auth_token.py +0 -0
  42. {looker_sdk-24.2.1 → looker_sdk-25.0.0}/tests/rtl/test_requests_transport.py +0 -0
  43. {looker_sdk-24.2.1 → looker_sdk-25.0.0}/tests/rtl/test_serialize.py +0 -0
  44. {looker_sdk-24.2.1 → looker_sdk-25.0.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: 24.2.1
3
+ Version: 25.0.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.
@@ -82,7 +82,7 @@ class SDKError(Exception):
82
82
  documentation_url: {self.documentation_url}
83
83
  error_doc_url: {self.error_doc_url}
84
84
  error details:
85
- {sep.join(self.errors)}
85
+ {sep.join(str(error) for error in self.errors)}
86
86
  """
87
87
 
88
88
 
@@ -99,7 +99,7 @@ class ErrorDocHelper:
99
99
  ERROR_CODES_URL: str = "https://static-a.cdn.looker.app/errorcodes/"
100
100
  lookup_dict: Dict[str, Dict[str, str]] = {}
101
101
  RE_PATTERN: str = (
102
- """(https://docs\.looker\.com/r/err/|https://cloud\.google\.com/looker/docs/r/err/)(.*)/(\d{3})(.*)"""
102
+ r'(https://docs\.looker\.com/r/err/|https://cloud\.google\.com/looker/docs/r/err/)(.*)/(\d{3})(.*)'
103
103
  )
104
104
  pattern = re.compile(RE_PATTERN, flags=re.IGNORECASE)
105
105
 
@@ -21,7 +21,7 @@
21
21
  # SOFTWARE.
22
22
  #
23
23
 
24
- # 464 API methods
24
+ # 467 API methods
25
25
 
26
26
 
27
27
  # NOTE: Do not edit this file generated by Looker SDK Codegen for API 4.0
@@ -751,7 +751,7 @@ class Looker40SDK(api_methods.APIMethods):
751
751
  #
752
752
  # The value of the `secret` field will be set by Looker and returned.
753
753
  #
754
- # Calls to this endpoint require [Embedding](https://cloud.google.com/looker/docs/r/looker-core-feature-embed) to be enabled
754
+ # **NOTE**: Calls to this endpoint require [Embedding](https://cloud.google.com/looker/docs/r/looker-core-feature-embed) to be enabled. Usage of this endpoint is not authorized for Looker Core Standard and Looker Core Enterprise.
755
755
  #
756
756
  # POST /embed_config/secrets -> mdls.EmbedSecret
757
757
  def create_embed_secret(
@@ -773,7 +773,7 @@ class Looker40SDK(api_methods.APIMethods):
773
773
 
774
774
  # ### Delete an embed secret.
775
775
  #
776
- # Calls to this endpoint require [Embedding](https://cloud.google.com/looker/docs/r/looker-core-feature-embed) to be enabled
776
+ # **NOTE**: Calls to this endpoint require [Embedding](https://cloud.google.com/looker/docs/r/looker-core-feature-embed) to be enabled. Usage of this endpoint is not authorized for Looker Core Standard and Looker Core Enterprise.
777
777
  #
778
778
  # DELETE /embed_config/secrets/{embed_secret_id} -> str
779
779
  def delete_embed_secret(
@@ -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
- # To diagnose potential problems with an SSO embed URL, you can copy the signed URL into the Embed URI Validator text box in `<your looker instance>/admin/embed`.
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,
@@ -834,7 +837,7 @@ class Looker40SDK(api_methods.APIMethods):
834
837
  # encrypted transport.
835
838
  #
836
839
  #
837
- # Calls to this endpoint require [Embedding](https://cloud.google.com/looker/docs/r/looker-core-feature-embed) to be enabled
840
+ # **NOTE**: Calls to this endpoint require [Embedding](https://cloud.google.com/looker/docs/r/looker-core-feature-embed) to be enabled. Usage of this endpoint is not authorized for Looker Core Standard and Looker Core Enterprise.
838
841
  #
839
842
  # POST /embed/sso_url -> mdls.EmbedUrlResponse
840
843
  def create_sso_embed_url(
@@ -881,7 +884,7 @@ class Looker40SDK(api_methods.APIMethods):
881
884
  # encrypted transport.
882
885
  #
883
886
  #
884
- # Calls to this endpoint require [Embedding](https://cloud.google.com/looker/docs/r/looker-core-feature-embed) to be enabled
887
+ # **NOTE**: Calls to this endpoint require [Embedding](https://cloud.google.com/looker/docs/r/looker-core-feature-embed) to be enabled. Usage of this endpoint is not authorized for Looker Core Standard and Looker Core Enterprise.
885
888
  #
886
889
  # POST /embed/token_url/me -> mdls.EmbedUrlResponse
887
890
  def create_embed_url_as_me(
@@ -953,7 +956,7 @@ class Looker40SDK(api_methods.APIMethods):
953
956
  # - Navigation token - lives for 10 minutes. The Looker client will ask for this token once it is loaded into
954
957
  # the iframe.
955
958
  #
956
- # Calls to this endpoint require [Embedding](https://cloud.google.com/looker/docs/r/looker-core-feature-embed) to be enabled
959
+ # **NOTE**: Calls to this endpoint require [Embedding](https://cloud.google.com/looker/docs/r/looker-core-feature-embed) to be enabled. Usage of this endpoint is not authorized for Looker Core Standard and Looker Core Enterprise.
957
960
  #
958
961
  # POST /embed/cookieless_session/acquire -> mdls.EmbedCookielessSessionAcquireResponse
959
962
  def acquire_embed_cookieless_session(
@@ -979,7 +982,7 @@ class Looker40SDK(api_methods.APIMethods):
979
982
  # in the session and session reference data being cleared from the system. This endpoint can be used to log an embed
980
983
  # user out of the Looker instance.
981
984
  #
982
- # Calls to this endpoint require [Embedding](https://cloud.google.com/looker/docs/r/looker-core-feature-embed) to be enabled
985
+ # **NOTE**: Calls to this endpoint require [Embedding](https://cloud.google.com/looker/docs/r/looker-core-feature-embed) to be enabled. Usage of this endpoint is not authorized for Looker Core Standard and Looker Core Enterprise.
983
986
  #
984
987
  # DELETE /embed/cookieless_session/{session_reference_token} -> str
985
988
  def delete_embed_cookieless_session(
@@ -1015,7 +1018,7 @@ class Looker40SDK(api_methods.APIMethods):
1015
1018
  # the session time to live in the `session_reference_token_ttl` response property. If this property
1016
1019
  # contains a zero, the embed session has expired.
1017
1020
  #
1018
- # Calls to this endpoint require [Embedding](https://cloud.google.com/looker/docs/r/looker-core-feature-embed) to be enabled
1021
+ # **NOTE**: Calls to this endpoint require [Embedding](https://cloud.google.com/looker/docs/r/looker-core-feature-embed) to be enabled. Usage of this endpoint is not authorized for Looker Core Standard and Looker Core Enterprise.
1019
1022
  #
1020
1023
  # PUT /embed/cookieless_session/generate_tokens -> mdls.EmbedCookielessSessionGenerateTokensResponse
1021
1024
  def generate_tokens_for_cookieless_session(
@@ -3234,8 +3237,12 @@ class Looker40SDK(api_methods.APIMethods):
3234
3237
  # - allow_user_timezones
3235
3238
  # - custom_welcome_email
3236
3239
  # - data_connector_default_enabled
3240
+ # - dashboard_auto_refresh_restriction
3241
+ # - dashboard_auto_refresh_minimum_interval
3237
3242
  # - extension_framework_enabled
3238
3243
  # - extension_load_url_enabled
3244
+ # - instance_config
3245
+ # - managed_certificate_uri
3239
3246
  # - marketplace_auto_install_enabled
3240
3247
  # - marketplace_automation
3241
3248
  # - marketplace_terms_accepted
@@ -3275,8 +3282,12 @@ class Looker40SDK(api_methods.APIMethods):
3275
3282
  # - allow_user_timezones
3276
3283
  # - custom_welcome_email
3277
3284
  # - data_connector_default_enabled
3285
+ # - dashboard_auto_refresh_restriction
3286
+ # - dashboard_auto_refresh_minimum_interval
3278
3287
  # - extension_framework_enabled
3279
3288
  # - extension_load_url_enabled
3289
+ # - instance_config
3290
+ # - managed_certificate_uri
3280
3291
  # - marketplace_auto_install_enabled
3281
3292
  # - marketplace_automation
3282
3293
  # - marketplace_terms_accepted
@@ -3737,6 +3748,31 @@ class Looker40SDK(api_methods.APIMethods):
3737
3748
  )
3738
3749
  return response
3739
3750
 
3751
+ # ### Update an OAuth Application's client secret.
3752
+ #
3753
+ # This is an OAuth Application which Looker uses to access external systems.
3754
+ #
3755
+ # PATCH /external_oauth_applications/{client_id} -> mdls.ExternalOauthApplication
3756
+ def update_external_oauth_application(
3757
+ self,
3758
+ # The client ID of the OAuth App to update
3759
+ client_id: str,
3760
+ body: mdls.WriteExternalOauthApplication,
3761
+ transport_options: Optional[transport.TransportOptions] = None,
3762
+ ) -> mdls.ExternalOauthApplication:
3763
+ """Update External OAuth Application"""
3764
+ client_id = self.encode_path_param(client_id)
3765
+ response = cast(
3766
+ mdls.ExternalOauthApplication,
3767
+ self.patch(
3768
+ path=f"/external_oauth_applications/{client_id}",
3769
+ structure=mdls.ExternalOauthApplication,
3770
+ body=body,
3771
+ transport_options=transport_options,
3772
+ ),
3773
+ )
3774
+ return response
3775
+
3740
3776
  # ### Create OAuth User state.
3741
3777
  #
3742
3778
  # POST /external_oauth_applications/user_state -> mdls.CreateOAuthApplicationUserStateResponse
@@ -4390,6 +4426,50 @@ class Looker40SDK(api_methods.APIMethods):
4390
4426
  )
4391
4427
  return response
4392
4428
 
4429
+ # ### Get Content Summary
4430
+ #
4431
+ # Retrieves a collection of content items related to user activity and engagement, such as recently viewed content,
4432
+ # favorites and scheduled items.
4433
+ #
4434
+ # GET /content_summary -> Sequence[mdls.ContentSummary]
4435
+ def content_summary(
4436
+ self,
4437
+ # Comma-delimited names of fields to return in responses. Omit for all fields
4438
+ fields: Optional[str] = None,
4439
+ # Number of results to return. (used with offset)
4440
+ limit: Optional[int] = None,
4441
+ # Number of results to skip before returning any. (used with limit)
4442
+ offset: Optional[int] = None,
4443
+ # Match group id
4444
+ target_group_id: Optional[str] = None,
4445
+ # Match user id
4446
+ target_user_id: Optional[str] = None,
4447
+ # Content type to match, options are: look, dashboard. Can be provided as a comma delimited list.
4448
+ target_content_type: Optional[str] = None,
4449
+ # Fields to sort by
4450
+ sorts: Optional[str] = None,
4451
+ transport_options: Optional[transport.TransportOptions] = None,
4452
+ ) -> Sequence[mdls.ContentSummary]:
4453
+ """Search Content Summaries"""
4454
+ response = cast(
4455
+ Sequence[mdls.ContentSummary],
4456
+ self.get(
4457
+ path="/content_summary",
4458
+ structure=Sequence[mdls.ContentSummary],
4459
+ query_params={
4460
+ "fields": fields,
4461
+ "limit": limit,
4462
+ "offset": offset,
4463
+ "target_group_id": target_group_id,
4464
+ "target_user_id": target_user_id,
4465
+ "target_content_type": target_content_type,
4466
+ "sorts": sorts,
4467
+ },
4468
+ transport_options=transport_options,
4469
+ ),
4470
+ )
4471
+ return response
4472
+
4393
4473
  # ### Get an image representing the contents of a dashboard or look.
4394
4474
  #
4395
4475
  # The returned thumbnail is an abstract representation of the contents of a dashboard or look and does not
@@ -4444,6 +4524,10 @@ class Looker40SDK(api_methods.APIMethods):
4444
4524
  self,
4445
4525
  # Requested fields.
4446
4526
  fields: Optional[str] = None,
4527
+ # Optional list of project names to filter by
4528
+ project_names: Optional[mdls.DelimSequence[str]] = None,
4529
+ # Optional list of space ids to filter by
4530
+ space_ids: Optional[mdls.DelimSequence[str]] = None,
4447
4531
  transport_options: Optional[transport.TransportOptions] = None,
4448
4532
  ) -> mdls.ContentValidation:
4449
4533
  """Validate Content"""
@@ -4452,7 +4536,11 @@ class Looker40SDK(api_methods.APIMethods):
4452
4536
  self.get(
4453
4537
  path="/content_validation",
4454
4538
  structure=mdls.ContentValidation,
4455
- query_params={"fields": fields},
4539
+ query_params={
4540
+ "fields": fields,
4541
+ "project_names": project_names,
4542
+ "space_ids": space_ids,
4543
+ },
4456
4544
  transport_options=transport_options,
4457
4545
  ),
4458
4546
  )
@@ -5950,19 +6038,19 @@ class Looker40SDK(api_methods.APIMethods):
5950
6038
  #
5951
6039
  # All personal folders will be returned.
5952
6040
  #
5953
- # GET /folders -> Sequence[mdls.Folder]
6041
+ # GET /folders -> Sequence[mdls.FolderBase]
5954
6042
  def all_folders(
5955
6043
  self,
5956
6044
  # Requested fields.
5957
6045
  fields: Optional[str] = None,
5958
6046
  transport_options: Optional[transport.TransportOptions] = None,
5959
- ) -> Sequence[mdls.Folder]:
6047
+ ) -> Sequence[mdls.FolderBase]:
5960
6048
  """Get All Folders"""
5961
6049
  response = cast(
5962
- Sequence[mdls.Folder],
6050
+ Sequence[mdls.FolderBase],
5963
6051
  self.get(
5964
6052
  path="/folders",
5965
- structure=Sequence[mdls.Folder],
6053
+ structure=Sequence[mdls.FolderBase],
5966
6054
  query_params={"fields": fields},
5967
6055
  transport_options=transport_options,
5968
6056
  ),
@@ -7438,6 +7526,12 @@ class Looker40SDK(api_methods.APIMethods):
7438
7526
  limit: Optional[int] = None,
7439
7527
  # Number of results to skip before returning any. (Defaults to 0 if not set when limit is used)
7440
7528
  offset: Optional[int] = None,
7529
+ # Whether or not to exclude models with no explores from the response (Defaults to false)
7530
+ exclude_empty: Optional[bool] = None,
7531
+ # Whether or not to exclude hidden explores from the response (Defaults to false)
7532
+ exclude_hidden: Optional[bool] = None,
7533
+ # Whether or not to include built-in models such as System Activity (Defaults to false)
7534
+ include_internal: Optional[bool] = None,
7441
7535
  transport_options: Optional[transport.TransportOptions] = None,
7442
7536
  ) -> Sequence[mdls.LookmlModel]:
7443
7537
  """Get All LookML Models"""
@@ -7446,7 +7540,14 @@ class Looker40SDK(api_methods.APIMethods):
7446
7540
  self.get(
7447
7541
  path="/lookml_models",
7448
7542
  structure=Sequence[mdls.LookmlModel],
7449
- query_params={"fields": fields, "limit": limit, "offset": offset},
7543
+ query_params={
7544
+ "fields": fields,
7545
+ "limit": limit,
7546
+ "offset": offset,
7547
+ "exclude_empty": exclude_empty,
7548
+ "exclude_hidden": exclude_hidden,
7549
+ "include_internal": include_internal,
7550
+ },
7450
7551
  transport_options=transport_options,
7451
7552
  ),
7452
7553
  )
@@ -8896,7 +8997,7 @@ class Looker40SDK(api_methods.APIMethods):
8896
8997
  #
8897
8998
  # Returns the results of an async query task if the query has completed.
8898
8999
  #
8899
- # If the query task is still running or waiting to run, this function returns 204 No Content.
9000
+ # If the query task is still running or waiting to run, this function returns 202 Accepted.
8900
9001
  #
8901
9002
  # If the query task ID is invalid or the cached results of the query task have expired, this function returns 404 Not Found.
8902
9003
  #
@@ -8916,20 +9017,20 @@ class Looker40SDK(api_methods.APIMethods):
8916
9017
  # will be in the message of the 400 error response, but not as detailed as expressed in `json_detail.errors`.
8917
9018
  # These data formats can only carry row data, and error info is not row data.
8918
9019
  #
8919
- # GET /query_tasks/{query_task_id}/results -> mdls.QueryTask
9020
+ # GET /query_tasks/{query_task_id}/results -> str
8920
9021
  def query_task_results(
8921
9022
  self,
8922
9023
  # ID of the Query Task
8923
9024
  query_task_id: str,
8924
9025
  transport_options: Optional[transport.TransportOptions] = None,
8925
- ) -> mdls.QueryTask:
9026
+ ) -> str:
8926
9027
  """Get Async Query Results"""
8927
9028
  query_task_id = self.encode_path_param(query_task_id)
8928
9029
  response = cast(
8929
- mdls.QueryTask,
9030
+ str,
8930
9031
  self.get(
8931
9032
  path=f"/query_tasks/{query_task_id}/results",
8932
- structure=mdls.QueryTask,
9033
+ structure=str,
8933
9034
  transport_options=transport_options,
8934
9035
  ),
8935
9036
  )
@@ -10187,6 +10288,8 @@ class Looker40SDK(api_methods.APIMethods):
10187
10288
  built_in: Optional[bool] = None,
10188
10289
  # Combine given search criteria in a boolean OR expression.
10189
10290
  filter_or: Optional[bool] = None,
10291
+ # Search for Looker support roles.
10292
+ is_support_role: Optional[bool] = None,
10190
10293
  transport_options: Optional[transport.TransportOptions] = None,
10191
10294
  ) -> Sequence[mdls.Role]:
10192
10295
  """Search Roles"""
@@ -10204,6 +10307,7 @@ class Looker40SDK(api_methods.APIMethods):
10204
10307
  "name": name,
10205
10308
  "built_in": built_in,
10206
10309
  "filter_or": filter_or,
10310
+ "is_support_role": is_support_role,
10207
10311
  },
10208
10312
  transport_options=transport_options,
10209
10313
  ),
@@ -10761,6 +10865,84 @@ class Looker40SDK(api_methods.APIMethods):
10761
10865
  )
10762
10866
  return response
10763
10867
 
10868
+ # ### Search Scheduled Plans
10869
+ #
10870
+ # Returns all scheduled plans which matches the given search criteria.
10871
+ #
10872
+ # If no user_id is provided, this function returns the scheduled plans owned by the caller.
10873
+ #
10874
+ #
10875
+ # To list all schedules for all users, pass `all_users=true`.
10876
+ #
10877
+ #
10878
+ # The caller must have `see_schedules` permission to see other users' scheduled plans.
10879
+ #
10880
+ # GET /scheduled_plans/search -> Sequence[mdls.ScheduledPlan]
10881
+ def search_scheduled_plans(
10882
+ self,
10883
+ # Return scheduled plans belonging to this user_id. If not provided, returns scheduled plans owned by the caller.
10884
+ user_id: Optional[str] = None,
10885
+ # Comma delimited list of field names. If provided, only the fields specified will be included in the response
10886
+ fields: Optional[str] = None,
10887
+ # Return scheduled plans belonging to all users (caller needs see_schedules permission)
10888
+ all_users: Optional[bool] = None,
10889
+ # Number of results to return. (used with offset and takes priority over page and per_page)
10890
+ limit: Optional[int] = None,
10891
+ # Number of results to skip before returning any. (used with limit and takes priority over page and per_page)
10892
+ offset: Optional[int] = None,
10893
+ # Fields to sort by.
10894
+ sorts: Optional[str] = None,
10895
+ # Match Scheduled plan's name.
10896
+ name: Optional[str] = None,
10897
+ # Returns scheduled plans belonging to user with this first name.
10898
+ user_first_name: Optional[str] = None,
10899
+ # Returns scheduled plans belonging to user with this last name.
10900
+ user_last_name: Optional[str] = None,
10901
+ # Returns scheduled plans created on this Dashboard.
10902
+ dashboard_id: Optional[str] = None,
10903
+ # Returns scheduled plans created on this Look.
10904
+ look_id: Optional[str] = None,
10905
+ # Returns scheduled plans created on this LookML Dashboard.
10906
+ lookml_dashboard_id: Optional[str] = None,
10907
+ # Match recipient address.
10908
+ recipient: Optional[str] = None,
10909
+ # Match scheduled plan's destination type.
10910
+ destination_type: Optional[str] = None,
10911
+ # Match scheduled plan's delivery format.
10912
+ delivery_format: Optional[str] = None,
10913
+ # Combine given search criteria in a boolean OR expression
10914
+ filter_or: Optional[bool] = None,
10915
+ transport_options: Optional[transport.TransportOptions] = None,
10916
+ ) -> Sequence[mdls.ScheduledPlan]:
10917
+ """Search Scheduled Plans"""
10918
+ response = cast(
10919
+ Sequence[mdls.ScheduledPlan],
10920
+ self.get(
10921
+ path="/scheduled_plans/search",
10922
+ structure=Sequence[mdls.ScheduledPlan],
10923
+ query_params={
10924
+ "user_id": user_id,
10925
+ "fields": fields,
10926
+ "all_users": all_users,
10927
+ "limit": limit,
10928
+ "offset": offset,
10929
+ "sorts": sorts,
10930
+ "name": name,
10931
+ "user_first_name": user_first_name,
10932
+ "user_last_name": user_last_name,
10933
+ "dashboard_id": dashboard_id,
10934
+ "look_id": look_id,
10935
+ "lookml_dashboard_id": lookml_dashboard_id,
10936
+ "recipient": recipient,
10937
+ "destination_type": destination_type,
10938
+ "delivery_format": delivery_format,
10939
+ "filter_or": filter_or,
10940
+ },
10941
+ transport_options=transport_options,
10942
+ ),
10943
+ )
10944
+ return response
10945
+
10764
10946
  # ### Get Scheduled Plans for a Look
10765
10947
  #
10766
10948
  # Returns all scheduled plans for a look which belong to the caller or given user.
@@ -11054,17 +11236,9 @@ class Looker40SDK(api_methods.APIMethods):
11054
11236
  #
11055
11237
  # | result_format | Description
11056
11238
  # | :-----------: | :--- |
11057
- # | json | Plain json
11058
- # | json_bi | (*RECOMMENDED*) Row data plus metadata describing the fields, pivots, table calcs, and other aspects of the query
11059
- # | json_detail | (*LEGACY*) Row data plus metadata describing the fields, pivots, table calcs, and other aspects of the query
11060
- # | csv | Comma separated values with a header
11061
- # | txt | Tab separated values with a header
11062
- # | html | Simple html
11063
- # | md | Simple markdown
11064
- # | xlsx | MS Excel spreadsheet
11065
- # | sql | Returns the generated SQL rather than running the query
11239
+ # | json_bi | Row data plus metadata describing the fields, pivots, table calcs, and other aspects of the query
11066
11240
  #
11067
- # GET /sql_interface_queries/{query_id}/run/{result_format} -> mdls.QueryFormats
11241
+ # GET /sql_interface_queries/{query_id}/run/{result_format} -> mdls.JsonBi
11068
11242
  def run_sql_interface_query(
11069
11243
  self,
11070
11244
  # Integer id of query
@@ -11072,14 +11246,14 @@ class Looker40SDK(api_methods.APIMethods):
11072
11246
  # Format of result, options are: ["json_bi"]
11073
11247
  result_format: str,
11074
11248
  transport_options: Optional[transport.TransportOptions] = None,
11075
- ) -> mdls.QueryFormats:
11249
+ ) -> mdls.JsonBi:
11076
11250
  """Run SQL Interface Query"""
11077
11251
  result_format = self.encode_path_param(result_format)
11078
11252
  response = cast(
11079
- mdls.QueryFormats,
11253
+ mdls.JsonBi,
11080
11254
  self.get(
11081
11255
  path=f"/sql_interface_queries/{query_id}/run/{result_format}",
11082
- structure=mdls.QueryFormats,
11256
+ structure=mdls.JsonBi,
11083
11257
  transport_options=transport_options,
11084
11258
  ),
11085
11259
  )
@@ -12429,7 +12603,7 @@ class Looker40SDK(api_methods.APIMethods):
12429
12603
 
12430
12604
  # ### Embed login information for the specified user.
12431
12605
  #
12432
- # Calls to this endpoint require [Embedding](https://cloud.google.com/looker/docs/r/looker-core-feature-embed) to be enabled
12606
+ # **NOTE**: Calls to this endpoint require [Embedding](https://cloud.google.com/looker/docs/r/looker-core-feature-embed) to be enabled. Usage of this endpoint is not authorized for Looker Core Standard and Looker Core Enterprise.
12433
12607
  #
12434
12608
  # GET /users/{user_id}/credentials_embed/{credentials_embed_id} -> mdls.CredentialsEmbed
12435
12609
  def user_credentials_embed(
@@ -12458,7 +12632,7 @@ class Looker40SDK(api_methods.APIMethods):
12458
12632
 
12459
12633
  # ### Embed login information for the specified user.
12460
12634
  #
12461
- # Calls to this endpoint require [Embedding](https://cloud.google.com/looker/docs/r/looker-core-feature-embed) to be enabled
12635
+ # **NOTE**: Calls to this endpoint require [Embedding](https://cloud.google.com/looker/docs/r/looker-core-feature-embed) to be enabled. Usage of this endpoint is not authorized for Looker Core Standard and Looker Core Enterprise.
12462
12636
  #
12463
12637
  # DELETE /users/{user_id}/credentials_embed/{credentials_embed_id} -> str
12464
12638
  def delete_user_credentials_embed(
@@ -12484,7 +12658,7 @@ class Looker40SDK(api_methods.APIMethods):
12484
12658
 
12485
12659
  # ### Embed login information for the specified user.
12486
12660
  #
12487
- # Calls to this endpoint require [Embedding](https://cloud.google.com/looker/docs/r/looker-core-feature-embed) to be enabled
12661
+ # **NOTE**: Calls to this endpoint require [Embedding](https://cloud.google.com/looker/docs/r/looker-core-feature-embed) to be enabled. Usage of this endpoint is not authorized for Looker Core Standard and Looker Core Enterprise.
12488
12662
  #
12489
12663
  # GET /users/{user_id}/credentials_embed -> Sequence[mdls.CredentialsEmbed]
12490
12664
  def all_user_credentials_embeds(
@@ -12874,6 +13048,7 @@ class Looker40SDK(api_methods.APIMethods):
12874
13048
  # associated credentials. Will overwrite all associated email addresses with
12875
13049
  # the value supplied in the 'email' body param.
12876
13050
  # The user's 'is_disabled' status must be true.
13051
+ # 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
13052
  #
12878
13053
  # Calls to this endpoint may be denied by [Looker (Google Cloud core)](https://cloud.google.com/looker/docs/r/looker-core/overview).
12879
13054
  #
@@ -12903,7 +13078,7 @@ class Looker40SDK(api_methods.APIMethods):
12903
13078
 
12904
13079
  # Create an embed user from an external user ID
12905
13080
  #
12906
- # Calls to this endpoint require [Embedding](https://cloud.google.com/looker/docs/r/looker-core-feature-embed) to be enabled
13081
+ # **NOTE**: Calls to this endpoint require [Embedding](https://cloud.google.com/looker/docs/r/looker-core-feature-embed) to be enabled. Usage of this endpoint is not authorized for Looker Core Standard and Looker Core Enterprise.
12907
13082
  #
12908
13083
  # POST /users/embed_user -> mdls.UserPublic
12909
13084
  def create_embed_user(