looker-sdk 25.4.0__py3-none-any.whl → 25.8.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/sdk/api40/methods.py +59 -7
- looker_sdk/sdk/api40/models.py +967 -6
- looker_sdk/sdk/constants.py +1 -1
- looker_sdk/version.py +1 -1
- {looker_sdk-25.4.0.dist-info → looker_sdk-25.8.0.dist-info}/METADATA +1 -1
- {looker_sdk-25.4.0.dist-info → looker_sdk-25.8.0.dist-info}/RECORD +9 -9
- {looker_sdk-25.4.0.dist-info → looker_sdk-25.8.0.dist-info}/LICENSE.txt +0 -0
- {looker_sdk-25.4.0.dist-info → looker_sdk-25.8.0.dist-info}/WHEEL +0 -0
- {looker_sdk-25.4.0.dist-info → looker_sdk-25.8.0.dist-info}/top_level.txt +0 -0
looker_sdk/sdk/api40/methods.py
CHANGED
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
# SOFTWARE.
|
|
22
22
|
#
|
|
23
23
|
|
|
24
|
-
#
|
|
24
|
+
# 471 API methods
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
# NOTE: Do not edit this file generated by Looker SDK Codegen for API 4.0
|
|
@@ -889,9 +889,6 @@ class Looker40SDK(api_methods.APIMethods):
|
|
|
889
889
|
# it to disk, do not pass it to a third party, and only pass it through a secure HTTPS
|
|
890
890
|
# encrypted transport.
|
|
891
891
|
#
|
|
892
|
-
#
|
|
893
|
-
# **NOTE**: Calls to this endpoint require [Embedding](https://cloud.google.com/looker/docs/r/looker-core-feature-embed) to be enabled. Usage of this endpoint is not authorized for Looker Core Standard and Looker Core Enterprise.
|
|
894
|
-
#
|
|
895
892
|
# POST /embed/token_url/me -> mdls.EmbedUrlResponse
|
|
896
893
|
def create_embed_url_as_me(
|
|
897
894
|
self,
|
|
@@ -4882,6 +4879,8 @@ class Looker40SDK(api_methods.APIMethods):
|
|
|
4882
4879
|
# Any UDD (a dashboard which exists in the Looker database rather than as a LookML file) which has a `lookml_link_id`
|
|
4883
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.
|
|
4884
4881
|
#
|
|
4882
|
+
# If the dashboard_ids parameter is specified, only the dashboards with the specified ids will be updated.
|
|
4883
|
+
#
|
|
4885
4884
|
# For this operation to succeed the user must have permission to view the LookML dashboard, and only linked dashboards
|
|
4886
4885
|
# that the user has permission to update will be synced.
|
|
4887
4886
|
#
|
|
@@ -4892,9 +4891,10 @@ class Looker40SDK(api_methods.APIMethods):
|
|
|
4892
4891
|
self,
|
|
4893
4892
|
# Id of LookML dashboard, in the form 'model::dashboardname'
|
|
4894
4893
|
lookml_dashboard_id: str,
|
|
4895
|
-
body: mdls.WriteDashboard,
|
|
4896
4894
|
# If true, and this dashboard is localized, export it with the raw keys, not localized.
|
|
4897
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,
|
|
4898
4898
|
transport_options: Optional[transport.TransportOptions] = None,
|
|
4899
4899
|
) -> Sequence[int]:
|
|
4900
4900
|
"""Sync LookML Dashboard"""
|
|
@@ -4904,8 +4904,7 @@ class Looker40SDK(api_methods.APIMethods):
|
|
|
4904
4904
|
self.patch(
|
|
4905
4905
|
path=f"/dashboards/{lookml_dashboard_id}/sync",
|
|
4906
4906
|
structure=Sequence[int],
|
|
4907
|
-
query_params={"raw_locale": raw_locale},
|
|
4908
|
-
body=body,
|
|
4907
|
+
query_params={"raw_locale": raw_locale, "dashboard_ids": dashboard_ids},
|
|
4909
4908
|
transport_options=transport_options,
|
|
4910
4909
|
),
|
|
4911
4910
|
)
|
|
@@ -8795,6 +8794,59 @@ class Looker40SDK(api_methods.APIMethods):
|
|
|
8795
8794
|
)
|
|
8796
8795
|
return response
|
|
8797
8796
|
|
|
8797
|
+
# ### Fetches a CI Run.
|
|
8798
|
+
#
|
|
8799
|
+
# GET /projects/{project_id}/ci/runs/{run_id} -> mdls.ProjectCIRun
|
|
8800
|
+
def get_ci_run(
|
|
8801
|
+
self,
|
|
8802
|
+
# Project Id
|
|
8803
|
+
project_id: str,
|
|
8804
|
+
# Run Id
|
|
8805
|
+
run_id: str,
|
|
8806
|
+
# Requested fields
|
|
8807
|
+
fields: Optional[str] = None,
|
|
8808
|
+
transport_options: Optional[transport.TransportOptions] = None,
|
|
8809
|
+
) -> mdls.ProjectCIRun:
|
|
8810
|
+
"""Fetch Continuous Integration run"""
|
|
8811
|
+
project_id = self.encode_path_param(project_id)
|
|
8812
|
+
run_id = self.encode_path_param(run_id)
|
|
8813
|
+
response = cast(
|
|
8814
|
+
mdls.ProjectCIRun,
|
|
8815
|
+
self.get(
|
|
8816
|
+
path=f"/projects/{project_id}/ci/runs/{run_id}",
|
|
8817
|
+
structure=mdls.ProjectCIRun,
|
|
8818
|
+
query_params={"fields": fields},
|
|
8819
|
+
transport_options=transport_options,
|
|
8820
|
+
),
|
|
8821
|
+
)
|
|
8822
|
+
return response
|
|
8823
|
+
|
|
8824
|
+
# ### Creates a CI Run.
|
|
8825
|
+
#
|
|
8826
|
+
# POST /projects/{project_id}/ci/run -> mdls.CreateCIRunResponse
|
|
8827
|
+
def create_ci_run(
|
|
8828
|
+
self,
|
|
8829
|
+
# Project Id
|
|
8830
|
+
project_id: str,
|
|
8831
|
+
body: mdls.CreateCIRunRequest,
|
|
8832
|
+
# Requested fields
|
|
8833
|
+
fields: Optional[str] = None,
|
|
8834
|
+
transport_options: Optional[transport.TransportOptions] = None,
|
|
8835
|
+
) -> mdls.CreateCIRunResponse:
|
|
8836
|
+
"""Create a Continuous Integration run"""
|
|
8837
|
+
project_id = self.encode_path_param(project_id)
|
|
8838
|
+
response = cast(
|
|
8839
|
+
mdls.CreateCIRunResponse,
|
|
8840
|
+
self.post(
|
|
8841
|
+
path=f"/projects/{project_id}/ci/run",
|
|
8842
|
+
structure=mdls.CreateCIRunResponse,
|
|
8843
|
+
query_params={"fields": fields},
|
|
8844
|
+
body=body,
|
|
8845
|
+
transport_options=transport_options,
|
|
8846
|
+
),
|
|
8847
|
+
)
|
|
8848
|
+
return response
|
|
8849
|
+
|
|
8798
8850
|
# ### Configure Repository Credential for a remote dependency
|
|
8799
8851
|
#
|
|
8800
8852
|
# Admin required.
|
looker_sdk/sdk/api40/models.py
CHANGED
|
@@ -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
|
"""
|
|
@@ -917,6 +1062,219 @@ class Category(enum.Enum):
|
|
|
917
1062
|
Category.__new__ = model.safe_enum__new__ # type: ignore
|
|
918
1063
|
|
|
919
1064
|
|
|
1065
|
+
@attr.s(auto_attribs=True, init=False)
|
|
1066
|
+
class CIChangeRequest(model.Model):
|
|
1067
|
+
"""
|
|
1068
|
+
Attributes:
|
|
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.
|
|
1073
|
+
"""
|
|
1074
|
+
|
|
1075
|
+
change_request_number: Optional[int] = None
|
|
1076
|
+
change_request_url: Optional[str] = None
|
|
1077
|
+
change_request_name: Optional[str] = None
|
|
1078
|
+
change_request_commits_url: Optional[str] = None
|
|
1079
|
+
|
|
1080
|
+
def __init__(
|
|
1081
|
+
self,
|
|
1082
|
+
*,
|
|
1083
|
+
change_request_number: Optional[int] = None,
|
|
1084
|
+
change_request_url: Optional[str] = None,
|
|
1085
|
+
change_request_name: Optional[str] = None,
|
|
1086
|
+
change_request_commits_url: Optional[str] = None
|
|
1087
|
+
):
|
|
1088
|
+
self.change_request_number = change_request_number
|
|
1089
|
+
self.change_request_url = change_request_url
|
|
1090
|
+
self.change_request_name = change_request_name
|
|
1091
|
+
self.change_request_commits_url = change_request_commits_url
|
|
1092
|
+
|
|
1093
|
+
|
|
1094
|
+
@attr.s(auto_attribs=True, init=False)
|
|
1095
|
+
class CIGitState(model.Model):
|
|
1096
|
+
"""
|
|
1097
|
+
Attributes:
|
|
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
|
|
1102
|
+
"""
|
|
1103
|
+
|
|
1104
|
+
branch: Optional[str] = None
|
|
1105
|
+
repository: Optional[str] = None
|
|
1106
|
+
commit_ref: Optional[str] = None
|
|
1107
|
+
target: Optional[str] = None
|
|
1108
|
+
|
|
1109
|
+
def __init__(
|
|
1110
|
+
self,
|
|
1111
|
+
*,
|
|
1112
|
+
branch: Optional[str] = None,
|
|
1113
|
+
repository: Optional[str] = None,
|
|
1114
|
+
commit_ref: Optional[str] = None,
|
|
1115
|
+
target: Optional[str] = None
|
|
1116
|
+
):
|
|
1117
|
+
self.branch = branch
|
|
1118
|
+
self.repository = repository
|
|
1119
|
+
self.commit_ref = commit_ref
|
|
1120
|
+
self.target = target
|
|
1121
|
+
|
|
1122
|
+
|
|
1123
|
+
@attr.s(auto_attribs=True, init=False)
|
|
1124
|
+
class CIRun(model.Model):
|
|
1125
|
+
"""
|
|
1126
|
+
Attributes:
|
|
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)
|
|
1134
|
+
git_state:
|
|
1135
|
+
result:
|
|
1136
|
+
schedule:
|
|
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)
|
|
1140
|
+
change_request:
|
|
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
|
|
1143
|
+
"""
|
|
1144
|
+
|
|
1145
|
+
run_id: Optional[str] = None
|
|
1146
|
+
created_at: Optional[datetime.datetime] = None
|
|
1147
|
+
started_at: Optional[datetime.datetime] = None
|
|
1148
|
+
finished_at: Optional[datetime.datetime] = None
|
|
1149
|
+
status_url: Optional[str] = None
|
|
1150
|
+
status: Optional[str] = None
|
|
1151
|
+
git_service: Optional[str] = None
|
|
1152
|
+
git_state: Optional["CIGitState"] = None
|
|
1153
|
+
result: Optional["CIRunResult"] = None
|
|
1154
|
+
schedule: Optional["CIScheduleTrigger"] = None
|
|
1155
|
+
target_branch: Optional[str] = None
|
|
1156
|
+
title: Optional[str] = None
|
|
1157
|
+
trigger: Optional[str] = None
|
|
1158
|
+
change_request: Optional["CIChangeRequest"] = None
|
|
1159
|
+
suite_id: Optional[str] = None
|
|
1160
|
+
username: Optional[str] = None
|
|
1161
|
+
|
|
1162
|
+
def __init__(
|
|
1163
|
+
self,
|
|
1164
|
+
*,
|
|
1165
|
+
run_id: Optional[str] = None,
|
|
1166
|
+
created_at: Optional[datetime.datetime] = None,
|
|
1167
|
+
started_at: Optional[datetime.datetime] = None,
|
|
1168
|
+
finished_at: Optional[datetime.datetime] = None,
|
|
1169
|
+
status_url: Optional[str] = None,
|
|
1170
|
+
status: Optional[str] = None,
|
|
1171
|
+
git_service: Optional[str] = None,
|
|
1172
|
+
git_state: Optional["CIGitState"] = None,
|
|
1173
|
+
result: Optional["CIRunResult"] = None,
|
|
1174
|
+
schedule: Optional["CIScheduleTrigger"] = None,
|
|
1175
|
+
target_branch: Optional[str] = None,
|
|
1176
|
+
title: Optional[str] = None,
|
|
1177
|
+
trigger: Optional[str] = None,
|
|
1178
|
+
change_request: Optional["CIChangeRequest"] = None,
|
|
1179
|
+
suite_id: Optional[str] = None,
|
|
1180
|
+
username: Optional[str] = None
|
|
1181
|
+
):
|
|
1182
|
+
self.run_id = run_id
|
|
1183
|
+
self.created_at = created_at
|
|
1184
|
+
self.started_at = started_at
|
|
1185
|
+
self.finished_at = finished_at
|
|
1186
|
+
self.status_url = status_url
|
|
1187
|
+
self.status = status
|
|
1188
|
+
self.git_service = git_service
|
|
1189
|
+
self.git_state = git_state
|
|
1190
|
+
self.result = result
|
|
1191
|
+
self.schedule = schedule
|
|
1192
|
+
self.target_branch = target_branch
|
|
1193
|
+
self.title = title
|
|
1194
|
+
self.trigger = trigger
|
|
1195
|
+
self.change_request = change_request
|
|
1196
|
+
self.suite_id = suite_id
|
|
1197
|
+
self.username = username
|
|
1198
|
+
|
|
1199
|
+
|
|
1200
|
+
@attr.s(auto_attribs=True, init=False)
|
|
1201
|
+
class CIRunResult(model.Model):
|
|
1202
|
+
"""
|
|
1203
|
+
Attributes:
|
|
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:
|
|
1213
|
+
"""
|
|
1214
|
+
|
|
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
|
|
1224
|
+
|
|
1225
|
+
def __init__(
|
|
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
|
|
1237
|
+
):
|
|
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
|
|
1247
|
+
|
|
1248
|
+
|
|
1249
|
+
@attr.s(auto_attribs=True, init=False)
|
|
1250
|
+
class CIScheduleTrigger(model.Model):
|
|
1251
|
+
"""
|
|
1252
|
+
Attributes:
|
|
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)
|
|
1257
|
+
"""
|
|
1258
|
+
|
|
1259
|
+
enabled: Optional[bool] = None
|
|
1260
|
+
day: Optional[str] = None
|
|
1261
|
+
hour: Optional[str] = None
|
|
1262
|
+
frequency: Optional[str] = None
|
|
1263
|
+
|
|
1264
|
+
def __init__(
|
|
1265
|
+
self,
|
|
1266
|
+
*,
|
|
1267
|
+
enabled: Optional[bool] = None,
|
|
1268
|
+
day: Optional[str] = None,
|
|
1269
|
+
hour: Optional[str] = None,
|
|
1270
|
+
frequency: Optional[str] = None
|
|
1271
|
+
):
|
|
1272
|
+
self.enabled = enabled
|
|
1273
|
+
self.day = day
|
|
1274
|
+
self.hour = hour
|
|
1275
|
+
self.frequency = frequency
|
|
1276
|
+
|
|
1277
|
+
|
|
920
1278
|
@attr.s(auto_attribs=True, init=False)
|
|
921
1279
|
class ColorCollection(model.Model):
|
|
922
1280
|
"""
|
|
@@ -1771,6 +2129,75 @@ class ContentValidationScheduledPlan(model.Model):
|
|
|
1771
2129
|
self.id = id
|
|
1772
2130
|
|
|
1773
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
|
+
|
|
1774
2201
|
@attr.s(auto_attribs=True, init=False)
|
|
1775
2202
|
class ContentValidatorError(model.Model):
|
|
1776
2203
|
"""
|
|
@@ -1826,6 +2253,77 @@ class ContentValidatorError(model.Model):
|
|
|
1826
2253
|
self.id = id
|
|
1827
2254
|
|
|
1828
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
|
+
|
|
1829
2327
|
@attr.s(auto_attribs=True, init=False)
|
|
1830
2328
|
class ContentView(model.Model):
|
|
1831
2329
|
"""
|
|
@@ -1945,6 +2443,47 @@ class CostEstimate(model.Model):
|
|
|
1945
2443
|
self.message = message
|
|
1946
2444
|
|
|
1947
2445
|
|
|
2446
|
+
@attr.s(auto_attribs=True, init=False)
|
|
2447
|
+
class CreateCIRunRequest(model.Model):
|
|
2448
|
+
"""
|
|
2449
|
+
Attributes:
|
|
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.
|
|
2453
|
+
"""
|
|
2454
|
+
|
|
2455
|
+
suite_id: Optional[str] = None
|
|
2456
|
+
branch: Optional[str] = None
|
|
2457
|
+
commit: Optional[str] = None
|
|
2458
|
+
|
|
2459
|
+
def __init__(
|
|
2460
|
+
self,
|
|
2461
|
+
*,
|
|
2462
|
+
suite_id: Optional[str] = None,
|
|
2463
|
+
branch: Optional[str] = None,
|
|
2464
|
+
commit: Optional[str] = None
|
|
2465
|
+
):
|
|
2466
|
+
self.suite_id = suite_id
|
|
2467
|
+
self.branch = branch
|
|
2468
|
+
self.commit = commit
|
|
2469
|
+
|
|
2470
|
+
|
|
2471
|
+
@attr.s(auto_attribs=True, init=False)
|
|
2472
|
+
class CreateCIRunResponse(model.Model):
|
|
2473
|
+
"""
|
|
2474
|
+
Attributes:
|
|
2475
|
+
run_id: ID of the CI run
|
|
2476
|
+
status: Status of the CI run (unknown, failed, passed, skipped, errored, cancelled, queued, running)
|
|
2477
|
+
"""
|
|
2478
|
+
|
|
2479
|
+
run_id: Optional[str] = None
|
|
2480
|
+
status: Optional[str] = None
|
|
2481
|
+
|
|
2482
|
+
def __init__(self, *, run_id: Optional[str] = None, status: Optional[str] = None):
|
|
2483
|
+
self.run_id = run_id
|
|
2484
|
+
self.status = status
|
|
2485
|
+
|
|
2486
|
+
|
|
1948
2487
|
@attr.s(auto_attribs=True, init=False)
|
|
1949
2488
|
class CreateCostEstimate(model.Model):
|
|
1950
2489
|
"""
|
|
@@ -3692,9 +4231,10 @@ class DBConnection(model.Model):
|
|
|
3692
4231
|
username: Username for server authentication
|
|
3693
4232
|
password: (Write-Only) Password for server authentication
|
|
3694
4233
|
uses_oauth: Whether the connection uses OAuth for authentication.
|
|
4234
|
+
uses_key_pair_auth: Whether the connection uses key-pair for authentication.
|
|
3695
4235
|
uses_instance_oauth: Whether the integration uses the oauth instance account.
|
|
3696
4236
|
certificate: (Write-Only) Base64 encoded Certificate body for server authentication (when appropriate for dialect).
|
|
3697
|
-
file_type: (Write-Only) Certificate keyfile type - .json or .p12
|
|
4237
|
+
file_type: (Write-Only) Certificate keyfile type - .json, .p8 or .p12
|
|
3698
4238
|
database: Database name
|
|
3699
4239
|
db_timezone: Time zone of database
|
|
3700
4240
|
query_timezone: Timezone to use in queries
|
|
@@ -3755,6 +4295,7 @@ class DBConnection(model.Model):
|
|
|
3755
4295
|
username: Optional[str] = None
|
|
3756
4296
|
password: Optional[str] = None
|
|
3757
4297
|
uses_oauth: Optional[bool] = None
|
|
4298
|
+
uses_key_pair_auth: Optional[bool] = None
|
|
3758
4299
|
uses_instance_oauth: Optional[bool] = None
|
|
3759
4300
|
certificate: Optional[str] = None
|
|
3760
4301
|
file_type: Optional[str] = None
|
|
@@ -3820,6 +4361,7 @@ class DBConnection(model.Model):
|
|
|
3820
4361
|
username: Optional[str] = None,
|
|
3821
4362
|
password: Optional[str] = None,
|
|
3822
4363
|
uses_oauth: Optional[bool] = None,
|
|
4364
|
+
uses_key_pair_auth: Optional[bool] = None,
|
|
3823
4365
|
uses_instance_oauth: Optional[bool] = None,
|
|
3824
4366
|
certificate: Optional[str] = None,
|
|
3825
4367
|
file_type: Optional[str] = None,
|
|
@@ -3882,6 +4424,7 @@ class DBConnection(model.Model):
|
|
|
3882
4424
|
self.username = username
|
|
3883
4425
|
self.password = password
|
|
3884
4426
|
self.uses_oauth = uses_oauth
|
|
4427
|
+
self.uses_key_pair_auth = uses_key_pair_auth
|
|
3885
4428
|
self.uses_instance_oauth = uses_instance_oauth
|
|
3886
4429
|
self.certificate = certificate
|
|
3887
4430
|
self.file_type = file_type
|
|
@@ -4260,6 +4803,24 @@ class Dialect(model.Model):
|
|
|
4260
4803
|
self.has_ssl_support = has_ssl_support
|
|
4261
4804
|
|
|
4262
4805
|
|
|
4806
|
+
@attr.s(auto_attribs=True, init=False)
|
|
4807
|
+
class DialectDriverNamesVersion(model.Model):
|
|
4808
|
+
"""
|
|
4809
|
+
Attributes:
|
|
4810
|
+
name: Name to be passed to the backend
|
|
4811
|
+
display_name: Name to be displayed in the frontend.
|
|
4812
|
+
"""
|
|
4813
|
+
|
|
4814
|
+
name: Optional[str] = None
|
|
4815
|
+
display_name: Optional[str] = None
|
|
4816
|
+
|
|
4817
|
+
def __init__(
|
|
4818
|
+
self, *, name: Optional[str] = None, display_name: Optional[str] = None
|
|
4819
|
+
):
|
|
4820
|
+
self.name = name
|
|
4821
|
+
self.display_name = display_name
|
|
4822
|
+
|
|
4823
|
+
|
|
4263
4824
|
@attr.s(auto_attribs=True, init=False)
|
|
4264
4825
|
class DialectInfo(model.Model):
|
|
4265
4826
|
"""
|
|
@@ -4267,6 +4828,8 @@ class DialectInfo(model.Model):
|
|
|
4267
4828
|
can: Operations the current user is able to perform on this object
|
|
4268
4829
|
default_max_connections: Default number max connections
|
|
4269
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
|
|
4270
4833
|
installed: Is the supporting driver installed
|
|
4271
4834
|
label: The human-readable label of the connection
|
|
4272
4835
|
label_for_database_equivalent: What the dialect calls the equivalent of a normal SQL table
|
|
@@ -4280,13 +4843,15 @@ class DialectInfo(model.Model):
|
|
|
4280
4843
|
can: Optional[MutableMapping[str, bool]] = None
|
|
4281
4844
|
default_max_connections: Optional[str] = None
|
|
4282
4845
|
default_port: Optional[str] = None
|
|
4846
|
+
default_max_queries: Optional[str] = None
|
|
4847
|
+
default_max_queries_per_user: Optional[str] = None
|
|
4283
4848
|
installed: Optional[bool] = None
|
|
4284
4849
|
label: Optional[str] = None
|
|
4285
4850
|
label_for_database_equivalent: Optional[str] = None
|
|
4286
4851
|
label_for_schema_equivalent: Optional[str] = None
|
|
4287
4852
|
name: Optional[str] = None
|
|
4288
4853
|
supported_driver_name: Optional[str] = None
|
|
4289
|
-
supported_driver_versions: Optional[Sequence[
|
|
4854
|
+
supported_driver_versions: Optional[Sequence["DialectDriverNamesVersion"]] = None
|
|
4290
4855
|
supported_options: Optional["DialectInfoOptions"] = None
|
|
4291
4856
|
|
|
4292
4857
|
def __init__(
|
|
@@ -4295,18 +4860,24 @@ class DialectInfo(model.Model):
|
|
|
4295
4860
|
can: Optional[MutableMapping[str, bool]] = None,
|
|
4296
4861
|
default_max_connections: Optional[str] = None,
|
|
4297
4862
|
default_port: Optional[str] = None,
|
|
4863
|
+
default_max_queries: Optional[str] = None,
|
|
4864
|
+
default_max_queries_per_user: Optional[str] = None,
|
|
4298
4865
|
installed: Optional[bool] = None,
|
|
4299
4866
|
label: Optional[str] = None,
|
|
4300
4867
|
label_for_database_equivalent: Optional[str] = None,
|
|
4301
4868
|
label_for_schema_equivalent: Optional[str] = None,
|
|
4302
4869
|
name: Optional[str] = None,
|
|
4303
4870
|
supported_driver_name: Optional[str] = None,
|
|
4304
|
-
supported_driver_versions: Optional[
|
|
4871
|
+
supported_driver_versions: Optional[
|
|
4872
|
+
Sequence["DialectDriverNamesVersion"]
|
|
4873
|
+
] = None,
|
|
4305
4874
|
supported_options: Optional["DialectInfoOptions"] = None
|
|
4306
4875
|
):
|
|
4307
4876
|
self.can = can
|
|
4308
4877
|
self.default_max_connections = default_max_connections
|
|
4309
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
|
|
4310
4881
|
self.installed = installed
|
|
4311
4882
|
self.label = label
|
|
4312
4883
|
self.label_for_database_equivalent = label_for_database_equivalent
|
|
@@ -5120,6 +5691,39 @@ class Format(enum.Enum):
|
|
|
5120
5691
|
Format.__new__ = model.safe_enum__new__ # type: ignore
|
|
5121
5692
|
|
|
5122
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
|
+
|
|
5123
5727
|
@attr.s(auto_attribs=True, init=False)
|
|
5124
5728
|
class GitBranch(model.Model):
|
|
5125
5729
|
"""
|
|
@@ -6273,6 +6877,22 @@ class JsonBiTableCalc(model.Model):
|
|
|
6273
6877
|
self.measure = measure
|
|
6274
6878
|
|
|
6275
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
|
+
|
|
6276
6896
|
@attr.s(auto_attribs=True, init=False)
|
|
6277
6897
|
class LDAPConfig(model.Model):
|
|
6278
6898
|
"""
|
|
@@ -7361,6 +7981,7 @@ class LookmlModelExploreField(model.Model):
|
|
|
7361
7981
|
name: Fully-qualified name of the field.
|
|
7362
7982
|
strict_value_format: If yes, the field will not be localized with the user attribute number_format. Defaults to no
|
|
7363
7983
|
parameter: Whether this field is a parameter.
|
|
7984
|
+
period_over_period_params:
|
|
7364
7985
|
permanent: Whether this field can be removed from a query.
|
|
7365
7986
|
primary_key: Whether or not the field represents a primary key.
|
|
7366
7987
|
project_name: The name of the project this field is defined in.
|
|
@@ -7420,6 +8041,9 @@ class LookmlModelExploreField(model.Model):
|
|
|
7420
8041
|
name: Optional[str] = None
|
|
7421
8042
|
strict_value_format: Optional[bool] = None
|
|
7422
8043
|
parameter: Optional[bool] = None
|
|
8044
|
+
period_over_period_params: Optional[
|
|
8045
|
+
"LookmlModelExploreFieldPeriodOverPeriodParams"
|
|
8046
|
+
] = None
|
|
7423
8047
|
permanent: Optional[bool] = None
|
|
7424
8048
|
primary_key: Optional[bool] = None
|
|
7425
8049
|
project_name: Optional[str] = None
|
|
@@ -7481,6 +8105,9 @@ class LookmlModelExploreField(model.Model):
|
|
|
7481
8105
|
name: Optional[str] = None,
|
|
7482
8106
|
strict_value_format: Optional[bool] = None,
|
|
7483
8107
|
parameter: Optional[bool] = None,
|
|
8108
|
+
period_over_period_params: Optional[
|
|
8109
|
+
"LookmlModelExploreFieldPeriodOverPeriodParams"
|
|
8110
|
+
] = None,
|
|
7484
8111
|
permanent: Optional[bool] = None,
|
|
7485
8112
|
primary_key: Optional[bool] = None,
|
|
7486
8113
|
project_name: Optional[str] = None,
|
|
@@ -7541,6 +8168,7 @@ class LookmlModelExploreField(model.Model):
|
|
|
7541
8168
|
self.name = name
|
|
7542
8169
|
self.strict_value_format = strict_value_format
|
|
7543
8170
|
self.parameter = parameter
|
|
8171
|
+
self.period_over_period_params = period_over_period_params
|
|
7544
8172
|
self.permanent = permanent
|
|
7545
8173
|
self.primary_key = primary_key
|
|
7546
8174
|
self.project_name = project_name
|
|
@@ -7653,6 +8281,35 @@ class LookmlModelExploreFieldMeasureFilters(model.Model):
|
|
|
7653
8281
|
self.condition = condition
|
|
7654
8282
|
|
|
7655
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
|
+
|
|
7656
8313
|
@attr.s(auto_attribs=True, init=False)
|
|
7657
8314
|
class LookmlModelExploreFieldset(model.Model):
|
|
7658
8315
|
"""
|
|
@@ -7937,6 +8594,121 @@ class LookmlTestResult(model.Model):
|
|
|
7937
8594
|
self.success = success
|
|
7938
8595
|
|
|
7939
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
|
+
|
|
7940
8712
|
@attr.s(auto_attribs=True, init=False)
|
|
7941
8713
|
class LookModel(model.Model):
|
|
7942
8714
|
"""
|
|
@@ -9038,6 +9810,26 @@ class PasswordConfig(model.Model):
|
|
|
9038
9810
|
self.require_special = require_special
|
|
9039
9811
|
|
|
9040
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
|
+
|
|
9041
9833
|
@attr.s(auto_attribs=True, init=False)
|
|
9042
9834
|
class Permission(model.Model):
|
|
9043
9835
|
"""
|
|
@@ -9297,6 +10089,19 @@ class Project(model.Model):
|
|
|
9297
10089
|
self.dependency_status = dependency_status
|
|
9298
10090
|
|
|
9299
10091
|
|
|
10092
|
+
@attr.s(auto_attribs=True, init=False)
|
|
10093
|
+
class ProjectCIRun(model.Model):
|
|
10094
|
+
"""
|
|
10095
|
+
Attributes:
|
|
10096
|
+
run:
|
|
10097
|
+
"""
|
|
10098
|
+
|
|
10099
|
+
run: Optional["CIRun"] = None
|
|
10100
|
+
|
|
10101
|
+
def __init__(self, *, run: Optional["CIRun"] = None):
|
|
10102
|
+
self.run = run
|
|
10103
|
+
|
|
10104
|
+
|
|
9300
10105
|
@attr.s(auto_attribs=True, init=False)
|
|
9301
10106
|
class ProjectError(model.Model):
|
|
9302
10107
|
"""
|
|
@@ -9852,6 +10657,7 @@ class Report(model.Model):
|
|
|
9852
10657
|
last_accessed_at: Last Accessed at
|
|
9853
10658
|
deleter_user_id: User Id of the deleter of the report
|
|
9854
10659
|
deleter_user_name: Name of User that deleted the Report.
|
|
10660
|
+
schedule_count: Count of schedules on the report.
|
|
9855
10661
|
"""
|
|
9856
10662
|
|
|
9857
10663
|
can: Optional[MutableMapping[str, bool]] = None
|
|
@@ -9872,6 +10678,7 @@ class Report(model.Model):
|
|
|
9872
10678
|
last_accessed_at: Optional[datetime.datetime] = None
|
|
9873
10679
|
deleter_user_id: Optional[str] = None
|
|
9874
10680
|
deleter_user_name: Optional[str] = None
|
|
10681
|
+
schedule_count: Optional[int] = None
|
|
9875
10682
|
|
|
9876
10683
|
def __init__(
|
|
9877
10684
|
self,
|
|
@@ -9893,7 +10700,8 @@ class Report(model.Model):
|
|
|
9893
10700
|
deleted_at: Optional[datetime.datetime] = None,
|
|
9894
10701
|
last_accessed_at: Optional[datetime.datetime] = None,
|
|
9895
10702
|
deleter_user_id: Optional[str] = None,
|
|
9896
|
-
deleter_user_name: Optional[str] = None
|
|
10703
|
+
deleter_user_name: Optional[str] = None,
|
|
10704
|
+
schedule_count: Optional[int] = None
|
|
9897
10705
|
):
|
|
9898
10706
|
self.can = can
|
|
9899
10707
|
self.id = id
|
|
@@ -9913,6 +10721,7 @@ class Report(model.Model):
|
|
|
9913
10721
|
self.last_accessed_at = last_accessed_at
|
|
9914
10722
|
self.deleter_user_id = deleter_user_id
|
|
9915
10723
|
self.deleter_user_name = deleter_user_name
|
|
10724
|
+
self.schedule_count = schedule_count
|
|
9916
10725
|
|
|
9917
10726
|
|
|
9918
10727
|
@attr.s(auto_attribs=True, init=False)
|
|
@@ -11509,6 +12318,154 @@ class SqlQueryCreate(model.Model):
|
|
|
11509
12318
|
self.vis_config = vis_config
|
|
11510
12319
|
|
|
11511
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
|
+
|
|
11512
12469
|
@attr.s(auto_attribs=True, init=False)
|
|
11513
12470
|
class SshPublicKey(model.Model):
|
|
11514
12471
|
"""
|
|
@@ -13742,8 +14699,9 @@ class WriteDBConnection(model.Model):
|
|
|
13742
14699
|
port: Port number on server. If the connection is over an SSH tunnel, then the local port associated with the SSH tunnel.
|
|
13743
14700
|
username: Username for server authentication
|
|
13744
14701
|
password: (Write-Only) Password for server authentication
|
|
14702
|
+
uses_key_pair_auth: Whether the connection uses key-pair for authentication.
|
|
13745
14703
|
certificate: (Write-Only) Base64 encoded Certificate body for server authentication (when appropriate for dialect).
|
|
13746
|
-
file_type: (Write-Only) Certificate keyfile type - .json or .p12
|
|
14704
|
+
file_type: (Write-Only) Certificate keyfile type - .json, .p8 or .p12
|
|
13747
14705
|
database: Database name
|
|
13748
14706
|
db_timezone: Time zone of database
|
|
13749
14707
|
query_timezone: Timezone to use in queries
|
|
@@ -13790,6 +14748,7 @@ class WriteDBConnection(model.Model):
|
|
|
13790
14748
|
port: Optional[str] = None
|
|
13791
14749
|
username: Optional[str] = None
|
|
13792
14750
|
password: Optional[str] = None
|
|
14751
|
+
uses_key_pair_auth: Optional[bool] = None
|
|
13793
14752
|
certificate: Optional[str] = None
|
|
13794
14753
|
file_type: Optional[str] = None
|
|
13795
14754
|
database: Optional[str] = None
|
|
@@ -13839,6 +14798,7 @@ class WriteDBConnection(model.Model):
|
|
|
13839
14798
|
port: Optional[str] = None,
|
|
13840
14799
|
username: Optional[str] = None,
|
|
13841
14800
|
password: Optional[str] = None,
|
|
14801
|
+
uses_key_pair_auth: Optional[bool] = None,
|
|
13842
14802
|
certificate: Optional[str] = None,
|
|
13843
14803
|
file_type: Optional[str] = None,
|
|
13844
14804
|
database: Optional[str] = None,
|
|
@@ -13885,6 +14845,7 @@ class WriteDBConnection(model.Model):
|
|
|
13885
14845
|
self.port = port
|
|
13886
14846
|
self.username = username
|
|
13887
14847
|
self.password = password
|
|
14848
|
+
self.uses_key_pair_auth = uses_key_pair_auth
|
|
13888
14849
|
self.certificate = certificate
|
|
13889
14850
|
self.file_type = file_type
|
|
13890
14851
|
self.database = database
|
looker_sdk/sdk/constants.py
CHANGED
looker_sdk/version.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
looker_sdk/__init__.py,sha256=0UOw2v-BP1bNoBIIm-BnyKUpGQB3Zx-JZRmpYyLiIuY,2589
|
|
2
2
|
looker_sdk/error.py,sha256=XTKuy1zEyhSVd-VCWHKB2zVjj0X7VUzVwq9y9L22Bo0,4941
|
|
3
3
|
looker_sdk/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
|
-
looker_sdk/version.py,sha256=
|
|
4
|
+
looker_sdk/version.py,sha256=wiR7kKlbJHrLuZr4dMOtENv23VeHYh3MyyyNsNXoIGA,1155
|
|
5
5
|
looker_sdk/rtl/__init__.py,sha256=hgj6CO_Du2XcJ4bRYbhaVS3dvLxjCqPQDR8KwD9IPTQ,1132
|
|
6
6
|
looker_sdk/rtl/api_methods.py,sha256=J-dm7UMyJajsJDCB0JMpGUmp80I8oPMs7cggdIaCWng,8862
|
|
7
7
|
looker_sdk/rtl/api_settings.py,sha256=0QbmNhfgjBJNnr1CNEMxCHoiu908jT8amAtSAha1xS8,6953
|
|
@@ -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=
|
|
17
|
+
looker_sdk/sdk/constants.py,sha256=uNdxbJPrqsvMF3Y2wJ1che2iMZFZNcbRHfXltK-wlNg,1186
|
|
18
18
|
looker_sdk/sdk/api40/__init__.py,sha256=Dvx1t9vDBvgEl-p1eeP7ebEC6Q6wb6rASPi7nx3z7dg,18
|
|
19
|
-
looker_sdk/sdk/api40/methods.py,sha256=
|
|
20
|
-
looker_sdk/sdk/api40/models.py,sha256=
|
|
19
|
+
looker_sdk/sdk/api40/methods.py,sha256=nL_LcXGW7DC7gapTUvAt22zDsvfxCvBISKE-VEsoDBg,526484
|
|
20
|
+
looker_sdk/sdk/api40/models.py,sha256=l82-D1cXC-3ICJ3qRnhgvHC2peUSssJq1yVKi_TG7z8,681544
|
|
21
21
|
tests/integration/__init__.py,sha256=K4tvUu8CgFRwtDhDNixHKDDb8uubXgevQBq8JmZvf8Y,63
|
|
22
22
|
tests/integration/test_methods.py,sha256=GXeBAxKYLH45YsPDGduRxaoGKBNoxRX1Cxdo4a_2eW8,24977
|
|
23
23
|
tests/integration/test_netrc.py,sha256=XJAzCh853Q0P6ZY_Cq6CtRHAqlvjGkBItgvxJMQw4Sw,1595
|
|
@@ -29,8 +29,8 @@ tests/rtl/test_auth_token.py,sha256=Ep4u0ushHqKiIkGgw-XVn1lSzPeH6pVmDB2bw-MXNAo,
|
|
|
29
29
|
tests/rtl/test_requests_transport.py,sha256=mSsxudpAkKe-uSVOIzDrV0XCFlj_ACt6T1yzbUbuwG0,5442
|
|
30
30
|
tests/rtl/test_serialize.py,sha256=1SC8jigZFFL3mrU2oSTnc2nbDxXve224_r3GaxEeU90,25917
|
|
31
31
|
tests/rtl/test_transport.py,sha256=tI83LYOeuWEmkngXyRqMjW-pv-ipLPLj4t0hGD8zqL8,1555
|
|
32
|
-
looker_sdk-25.
|
|
33
|
-
looker_sdk-25.
|
|
34
|
-
looker_sdk-25.
|
|
35
|
-
looker_sdk-25.
|
|
36
|
-
looker_sdk-25.
|
|
32
|
+
looker_sdk-25.8.0.dist-info/LICENSE.txt,sha256=N4Rmmbuo5EryYSCXcvjuXL1ZXwyXanRzuGP-dJzwsoE,1094
|
|
33
|
+
looker_sdk-25.8.0.dist-info/METADATA,sha256=YVpfjPt8OP5QF1cMQFUAbmi1PdDJuwA-3bGqMb7C1Wc,7021
|
|
34
|
+
looker_sdk-25.8.0.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
|
|
35
|
+
looker_sdk-25.8.0.dist-info/top_level.txt,sha256=tDPNJRQM_A_Oncxlgxwvnzq7hZDWZaadt_nR8DmORTI,17
|
|
36
|
+
looker_sdk-25.8.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|