looker-sdk 25.6.0__py3-none-any.whl → 25.10.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
looker_sdk/error.py CHANGED
@@ -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(str(error) for error in self.errors)}
85
+ {sep.join(str(error_details) for error_details in self.errors)}
86
86
  """
87
87
 
88
88
 
@@ -4879,6 +4879,8 @@ class Looker40SDK(api_methods.APIMethods):
4879
4879
  # Any UDD (a dashboard which exists in the Looker database rather than as a LookML file) which has a `lookml_link_id`
4880
4880
  # property value referring to a LookML dashboard's id (model::dashboardname) will be updated so that it matches the current state of the LookML dashboard.
4881
4881
  #
4882
+ # If the dashboard_ids parameter is specified, only the dashboards with the specified ids will be updated.
4883
+ #
4882
4884
  # For this operation to succeed the user must have permission to view the LookML dashboard, and only linked dashboards
4883
4885
  # that the user has permission to update will be synced.
4884
4886
  #
@@ -4889,9 +4891,10 @@ class Looker40SDK(api_methods.APIMethods):
4889
4891
  self,
4890
4892
  # Id of LookML dashboard, in the form 'model::dashboardname'
4891
4893
  lookml_dashboard_id: str,
4892
- body: mdls.WriteDashboard,
4893
4894
  # If true, and this dashboard is localized, export it with the raw keys, not localized.
4894
4895
  raw_locale: Optional[bool] = None,
4896
+ # An array of UDD dashboard IDs to sync. If not specified, all UDD dashboards will be synced.
4897
+ dashboard_ids: Optional[mdls.DelimSequence[str]] = None,
4895
4898
  transport_options: Optional[transport.TransportOptions] = None,
4896
4899
  ) -> Sequence[int]:
4897
4900
  """Sync LookML Dashboard"""
@@ -4901,8 +4904,7 @@ class Looker40SDK(api_methods.APIMethods):
4901
4904
  self.patch(
4902
4905
  path=f"/dashboards/{lookml_dashboard_id}/sync",
4903
4906
  structure=Sequence[int],
4904
- query_params={"raw_locale": raw_locale},
4905
- body=body,
4907
+ query_params={"raw_locale": raw_locale, "dashboard_ids": dashboard_ids},
4906
4908
  transport_options=transport_options,
4907
4909
  ),
4908
4910
  )
@@ -7984,6 +7986,59 @@ class Looker40SDK(api_methods.APIMethods):
7984
7986
 
7985
7987
  # region Project: Manage Projects
7986
7988
 
7989
+ # ### Fetches a CI Run.
7990
+ #
7991
+ # GET /projects/{project_id}/ci/runs/{run_id} -> mdls.ProjectCIRun
7992
+ def get_ci_run(
7993
+ self,
7994
+ # Project Id
7995
+ project_id: str,
7996
+ # Run Id
7997
+ run_id: str,
7998
+ # Requested fields
7999
+ fields: Optional[str] = None,
8000
+ transport_options: Optional[transport.TransportOptions] = None,
8001
+ ) -> mdls.ProjectCIRun:
8002
+ """Fetch Continuous Integration run"""
8003
+ project_id = self.encode_path_param(project_id)
8004
+ run_id = self.encode_path_param(run_id)
8005
+ response = cast(
8006
+ mdls.ProjectCIRun,
8007
+ self.get(
8008
+ path=f"/projects/{project_id}/ci/runs/{run_id}",
8009
+ structure=mdls.ProjectCIRun,
8010
+ query_params={"fields": fields},
8011
+ transport_options=transport_options,
8012
+ ),
8013
+ )
8014
+ return response
8015
+
8016
+ # ### Creates a CI Run.
8017
+ #
8018
+ # POST /projects/{project_id}/ci/run -> mdls.CreateCIRunResponse
8019
+ def create_ci_run(
8020
+ self,
8021
+ # Project Id
8022
+ project_id: str,
8023
+ body: mdls.CreateCIRunRequest,
8024
+ # Requested fields
8025
+ fields: Optional[str] = None,
8026
+ transport_options: Optional[transport.TransportOptions] = None,
8027
+ ) -> mdls.CreateCIRunResponse:
8028
+ """Create a Continuous Integration run"""
8029
+ project_id = self.encode_path_param(project_id)
8030
+ response = cast(
8031
+ mdls.CreateCIRunResponse,
8032
+ self.post(
8033
+ path=f"/projects/{project_id}/ci/run",
8034
+ structure=mdls.CreateCIRunResponse,
8035
+ query_params={"fields": fields},
8036
+ body=body,
8037
+ transport_options=transport_options,
8038
+ ),
8039
+ )
8040
+ return response
8041
+
7987
8042
  # ### Generate Lockfile for All LookML Dependencies
7988
8043
  #
7989
8044
  # Git must have been configured, must be in dev mode and deploy permission required
@@ -8631,9 +8686,6 @@ class Looker40SDK(api_methods.APIMethods):
8631
8686
 
8632
8687
  # ### Get All Git Connection Tests
8633
8688
  #
8634
- # dev mode required.
8635
- # - Call `update_session` to select the 'dev' workspace.
8636
- #
8637
8689
  # Returns a list of tests which can be run against a project's (or the dependency project for the provided remote_url) git connection. Call [Run Git Connection Test](#!/Project/run_git_connection_test) to execute each test in sequence.
8638
8690
  #
8639
8691
  # Tests are ordered by increasing specificity. Tests should be run in the order returned because later tests require functionality tested by tests earlier in the test list.
@@ -8792,59 +8844,6 @@ class Looker40SDK(api_methods.APIMethods):
8792
8844
  )
8793
8845
  return response
8794
8846
 
8795
- # ### Fetches a CI Run.
8796
- #
8797
- # GET /projects/{project_id}/ci/runs/{run_id} -> mdls.ProjectCIRun
8798
- def get_ci_run(
8799
- self,
8800
- # Project Id
8801
- project_id: str,
8802
- # Run Id
8803
- run_id: str,
8804
- # Requested fields
8805
- fields: Optional[str] = None,
8806
- transport_options: Optional[transport.TransportOptions] = None,
8807
- ) -> mdls.ProjectCIRun:
8808
- """Fetch Continuous Integration run"""
8809
- project_id = self.encode_path_param(project_id)
8810
- run_id = self.encode_path_param(run_id)
8811
- response = cast(
8812
- mdls.ProjectCIRun,
8813
- self.get(
8814
- path=f"/projects/{project_id}/ci/runs/{run_id}",
8815
- structure=mdls.ProjectCIRun,
8816
- query_params={"fields": fields},
8817
- transport_options=transport_options,
8818
- ),
8819
- )
8820
- return response
8821
-
8822
- # ### Creates a CI Run.
8823
- #
8824
- # POST /projects/{project_id}/ci/run -> mdls.CreateCIRunResponse
8825
- def create_ci_run(
8826
- self,
8827
- # Project Id
8828
- project_id: str,
8829
- body: mdls.CreateCIRunRequest,
8830
- # Requested fields
8831
- fields: Optional[str] = None,
8832
- transport_options: Optional[transport.TransportOptions] = None,
8833
- ) -> mdls.CreateCIRunResponse:
8834
- """Create a Continuous Integration run"""
8835
- project_id = self.encode_path_param(project_id)
8836
- response = cast(
8837
- mdls.CreateCIRunResponse,
8838
- self.post(
8839
- path=f"/projects/{project_id}/ci/run",
8840
- structure=mdls.CreateCIRunResponse,
8841
- query_params={"fields": fields},
8842
- body=body,
8843
- transport_options=transport_options,
8844
- ),
8845
- )
8846
- return response
8847
-
8848
8847
  # ### Configure Repository Credential for a remote dependency
8849
8848
  #
8850
8849
  # Admin required.
@@ -21,7 +21,7 @@
21
21
  # SOFTWARE.
22
22
  #
23
23
 
24
- # 353 API models: 269 Spec, 0 Request, 62 Write, 22 Enum
24
+ # 373 API models: 287 Spec, 0 Request, 62 Write, 24 Enum
25
25
 
26
26
 
27
27
  # NOTE: Do not edit this file generated by Looker SDK Codegen for API 4.0
@@ -620,6 +620,151 @@ class ArtifactUsage(model.Model):
620
620
  self.usage = usage
621
621
 
622
622
 
623
+ @attr.s(auto_attribs=True, init=False)
624
+ class AssertValidatorErrorItem(model.Model):
625
+ """
626
+ Attributes:
627
+ assert_error:
628
+ generic_error:
629
+ """
630
+
631
+ assert_error: Optional["AssertValidatorTestError"] = None
632
+ generic_error: Optional["GenericError"] = None
633
+
634
+ def __init__(
635
+ self,
636
+ *,
637
+ assert_error: Optional["AssertValidatorTestError"] = None,
638
+ generic_error: Optional["GenericError"] = None
639
+ ):
640
+ self.assert_error = assert_error
641
+ self.generic_error = generic_error
642
+
643
+
644
+ @attr.s(auto_attribs=True, init=False)
645
+ class AssertValidatorResult(model.Model):
646
+ """
647
+ Attributes:
648
+ name: Name of the validator (assert)
649
+ status: Status of the validation (unknown, failed, passed, skipped, errored, cancelled, queued, running)
650
+ results: Results of the validation
651
+ """
652
+
653
+ name: Optional[str] = None
654
+ status: Optional[str] = None
655
+ results: Optional[Sequence["AssertValidatorTestedExplore"]] = None
656
+
657
+ def __init__(
658
+ self,
659
+ *,
660
+ name: Optional[str] = None,
661
+ status: Optional[str] = None,
662
+ results: Optional[Sequence["AssertValidatorTestedExplore"]] = None
663
+ ):
664
+ self.name = name
665
+ self.status = status
666
+ self.results = results
667
+
668
+
669
+ @attr.s(auto_attribs=True, init=False)
670
+ class AssertValidatorTestedExplore(model.Model):
671
+ """
672
+ Attributes:
673
+ error_count: Total number of failed data tests
674
+ errors: Details of data tests that failed validation
675
+ success_count: Total number of successful data tests
676
+ successes: Details of data tests that passed validation
677
+ """
678
+
679
+ error_count: Optional[int] = None
680
+ errors: Optional[Sequence["AssertValidatorErrorItem"]] = None
681
+ success_count: Optional[str] = None
682
+ successes: Optional[Sequence["AssertValidatorTestSuccess"]] = None
683
+
684
+ def __init__(
685
+ self,
686
+ *,
687
+ error_count: Optional[int] = None,
688
+ errors: Optional[Sequence["AssertValidatorErrorItem"]] = None,
689
+ success_count: Optional[str] = None,
690
+ successes: Optional[Sequence["AssertValidatorTestSuccess"]] = None
691
+ ):
692
+ self.error_count = error_count
693
+ self.errors = errors
694
+ self.success_count = success_count
695
+ self.successes = successes
696
+
697
+
698
+ @attr.s(auto_attribs=True, init=False)
699
+ class AssertValidatorTestError(model.Model):
700
+ """
701
+ Attributes:
702
+ model: LookML model that contains the data test
703
+ explore: LookML Explore that is used as the explore_source for the data test
704
+ test_name: Name of the data test
705
+ explore_url: URL to the Explore
706
+ lookml_url: URL to the LookML file where the data test is defined
707
+ message: Message returned by the data test
708
+ """
709
+
710
+ model: Optional[str] = None
711
+ explore: Optional[str] = None
712
+ test_name: Optional[str] = None
713
+ explore_url: Optional[str] = None
714
+ lookml_url: Optional[str] = None
715
+ message: Optional[str] = None
716
+
717
+ def __init__(
718
+ self,
719
+ *,
720
+ model: Optional[str] = None,
721
+ explore: Optional[str] = None,
722
+ test_name: Optional[str] = None,
723
+ explore_url: Optional[str] = None,
724
+ lookml_url: Optional[str] = None,
725
+ message: Optional[str] = None
726
+ ):
727
+ self.model = model
728
+ self.explore = explore
729
+ self.test_name = test_name
730
+ self.explore_url = explore_url
731
+ self.lookml_url = lookml_url
732
+ self.message = message
733
+
734
+
735
+ @attr.s(auto_attribs=True, init=False)
736
+ class AssertValidatorTestSuccess(model.Model):
737
+ """
738
+ Attributes:
739
+ model: LookML model that contains the data test
740
+ explore: LookML Explore that is used as the explore_source for the data test
741
+ test_name: Name of the data test
742
+ explore_url: URL to the Explore
743
+ lookml_url: URL to the LookML file where the data test is defined
744
+ """
745
+
746
+ model: Optional[str] = None
747
+ explore: Optional[str] = None
748
+ test_name: Optional[str] = None
749
+ explore_url: Optional[str] = None
750
+ lookml_url: Optional[str] = None
751
+
752
+ def __init__(
753
+ self,
754
+ *,
755
+ model: Optional[str] = None,
756
+ explore: Optional[str] = None,
757
+ test_name: Optional[str] = None,
758
+ explore_url: Optional[str] = None,
759
+ lookml_url: Optional[str] = None
760
+ ):
761
+ self.model = model
762
+ self.explore = explore
763
+ self.test_name = test_name
764
+ self.explore_url = explore_url
765
+ self.lookml_url = lookml_url
766
+
767
+
623
768
  @attr.s(auto_attribs=True, init=False)
624
769
  class BackupConfiguration(model.Model):
625
770
  """
@@ -921,10 +1066,10 @@ Category.__new__ = model.safe_enum__new__ # type: ignore
921
1066
  class CIChangeRequest(model.Model):
922
1067
  """
923
1068
  Attributes:
924
- change_request_number: Change request number
925
- change_request_url: Change request url
926
- change_request_name: Change request name
927
- change_request_commits_url: Change request commits url
1069
+ change_request_number: Numeric identifier of the change request
1070
+ change_request_url: URL of the change request
1071
+ change_request_name: Name of the change request
1072
+ change_request_commits_url: For PR-triggered CI runs, the URL to the change request commit that triggered the run.
928
1073
  """
929
1074
 
930
1075
  change_request_number: Optional[int] = None
@@ -950,10 +1095,10 @@ class CIChangeRequest(model.Model):
950
1095
  class CIGitState(model.Model):
951
1096
  """
952
1097
  Attributes:
953
- branch: Git branch for run
954
- repository: Git repository for run
955
- commit_ref: Git commit for run
956
- target: Run start time.
1098
+ branch: Git branch that the CI run validates
1099
+ repository: Git repository that contains the Git branch being validated
1100
+ commit_ref: Git commit that the CI run validates
1101
+ target: For incremental runs, the Git branch that the CI run compares against during validation
957
1102
  """
958
1103
 
959
1104
  branch: Optional[str] = None
@@ -979,22 +1124,22 @@ class CIGitState(model.Model):
979
1124
  class CIRun(model.Model):
980
1125
  """
981
1126
  Attributes:
982
- run_id: Run ID
983
- created_at: Run created time.
984
- started_at: Run start time.
985
- finished_at: Run completed time.
986
- status_url: Run status url
987
- status: Run status.
988
- git_service: Git service for run
1127
+ run_id: ID of the CI run
1128
+ created_at: Time and date that the CI run was initiated
1129
+ started_at: Time and date that the CI run began executing
1130
+ finished_at: Time and date that the CI run completed
1131
+ status_url: Git provider URL where you can view the commit status. This is the status URL that you specify when you create a CI suite
1132
+ status: Status of the CI run (unknown, failed, passed, skipped, errored, cancelled, queued, running)
1133
+ git_service: Git service for CI run (e.g. GitHub)
989
1134
  git_state:
990
- result: Run results
1135
+ result:
991
1136
  schedule:
992
- target_branch: Target branch for run
993
- title: Suite title
994
- trigger: Trigger for run
1137
+ target_branch: Git branch that the CI run compares against during validation, used for incremental runs
1138
+ title: Name of the CI suite
1139
+ trigger: Trigger for CI run (unknown, manual, schedule, change_request)
995
1140
  change_request:
996
- suite_id: The Id of the suite used
997
- username: User who triggered the run
1141
+ suite_id: ID of the CI suite
1142
+ username: Username of the user who triggered the CI run, if the CI run was manually triggered
998
1143
  """
999
1144
 
1000
1145
  run_id: Optional[str] = None
@@ -1005,7 +1150,7 @@ class CIRun(model.Model):
1005
1150
  status: Optional[str] = None
1006
1151
  git_service: Optional[str] = None
1007
1152
  git_state: Optional["CIGitState"] = None
1008
- result: Optional[Sequence["CIRunResult"]] = None
1153
+ result: Optional["CIRunResult"] = None
1009
1154
  schedule: Optional["CIScheduleTrigger"] = None
1010
1155
  target_branch: Optional[str] = None
1011
1156
  title: Optional[str] = None
@@ -1025,7 +1170,7 @@ class CIRun(model.Model):
1025
1170
  status: Optional[str] = None,
1026
1171
  git_service: Optional[str] = None,
1027
1172
  git_state: Optional["CIGitState"] = None,
1028
- result: Optional[Sequence["CIRunResult"]] = None,
1173
+ result: Optional["CIRunResult"] = None,
1029
1174
  schedule: Optional["CIScheduleTrigger"] = None,
1030
1175
  target_branch: Optional[str] = None,
1031
1176
  title: Optional[str] = None,
@@ -1056,28 +1201,59 @@ class CIRun(model.Model):
1056
1201
  class CIRunResult(model.Model):
1057
1202
  """
1058
1203
  Attributes:
1059
- status: Run result status
1060
- validator: Run result validator
1204
+ sql_result:
1205
+ sql_error:
1206
+ assert_result:
1207
+ assert_error:
1208
+ content_result:
1209
+ content_error:
1210
+ lookml_result:
1211
+ lookml_error:
1212
+ generic_error:
1061
1213
  """
1062
1214
 
1063
- status: Optional[str] = None
1064
- validator: Optional[str] = None
1215
+ sql_result: Optional["SqlValidatorResult"] = None
1216
+ sql_error: Optional["GenericError"] = None
1217
+ assert_result: Optional["AssertValidatorResult"] = None
1218
+ assert_error: Optional["GenericError"] = None
1219
+ content_result: Optional["ContentValidatorResult"] = None
1220
+ content_error: Optional["GenericError"] = None
1221
+ lookml_result: Optional["LookMLValidatorResult"] = None
1222
+ lookml_error: Optional["GenericError"] = None
1223
+ generic_error: Optional["GenericError"] = None
1065
1224
 
1066
1225
  def __init__(
1067
- self, *, status: Optional[str] = None, validator: Optional[str] = None
1226
+ self,
1227
+ *,
1228
+ sql_result: Optional["SqlValidatorResult"] = None,
1229
+ sql_error: Optional["GenericError"] = None,
1230
+ assert_result: Optional["AssertValidatorResult"] = None,
1231
+ assert_error: Optional["GenericError"] = None,
1232
+ content_result: Optional["ContentValidatorResult"] = None,
1233
+ content_error: Optional["GenericError"] = None,
1234
+ lookml_result: Optional["LookMLValidatorResult"] = None,
1235
+ lookml_error: Optional["GenericError"] = None,
1236
+ generic_error: Optional["GenericError"] = None
1068
1237
  ):
1069
- self.status = status
1070
- self.validator = validator
1238
+ self.sql_result = sql_result
1239
+ self.sql_error = sql_error
1240
+ self.assert_result = assert_result
1241
+ self.assert_error = assert_error
1242
+ self.content_result = content_result
1243
+ self.content_error = content_error
1244
+ self.lookml_result = lookml_result
1245
+ self.lookml_error = lookml_error
1246
+ self.generic_error = generic_error
1071
1247
 
1072
1248
 
1073
1249
  @attr.s(auto_attribs=True, init=False)
1074
1250
  class CIScheduleTrigger(model.Model):
1075
1251
  """
1076
1252
  Attributes:
1077
- enabled: Whether schedule is active
1078
- day: Day of week (0 = Sunday, 6 = Saturday)
1079
- hour: Hour of the day (24 hour format)
1080
- frequency: How often the schedule is configured to run
1253
+ enabled: Whether the CI run schedule is active
1254
+ day: For scheduled runs, day of the week that the CI run is scheduled
1255
+ hour: For schedules runs, the hour of the day (24 hour format) that the CI run is scheduled
1256
+ frequency: For scheduled runs, how often the CI run is scheduled to run (hourly, daily, weekly)
1081
1257
  """
1082
1258
 
1083
1259
  enabled: Optional[bool] = None
@@ -1953,6 +2129,75 @@ class ContentValidationScheduledPlan(model.Model):
1953
2129
  self.id = id
1954
2130
 
1955
2131
 
2132
+ @attr.s(auto_attribs=True, init=False)
2133
+ class ContentValidatorContentError(model.Model):
2134
+ """
2135
+ Attributes:
2136
+ type: A URI reference that identifies the problem type
2137
+ title: Overview of the error
2138
+ detail: Detail of the error
2139
+ status: The HTTP status code for the problem
2140
+ instance: URI reference that identifies the specific occurrence of the problem
2141
+ model: LookML model that contains the error
2142
+ explore: LookML Explore that contains the error
2143
+ field_name: LookML field that caused the error
2144
+ content_type: Type of the content (dashboard, look)
2145
+ folder: Folder of the content
2146
+ url: URL of the content
2147
+ tile_type: Type of the tile (dashboard_element, dashboard_filter)
2148
+ tile_title: Title of the tile
2149
+ message: Message returned by the content validator
2150
+ """
2151
+
2152
+ type: Optional[str] = None
2153
+ title: Optional[str] = None
2154
+ detail: Optional[str] = None
2155
+ status: Optional[str] = None
2156
+ instance: Optional[str] = None
2157
+ model: Optional[str] = None
2158
+ explore: Optional[str] = None
2159
+ field_name: Optional[str] = None
2160
+ content_type: Optional[str] = None
2161
+ folder: Optional[str] = None
2162
+ url: Optional[str] = None
2163
+ tile_type: Optional[str] = None
2164
+ tile_title: Optional[str] = None
2165
+ message: Optional[str] = None
2166
+
2167
+ def __init__(
2168
+ self,
2169
+ *,
2170
+ type: Optional[str] = None,
2171
+ title: Optional[str] = None,
2172
+ detail: Optional[str] = None,
2173
+ status: Optional[str] = None,
2174
+ instance: Optional[str] = None,
2175
+ model: Optional[str] = None,
2176
+ explore: Optional[str] = None,
2177
+ field_name: Optional[str] = None,
2178
+ content_type: Optional[str] = None,
2179
+ folder: Optional[str] = None,
2180
+ url: Optional[str] = None,
2181
+ tile_type: Optional[str] = None,
2182
+ tile_title: Optional[str] = None,
2183
+ message: Optional[str] = None
2184
+ ):
2185
+ self.type = type
2186
+ self.title = title
2187
+ self.detail = detail
2188
+ self.status = status
2189
+ self.instance = instance
2190
+ self.model = model
2191
+ self.explore = explore
2192
+ self.field_name = field_name
2193
+ self.content_type = content_type
2194
+ self.folder = folder
2195
+ self.url = url
2196
+ self.tile_type = tile_type
2197
+ self.tile_title = tile_title
2198
+ self.message = message
2199
+
2200
+
1956
2201
  @attr.s(auto_attribs=True, init=False)
1957
2202
  class ContentValidatorError(model.Model):
1958
2203
  """
@@ -2008,6 +2253,77 @@ class ContentValidatorError(model.Model):
2008
2253
  self.id = id
2009
2254
 
2010
2255
 
2256
+ @attr.s(auto_attribs=True, init=False)
2257
+ class ContentValidatorErrorItem(model.Model):
2258
+ """
2259
+ Attributes:
2260
+ content_error:
2261
+ generic_error:
2262
+ """
2263
+
2264
+ content_error: Optional["ContentValidatorContentError"] = None
2265
+ generic_error: Optional["GenericError"] = None
2266
+
2267
+ def __init__(
2268
+ self,
2269
+ *,
2270
+ content_error: Optional["ContentValidatorContentError"] = None,
2271
+ generic_error: Optional["GenericError"] = None
2272
+ ):
2273
+ self.content_error = content_error
2274
+ self.generic_error = generic_error
2275
+
2276
+
2277
+ @attr.s(auto_attribs=True, init=False)
2278
+ class ContentValidatorResult(model.Model):
2279
+ """
2280
+ Attributes:
2281
+ name: Name of the validator (content)
2282
+ incremental: Whether the validation was incremental
2283
+ status: Status of the validation (unknown, failed, passed, skipped, errored, cancelled, queued, running)
2284
+ result: Results of the content validation
2285
+ """
2286
+
2287
+ name: Optional[str] = None
2288
+ incremental: Optional[bool] = None
2289
+ status: Optional[str] = None
2290
+ result: Optional[Sequence["ContentValidatorTestedExplore"]] = None
2291
+
2292
+ def __init__(
2293
+ self,
2294
+ *,
2295
+ name: Optional[str] = None,
2296
+ incremental: Optional[bool] = None,
2297
+ status: Optional[str] = None,
2298
+ result: Optional[Sequence["ContentValidatorTestedExplore"]] = None
2299
+ ):
2300
+ self.name = name
2301
+ self.incremental = incremental
2302
+ self.status = status
2303
+ self.result = result
2304
+
2305
+
2306
+ @attr.s(auto_attribs=True, init=False)
2307
+ class ContentValidatorTestedExplore(model.Model):
2308
+ """
2309
+ Attributes:
2310
+ error_count: Total number of failed content validations
2311
+ errors: Details of the content that failed validation
2312
+ """
2313
+
2314
+ error_count: Optional[int] = None
2315
+ errors: Optional[Sequence["ContentValidatorErrorItem"]] = None
2316
+
2317
+ def __init__(
2318
+ self,
2319
+ *,
2320
+ error_count: Optional[int] = None,
2321
+ errors: Optional[Sequence["ContentValidatorErrorItem"]] = None
2322
+ ):
2323
+ self.error_count = error_count
2324
+ self.errors = errors
2325
+
2326
+
2011
2327
  @attr.s(auto_attribs=True, init=False)
2012
2328
  class ContentView(model.Model):
2013
2329
  """
@@ -2131,45 +2447,33 @@ class CostEstimate(model.Model):
2131
2447
  class CreateCIRunRequest(model.Model):
2132
2448
  """
2133
2449
  Attributes:
2134
- suite_id: Run ID
2135
- branch: The branch to test. Omit to test production.
2136
- target: Suite name
2137
- commit: The commit to test. Omit to test production.
2138
- user_attributes: User attributes to set for run
2139
- webhooks: Webhooks to trigger when run completes.
2450
+ suite_id: ID of the CI suite
2451
+ branch: Branch that the CI run should validate. Omit to test production.
2452
+ commit: Commit that the CI run should validate. Omit to test production.
2140
2453
  """
2141
2454
 
2142
2455
  suite_id: Optional[str] = None
2143
2456
  branch: Optional[str] = None
2144
- target: Optional[str] = None
2145
2457
  commit: Optional[str] = None
2146
- user_attributes: Optional[Sequence[str]] = None
2147
- webhooks: Optional[Sequence[str]] = None
2148
2458
 
2149
2459
  def __init__(
2150
2460
  self,
2151
2461
  *,
2152
2462
  suite_id: Optional[str] = None,
2153
2463
  branch: Optional[str] = None,
2154
- target: Optional[str] = None,
2155
- commit: Optional[str] = None,
2156
- user_attributes: Optional[Sequence[str]] = None,
2157
- webhooks: Optional[Sequence[str]] = None
2464
+ commit: Optional[str] = None
2158
2465
  ):
2159
2466
  self.suite_id = suite_id
2160
2467
  self.branch = branch
2161
- self.target = target
2162
2468
  self.commit = commit
2163
- self.user_attributes = user_attributes
2164
- self.webhooks = webhooks
2165
2469
 
2166
2470
 
2167
2471
  @attr.s(auto_attribs=True, init=False)
2168
2472
  class CreateCIRunResponse(model.Model):
2169
2473
  """
2170
2474
  Attributes:
2171
- run_id: Run ID
2172
- status: Run status
2475
+ run_id: ID of the CI run
2476
+ status: Status of the CI run (unknown, failed, passed, skipped, errored, cancelled, queued, running)
2173
2477
  """
2174
2478
 
2175
2479
  run_id: Optional[str] = None
@@ -4500,7 +4804,7 @@ class Dialect(model.Model):
4500
4804
 
4501
4805
 
4502
4806
  @attr.s(auto_attribs=True, init=False)
4503
- class DialectDriverVersion(model.Model):
4807
+ class DialectDriverNamesVersion(model.Model):
4504
4808
  """
4505
4809
  Attributes:
4506
4810
  name: Name to be passed to the backend
@@ -4524,6 +4828,8 @@ class DialectInfo(model.Model):
4524
4828
  can: Operations the current user is able to perform on this object
4525
4829
  default_max_connections: Default number max connections
4526
4830
  default_port: Default port number
4831
+ default_max_queries: Default number max queries
4832
+ default_max_queries_per_user: Default number max queries per user
4527
4833
  installed: Is the supporting driver installed
4528
4834
  label: The human-readable label of the connection
4529
4835
  label_for_database_equivalent: What the dialect calls the equivalent of a normal SQL table
@@ -4537,13 +4843,15 @@ class DialectInfo(model.Model):
4537
4843
  can: Optional[MutableMapping[str, bool]] = None
4538
4844
  default_max_connections: Optional[str] = None
4539
4845
  default_port: Optional[str] = None
4846
+ default_max_queries: Optional[str] = None
4847
+ default_max_queries_per_user: Optional[str] = None
4540
4848
  installed: Optional[bool] = None
4541
4849
  label: Optional[str] = None
4542
4850
  label_for_database_equivalent: Optional[str] = None
4543
4851
  label_for_schema_equivalent: Optional[str] = None
4544
4852
  name: Optional[str] = None
4545
4853
  supported_driver_name: Optional[str] = None
4546
- supported_driver_versions: Optional[Sequence["DialectDriverVersion"]] = None
4854
+ supported_driver_versions: Optional[Sequence["DialectDriverNamesVersion"]] = None
4547
4855
  supported_options: Optional["DialectInfoOptions"] = None
4548
4856
 
4549
4857
  def __init__(
@@ -4552,18 +4860,24 @@ class DialectInfo(model.Model):
4552
4860
  can: Optional[MutableMapping[str, bool]] = None,
4553
4861
  default_max_connections: Optional[str] = None,
4554
4862
  default_port: Optional[str] = None,
4863
+ default_max_queries: Optional[str] = None,
4864
+ default_max_queries_per_user: Optional[str] = None,
4555
4865
  installed: Optional[bool] = None,
4556
4866
  label: Optional[str] = None,
4557
4867
  label_for_database_equivalent: Optional[str] = None,
4558
4868
  label_for_schema_equivalent: Optional[str] = None,
4559
4869
  name: Optional[str] = None,
4560
4870
  supported_driver_name: Optional[str] = None,
4561
- supported_driver_versions: Optional[Sequence["DialectDriverVersion"]] = None,
4871
+ supported_driver_versions: Optional[
4872
+ Sequence["DialectDriverNamesVersion"]
4873
+ ] = None,
4562
4874
  supported_options: Optional["DialectInfoOptions"] = None
4563
4875
  ):
4564
4876
  self.can = can
4565
4877
  self.default_max_connections = default_max_connections
4566
4878
  self.default_port = default_port
4879
+ self.default_max_queries = default_max_queries
4880
+ self.default_max_queries_per_user = default_max_queries_per_user
4567
4881
  self.installed = installed
4568
4882
  self.label = label
4569
4883
  self.label_for_database_equivalent = label_for_database_equivalent
@@ -5377,6 +5691,39 @@ class Format(enum.Enum):
5377
5691
  Format.__new__ = model.safe_enum__new__ # type: ignore
5378
5692
 
5379
5693
 
5694
+ @attr.s(auto_attribs=True, init=False)
5695
+ class GenericError(model.Model):
5696
+ """
5697
+ Attributes:
5698
+ type: A URI reference that identifies the problem type
5699
+ title: Overview of the error
5700
+ detail: Detail of the error
5701
+ status: The HTTP status code for the problem
5702
+ instance: URI reference that identifies the specific occurrence of the problem
5703
+ """
5704
+
5705
+ type: Optional[str] = None
5706
+ title: Optional[str] = None
5707
+ detail: Optional[str] = None
5708
+ status: Optional[str] = None
5709
+ instance: Optional[str] = None
5710
+
5711
+ def __init__(
5712
+ self,
5713
+ *,
5714
+ type: Optional[str] = None,
5715
+ title: Optional[str] = None,
5716
+ detail: Optional[str] = None,
5717
+ status: Optional[str] = None,
5718
+ instance: Optional[str] = None
5719
+ ):
5720
+ self.type = type
5721
+ self.title = title
5722
+ self.detail = detail
5723
+ self.status = status
5724
+ self.instance = instance
5725
+
5726
+
5380
5727
  @attr.s(auto_attribs=True, init=False)
5381
5728
  class GitBranch(model.Model):
5382
5729
  """
@@ -6530,6 +6877,22 @@ class JsonBiTableCalc(model.Model):
6530
6877
  self.measure = measure
6531
6878
 
6532
6879
 
6880
+ class Kind(enum.Enum):
6881
+ """
6882
+ The type of calculation for the period_over_period measure. Valid values are: "previous", "difference", "relative_change". (Enum defined in LookmlModelExploreFieldPeriodOverPeriodParams)
6883
+
6884
+ """
6885
+
6886
+ previous = "previous"
6887
+ difference = "difference"
6888
+ relative_change = "relative_change"
6889
+ invalid_api_enum_value = "invalid_api_enum_value"
6890
+
6891
+
6892
+ # https://github.com/python/mypy/issues/2427
6893
+ Kind.__new__ = model.safe_enum__new__ # type: ignore
6894
+
6895
+
6533
6896
  @attr.s(auto_attribs=True, init=False)
6534
6897
  class LDAPConfig(model.Model):
6535
6898
  """
@@ -7618,6 +7981,7 @@ class LookmlModelExploreField(model.Model):
7618
7981
  name: Fully-qualified name of the field.
7619
7982
  strict_value_format: If yes, the field will not be localized with the user attribute number_format. Defaults to no
7620
7983
  parameter: Whether this field is a parameter.
7984
+ period_over_period_params:
7621
7985
  permanent: Whether this field can be removed from a query.
7622
7986
  primary_key: Whether or not the field represents a primary key.
7623
7987
  project_name: The name of the project this field is defined in.
@@ -7633,6 +7997,7 @@ class LookmlModelExploreField(model.Model):
7633
7997
  suggest_explore: The name of the explore to base suggest queries from.
7634
7998
  suggestable: Whether or not suggestions are possible for this field.
7635
7999
  suggestions: If available, a list of suggestions for this field. For most fields, a suggest query is a more appropriate way to get an up-to-date list of suggestions. Or use enumerations to list all the possible values.
8000
+ synonyms: A list of string synonyms (words or phrases) that can be used to help large language models and app developers understand other ways that users may refer to a field.
7636
8001
  tags: An array of arbitrary string tags provided in the model for this field.
7637
8002
  type: The LookML type of the field.
7638
8003
  user_attribute_filter_types: An array of user attribute types that are allowed to be used in filters on this field. Valid values are: "advanced_filter_string", "advanced_filter_number", "advanced_filter_datetime", "string", "number", "datetime", "relative_url", "yesno", "zipcode".
@@ -7677,6 +8042,9 @@ class LookmlModelExploreField(model.Model):
7677
8042
  name: Optional[str] = None
7678
8043
  strict_value_format: Optional[bool] = None
7679
8044
  parameter: Optional[bool] = None
8045
+ period_over_period_params: Optional[
8046
+ "LookmlModelExploreFieldPeriodOverPeriodParams"
8047
+ ] = None
7680
8048
  permanent: Optional[bool] = None
7681
8049
  primary_key: Optional[bool] = None
7682
8050
  project_name: Optional[str] = None
@@ -7692,6 +8060,7 @@ class LookmlModelExploreField(model.Model):
7692
8060
  suggest_explore: Optional[str] = None
7693
8061
  suggestable: Optional[bool] = None
7694
8062
  suggestions: Optional[Sequence[str]] = None
8063
+ synonyms: Optional[Sequence[str]] = None
7695
8064
  tags: Optional[Sequence[str]] = None
7696
8065
  type: Optional[str] = None
7697
8066
  user_attribute_filter_types: Optional[Sequence["UserAttributeFilterTypes"]] = None
@@ -7738,6 +8107,9 @@ class LookmlModelExploreField(model.Model):
7738
8107
  name: Optional[str] = None,
7739
8108
  strict_value_format: Optional[bool] = None,
7740
8109
  parameter: Optional[bool] = None,
8110
+ period_over_period_params: Optional[
8111
+ "LookmlModelExploreFieldPeriodOverPeriodParams"
8112
+ ] = None,
7741
8113
  permanent: Optional[bool] = None,
7742
8114
  primary_key: Optional[bool] = None,
7743
8115
  project_name: Optional[str] = None,
@@ -7753,6 +8125,7 @@ class LookmlModelExploreField(model.Model):
7753
8125
  suggest_explore: Optional[str] = None,
7754
8126
  suggestable: Optional[bool] = None,
7755
8127
  suggestions: Optional[Sequence[str]] = None,
8128
+ synonyms: Optional[Sequence[str]] = None,
7756
8129
  tags: Optional[Sequence[str]] = None,
7757
8130
  type: Optional[str] = None,
7758
8131
  user_attribute_filter_types: Optional[
@@ -7798,6 +8171,7 @@ class LookmlModelExploreField(model.Model):
7798
8171
  self.name = name
7799
8172
  self.strict_value_format = strict_value_format
7800
8173
  self.parameter = parameter
8174
+ self.period_over_period_params = period_over_period_params
7801
8175
  self.permanent = permanent
7802
8176
  self.primary_key = primary_key
7803
8177
  self.project_name = project_name
@@ -7813,6 +8187,7 @@ class LookmlModelExploreField(model.Model):
7813
8187
  self.suggest_explore = suggest_explore
7814
8188
  self.suggestable = suggestable
7815
8189
  self.suggestions = suggestions
8190
+ self.synonyms = synonyms
7816
8191
  self.tags = tags
7817
8192
  self.type = type
7818
8193
  self.user_attribute_filter_types = user_attribute_filter_types
@@ -7910,6 +8285,39 @@ class LookmlModelExploreFieldMeasureFilters(model.Model):
7910
8285
  self.condition = condition
7911
8286
 
7912
8287
 
8288
+ @attr.s(auto_attribs=True, init=False)
8289
+ class LookmlModelExploreFieldPeriodOverPeriodParams(model.Model):
8290
+ """
8291
+ Attributes:
8292
+ based_on: Specifies the measure that will be calculated over the different periods.
8293
+ based_on_time: Specifies the time dimension that this measure will operate over.
8294
+ period: Specifies the time frame for the comparison. Valid values are: "year", "fiscal_year", "quarter", "fiscal_quarter", "month", "week", "date".
8295
+ kind: The type of calculation for the period_over_period measure. Valid values are: "previous", "difference", "relative_change".
8296
+ value_to_date: specifies whether to compare the current partially completed period to an equivalent part of the previous period, or to use the entire previous period.
8297
+ """
8298
+
8299
+ based_on: Optional[str] = None
8300
+ based_on_time: Optional[str] = None
8301
+ period: Optional["Period"] = None
8302
+ kind: Optional["Kind"] = None
8303
+ value_to_date: Optional[bool] = None
8304
+
8305
+ def __init__(
8306
+ self,
8307
+ *,
8308
+ based_on: Optional[str] = None,
8309
+ based_on_time: Optional[str] = None,
8310
+ period: Optional["Period"] = None,
8311
+ kind: Optional["Kind"] = None,
8312
+ value_to_date: Optional[bool] = None
8313
+ ):
8314
+ self.based_on = based_on
8315
+ self.based_on_time = based_on_time
8316
+ self.period = period
8317
+ self.kind = kind
8318
+ self.value_to_date = value_to_date
8319
+
8320
+
7913
8321
  @attr.s(auto_attribs=True, init=False)
7914
8322
  class LookmlModelExploreFieldset(model.Model):
7915
8323
  """
@@ -8194,6 +8602,121 @@ class LookmlTestResult(model.Model):
8194
8602
  self.success = success
8195
8603
 
8196
8604
 
8605
+ @attr.s(auto_attribs=True, init=False)
8606
+ class LookMLValidatorError(model.Model):
8607
+ """
8608
+ Attributes:
8609
+ type: A URI reference that identifies the problem type
8610
+ title: Overview of the error
8611
+ detail: Detail of the error
8612
+ status: The HTTP status code for the problem
8613
+ instance: URI reference that identifies the specific occurrence of the problem
8614
+ model: LookML model that contains the error
8615
+ explore: LookML Explore that contains the error
8616
+ field_name: LookML field that caused the error
8617
+ message: Message returned by the LookML validator
8618
+ severity: Severity of the error (warning, error, fatal, info, success)
8619
+ line_number: Line number of the error in the LookML file
8620
+ lookml_url: URL to the LookML that caused the error
8621
+ file_path: IDE folder path to the LookML file that caused the error
8622
+ """
8623
+
8624
+ type: Optional[str] = None
8625
+ title: Optional[str] = None
8626
+ detail: Optional[str] = None
8627
+ status: Optional[str] = None
8628
+ instance: Optional[str] = None
8629
+ model: Optional[str] = None
8630
+ explore: Optional[str] = None
8631
+ field_name: Optional[str] = None
8632
+ message: Optional[str] = None
8633
+ severity: Optional[str] = None
8634
+ line_number: Optional[str] = None
8635
+ lookml_url: Optional[str] = None
8636
+ file_path: Optional[str] = None
8637
+
8638
+ def __init__(
8639
+ self,
8640
+ *,
8641
+ type: Optional[str] = None,
8642
+ title: Optional[str] = None,
8643
+ detail: Optional[str] = None,
8644
+ status: Optional[str] = None,
8645
+ instance: Optional[str] = None,
8646
+ model: Optional[str] = None,
8647
+ explore: Optional[str] = None,
8648
+ field_name: Optional[str] = None,
8649
+ message: Optional[str] = None,
8650
+ severity: Optional[str] = None,
8651
+ line_number: Optional[str] = None,
8652
+ lookml_url: Optional[str] = None,
8653
+ file_path: Optional[str] = None
8654
+ ):
8655
+ self.type = type
8656
+ self.title = title
8657
+ self.detail = detail
8658
+ self.status = status
8659
+ self.instance = instance
8660
+ self.model = model
8661
+ self.explore = explore
8662
+ self.field_name = field_name
8663
+ self.message = message
8664
+ self.severity = severity
8665
+ self.line_number = line_number
8666
+ self.lookml_url = lookml_url
8667
+ self.file_path = file_path
8668
+
8669
+
8670
+ @attr.s(auto_attribs=True, init=False)
8671
+ class LookMLValidatorErrorItem(model.Model):
8672
+ """
8673
+ Attributes:
8674
+ lookml_error:
8675
+ generic_error:
8676
+ """
8677
+
8678
+ lookml_error: Optional["LookMLValidatorError"] = None
8679
+ generic_error: Optional["GenericError"] = None
8680
+
8681
+ def __init__(
8682
+ self,
8683
+ *,
8684
+ lookml_error: Optional["LookMLValidatorError"] = None,
8685
+ generic_error: Optional["GenericError"] = None
8686
+ ):
8687
+ self.lookml_error = lookml_error
8688
+ self.generic_error = generic_error
8689
+
8690
+
8691
+ @attr.s(auto_attribs=True, init=False)
8692
+ class LookMLValidatorResult(model.Model):
8693
+ """
8694
+ Attributes:
8695
+ name: Name of the validator (lookml)
8696
+ status: Status of the validation (unknown, failed, passed, skipped, errored, cancelled, queued, running)
8697
+ error_count: Total number of failed LookML validations
8698
+ errors: Details of the LookML that failed validation
8699
+ """
8700
+
8701
+ name: Optional[str] = None
8702
+ status: Optional[str] = None
8703
+ error_count: Optional[int] = None
8704
+ errors: Optional[Sequence["LookMLValidatorErrorItem"]] = None
8705
+
8706
+ def __init__(
8707
+ self,
8708
+ *,
8709
+ name: Optional[str] = None,
8710
+ status: Optional[str] = None,
8711
+ error_count: Optional[int] = None,
8712
+ errors: Optional[Sequence["LookMLValidatorErrorItem"]] = None
8713
+ ):
8714
+ self.name = name
8715
+ self.status = status
8716
+ self.error_count = error_count
8717
+ self.errors = errors
8718
+
8719
+
8197
8720
  @attr.s(auto_attribs=True, init=False)
8198
8721
  class LookModel(model.Model):
8199
8722
  """
@@ -9295,6 +9818,26 @@ class PasswordConfig(model.Model):
9295
9818
  self.require_special = require_special
9296
9819
 
9297
9820
 
9821
+ class Period(enum.Enum):
9822
+ """
9823
+ Specifies the time frame for the comparison. Valid values are: "year", "fiscal_year", "quarter", "fiscal_quarter", "month", "week", "date". (Enum defined in LookmlModelExploreFieldPeriodOverPeriodParams)
9824
+
9825
+ """
9826
+
9827
+ year = "year"
9828
+ fiscal_year = "fiscal_year"
9829
+ quarter = "quarter"
9830
+ fiscal_quarter = "fiscal_quarter"
9831
+ month = "month"
9832
+ week = "week"
9833
+ date = "date"
9834
+ invalid_api_enum_value = "invalid_api_enum_value"
9835
+
9836
+
9837
+ # https://github.com/python/mypy/issues/2427
9838
+ Period.__new__ = model.safe_enum__new__ # type: ignore
9839
+
9840
+
9298
9841
  @attr.s(auto_attribs=True, init=False)
9299
9842
  class Permission(model.Model):
9300
9843
  """
@@ -11783,6 +12326,154 @@ class SqlQueryCreate(model.Model):
11783
12326
  self.vis_config = vis_config
11784
12327
 
11785
12328
 
12329
+ @attr.s(auto_attribs=True, init=False)
12330
+ class SqlValidatorError(model.Model):
12331
+ """
12332
+ Attributes:
12333
+ type: A URI reference that identifies the problem type
12334
+ title: Overview of the error
12335
+ detail: Detail of the error
12336
+ status: The HTTP status code for the problem
12337
+ instance: URI reference that identifies the specific occurrence of the problem
12338
+ model: LookML model that contains the Explore that failed SQL validation
12339
+ explore: LookML Explore that failed SQL validation
12340
+ message: Message returned by the SQL validation
12341
+ explore_url: URL to the Explore
12342
+ lookml_url: URL to the LookML that caused the error
12343
+ dimension: LookML dimension that caused the error
12344
+ line_number: Line of the error in the LookML file
12345
+ """
12346
+
12347
+ type: Optional[str] = None
12348
+ title: Optional[str] = None
12349
+ detail: Optional[str] = None
12350
+ status: Optional[str] = None
12351
+ instance: Optional[str] = None
12352
+ model: Optional[str] = None
12353
+ explore: Optional[str] = None
12354
+ message: Optional[str] = None
12355
+ explore_url: Optional[str] = None
12356
+ lookml_url: Optional[str] = None
12357
+ dimension: Optional[str] = None
12358
+ line_number: Optional[str] = None
12359
+
12360
+ def __init__(
12361
+ self,
12362
+ *,
12363
+ type: Optional[str] = None,
12364
+ title: Optional[str] = None,
12365
+ detail: Optional[str] = None,
12366
+ status: Optional[str] = None,
12367
+ instance: Optional[str] = None,
12368
+ model: Optional[str] = None,
12369
+ explore: Optional[str] = None,
12370
+ message: Optional[str] = None,
12371
+ explore_url: Optional[str] = None,
12372
+ lookml_url: Optional[str] = None,
12373
+ dimension: Optional[str] = None,
12374
+ line_number: Optional[str] = None
12375
+ ):
12376
+ self.type = type
12377
+ self.title = title
12378
+ self.detail = detail
12379
+ self.status = status
12380
+ self.instance = instance
12381
+ self.model = model
12382
+ self.explore = explore
12383
+ self.message = message
12384
+ self.explore_url = explore_url
12385
+ self.lookml_url = lookml_url
12386
+ self.dimension = dimension
12387
+ self.line_number = line_number
12388
+
12389
+
12390
+ @attr.s(auto_attribs=True, init=False)
12391
+ class SqlValidatorErrorItem(model.Model):
12392
+ """
12393
+ Attributes:
12394
+ sql_error:
12395
+ generic_error:
12396
+ """
12397
+
12398
+ sql_error: Optional["SqlValidatorError"] = None
12399
+ generic_error: Optional["GenericError"] = None
12400
+
12401
+ def __init__(
12402
+ self,
12403
+ *,
12404
+ sql_error: Optional["SqlValidatorError"] = None,
12405
+ generic_error: Optional["GenericError"] = None
12406
+ ):
12407
+ self.sql_error = sql_error
12408
+ self.generic_error = generic_error
12409
+
12410
+
12411
+ @attr.s(auto_attribs=True, init=False)
12412
+ class SqlValidatorResult(model.Model):
12413
+ """
12414
+ Attributes:
12415
+ name: Name of the validator (sql)
12416
+ incremental: Whether the validation was incremental
12417
+ status: Status of the validation (unknown, failed, passed, skipped, errored, cancelled, queued, running)
12418
+ result: The results of tested Explores
12419
+ """
12420
+
12421
+ name: Optional[str] = None
12422
+ incremental: Optional[bool] = None
12423
+ status: Optional[str] = None
12424
+ result: Optional[Sequence["SqlValidatorTestedExplore"]] = None
12425
+
12426
+ def __init__(
12427
+ self,
12428
+ *,
12429
+ name: Optional[str] = None,
12430
+ incremental: Optional[bool] = None,
12431
+ status: Optional[str] = None,
12432
+ result: Optional[Sequence["SqlValidatorTestedExplore"]] = None
12433
+ ):
12434
+ self.name = name
12435
+ self.incremental = incremental
12436
+ self.status = status
12437
+ self.result = result
12438
+
12439
+
12440
+ @attr.s(auto_attribs=True, init=False)
12441
+ class SqlValidatorTestedExplore(model.Model):
12442
+ """
12443
+ Attributes:
12444
+ model: LookML model that was tested
12445
+ explore: LookML Explore that was tested
12446
+ status: Status of the validation (unknown, failed, passed, skipped, errored, cancelled, queued, running)
12447
+ skip_reason: Reason the validation was skipped
12448
+ error_count: Total number of failed validations
12449
+ errors: Details of the LookML that failed SQL validation
12450
+ """
12451
+
12452
+ model: Optional[str] = None
12453
+ explore: Optional[str] = None
12454
+ status: Optional[str] = None
12455
+ skip_reason: Optional[str] = None
12456
+ error_count: Optional[int] = None
12457
+ errors: Optional[Sequence["SqlValidatorErrorItem"]] = None
12458
+
12459
+ def __init__(
12460
+ self,
12461
+ *,
12462
+ model: Optional[str] = None,
12463
+ explore: Optional[str] = None,
12464
+ status: Optional[str] = None,
12465
+ skip_reason: Optional[str] = None,
12466
+ error_count: Optional[int] = None,
12467
+ errors: Optional[Sequence["SqlValidatorErrorItem"]] = None
12468
+ ):
12469
+ self.model = model
12470
+ self.explore = explore
12471
+ self.status = status
12472
+ self.skip_reason = skip_reason
12473
+ self.error_count = error_count
12474
+ self.errors = errors
12475
+
12476
+
11786
12477
  @attr.s(auto_attribs=True, init=False)
11787
12478
  class SshPublicKey(model.Model):
11788
12479
  """
@@ -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.6"
23
+ sdk_version = "25.10"
24
24
  environment_prefix = "LOOKERSDK"
looker_sdk/version.py CHANGED
@@ -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.6.0"
23
+ __version__ = "25.10.0"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: looker-sdk
3
- Version: 25.6.0
3
+ Version: 25.10.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.
@@ -1,7 +1,7 @@
1
1
  looker_sdk/__init__.py,sha256=0UOw2v-BP1bNoBIIm-BnyKUpGQB3Zx-JZRmpYyLiIuY,2589
2
- looker_sdk/error.py,sha256=XTKuy1zEyhSVd-VCWHKB2zVjj0X7VUzVwq9y9L22Bo0,4941
2
+ looker_sdk/error.py,sha256=X1TcifswI_UGOTtM4-Fn_gRVunvbJbzfd_gUJbx6mV4,4957
3
3
  looker_sdk/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
- looker_sdk/version.py,sha256=pM279eFYHnv8ZFgEKvrB_Di7-YaOb8U68g6lrKi3sqI,1155
4
+ looker_sdk/version.py,sha256=VWKWa0Qtzlac02pyHfPTzvAnJBX1pUKijoIgTBJChyA,1156
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
@@ -14,10 +14,10 @@ looker_sdk/rtl/requests_transport.py,sha256=2lckuJyjeySAuAn7v-RA_xTjjWe53uCCLSWg
14
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=WCmRmp0hqb7HqyUHyCkU81BXhoCwvwP7_47Mvunt2GU,1186
17
+ looker_sdk/sdk/constants.py,sha256=8Yk1-WNAU4zJIqumb3IkWqE-mck9ptUBeJ3OxLMGG6Y,1187
18
18
  looker_sdk/sdk/api40/__init__.py,sha256=Dvx1t9vDBvgEl-p1eeP7ebEC6Q6wb6rASPi7nx3z7dg,18
19
- looker_sdk/sdk/api40/methods.py,sha256=QwzUaI45emQ_U782kTvd50iWMstidQ3xy-Wk3rFh6aU,526230
20
- looker_sdk/sdk/api40/models.py,sha256=lK3NIjB03iBvg3Wx_YC6kV9S4Si_Z49oohkQl2SlwCk,658419
19
+ looker_sdk/sdk/api40/methods.py,sha256=3vK-tTmA-JA72QF6KZEFPsA2GIvqJlbvVxWgS9hKsKs,526390
20
+ looker_sdk/sdk/api40/models.py,sha256=pLYCJ0m8vWJ7Y1bNKGedE3MHgj6EAbgOMHsgfZwGFMo,682161
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.6.0.dist-info/LICENSE.txt,sha256=N4Rmmbuo5EryYSCXcvjuXL1ZXwyXanRzuGP-dJzwsoE,1094
33
- looker_sdk-25.6.0.dist-info/METADATA,sha256=mQw0-5cV6QbipCB2DGZSipJCNKUC-GryDbIZQafIJCE,7021
34
- looker_sdk-25.6.0.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
35
- looker_sdk-25.6.0.dist-info/top_level.txt,sha256=tDPNJRQM_A_Oncxlgxwvnzq7hZDWZaadt_nR8DmORTI,17
36
- looker_sdk-25.6.0.dist-info/RECORD,,
32
+ looker_sdk-25.10.0.dist-info/LICENSE.txt,sha256=N4Rmmbuo5EryYSCXcvjuXL1ZXwyXanRzuGP-dJzwsoE,1094
33
+ looker_sdk-25.10.0.dist-info/METADATA,sha256=cUZVOH_EKbpEa3UZNsmb71c2KwOng9m6obsRleNw6ZI,7022
34
+ looker_sdk-25.10.0.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
35
+ looker_sdk-25.10.0.dist-info/top_level.txt,sha256=tDPNJRQM_A_Oncxlgxwvnzq7hZDWZaadt_nR8DmORTI,17
36
+ looker_sdk-25.10.0.dist-info/RECORD,,