looker-sdk 23.18.0__py3-none-any.whl → 23.20.1__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.
@@ -35,7 +35,6 @@ from looker_sdk.rtl import transport
35
35
 
36
36
 
37
37
  class Looker40SDK(api_methods.APIMethods):
38
-
39
38
  # region Alert: Alert
40
39
 
41
40
  # Follow an alert.
@@ -1008,6 +1007,13 @@ class Looker40SDK(api_methods.APIMethods):
1008
1007
  # The generate tokens endpoint should be called every time the Looker client asks for a token (except for the
1009
1008
  # first time when the tokens returned by the acquire_session endpoint should be used).
1010
1009
  #
1010
+ # #### Embed session expiration handling
1011
+ #
1012
+ # This endpoint does NOT return an error when the embed session expires. This is to simplify processing
1013
+ # in the caller as errors can happen for non session expiration reasons. Instead the endpoint returns
1014
+ # the session time to live in the `session_reference_token_ttl` response property. If this property
1015
+ # contains a zero, the embed session has expired.
1016
+ #
1011
1017
  # Calls to this endpoint require [Embedding](https://cloud.google.com/looker/docs/r/looker-core-feature-embed) to be enabled
1012
1018
  #
1013
1019
  # PUT /embed/cookieless_session/generate_tokens -> mdls.EmbedCookielessSessionGenerateTokensResponse
@@ -4845,7 +4851,7 @@ class Looker40SDK(api_methods.APIMethods):
4845
4851
  # You can use this function to change the string and integer properties of
4846
4852
  # a dashboard. Nested objects such as filters, dashboard elements, or dashboard layout components
4847
4853
  # cannot be modified by this function - use the update functions for the respective
4848
- # nested object types (like [update_dashboard_filter()](#!/4.0/Dashboard/update_dashboard_filter) to change a filter)
4854
+ # nested object types (like [update_dashboard_filter()](#!/3.1/Dashboard/update_dashboard_filter) to change a filter)
4849
4855
  # to modify nested objects referenced by a dashboard.
4850
4856
  #
4851
4857
  # If you receive a 422 error response when updating a dashboard, be sure to look at the
@@ -7286,7 +7292,7 @@ class Looker40SDK(api_methods.APIMethods):
7286
7292
  # | result_format | Description
7287
7293
  # | :-----------: | :--- |
7288
7294
  # | json | Plain json
7289
- # | json_bi | (*RECOMMENDED*) Row data plus metadata describing the fields, pivots, table calcs, and other aspects of the query
7295
+ # | json_bi | (*RECOMMENDED*) Row data plus metadata describing the fields, pivots, table calcs, and other aspects of the query. See JsonBi type for schema
7290
7296
  # | json_detail | (*LEGACY*) Row data plus metadata describing the fields, pivots, table calcs, and other aspects of the query
7291
7297
  # | csv | Comma separated values with a header
7292
7298
  # | txt | Tab separated values with a header
@@ -8796,10 +8802,6 @@ class Looker40SDK(api_methods.APIMethods):
8796
8802
  rebuild_pdts: Optional[bool] = None,
8797
8803
  # Perform table calculations on query results
8798
8804
  server_table_calcs: Optional[bool] = None,
8799
- # DEPRECATED. Render width for image formats. Note that this parameter is always ignored by this method.
8800
- image_width: Optional[int] = None,
8801
- # DEPRECATED. Render height for image formats. Note that this parameter is always ignored by this method.
8802
- image_height: Optional[int] = None,
8803
8805
  # Requested fields
8804
8806
  fields: Optional[str] = None,
8805
8807
  transport_options: Optional[transport.TransportOptions] = None,
@@ -8821,8 +8823,6 @@ class Looker40SDK(api_methods.APIMethods):
8821
8823
  "path_prefix": path_prefix,
8822
8824
  "rebuild_pdts": rebuild_pdts,
8823
8825
  "server_table_calcs": server_table_calcs,
8824
- "image_width": image_width,
8825
- "image_height": image_height,
8826
8826
  "fields": fields,
8827
8827
  },
8828
8828
  body=body,
@@ -8912,20 +8912,20 @@ class Looker40SDK(api_methods.APIMethods):
8912
8912
  # will be in the message of the 400 error response, but not as detailed as expressed in `json_detail.errors`.
8913
8913
  # These data formats can only carry row data, and error info is not row data.
8914
8914
  #
8915
- # GET /query_tasks/{query_task_id}/results -> str
8915
+ # GET /query_tasks/{query_task_id}/results -> mdls.QueryTask
8916
8916
  def query_task_results(
8917
8917
  self,
8918
8918
  # ID of the Query Task
8919
8919
  query_task_id: str,
8920
8920
  transport_options: Optional[transport.TransportOptions] = None,
8921
- ) -> str:
8921
+ ) -> mdls.QueryTask:
8922
8922
  """Get Async Query Results"""
8923
8923
  query_task_id = self.encode_path_param(query_task_id)
8924
8924
  response = cast(
8925
- str,
8925
+ mdls.QueryTask,
8926
8926
  self.get(
8927
8927
  path=f"/query_tasks/{query_task_id}/results",
8928
- structure=str,
8928
+ structure=mdls.QueryTask,
8929
8929
  transport_options=transport_options,
8930
8930
  ),
8931
8931
  )
@@ -9053,7 +9053,7 @@ class Looker40SDK(api_methods.APIMethods):
9053
9053
  # | result_format | Description
9054
9054
  # | :-----------: | :--- |
9055
9055
  # | json | Plain json
9056
- # | json_bi | (*RECOMMENDED*) Row data plus metadata describing the fields, pivots, table calcs, and other aspects of the query
9056
+ # | json_bi | (*RECOMMENDED*) Row data plus metadata describing the fields, pivots, table calcs, and other aspects of the query. See JsonBi type for schema
9057
9057
  # | json_detail | (*LEGACY*) Row data plus metadata describing the fields, pivots, table calcs, and other aspects of the query
9058
9058
  # | csv | Comma separated values with a header
9059
9059
  # | txt | Tab separated values with a header
@@ -9168,7 +9168,7 @@ class Looker40SDK(api_methods.APIMethods):
9168
9168
  # | result_format | Description
9169
9169
  # | :-----------: | :--- |
9170
9170
  # | json | Plain json
9171
- # | json_bi | (*RECOMMENDED*) Row data plus metadata describing the fields, pivots, table calcs, and other aspects of the query
9171
+ # | json_bi | (*RECOMMENDED*) Row data plus metadata describing the fields, pivots, table calcs, and other aspects of the query. See JsonBi type for schema
9172
9172
  # | json_detail | (*LEGACY*) Row data plus metadata describing the fields, pivots, table calcs, and other aspects of the query
9173
9173
  # | csv | Comma separated values with a header
9174
9174
  # | txt | Tab separated values with a header
@@ -9281,7 +9281,7 @@ class Looker40SDK(api_methods.APIMethods):
9281
9281
  # | result_format | Description
9282
9282
  # | :-----------: | :--- |
9283
9283
  # | json | Plain json
9284
- # | json_bi | (*RECOMMENDED*) Row data plus metadata describing the fields, pivots, table calcs, and other aspects of the query
9284
+ # | json_bi | (*RECOMMENDED*) Row data plus metadata describing the fields, pivots, table calcs, and other aspects of the query. See JsonBi type for schema
9285
9285
  # | json_detail | (*LEGACY*) Row data plus metadata describing the fields, pivots, table calcs, and other aspects of the query
9286
9286
  # | csv | Comma separated values with a header
9287
9287
  # | txt | Tab separated values with a header
@@ -9466,7 +9466,7 @@ class Looker40SDK(api_methods.APIMethods):
9466
9466
 
9467
9467
  # Execute a SQL Runner query in a given result_format.
9468
9468
  #
9469
- # POST /sql_queries/{slug}/run/{result_format} -> Union[str, bytes]
9469
+ # POST /sql_queries/{slug}/run/{result_format} -> str
9470
9470
  def run_sql_query(
9471
9471
  self,
9472
9472
  # slug of query
@@ -9476,15 +9476,15 @@ class Looker40SDK(api_methods.APIMethods):
9476
9476
  # Defaults to false. If set to true, the HTTP response will have content-disposition and other headers set to make the HTTP response behave as a downloadable attachment instead of as inline content.
9477
9477
  download: Optional[str] = None,
9478
9478
  transport_options: Optional[transport.TransportOptions] = None,
9479
- ) -> Union[str, bytes]:
9479
+ ) -> str:
9480
9480
  """Run SQL Runner Query"""
9481
9481
  slug = self.encode_path_param(slug)
9482
9482
  result_format = self.encode_path_param(result_format)
9483
9483
  response = cast(
9484
- Union[str, bytes],
9484
+ str,
9485
9485
  self.post(
9486
9486
  path=f"/sql_queries/{slug}/run/{result_format}",
9487
- structure=Union[str, bytes], # type: ignore
9487
+ structure=str,
9488
9488
  query_params={"download": download},
9489
9489
  transport_options=transport_options,
9490
9490
  ),
@@ -11057,10 +11057,8 @@ class Looker40SDK(api_methods.APIMethods):
11057
11057
  # | md | Simple markdown
11058
11058
  # | xlsx | MS Excel spreadsheet
11059
11059
  # | sql | Returns the generated SQL rather than running the query
11060
- # | png | A PNG image of the visualization of the query
11061
- # | jpg | A JPG image of the visualization of the query
11062
11060
  #
11063
- # GET /sql_interface_queries/{query_id}/run/{result_format} -> Union[str, bytes]
11061
+ # GET /sql_interface_queries/{query_id}/run/{result_format} -> mdls.QueryFormats
11064
11062
  def run_sql_interface_query(
11065
11063
  self,
11066
11064
  # Integer id of query
@@ -11068,14 +11066,14 @@ class Looker40SDK(api_methods.APIMethods):
11068
11066
  # Format of result, options are: ["json_bi"]
11069
11067
  result_format: str,
11070
11068
  transport_options: Optional[transport.TransportOptions] = None,
11071
- ) -> Union[str, bytes]:
11069
+ ) -> mdls.QueryFormats:
11072
11070
  """Run SQL Interface Query"""
11073
11071
  result_format = self.encode_path_param(result_format)
11074
11072
  response = cast(
11075
- Union[str, bytes],
11073
+ mdls.QueryFormats,
11076
11074
  self.get(
11077
11075
  path=f"/sql_interface_queries/{query_id}/run/{result_format}",
11078
- structure=Union[str, bytes], # type: ignore
11076
+ structure=mdls.QueryFormats,
11079
11077
  transport_options=transport_options,
11080
11078
  ),
11081
11079
  )
@@ -13195,3 +13193,6 @@ class Looker40SDK(api_methods.APIMethods):
13195
13193
  return response
13196
13194
 
13197
13195
  # endregion
13196
+
13197
+
13198
+ LookerSDK = Looker40SDK
@@ -21,7 +21,7 @@
21
21
  # SOFTWARE.
22
22
  #
23
23
 
24
- # 332 API models: 249 Spec, 0 Request, 61 Write, 22 Enum
24
+ # 338 API models: 255 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
@@ -4398,7 +4398,7 @@ class EmbedCookielessSessionAcquireResponse(model.Model):
4398
4398
  api_token: Token to used to call Looker APIs.
4399
4399
  api_token_ttl: Api token time to live in seconds.
4400
4400
  session_reference_token: Token referencing the actual embed session. It is used to generate new api, navigation and authentication tokens. api and navigation tokens are short lived and must be refreshed regularly. A new authentication token must be acquired for each IFRAME that is created. The session_reference_token should be kept secure, ideally in the embed hosts application server.
4401
- session_reference_token_ttl: Session reference token time to live in seconds. Note that this is the same as actual session.
4401
+ session_reference_token_ttl: Session reference token time to live in seconds. Note that this is the same as actual embed session. The session is expired when the value is set to zero. It is important to note that the generate token endpoint does NOT return an error when the embed session has expired. If an embedding application needs to monitor expiration of embed sessions, check this property for a value of zero.
4402
4402
  """
4403
4403
 
4404
4404
  authentication_token: Optional[str] = None
@@ -5774,6 +5774,197 @@ class InvestigativeContentType(enum.Enum):
5774
5774
  InvestigativeContentType.__new__ = model.safe_enum__new__ # type: ignore
5775
5775
 
5776
5776
 
5777
+ @attr.s(auto_attribs=True, init=False)
5778
+ class JsonBi(model.Model):
5779
+ """
5780
+ Attributes:
5781
+ big_query_metadata:
5782
+ fields:
5783
+ pivots: Pivots
5784
+ has_subtotals: If the query has subtotals
5785
+ has_totals: If the query has totals
5786
+ columns_truncated: If the query results hit the maximum column limit and additional columns were truncated
5787
+ filter_expression: Filter expression applied to the query results
5788
+ filters: Filters applied to the query results
5789
+ data: Json query results
5790
+ """
5791
+
5792
+ big_query_metadata: "JsonBiBigQueryMetadata"
5793
+ fields: "JsonBiFields"
5794
+ pivots: Sequence["JsonBiPivots"]
5795
+ has_subtotals: bool
5796
+ has_totals: bool
5797
+ columns_truncated: str
5798
+ filter_expression: str
5799
+ filters: MutableMapping[str, Any]
5800
+ data: Sequence[str]
5801
+ __annotations__ = {
5802
+ "big_query_metadata": ForwardRef("JsonBiBigQueryMetadata"),
5803
+ "fields": ForwardRef("JsonBiFields"),
5804
+ "pivots": Sequence["JsonBiPivots"],
5805
+ "has_subtotals": bool,
5806
+ "has_totals": bool,
5807
+ "columns_truncated": str,
5808
+ "filter_expression": str,
5809
+ "filters": MutableMapping[str, Any],
5810
+ "data": Sequence[str],
5811
+ }
5812
+
5813
+ def __init__(
5814
+ self,
5815
+ *,
5816
+ big_query_metadata: "JsonBiBigQueryMetadata",
5817
+ fields: "JsonBiFields",
5818
+ pivots: Sequence["JsonBiPivots"],
5819
+ has_subtotals: bool,
5820
+ has_totals: bool,
5821
+ columns_truncated: str,
5822
+ filter_expression: str,
5823
+ filters: MutableMapping[str, Any],
5824
+ data: Sequence[str]
5825
+ ):
5826
+ self.big_query_metadata = big_query_metadata
5827
+ self.fields = fields
5828
+ self.pivots = pivots
5829
+ self.has_subtotals = has_subtotals
5830
+ self.has_totals = has_totals
5831
+ self.columns_truncated = columns_truncated
5832
+ self.filter_expression = filter_expression
5833
+ self.filters = filters
5834
+ self.data = data
5835
+
5836
+
5837
+ @attr.s(auto_attribs=True, init=False)
5838
+ class JsonBiBigQueryMetadata(model.Model):
5839
+ """
5840
+ Attributes:
5841
+ total_bytes_processed: Total bytes processed by the BigQuery job
5842
+ backend_cache_hit: Return whether or not query results were served from the BigQuery cache.
5843
+ """
5844
+
5845
+ total_bytes_processed: int
5846
+ backend_cache_hit: bool
5847
+
5848
+ def __init__(self, *, total_bytes_processed: int, backend_cache_hit: bool):
5849
+ self.total_bytes_processed = total_bytes_processed
5850
+ self.backend_cache_hit = backend_cache_hit
5851
+
5852
+
5853
+ @attr.s(auto_attribs=True, init=False)
5854
+ class JsonBiField(model.Model):
5855
+ """
5856
+ Attributes:
5857
+ sql: SQL expressions for the field
5858
+ view: Explore name
5859
+ dimension_group: Which dimension group created this dimension
5860
+ category: Dimension, Measure, etc.
5861
+ field_group_label: Field Group Label
5862
+ name: Field Name
5863
+ type: Field Type
5864
+ view_label: View Label
5865
+ label: Field Label
5866
+ field_group_variant: Field Group Variant
5867
+ hidden: If the field is marked as hidden in the Lookml
5868
+ description: Field Description
5869
+ """
5870
+
5871
+ sql: str
5872
+ view: str
5873
+ dimension_group: str
5874
+ category: str
5875
+ field_group_label: str
5876
+ name: str
5877
+ type: str
5878
+ view_label: str
5879
+ label: str
5880
+ field_group_variant: str
5881
+ hidden: bool
5882
+ description: str
5883
+
5884
+ def __init__(
5885
+ self,
5886
+ *,
5887
+ sql: str,
5888
+ view: str,
5889
+ dimension_group: str,
5890
+ category: str,
5891
+ field_group_label: str,
5892
+ name: str,
5893
+ type: str,
5894
+ view_label: str,
5895
+ label: str,
5896
+ field_group_variant: str,
5897
+ hidden: bool,
5898
+ description: str
5899
+ ):
5900
+ self.sql = sql
5901
+ self.view = view
5902
+ self.dimension_group = dimension_group
5903
+ self.category = category
5904
+ self.field_group_label = field_group_label
5905
+ self.name = name
5906
+ self.type = type
5907
+ self.view_label = view_label
5908
+ self.label = label
5909
+ self.field_group_variant = field_group_variant
5910
+ self.hidden = hidden
5911
+ self.description = description
5912
+
5913
+
5914
+ @attr.s(auto_attribs=True, init=False)
5915
+ class JsonBiFields(model.Model):
5916
+ """
5917
+ Attributes:
5918
+ dimensions: Dimensions represent a column in a table, or a computed value based on some sort of column manipulation or combination
5919
+ measures: Measures are similar to aggregate functions in SQL (for example, COUNT, SUM, AVG) and represent information about multiple rows
5920
+ pivots: Pivots
5921
+ """
5922
+
5923
+ dimensions: Sequence["JsonBiField"]
5924
+ measures: Sequence["JsonBiField"]
5925
+ pivots: Sequence["JsonBiField"]
5926
+
5927
+ def __init__(
5928
+ self,
5929
+ *,
5930
+ dimensions: Sequence["JsonBiField"],
5931
+ measures: Sequence["JsonBiField"],
5932
+ pivots: Sequence["JsonBiField"]
5933
+ ):
5934
+ self.dimensions = dimensions
5935
+ self.measures = measures
5936
+ self.pivots = pivots
5937
+
5938
+
5939
+ @attr.s(auto_attribs=True, init=False)
5940
+ class JsonBiPivots(model.Model):
5941
+ """
5942
+ Attributes:
5943
+ key: Pivot Column Value
5944
+ data: Pivot Data
5945
+ sort_values: Pivot Sort Values
5946
+ is_total: If the value is a total
5947
+ """
5948
+
5949
+ key: str
5950
+ data: MutableMapping[str, Any]
5951
+ sort_values: MutableMapping[str, Any]
5952
+ is_total: bool
5953
+
5954
+ def __init__(
5955
+ self,
5956
+ *,
5957
+ key: str,
5958
+ data: MutableMapping[str, Any],
5959
+ sort_values: MutableMapping[str, Any],
5960
+ is_total: bool
5961
+ ):
5962
+ self.key = key
5963
+ self.data = data
5964
+ self.sort_values = sort_values
5965
+ self.is_total = is_total
5966
+
5967
+
5777
5968
  @attr.s(auto_attribs=True, init=False)
5778
5969
  class LDAPConfig(model.Model):
5779
5970
  """
@@ -9096,6 +9287,55 @@ class Query(model.Model):
9096
9287
  self.has_table_calculations = has_table_calculations
9097
9288
 
9098
9289
 
9290
+ @attr.s(auto_attribs=True, init=False)
9291
+ class QueryFormats(model.Model):
9292
+ """
9293
+ Attributes:
9294
+ json_bi:
9295
+ json:
9296
+ json_detail:
9297
+ csv:
9298
+ txt:
9299
+ html:
9300
+ md:
9301
+ xlsx:
9302
+ sql:
9303
+ """
9304
+
9305
+ json_bi: Optional["JsonBi"] = None
9306
+ json: Optional[str] = None
9307
+ json_detail: Optional[str] = None
9308
+ csv: Optional[str] = None
9309
+ txt: Optional[str] = None
9310
+ html: Optional[str] = None
9311
+ md: Optional[str] = None
9312
+ xlsx: Optional[str] = None
9313
+ sql: Optional[str] = None
9314
+
9315
+ def __init__(
9316
+ self,
9317
+ *,
9318
+ json_bi: Optional["JsonBi"] = None,
9319
+ json: Optional[str] = None,
9320
+ json_detail: Optional[str] = None,
9321
+ csv: Optional[str] = None,
9322
+ txt: Optional[str] = None,
9323
+ html: Optional[str] = None,
9324
+ md: Optional[str] = None,
9325
+ xlsx: Optional[str] = None,
9326
+ sql: Optional[str] = None
9327
+ ):
9328
+ self.json_bi = json_bi
9329
+ self.json = json
9330
+ self.json_detail = json_detail
9331
+ self.csv = csv
9332
+ self.txt = txt
9333
+ self.html = html
9334
+ self.md = md
9335
+ self.xlsx = xlsx
9336
+ self.sql = sql
9337
+
9338
+
9099
9339
  @attr.s(auto_attribs=True, init=False)
9100
9340
  class QueryTask(model.Model):
9101
9341
  """
@@ -10490,6 +10730,8 @@ class Setting(model.Model):
10490
10730
  embed_cookieless_v2: (DEPRECATED) Use embed_config.embed_cookieless_v2 instead. If embed_config.embed_cookieless_v2 is specified, it overrides this value.
10491
10731
  embed_enabled: True if embedding is enabled https://cloud.google.com/looker/docs/r/looker-core-feature-embed, false otherwise
10492
10732
  embed_config:
10733
+ login_notification_enabled: Login notification enabled
10734
+ login_notification_text: Login notification text
10493
10735
  """
10494
10736
 
10495
10737
  extension_framework_enabled: Optional[bool] = None
@@ -10511,6 +10753,8 @@ class Setting(model.Model):
10511
10753
  embed_cookieless_v2: Optional[bool] = None
10512
10754
  embed_enabled: Optional[bool] = None
10513
10755
  embed_config: Optional["EmbedConfig"] = None
10756
+ login_notification_enabled: Optional[bool] = None
10757
+ login_notification_text: Optional[str] = None
10514
10758
 
10515
10759
  def __init__(
10516
10760
  self,
@@ -10533,7 +10777,9 @@ class Setting(model.Model):
10533
10777
  email_domain_allowlist: Optional[Sequence[str]] = None,
10534
10778
  embed_cookieless_v2: Optional[bool] = None,
10535
10779
  embed_enabled: Optional[bool] = None,
10536
- embed_config: Optional["EmbedConfig"] = None
10780
+ embed_config: Optional["EmbedConfig"] = None,
10781
+ login_notification_enabled: Optional[bool] = None,
10782
+ login_notification_text: Optional[str] = None
10537
10783
  ):
10538
10784
  self.extension_framework_enabled = extension_framework_enabled
10539
10785
  self.extension_load_url_enabled = extension_load_url_enabled
@@ -10554,6 +10800,8 @@ class Setting(model.Model):
10554
10800
  self.embed_cookieless_v2 = embed_cookieless_v2
10555
10801
  self.embed_enabled = embed_enabled
10556
10802
  self.embed_config = embed_config
10803
+ self.login_notification_enabled = login_notification_enabled
10804
+ self.login_notification_text = login_notification_text
10557
10805
 
10558
10806
 
10559
10807
  @attr.s(auto_attribs=True, init=False)
@@ -11616,7 +11864,7 @@ class UserAttribute(model.Model):
11616
11864
  Attributes:
11617
11865
  name: Name of user attribute
11618
11866
  label: Human-friendly label for user attribute
11619
- type: Type of user attribute ("string", "number", "datetime", "yesno", "zipcode")
11867
+ type: Type of user attribute ("string", "number", "datetime", "yesno", "zipcode", "advanced_filter_string", "advanced_filter_number")
11620
11868
  can: Operations the current user is able to perform on this object
11621
11869
  id: Unique Id
11622
11870
  default_value: Default value for when no value is set on the user
@@ -14669,7 +14917,7 @@ class WriteSessionConfig(model.Model):
14669
14917
  class WriteSetting(model.Model):
14670
14918
  """
14671
14919
  Dynamic writeable type for Setting removes:
14672
- marketplace_site, embed_enabled
14920
+ marketplace_site, embed_enabled, login_notification_enabled, login_notification_text
14673
14921
 
14674
14922
  Attributes:
14675
14923
  extension_framework_enabled: Toggle extension framework on or off
@@ -14923,7 +15171,7 @@ class WriteUserAttribute(model.Model):
14923
15171
  Attributes:
14924
15172
  name: Name of user attribute
14925
15173
  label: Human-friendly label for user attribute
14926
- type: Type of user attribute ("string", "number", "datetime", "yesno", "zipcode")
15174
+ type: Type of user attribute ("string", "number", "datetime", "yesno", "zipcode", "advanced_filter_string", "advanced_filter_number")
14927
15175
  default_value: Default value for when no value is set on the user
14928
15176
  value_is_hidden: If true, users will not be able to view values of this attribute
14929
15177
  user_can_view: Non-admin users can see the values of their attributes and use them in filters
@@ -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 = "23.18"
23
+ sdk_version = "23.20"
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__ = "23.18.0"
23
+ __version__ = "23.20.1"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: looker-sdk
3
- Version: 23.18.0
3
+ Version: 23.20.1
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
2
  looker_sdk/error.py,sha256=pBhLKh99WNBiz99O___ERcmC-aB89XGe5uQAHKwQ94c,1941
3
3
  looker_sdk/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
- looker_sdk/version.py,sha256=Sw5J8x1ruGT5pbCKCRnDQ7JwvReDgdNM7zmrP2lAn_c,1156
4
+ looker_sdk/version.py,sha256=HsnmUk4hk9w84qzXFPqsvSdMCPqE87rbKah_mxnXEQs,1156
5
5
  looker_sdk/rtl/__init__.py,sha256=hgj6CO_Du2XcJ4bRYbhaVS3dvLxjCqPQDR8KwD9IPTQ,1132
6
6
  looker_sdk/rtl/api_methods.py,sha256=k3PJMu8iDtn8GRhMPllnNV5W2j8v9YbLx0ZKXVYPCD8,8468
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=yGmOIlFxThp8BW_f3M6WyCSPhj1NbyGKo4-lEujEQ6g,1187
17
+ looker_sdk/sdk/constants.py,sha256=LkP-awvmDEZNdDQG-KGTV09s4EBVTCY79t7h7TKh8-4,1187
18
18
  looker_sdk/sdk/api40/__init__.py,sha256=eCPTzUdY-Tt7clU2vYCeMQwLFvmSeGq5hu3zPrbLMxU,17
19
- looker_sdk/sdk/api40/methods.py,sha256=lvhOtr1hCqO8DI8mP0MYM81l04qPe8zd9nSKotTQJdU,511330
20
- looker_sdk/sdk/api40/models.py,sha256=VFwHNoqusjG-xsNzyn-PWazyZGf84k81AQL4M_W4lCQ,612685
19
+ looker_sdk/sdk/api40/methods.py,sha256=gFHhz0nMEsoHgJBBeMD8ZVyFc5wD3ZifKLoaYr1DWGk,511320
20
+ looker_sdk/sdk/api40/models.py,sha256=waoUvMU1bSbDGGAy6McPAoAzEZixwUaEEdvY4oJHg_Q,620246
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-23.18.0.dist-info/LICENSE.txt,sha256=N4Rmmbuo5EryYSCXcvjuXL1ZXwyXanRzuGP-dJzwsoE,1094
35
- looker_sdk-23.18.0.dist-info/METADATA,sha256=1qnyigYjLKlARCqeqtp8hwVLoabjeRta1omqInYVPpo,7028
36
- looker_sdk-23.18.0.dist-info/WHEEL,sha256=Xo9-1PvkuimrydujYJAjF7pCkriuXBpUPEjma1nZyJ0,92
37
- looker_sdk-23.18.0.dist-info/top_level.txt,sha256=tDPNJRQM_A_Oncxlgxwvnzq7hZDWZaadt_nR8DmORTI,17
38
- looker_sdk-23.18.0.dist-info/RECORD,,
34
+ looker_sdk-23.20.1.dist-info/LICENSE.txt,sha256=N4Rmmbuo5EryYSCXcvjuXL1ZXwyXanRzuGP-dJzwsoE,1094
35
+ looker_sdk-23.20.1.dist-info/METADATA,sha256=DD0T3hJyOuyrr2dOWskCQQ2e7FETf-QNDNx1KCea7hs,7028
36
+ looker_sdk-23.20.1.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
37
+ looker_sdk-23.20.1.dist-info/top_level.txt,sha256=tDPNJRQM_A_Oncxlgxwvnzq7hZDWZaadt_nR8DmORTI,17
38
+ looker_sdk-23.20.1.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.41.3)
2
+ Generator: bdist_wheel (0.42.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5