looker-sdk 24.4.0__py3-none-any.whl → 24.10.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
looker_sdk/error.py CHANGED
@@ -99,7 +99,7 @@ class ErrorDocHelper:
99
99
  ERROR_CODES_URL: str = "https://static-a.cdn.looker.app/errorcodes/"
100
100
  lookup_dict: Dict[str, Dict[str, str]] = {}
101
101
  RE_PATTERN: str = (
102
- """(https://docs\.looker\.com/r/err/|https://cloud\.google\.com/looker/docs/r/err/)(.*)/(\d{3})(.*)"""
102
+ r'(https://docs\.looker\.com/r/err/|https://cloud\.google\.com/looker/docs/r/err/)(.*)/(\d{3})(.*)'
103
103
  )
104
104
  pattern = re.compile(RE_PATTERN, flags=re.IGNORECASE)
105
105
 
@@ -12874,6 +12874,7 @@ class Looker40SDK(api_methods.APIMethods):
12874
12874
  # associated credentials. Will overwrite all associated email addresses with
12875
12875
  # the value supplied in the 'email' body param.
12876
12876
  # The user's 'is_disabled' status must be true.
12877
+ # If the user has a credential email, they will receive a verification email and the user will be disabled until they verify the email
12877
12878
  #
12878
12879
  # Calls to this endpoint may be denied by [Looker (Google Cloud core)](https://cloud.google.com/looker/docs/r/looker-core/overview).
12879
12880
  #
@@ -21,7 +21,7 @@
21
21
  # SOFTWARE.
22
22
  #
23
23
 
24
- # 340 API models: 257 Spec, 0 Request, 61 Write, 22 Enum
24
+ # 341 API models: 258 Spec, 0 Request, 61 Write, 22 Enum
25
25
 
26
26
 
27
27
  # NOTE: Do not edit this file generated by Looker SDK Codegen for API 4.0
@@ -3618,6 +3618,7 @@ class DBConnection(model.Model):
3618
3618
  always_retry_failed_builds: When true, error PDTs will be retried every regenerator cycle
3619
3619
  cost_estimate_enabled: When true, query cost estimate will be displayed in explore.
3620
3620
  pdt_api_control_enabled: PDT builds on this connection can be kicked off and cancelled via API.
3621
+ connection_pooling: Enable database connection pooling.
3621
3622
  """
3622
3623
 
3623
3624
  can: Optional[MutableMapping[str, bool]] = None
@@ -3667,6 +3668,7 @@ class DBConnection(model.Model):
3667
3668
  always_retry_failed_builds: Optional[bool] = None
3668
3669
  cost_estimate_enabled: Optional[bool] = None
3669
3670
  pdt_api_control_enabled: Optional[bool] = None
3671
+ connection_pooling: Optional[bool] = None
3670
3672
 
3671
3673
  def __init__(
3672
3674
  self,
@@ -3717,7 +3719,8 @@ class DBConnection(model.Model):
3717
3719
  oauth_application_id: Optional[str] = None,
3718
3720
  always_retry_failed_builds: Optional[bool] = None,
3719
3721
  cost_estimate_enabled: Optional[bool] = None,
3720
- pdt_api_control_enabled: Optional[bool] = None
3722
+ pdt_api_control_enabled: Optional[bool] = None,
3723
+ connection_pooling: Optional[bool] = None
3721
3724
  ):
3722
3725
  self.can = can
3723
3726
  self.name = name
@@ -3766,6 +3769,7 @@ class DBConnection(model.Model):
3766
3769
  self.always_retry_failed_builds = always_retry_failed_builds
3767
3770
  self.cost_estimate_enabled = cost_estimate_enabled
3768
3771
  self.pdt_api_control_enabled = pdt_api_control_enabled
3772
+ self.connection_pooling = connection_pooling
3769
3773
 
3770
3774
 
3771
3775
  @attr.s(auto_attribs=True, init=False)
@@ -4065,6 +4069,7 @@ class DialectInfo(model.Model):
4065
4069
  installed: Is the supporting driver installed
4066
4070
  label: The human-readable label of the connection
4067
4071
  label_for_database_equivalent: What the dialect calls the equivalent of a normal SQL table
4072
+ label_for_schema_equivalent: What the dialect calls the equivalent of a schema-level namespace
4068
4073
  name: The name of the dialect
4069
4074
  supported_options:
4070
4075
  """
@@ -4075,6 +4080,7 @@ class DialectInfo(model.Model):
4075
4080
  installed: Optional[bool] = None
4076
4081
  label: Optional[str] = None
4077
4082
  label_for_database_equivalent: Optional[str] = None
4083
+ label_for_schema_equivalent: Optional[str] = None
4078
4084
  name: Optional[str] = None
4079
4085
  supported_options: Optional["DialectInfoOptions"] = None
4080
4086
 
@@ -4087,6 +4093,7 @@ class DialectInfo(model.Model):
4087
4093
  installed: Optional[bool] = None,
4088
4094
  label: Optional[str] = None,
4089
4095
  label_for_database_equivalent: Optional[str] = None,
4096
+ label_for_schema_equivalent: Optional[str] = None,
4090
4097
  name: Optional[str] = None,
4091
4098
  supported_options: Optional["DialectInfoOptions"] = None
4092
4099
  ):
@@ -4096,6 +4103,7 @@ class DialectInfo(model.Model):
4096
4103
  self.installed = installed
4097
4104
  self.label = label
4098
4105
  self.label_for_database_equivalent = label_for_database_equivalent
4106
+ self.label_for_schema_equivalent = label_for_schema_equivalent
4099
4107
  self.name = name
4100
4108
  self.supported_options = supported_options
4101
4109
 
@@ -4125,6 +4133,7 @@ class DialectInfoOptions(model.Model):
4125
4133
  tns: Has Oracle TNS support
4126
4134
  username: Username can be specified
4127
4135
  username_required: Username is required
4136
+ supports_connection_pooling: Has support for connection pooling
4128
4137
  """
4129
4138
 
4130
4139
  additional_params: Optional[bool] = None
@@ -4148,6 +4157,7 @@ class DialectInfoOptions(model.Model):
4148
4157
  tns: Optional[bool] = None
4149
4158
  username: Optional[bool] = None
4150
4159
  username_required: Optional[bool] = None
4160
+ supports_connection_pooling: Optional[bool] = None
4151
4161
 
4152
4162
  def __init__(
4153
4163
  self,
@@ -4172,7 +4182,8 @@ class DialectInfoOptions(model.Model):
4172
4182
  tmp_table: Optional[bool] = None,
4173
4183
  tns: Optional[bool] = None,
4174
4184
  username: Optional[bool] = None,
4175
- username_required: Optional[bool] = None
4185
+ username_required: Optional[bool] = None,
4186
+ supports_connection_pooling: Optional[bool] = None
4176
4187
  ):
4177
4188
  self.additional_params = additional_params
4178
4189
  self.after_connect_statements = after_connect_statements
@@ -4195,6 +4206,7 @@ class DialectInfoOptions(model.Model):
4195
4206
  self.tns = tns
4196
4207
  self.username = username
4197
4208
  self.username_required = username_required
4209
+ self.supports_connection_pooling = supports_connection_pooling
4198
4210
 
4199
4211
 
4200
4212
  @attr.s(auto_attribs=True, init=False)
@@ -4667,6 +4679,7 @@ class ExternalOauthApplication(model.Model):
4667
4679
  name: The name of this application. For Snowflake connections, this should be the name of the host database.
4668
4680
  client_id: The OAuth Client ID for this application
4669
4681
  client_secret: (Write-Only) The OAuth Client Secret for this application
4682
+ tenant_id: The OAuth Tenant ID for this application
4670
4683
  dialect_name: The database dialect for this application.
4671
4684
  created_at: Creation time for this application
4672
4685
  """
@@ -4676,6 +4689,7 @@ class ExternalOauthApplication(model.Model):
4676
4689
  name: Optional[str] = None
4677
4690
  client_id: Optional[str] = None
4678
4691
  client_secret: Optional[str] = None
4692
+ tenant_id: Optional[str] = None
4679
4693
  dialect_name: Optional[str] = None
4680
4694
  created_at: Optional[datetime.datetime] = None
4681
4695
 
@@ -4687,6 +4701,7 @@ class ExternalOauthApplication(model.Model):
4687
4701
  name: Optional[str] = None,
4688
4702
  client_id: Optional[str] = None,
4689
4703
  client_secret: Optional[str] = None,
4704
+ tenant_id: Optional[str] = None,
4690
4705
  dialect_name: Optional[str] = None,
4691
4706
  created_at: Optional[datetime.datetime] = None
4692
4707
  ):
@@ -4695,6 +4710,7 @@ class ExternalOauthApplication(model.Model):
4695
4710
  self.name = name
4696
4711
  self.client_id = client_id
4697
4712
  self.client_secret = client_secret
4713
+ self.tenant_id = tenant_id
4698
4714
  self.dialect_name = dialect_name
4699
4715
  self.created_at = created_at
4700
4716
 
@@ -5875,22 +5891,26 @@ class JsonBiFields(model.Model):
5875
5891
  dimensions: Dimensions represent a column in a table, or a computed value based on some sort of column manipulation or combination
5876
5892
  measures: Measures are similar to aggregate functions in SQL (for example, COUNT, SUM, AVG) and represent information about multiple rows
5877
5893
  pivots: Pivots
5894
+ table_calculations: Table Calculations (beta: May not be included)
5878
5895
  """
5879
5896
 
5880
5897
  dimensions: Sequence["JsonBiField"]
5881
5898
  measures: Sequence["JsonBiField"]
5882
5899
  pivots: Sequence["JsonBiField"]
5900
+ table_calculations: Optional[Sequence["JsonBiTableCalc"]] = None
5883
5901
 
5884
5902
  def __init__(
5885
5903
  self,
5886
5904
  *,
5887
5905
  dimensions: Sequence["JsonBiField"],
5888
5906
  measures: Sequence["JsonBiField"],
5889
- pivots: Sequence["JsonBiField"]
5907
+ pivots: Sequence["JsonBiField"],
5908
+ table_calculations: Optional[Sequence["JsonBiTableCalc"]] = None
5890
5909
  ):
5891
5910
  self.dimensions = dimensions
5892
5911
  self.measures = measures
5893
5912
  self.pivots = pivots
5913
+ self.table_calculations = table_calculations
5894
5914
 
5895
5915
 
5896
5916
  @attr.s(auto_attribs=True, init=False)
@@ -5982,6 +6002,43 @@ class JsonBiPivots(model.Model):
5982
6002
  self.is_total = is_total
5983
6003
 
5984
6004
 
6005
+ @attr.s(auto_attribs=True, init=False)
6006
+ class JsonBiTableCalc(model.Model):
6007
+ """
6008
+ Attributes:
6009
+ name: Table Calc Name
6010
+ label: Table Calc Label
6011
+ align: Alignment
6012
+ expression: Evaluated table calculation expression
6013
+ value_format: Value format
6014
+ measure: If table calculation is a measure
6015
+ """
6016
+
6017
+ name: str
6018
+ label: str
6019
+ align: str
6020
+ expression: str
6021
+ value_format: str
6022
+ measure: bool
6023
+
6024
+ def __init__(
6025
+ self,
6026
+ *,
6027
+ name: str,
6028
+ label: str,
6029
+ align: str,
6030
+ expression: str,
6031
+ value_format: str,
6032
+ measure: bool
6033
+ ):
6034
+ self.name = name
6035
+ self.label = label
6036
+ self.align = align
6037
+ self.expression = expression
6038
+ self.value_format = value_format
6039
+ self.measure = measure
6040
+
6041
+
5985
6042
  @attr.s(auto_attribs=True, init=False)
5986
6043
  class LDAPConfig(model.Model):
5987
6044
  """
@@ -9239,7 +9296,7 @@ class Query(model.Model):
9239
9296
  fields: Fields
9240
9297
  pivots: Pivots
9241
9298
  fill_fields: Fill Fields
9242
- filters: Filters
9299
+ filters: Filters will contain data pertaining to complex filters that do not contain "or" conditions. When "or" conditions are present, filter data will be found on the `filter_expression` property.
9243
9300
  filter_expression: Filter Expression
9244
9301
  sorts: Sorting for the query results. Use the format `["view.field", ...]` to sort on fields in ascending order. Use the format `["view.field desc", ...]` to sort on fields in descending order. Use `["__UNSORTED__"]` (2 underscores before and after) to disable sorting entirely. Empty sorts `[]` will trigger a default sort.
9245
9302
  limit: Limit
@@ -13410,6 +13467,7 @@ class WriteDBConnection(model.Model):
13410
13467
  always_retry_failed_builds: When true, error PDTs will be retried every regenerator cycle
13411
13468
  cost_estimate_enabled: When true, query cost estimate will be displayed in explore.
13412
13469
  pdt_api_control_enabled: PDT builds on this connection can be kicked off and cancelled via API.
13470
+ connection_pooling: Enable database connection pooling.
13413
13471
  """
13414
13472
 
13415
13473
  name: Optional[str] = None
@@ -13447,6 +13505,7 @@ class WriteDBConnection(model.Model):
13447
13505
  always_retry_failed_builds: Optional[bool] = None
13448
13506
  cost_estimate_enabled: Optional[bool] = None
13449
13507
  pdt_api_control_enabled: Optional[bool] = None
13508
+ connection_pooling: Optional[bool] = None
13450
13509
 
13451
13510
  def __init__(
13452
13511
  self,
@@ -13485,7 +13544,8 @@ class WriteDBConnection(model.Model):
13485
13544
  oauth_application_id: Optional[str] = None,
13486
13545
  always_retry_failed_builds: Optional[bool] = None,
13487
13546
  cost_estimate_enabled: Optional[bool] = None,
13488
- pdt_api_control_enabled: Optional[bool] = None
13547
+ pdt_api_control_enabled: Optional[bool] = None,
13548
+ connection_pooling: Optional[bool] = None
13489
13549
  ):
13490
13550
  self.name = name
13491
13551
  self.host = host
@@ -13522,6 +13582,7 @@ class WriteDBConnection(model.Model):
13522
13582
  self.always_retry_failed_builds = always_retry_failed_builds
13523
13583
  self.cost_estimate_enabled = cost_estimate_enabled
13524
13584
  self.pdt_api_control_enabled = pdt_api_control_enabled
13585
+ self.connection_pooling = connection_pooling
13525
13586
 
13526
13587
 
13527
13588
  @attr.s(auto_attribs=True, init=False)
@@ -13622,12 +13683,14 @@ class WriteExternalOauthApplication(model.Model):
13622
13683
  name: The name of this application. For Snowflake connections, this should be the name of the host database.
13623
13684
  client_id: The OAuth Client ID for this application
13624
13685
  client_secret: (Write-Only) The OAuth Client Secret for this application
13686
+ tenant_id: The OAuth Tenant ID for this application
13625
13687
  dialect_name: The database dialect for this application.
13626
13688
  """
13627
13689
 
13628
13690
  name: Optional[str] = None
13629
13691
  client_id: Optional[str] = None
13630
13692
  client_secret: Optional[str] = None
13693
+ tenant_id: Optional[str] = None
13631
13694
  dialect_name: Optional[str] = None
13632
13695
 
13633
13696
  def __init__(
@@ -13636,11 +13699,13 @@ class WriteExternalOauthApplication(model.Model):
13636
13699
  name: Optional[str] = None,
13637
13700
  client_id: Optional[str] = None,
13638
13701
  client_secret: Optional[str] = None,
13702
+ tenant_id: Optional[str] = None,
13639
13703
  dialect_name: Optional[str] = None
13640
13704
  ):
13641
13705
  self.name = name
13642
13706
  self.client_id = client_id
13643
13707
  self.client_secret = client_secret
13708
+ self.tenant_id = tenant_id
13644
13709
  self.dialect_name = dialect_name
13645
13710
 
13646
13711
 
@@ -14523,7 +14588,7 @@ class WriteQuery(model.Model):
14523
14588
  fields: Fields
14524
14589
  pivots: Pivots
14525
14590
  fill_fields: Fill Fields
14526
- filters: Filters
14591
+ filters: Filters will contain data pertaining to complex filters that do not contain "or" conditions. When "or" conditions are present, filter data will be found on the `filter_expression` property.
14527
14592
  filter_expression: Filter Expression
14528
14593
  sorts: Sorting for the query results. Use the format `["view.field", ...]` to sort on fields in ascending order. Use the format `["view.field desc", ...]` to sort on fields in descending order. Use `["__UNSORTED__"]` (2 underscores before and after) to disable sorting entirely. Empty sorts `[]` will trigger a default sort.
14529
14594
  limit: Limit
@@ -20,5 +20,5 @@
20
20
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
21
  # THE SOFTWARE.
22
22
 
23
- sdk_version = "24.4"
23
+ sdk_version = "24.10"
24
24
  environment_prefix = "LOOKERSDK"
looker_sdk/version.py CHANGED
@@ -20,4 +20,4 @@
20
20
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
21
  # THE SOFTWARE.
22
22
 
23
- __version__ = "24.4.0"
23
+ __version__ = "24.10.0"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: looker-sdk
3
- Version: 24.4.0
3
+ Version: 24.10.0
4
4
  Summary: Looker REST API
5
5
  Home-page: https://pypi.python.org/pypi/looker_sdk
6
6
  Author: Looker Data Sciences, Inc.
@@ -1,7 +1,7 @@
1
1
  looker_sdk/__init__.py,sha256=0UOw2v-BP1bNoBIIm-BnyKUpGQB3Zx-JZRmpYyLiIuY,2589
2
- looker_sdk/error.py,sha256=4HKjj1f9pZ73USBSMoV5SOFbl8p4VyBBywKUWQGmdiw,4920
2
+ looker_sdk/error.py,sha256=_FqZUxPXZtBazXQh0vT2QJCwe2NCUacZNaTtGf_o9Xg,4917
3
3
  looker_sdk/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
- looker_sdk/version.py,sha256=VK50Bg5ftY_S2Mph7SAlt0BZn44HzNunxRW3dOGJ9lo,1155
4
+ looker_sdk/version.py,sha256=cT7RIB_33Go3w_XbHoOoWMpsRMfYHti1fQaTlkNVunI,1156
5
5
  looker_sdk/rtl/__init__.py,sha256=hgj6CO_Du2XcJ4bRYbhaVS3dvLxjCqPQDR8KwD9IPTQ,1132
6
6
  looker_sdk/rtl/api_methods.py,sha256=J-dm7UMyJajsJDCB0JMpGUmp80I8oPMs7cggdIaCWng,8862
7
7
  looker_sdk/rtl/api_settings.py,sha256=0QbmNhfgjBJNnr1CNEMxCHoiu908jT8amAtSAha1xS8,6953
@@ -14,10 +14,10 @@ looker_sdk/rtl/requests_transport.py,sha256=2lckuJyjeySAuAn7v-RA_xTjjWe53uCCLSWg
14
14
  looker_sdk/rtl/serialize.py,sha256=Arm26aGLOhW-uUW4qgV1tTna83A3gNMYcF9YwRvf0gQ,4418
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=wjstQ4zDIQ4E_HAeleue9bmO0BuL0gYML-jRw2BSxdc,1186
17
+ looker_sdk/sdk/constants.py,sha256=2o4ARJeemt34EiQrUqVcigqIwqX1TBynTSG9CbQVadI,1187
18
18
  looker_sdk/sdk/api40/__init__.py,sha256=Dvx1t9vDBvgEl-p1eeP7ebEC6Q6wb6rASPi7nx3z7dg,18
19
- looker_sdk/sdk/api40/methods.py,sha256=sS2M9ASLWTTT_538NT9vATS9WQdkmUoH0Q6JsxuSWS8,511713
20
- looker_sdk/sdk/api40/models.py,sha256=RpgOyk0KTOwZPiYNxsSMa2TikwTrsN3ikx-kN5iYAGg,622211
19
+ looker_sdk/sdk/api40/methods.py,sha256=I9V1LwknHljUKDJ1gDMG-VLi_M7B-R1BXXtfHpSBS5Y,511852
20
+ looker_sdk/sdk/api40/models.py,sha256=PsZecyyYGZt_4xxx2vtxvGCCQl3cFjdx2xldTl8J5Gw,624989
21
21
  tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
22
  tests/conftest.py,sha256=ZLymw2rfMVus_CRBbbcxpK3_rEpMJRMQX9A5m2aQgQs,3895
23
23
  tests/integration/__init__.py,sha256=K4tvUu8CgFRwtDhDNixHKDDb8uubXgevQBq8JmZvf8Y,63
@@ -31,8 +31,8 @@ tests/rtl/test_auth_token.py,sha256=Ep4u0ushHqKiIkGgw-XVn1lSzPeH6pVmDB2bw-MXNAo,
31
31
  tests/rtl/test_requests_transport.py,sha256=mSsxudpAkKe-uSVOIzDrV0XCFlj_ACt6T1yzbUbuwG0,5442
32
32
  tests/rtl/test_serialize.py,sha256=1SC8jigZFFL3mrU2oSTnc2nbDxXve224_r3GaxEeU90,25917
33
33
  tests/rtl/test_transport.py,sha256=tI83LYOeuWEmkngXyRqMjW-pv-ipLPLj4t0hGD8zqL8,1555
34
- looker_sdk-24.4.0.dist-info/LICENSE.txt,sha256=N4Rmmbuo5EryYSCXcvjuXL1ZXwyXanRzuGP-dJzwsoE,1094
35
- looker_sdk-24.4.0.dist-info/METADATA,sha256=1y4XLvsFSmaZupccJqvMRiTs25mTkJ5BW2lD-43WQgQ,7027
36
- looker_sdk-24.4.0.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
37
- looker_sdk-24.4.0.dist-info/top_level.txt,sha256=tDPNJRQM_A_Oncxlgxwvnzq7hZDWZaadt_nR8DmORTI,17
38
- looker_sdk-24.4.0.dist-info/RECORD,,
34
+ looker_sdk-24.10.0.dist-info/LICENSE.txt,sha256=N4Rmmbuo5EryYSCXcvjuXL1ZXwyXanRzuGP-dJzwsoE,1094
35
+ looker_sdk-24.10.0.dist-info/METADATA,sha256=q2O6uD1Mk5OnjR-8rhh1rDihZlvS7Qjn5gEPLS3btNA,7028
36
+ looker_sdk-24.10.0.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
37
+ looker_sdk-24.10.0.dist-info/top_level.txt,sha256=tDPNJRQM_A_Oncxlgxwvnzq7hZDWZaadt_nR8DmORTI,17
38
+ looker_sdk-24.10.0.dist-info/RECORD,,