looker-sdk 25.6.0__tar.gz → 25.8.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {looker_sdk-25.6.0 → looker_sdk-25.8.0}/PKG-INFO +1 -1
- {looker_sdk-25.6.0 → looker_sdk-25.8.0}/looker_sdk/sdk/api40/methods.py +5 -3
- {looker_sdk-25.6.0 → looker_sdk-25.8.0}/looker_sdk/sdk/api40/models.py +739 -56
- {looker_sdk-25.6.0 → looker_sdk-25.8.0}/looker_sdk/sdk/constants.py +1 -1
- {looker_sdk-25.6.0 → looker_sdk-25.8.0}/looker_sdk/version.py +1 -1
- {looker_sdk-25.6.0 → looker_sdk-25.8.0}/looker_sdk.egg-info/PKG-INFO +1 -1
- {looker_sdk-25.6.0 → looker_sdk-25.8.0}/LICENSE.txt +0 -0
- {looker_sdk-25.6.0 → looker_sdk-25.8.0}/MANIFEST.in +0 -0
- {looker_sdk-25.6.0 → looker_sdk-25.8.0}/README.rst +0 -0
- {looker_sdk-25.6.0 → looker_sdk-25.8.0}/looker_sdk/__init__.py +0 -0
- {looker_sdk-25.6.0 → looker_sdk-25.8.0}/looker_sdk/error.py +0 -0
- {looker_sdk-25.6.0 → looker_sdk-25.8.0}/looker_sdk/py.typed +0 -0
- {looker_sdk-25.6.0 → looker_sdk-25.8.0}/looker_sdk/rtl/__init__.py +0 -0
- {looker_sdk-25.6.0 → looker_sdk-25.8.0}/looker_sdk/rtl/api_methods.py +0 -0
- {looker_sdk-25.6.0 → looker_sdk-25.8.0}/looker_sdk/rtl/api_settings.py +0 -0
- {looker_sdk-25.6.0 → looker_sdk-25.8.0}/looker_sdk/rtl/auth_session.py +0 -0
- {looker_sdk-25.6.0 → looker_sdk-25.8.0}/looker_sdk/rtl/auth_token.py +0 -0
- {looker_sdk-25.6.0 → looker_sdk-25.8.0}/looker_sdk/rtl/constants.py +0 -0
- {looker_sdk-25.6.0 → looker_sdk-25.8.0}/looker_sdk/rtl/hooks.py +0 -0
- {looker_sdk-25.6.0 → looker_sdk-25.8.0}/looker_sdk/rtl/model.py +0 -0
- {looker_sdk-25.6.0 → looker_sdk-25.8.0}/looker_sdk/rtl/requests_transport.py +0 -0
- {looker_sdk-25.6.0 → looker_sdk-25.8.0}/looker_sdk/rtl/serialize.py +0 -0
- {looker_sdk-25.6.0 → looker_sdk-25.8.0}/looker_sdk/rtl/transport.py +0 -0
- {looker_sdk-25.6.0 → looker_sdk-25.8.0}/looker_sdk/sdk/__init__.py +0 -0
- {looker_sdk-25.6.0 → looker_sdk-25.8.0}/looker_sdk/sdk/api40/__init__.py +0 -0
- {looker_sdk-25.6.0 → looker_sdk-25.8.0}/looker_sdk.egg-info/SOURCES.txt +0 -0
- {looker_sdk-25.6.0 → looker_sdk-25.8.0}/looker_sdk.egg-info/dependency_links.txt +0 -0
- {looker_sdk-25.6.0 → looker_sdk-25.8.0}/looker_sdk.egg-info/requires.txt +0 -0
- {looker_sdk-25.6.0 → looker_sdk-25.8.0}/looker_sdk.egg-info/top_level.txt +0 -0
- {looker_sdk-25.6.0 → looker_sdk-25.8.0}/setup.cfg +0 -0
- {looker_sdk-25.6.0 → looker_sdk-25.8.0}/setup.py +0 -0
- {looker_sdk-25.6.0 → looker_sdk-25.8.0}/tests/integration/__init__.py +0 -0
- {looker_sdk-25.6.0 → looker_sdk-25.8.0}/tests/integration/test_methods.py +0 -0
- {looker_sdk-25.6.0 → looker_sdk-25.8.0}/tests/integration/test_netrc.py +0 -0
- {looker_sdk-25.6.0 → looker_sdk-25.8.0}/tests/rtl/__init__.py +0 -0
- {looker_sdk-25.6.0 → looker_sdk-25.8.0}/tests/rtl/test_api_methods.py +0 -0
- {looker_sdk-25.6.0 → looker_sdk-25.8.0}/tests/rtl/test_api_settings.py +0 -0
- {looker_sdk-25.6.0 → looker_sdk-25.8.0}/tests/rtl/test_auth_session.py +0 -0
- {looker_sdk-25.6.0 → looker_sdk-25.8.0}/tests/rtl/test_auth_token.py +0 -0
- {looker_sdk-25.6.0 → looker_sdk-25.8.0}/tests/rtl/test_requests_transport.py +0 -0
- {looker_sdk-25.6.0 → looker_sdk-25.8.0}/tests/rtl/test_serialize.py +0 -0
- {looker_sdk-25.6.0 → looker_sdk-25.8.0}/tests/rtl/test_transport.py +0 -0
|
@@ -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
|
)
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
# SOFTWARE.
|
|
22
22
|
#
|
|
23
23
|
|
|
24
|
-
#
|
|
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:
|
|
925
|
-
change_request_url:
|
|
926
|
-
change_request_name:
|
|
927
|
-
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
|
|
954
|
-
repository: Git repository
|
|
955
|
-
commit_ref: Git commit
|
|
956
|
-
target:
|
|
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:
|
|
983
|
-
created_at:
|
|
984
|
-
started_at:
|
|
985
|
-
finished_at:
|
|
986
|
-
status_url:
|
|
987
|
-
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:
|
|
1135
|
+
result:
|
|
991
1136
|
schedule:
|
|
992
|
-
target_branch:
|
|
993
|
-
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:
|
|
997
|
-
username:
|
|
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[
|
|
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[
|
|
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
|
-
|
|
1060
|
-
|
|
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
|
-
|
|
1064
|
-
|
|
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,
|
|
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.
|
|
1070
|
-
self.
|
|
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:
|
|
1079
|
-
hour:
|
|
1080
|
-
frequency:
|
|
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:
|
|
2135
|
-
branch:
|
|
2136
|
-
|
|
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
|
-
|
|
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:
|
|
2172
|
-
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
|
|
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["
|
|
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[
|
|
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.
|
|
@@ -7677,6 +8041,9 @@ class LookmlModelExploreField(model.Model):
|
|
|
7677
8041
|
name: Optional[str] = None
|
|
7678
8042
|
strict_value_format: Optional[bool] = None
|
|
7679
8043
|
parameter: Optional[bool] = None
|
|
8044
|
+
period_over_period_params: Optional[
|
|
8045
|
+
"LookmlModelExploreFieldPeriodOverPeriodParams"
|
|
8046
|
+
] = None
|
|
7680
8047
|
permanent: Optional[bool] = None
|
|
7681
8048
|
primary_key: Optional[bool] = None
|
|
7682
8049
|
project_name: Optional[str] = None
|
|
@@ -7738,6 +8105,9 @@ class LookmlModelExploreField(model.Model):
|
|
|
7738
8105
|
name: Optional[str] = None,
|
|
7739
8106
|
strict_value_format: Optional[bool] = None,
|
|
7740
8107
|
parameter: Optional[bool] = None,
|
|
8108
|
+
period_over_period_params: Optional[
|
|
8109
|
+
"LookmlModelExploreFieldPeriodOverPeriodParams"
|
|
8110
|
+
] = None,
|
|
7741
8111
|
permanent: Optional[bool] = None,
|
|
7742
8112
|
primary_key: Optional[bool] = None,
|
|
7743
8113
|
project_name: Optional[str] = None,
|
|
@@ -7798,6 +8168,7 @@ class LookmlModelExploreField(model.Model):
|
|
|
7798
8168
|
self.name = name
|
|
7799
8169
|
self.strict_value_format = strict_value_format
|
|
7800
8170
|
self.parameter = parameter
|
|
8171
|
+
self.period_over_period_params = period_over_period_params
|
|
7801
8172
|
self.permanent = permanent
|
|
7802
8173
|
self.primary_key = primary_key
|
|
7803
8174
|
self.project_name = project_name
|
|
@@ -7910,6 +8281,35 @@ class LookmlModelExploreFieldMeasureFilters(model.Model):
|
|
|
7910
8281
|
self.condition = condition
|
|
7911
8282
|
|
|
7912
8283
|
|
|
8284
|
+
@attr.s(auto_attribs=True, init=False)
|
|
8285
|
+
class LookmlModelExploreFieldPeriodOverPeriodParams(model.Model):
|
|
8286
|
+
"""
|
|
8287
|
+
Attributes:
|
|
8288
|
+
based_on: Specifies the measure that will be calculated over the different periods.
|
|
8289
|
+
based_on_time: Specifies the time dimension that this measure will operate over.
|
|
8290
|
+
period: Specifies the time frame for the comparison. Valid values are: "year", "fiscal_year", "quarter", "fiscal_quarter", "month", "week", "date".
|
|
8291
|
+
kind: The type of calculation for the period_over_period measure. Valid values are: "previous", "difference", "relative_change".
|
|
8292
|
+
"""
|
|
8293
|
+
|
|
8294
|
+
based_on: Optional[str] = None
|
|
8295
|
+
based_on_time: Optional[str] = None
|
|
8296
|
+
period: Optional["Period"] = None
|
|
8297
|
+
kind: Optional["Kind"] = None
|
|
8298
|
+
|
|
8299
|
+
def __init__(
|
|
8300
|
+
self,
|
|
8301
|
+
*,
|
|
8302
|
+
based_on: Optional[str] = None,
|
|
8303
|
+
based_on_time: Optional[str] = None,
|
|
8304
|
+
period: Optional["Period"] = None,
|
|
8305
|
+
kind: Optional["Kind"] = None
|
|
8306
|
+
):
|
|
8307
|
+
self.based_on = based_on
|
|
8308
|
+
self.based_on_time = based_on_time
|
|
8309
|
+
self.period = period
|
|
8310
|
+
self.kind = kind
|
|
8311
|
+
|
|
8312
|
+
|
|
7913
8313
|
@attr.s(auto_attribs=True, init=False)
|
|
7914
8314
|
class LookmlModelExploreFieldset(model.Model):
|
|
7915
8315
|
"""
|
|
@@ -8194,6 +8594,121 @@ class LookmlTestResult(model.Model):
|
|
|
8194
8594
|
self.success = success
|
|
8195
8595
|
|
|
8196
8596
|
|
|
8597
|
+
@attr.s(auto_attribs=True, init=False)
|
|
8598
|
+
class LookMLValidatorError(model.Model):
|
|
8599
|
+
"""
|
|
8600
|
+
Attributes:
|
|
8601
|
+
type: A URI reference that identifies the problem type
|
|
8602
|
+
title: Overview of the error
|
|
8603
|
+
detail: Detail of the error
|
|
8604
|
+
status: The HTTP status code for the problem
|
|
8605
|
+
instance: URI reference that identifies the specific occurrence of the problem
|
|
8606
|
+
model: LookML model that contains the error
|
|
8607
|
+
explore: LookML Explore that contains the error
|
|
8608
|
+
field_name: LookML field that caused the error
|
|
8609
|
+
message: Message returned by the LookML validator
|
|
8610
|
+
severity: Severity of the error (warning, error, fatal, info, success)
|
|
8611
|
+
line_number: Line number of the error in the LookML file
|
|
8612
|
+
lookml_url: URL to the LookML that caused the error
|
|
8613
|
+
file_path: IDE folder path to the LookML file that caused the error
|
|
8614
|
+
"""
|
|
8615
|
+
|
|
8616
|
+
type: Optional[str] = None
|
|
8617
|
+
title: Optional[str] = None
|
|
8618
|
+
detail: Optional[str] = None
|
|
8619
|
+
status: Optional[str] = None
|
|
8620
|
+
instance: Optional[str] = None
|
|
8621
|
+
model: Optional[str] = None
|
|
8622
|
+
explore: Optional[str] = None
|
|
8623
|
+
field_name: Optional[str] = None
|
|
8624
|
+
message: Optional[str] = None
|
|
8625
|
+
severity: Optional[str] = None
|
|
8626
|
+
line_number: Optional[str] = None
|
|
8627
|
+
lookml_url: Optional[str] = None
|
|
8628
|
+
file_path: Optional[str] = None
|
|
8629
|
+
|
|
8630
|
+
def __init__(
|
|
8631
|
+
self,
|
|
8632
|
+
*,
|
|
8633
|
+
type: Optional[str] = None,
|
|
8634
|
+
title: Optional[str] = None,
|
|
8635
|
+
detail: Optional[str] = None,
|
|
8636
|
+
status: Optional[str] = None,
|
|
8637
|
+
instance: Optional[str] = None,
|
|
8638
|
+
model: Optional[str] = None,
|
|
8639
|
+
explore: Optional[str] = None,
|
|
8640
|
+
field_name: Optional[str] = None,
|
|
8641
|
+
message: Optional[str] = None,
|
|
8642
|
+
severity: Optional[str] = None,
|
|
8643
|
+
line_number: Optional[str] = None,
|
|
8644
|
+
lookml_url: Optional[str] = None,
|
|
8645
|
+
file_path: Optional[str] = None
|
|
8646
|
+
):
|
|
8647
|
+
self.type = type
|
|
8648
|
+
self.title = title
|
|
8649
|
+
self.detail = detail
|
|
8650
|
+
self.status = status
|
|
8651
|
+
self.instance = instance
|
|
8652
|
+
self.model = model
|
|
8653
|
+
self.explore = explore
|
|
8654
|
+
self.field_name = field_name
|
|
8655
|
+
self.message = message
|
|
8656
|
+
self.severity = severity
|
|
8657
|
+
self.line_number = line_number
|
|
8658
|
+
self.lookml_url = lookml_url
|
|
8659
|
+
self.file_path = file_path
|
|
8660
|
+
|
|
8661
|
+
|
|
8662
|
+
@attr.s(auto_attribs=True, init=False)
|
|
8663
|
+
class LookMLValidatorErrorItem(model.Model):
|
|
8664
|
+
"""
|
|
8665
|
+
Attributes:
|
|
8666
|
+
lookml_error:
|
|
8667
|
+
generic_error:
|
|
8668
|
+
"""
|
|
8669
|
+
|
|
8670
|
+
lookml_error: Optional["LookMLValidatorError"] = None
|
|
8671
|
+
generic_error: Optional["GenericError"] = None
|
|
8672
|
+
|
|
8673
|
+
def __init__(
|
|
8674
|
+
self,
|
|
8675
|
+
*,
|
|
8676
|
+
lookml_error: Optional["LookMLValidatorError"] = None,
|
|
8677
|
+
generic_error: Optional["GenericError"] = None
|
|
8678
|
+
):
|
|
8679
|
+
self.lookml_error = lookml_error
|
|
8680
|
+
self.generic_error = generic_error
|
|
8681
|
+
|
|
8682
|
+
|
|
8683
|
+
@attr.s(auto_attribs=True, init=False)
|
|
8684
|
+
class LookMLValidatorResult(model.Model):
|
|
8685
|
+
"""
|
|
8686
|
+
Attributes:
|
|
8687
|
+
name: Name of the validator (lookml)
|
|
8688
|
+
status: Status of the validation (unknown, failed, passed, skipped, errored, cancelled, queued, running)
|
|
8689
|
+
error_count: Total number of failed LookML validations
|
|
8690
|
+
errors: Details of the LookML that failed validation
|
|
8691
|
+
"""
|
|
8692
|
+
|
|
8693
|
+
name: Optional[str] = None
|
|
8694
|
+
status: Optional[str] = None
|
|
8695
|
+
error_count: Optional[int] = None
|
|
8696
|
+
errors: Optional[Sequence["LookMLValidatorErrorItem"]] = None
|
|
8697
|
+
|
|
8698
|
+
def __init__(
|
|
8699
|
+
self,
|
|
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
|
+
self.name = name
|
|
8707
|
+
self.status = status
|
|
8708
|
+
self.error_count = error_count
|
|
8709
|
+
self.errors = errors
|
|
8710
|
+
|
|
8711
|
+
|
|
8197
8712
|
@attr.s(auto_attribs=True, init=False)
|
|
8198
8713
|
class LookModel(model.Model):
|
|
8199
8714
|
"""
|
|
@@ -9295,6 +9810,26 @@ class PasswordConfig(model.Model):
|
|
|
9295
9810
|
self.require_special = require_special
|
|
9296
9811
|
|
|
9297
9812
|
|
|
9813
|
+
class Period(enum.Enum):
|
|
9814
|
+
"""
|
|
9815
|
+
Specifies the time frame for the comparison. Valid values are: "year", "fiscal_year", "quarter", "fiscal_quarter", "month", "week", "date". (Enum defined in LookmlModelExploreFieldPeriodOverPeriodParams)
|
|
9816
|
+
|
|
9817
|
+
"""
|
|
9818
|
+
|
|
9819
|
+
year = "year"
|
|
9820
|
+
fiscal_year = "fiscal_year"
|
|
9821
|
+
quarter = "quarter"
|
|
9822
|
+
fiscal_quarter = "fiscal_quarter"
|
|
9823
|
+
month = "month"
|
|
9824
|
+
week = "week"
|
|
9825
|
+
date = "date"
|
|
9826
|
+
invalid_api_enum_value = "invalid_api_enum_value"
|
|
9827
|
+
|
|
9828
|
+
|
|
9829
|
+
# https://github.com/python/mypy/issues/2427
|
|
9830
|
+
Period.__new__ = model.safe_enum__new__ # type: ignore
|
|
9831
|
+
|
|
9832
|
+
|
|
9298
9833
|
@attr.s(auto_attribs=True, init=False)
|
|
9299
9834
|
class Permission(model.Model):
|
|
9300
9835
|
"""
|
|
@@ -11783,6 +12318,154 @@ class SqlQueryCreate(model.Model):
|
|
|
11783
12318
|
self.vis_config = vis_config
|
|
11784
12319
|
|
|
11785
12320
|
|
|
12321
|
+
@attr.s(auto_attribs=True, init=False)
|
|
12322
|
+
class SqlValidatorError(model.Model):
|
|
12323
|
+
"""
|
|
12324
|
+
Attributes:
|
|
12325
|
+
type: A URI reference that identifies the problem type
|
|
12326
|
+
title: Overview of the error
|
|
12327
|
+
detail: Detail of the error
|
|
12328
|
+
status: The HTTP status code for the problem
|
|
12329
|
+
instance: URI reference that identifies the specific occurrence of the problem
|
|
12330
|
+
model: LookML model that contains the Explore that failed SQL validation
|
|
12331
|
+
explore: LookML Explore that failed SQL validation
|
|
12332
|
+
message: Message returned by the SQL validation
|
|
12333
|
+
explore_url: URL to the Explore
|
|
12334
|
+
lookml_url: URL to the LookML that caused the error
|
|
12335
|
+
dimension: LookML dimension that caused the error
|
|
12336
|
+
line_number: Line of the error in the LookML file
|
|
12337
|
+
"""
|
|
12338
|
+
|
|
12339
|
+
type: Optional[str] = None
|
|
12340
|
+
title: Optional[str] = None
|
|
12341
|
+
detail: Optional[str] = None
|
|
12342
|
+
status: Optional[str] = None
|
|
12343
|
+
instance: Optional[str] = None
|
|
12344
|
+
model: Optional[str] = None
|
|
12345
|
+
explore: Optional[str] = None
|
|
12346
|
+
message: Optional[str] = None
|
|
12347
|
+
explore_url: Optional[str] = None
|
|
12348
|
+
lookml_url: Optional[str] = None
|
|
12349
|
+
dimension: Optional[str] = None
|
|
12350
|
+
line_number: Optional[str] = None
|
|
12351
|
+
|
|
12352
|
+
def __init__(
|
|
12353
|
+
self,
|
|
12354
|
+
*,
|
|
12355
|
+
type: Optional[str] = None,
|
|
12356
|
+
title: Optional[str] = None,
|
|
12357
|
+
detail: Optional[str] = None,
|
|
12358
|
+
status: Optional[str] = None,
|
|
12359
|
+
instance: Optional[str] = None,
|
|
12360
|
+
model: Optional[str] = None,
|
|
12361
|
+
explore: Optional[str] = None,
|
|
12362
|
+
message: Optional[str] = None,
|
|
12363
|
+
explore_url: Optional[str] = None,
|
|
12364
|
+
lookml_url: Optional[str] = None,
|
|
12365
|
+
dimension: Optional[str] = None,
|
|
12366
|
+
line_number: Optional[str] = None
|
|
12367
|
+
):
|
|
12368
|
+
self.type = type
|
|
12369
|
+
self.title = title
|
|
12370
|
+
self.detail = detail
|
|
12371
|
+
self.status = status
|
|
12372
|
+
self.instance = instance
|
|
12373
|
+
self.model = model
|
|
12374
|
+
self.explore = explore
|
|
12375
|
+
self.message = message
|
|
12376
|
+
self.explore_url = explore_url
|
|
12377
|
+
self.lookml_url = lookml_url
|
|
12378
|
+
self.dimension = dimension
|
|
12379
|
+
self.line_number = line_number
|
|
12380
|
+
|
|
12381
|
+
|
|
12382
|
+
@attr.s(auto_attribs=True, init=False)
|
|
12383
|
+
class SqlValidatorErrorItem(model.Model):
|
|
12384
|
+
"""
|
|
12385
|
+
Attributes:
|
|
12386
|
+
sql_error:
|
|
12387
|
+
generic_error:
|
|
12388
|
+
"""
|
|
12389
|
+
|
|
12390
|
+
sql_error: Optional["SqlValidatorError"] = None
|
|
12391
|
+
generic_error: Optional["GenericError"] = None
|
|
12392
|
+
|
|
12393
|
+
def __init__(
|
|
12394
|
+
self,
|
|
12395
|
+
*,
|
|
12396
|
+
sql_error: Optional["SqlValidatorError"] = None,
|
|
12397
|
+
generic_error: Optional["GenericError"] = None
|
|
12398
|
+
):
|
|
12399
|
+
self.sql_error = sql_error
|
|
12400
|
+
self.generic_error = generic_error
|
|
12401
|
+
|
|
12402
|
+
|
|
12403
|
+
@attr.s(auto_attribs=True, init=False)
|
|
12404
|
+
class SqlValidatorResult(model.Model):
|
|
12405
|
+
"""
|
|
12406
|
+
Attributes:
|
|
12407
|
+
name: Name of the validator (sql)
|
|
12408
|
+
incremental: Whether the validation was incremental
|
|
12409
|
+
status: Status of the validation (unknown, failed, passed, skipped, errored, cancelled, queued, running)
|
|
12410
|
+
result: The results of tested Explores
|
|
12411
|
+
"""
|
|
12412
|
+
|
|
12413
|
+
name: Optional[str] = None
|
|
12414
|
+
incremental: Optional[bool] = None
|
|
12415
|
+
status: Optional[str] = None
|
|
12416
|
+
result: Optional[Sequence["SqlValidatorTestedExplore"]] = None
|
|
12417
|
+
|
|
12418
|
+
def __init__(
|
|
12419
|
+
self,
|
|
12420
|
+
*,
|
|
12421
|
+
name: Optional[str] = None,
|
|
12422
|
+
incremental: Optional[bool] = None,
|
|
12423
|
+
status: Optional[str] = None,
|
|
12424
|
+
result: Optional[Sequence["SqlValidatorTestedExplore"]] = None
|
|
12425
|
+
):
|
|
12426
|
+
self.name = name
|
|
12427
|
+
self.incremental = incremental
|
|
12428
|
+
self.status = status
|
|
12429
|
+
self.result = result
|
|
12430
|
+
|
|
12431
|
+
|
|
12432
|
+
@attr.s(auto_attribs=True, init=False)
|
|
12433
|
+
class SqlValidatorTestedExplore(model.Model):
|
|
12434
|
+
"""
|
|
12435
|
+
Attributes:
|
|
12436
|
+
model: LookML model that was tested
|
|
12437
|
+
explore: LookML Explore that was tested
|
|
12438
|
+
status: Status of the validation (unknown, failed, passed, skipped, errored, cancelled, queued, running)
|
|
12439
|
+
skip_reason: Reason the validation was skipped
|
|
12440
|
+
error_count: Total number of failed validations
|
|
12441
|
+
errors: Details of the LookML that failed SQL validation
|
|
12442
|
+
"""
|
|
12443
|
+
|
|
12444
|
+
model: Optional[str] = None
|
|
12445
|
+
explore: Optional[str] = None
|
|
12446
|
+
status: Optional[str] = None
|
|
12447
|
+
skip_reason: Optional[str] = None
|
|
12448
|
+
error_count: Optional[int] = None
|
|
12449
|
+
errors: Optional[Sequence["SqlValidatorErrorItem"]] = None
|
|
12450
|
+
|
|
12451
|
+
def __init__(
|
|
12452
|
+
self,
|
|
12453
|
+
*,
|
|
12454
|
+
model: Optional[str] = None,
|
|
12455
|
+
explore: Optional[str] = None,
|
|
12456
|
+
status: Optional[str] = None,
|
|
12457
|
+
skip_reason: Optional[str] = None,
|
|
12458
|
+
error_count: Optional[int] = None,
|
|
12459
|
+
errors: Optional[Sequence["SqlValidatorErrorItem"]] = None
|
|
12460
|
+
):
|
|
12461
|
+
self.model = model
|
|
12462
|
+
self.explore = explore
|
|
12463
|
+
self.status = status
|
|
12464
|
+
self.skip_reason = skip_reason
|
|
12465
|
+
self.error_count = error_count
|
|
12466
|
+
self.errors = errors
|
|
12467
|
+
|
|
12468
|
+
|
|
11786
12469
|
@attr.s(auto_attribs=True, init=False)
|
|
11787
12470
|
class SshPublicKey(model.Model):
|
|
11788
12471
|
"""
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|