diff --git a/.github/workflows/apix-ci.yml b/.github/workflows/apix-ci.yml
index 6550c6b0d..fcc9fadeb 100644
--- a/.github/workflows/apix-ci.yml
+++ b/.github/workflows/apix-ci.yml
@@ -26,6 +26,9 @@ on:
workflow_dispatch:
+permissions:
+ checks: write
+
env:
TS_JUNIT_OUTPUT_DIR: results/apix
diff --git a/.github/workflows/codegen-ci.yml b/.github/workflows/codegen-ci.yml
index b6ef8b649..135b0a9c5 100644
--- a/.github/workflows/codegen-ci.yml
+++ b/.github/workflows/codegen-ci.yml
@@ -22,6 +22,9 @@ on:
workflow_dispatch:
+permissions:
+ checks: write
+
env:
LOOKERSDK_BASE_URL: https://localhost:20000
LOOKERSDK_VERIFY_SSL: false
diff --git a/.github/workflows/go-ci.yml b/.github/workflows/go-ci.yml
index a076f7cfd..19e6e8ef1 100644
--- a/.github/workflows/go-ci.yml
+++ b/.github/workflows/go-ci.yml
@@ -14,6 +14,9 @@ on:
workflow_dispatch:
+permissions:
+ checks: write
+
env:
LOOKERSDK_BASE_URL: https://localhost:20000
LOOKERSDK_VERIFY_SSL: false
diff --git a/.github/workflows/hackathon-ci.yml b/.github/workflows/hackathon-ci.yml
index c6877b48a..ebc92896b 100644
--- a/.github/workflows/hackathon-ci.yml
+++ b/.github/workflows/hackathon-ci.yml
@@ -20,6 +20,9 @@ on:
workflow_dispatch:
+permissions:
+ checks: write
+
env:
TS_JUNIT_OUTPUT_DIR: results/hackathon
diff --git a/.github/workflows/kotlin-ci.yml b/.github/workflows/kotlin-ci.yml
index 870e21fc0..228c2f7c3 100644
--- a/.github/workflows/kotlin-ci.yml
+++ b/.github/workflows/kotlin-ci.yml
@@ -19,6 +19,9 @@ on:
- kotlin/**
- .github/workflows/gradle.yml
+permissions:
+ checks: write
+
# TODO(#1544): Also run tests
jobs:
build:
diff --git a/.github/workflows/python-ci.yml b/.github/workflows/python-ci.yml
index 2be5de573..c0af0db18 100644
--- a/.github/workflows/python-ci.yml
+++ b/.github/workflows/python-ci.yml
@@ -23,6 +23,9 @@ env:
LOOKERSDK_VERIFY_SSL: false
TOX_JUNIT_OUTPUT_DIR: results
+permissions:
+ checks: write
+
jobs:
setup:
uses: looker-open-source/reusable-actions/.github/workflows/supported-versions.yml@main
diff --git a/.github/workflows/resources-ci.yml b/.github/workflows/resources-ci.yml
index 95fb9cf8e..b33a2810c 100644
--- a/.github/workflows/resources-ci.yml
+++ b/.github/workflows/resources-ci.yml
@@ -21,6 +21,9 @@ defaults:
shell: bash
working-directory: bin/looker-resources-index
+permissions:
+ checks: write
+
jobs:
analyzebuild:
name: Analyze and Build
diff --git a/.github/workflows/tssdk-ci.yml b/.github/workflows/tssdk-ci.yml
index 9b1e873ad..bbe84fb83 100644
--- a/.github/workflows/tssdk-ci.yml
+++ b/.github/workflows/tssdk-ci.yml
@@ -33,6 +33,9 @@ env:
LOOKERSDK_VERIFY_SSL: false
TS_JUNIT_OUTPUT_DIR: results/tssdk
+permissions:
+ checks: write
+
jobs:
unit:
name: Unit - ${{ matrix.os }} / Node ${{ matrix.node-version }}
diff --git a/csharp/rtl/Constants.cs b/csharp/rtl/Constants.cs
index 815dab86b..7d8554891 100644
--- a/csharp/rtl/Constants.cs
+++ b/csharp/rtl/Constants.cs
@@ -61,7 +61,7 @@ public struct Constants
public const string DefaultApiVersion = "4.0";
public const string AgentPrefix = "CS-SDK";
- public const string LookerVersion = "25.2";
+ public const string LookerVersion = "25.4";
public const string Bearer = "Bearer";
public const string LookerAppiId = "x-looker-appid";
diff --git a/csharp/sdk/4.0/methods.cs b/csharp/sdk/4.0/methods.cs
index a9a262e65..d427f2d90 100644
--- a/csharp/sdk/4.0/methods.cs
+++ b/csharp/sdk/4.0/methods.cs
@@ -21,7 +21,7 @@
/// SOFTWARE.
///
-/// 467 API methods
+/// 469 API methods
#nullable enable
using System;
@@ -488,6 +488,7 @@ namespace = SdkUtils.EncodeParam(namespace);
/// Maximum storage size of the artifact
/// Number of results to return. (used with offset)
/// Number of results to skip before returning any. (used with limit)
+ /// Return the full count of results in the X-Total-Count response header. (Slight performance hit.)
public async Task> search_artifacts(
string @namespace,
string? fields = null,
@@ -497,6 +498,7 @@ public async Task> search_artifacts(
long? max_size = null,
long? limit = null,
long? offset = null,
+ bool? tally = null,
ITransportSettings? options = null)
{
namespace = SdkUtils.EncodeParam(namespace);
@@ -507,7 +509,8 @@ namespace = SdkUtils.EncodeParam(namespace);
{ "min_size", min_size },
{ "max_size", max_size },
{ "limit", limit },
- { "offset", offset }},null,options);
+ { "offset", offset },
+ { "tally", tally }},null,options);
}
/// ### Get one or more artifacts
@@ -525,12 +528,14 @@ namespace = SdkUtils.EncodeParam(namespace);
/// Comma-delimited names of fields to return in responses. Omit for all fields
/// Number of results to return. (used with offset)
/// Number of results to skip before returning any. (used with limit)
+ /// Return the full count of results in the X-Total-Count response header. (Slight performance hit.)
public async Task> artifact(
string @namespace,
string key,
string? fields = null,
long? limit = null,
long? offset = null,
+ bool? tally = null,
ITransportSettings? options = null)
{
namespace = SdkUtils.EncodeParam(namespace);
@@ -538,7 +543,8 @@ namespace = SdkUtils.EncodeParam(namespace);
{ "key", key },
{ "fields", fields },
{ "limit", limit },
- { "offset", offset }},null,options);
+ { "offset", offset },
+ { "tally", tally }},null,options);
}
/// ### Delete one or more artifacts
@@ -7772,6 +7778,72 @@ public async Task> create_dashboard_element_r
#endregion RenderTask: Manage Render Tasks
+ #region Report: Report
+
+ /// ### Search Reports
+ ///
+ /// Returns an **array of Report objects** that match the specified search criteria.
+ ///
+ /// If multiple search params are given and `filter_or` is FALSE or not specified,
+ /// search params are combined in a logical AND operation.
+ /// Only rows that match *all* search param criteria will be returned.
+ ///
+ /// If `filter_or` is TRUE, multiple search params are combined in a logical OR operation.
+ /// Results will include rows that match **any** of the search criteria.
+ ///
+ /// String search params use case-insensitive matching.
+ /// String search params can contain `%` and '_' as SQL LIKE pattern match wildcard expressions.
+ /// example="dan%" will match "danger" and "Danzig" but not "David"
+ /// example="D_m%" will match "Damage" and "dump"
+ ///
+ /// Integer search params can accept a single value or a comma separated list of values. The multiple
+ /// values will be combined under a logical OR operation - results will match at least one of
+ /// the given values.
+ ///
+ /// Most search params can accept "IS NULL" and "NOT NULL" as special expressions to match
+ /// or exclude (respectively) rows where the column is null.
+ ///
+ /// Boolean search params accept only "true" and "false" as values.
+ ///
+ /// GET /reports/search -> Report[]
+ ///
+ /// Report[] returns a list of reports. (application/json)
+ ///
+ /// Select reports in a particular folder.
+ /// Select favorite reports.
+ /// Select reports viewed recently.
+ /// Match report id.
+ /// Match report title.
+ /// One or more fields to sort results by.
+ /// Number of results to return.(used with next_page_token)
+ /// Comma delimited list of field names. If provided, only the fields specified will be included in the response.
+ /// Contains a token that can be used to return up to Number of results to return.(used with next_page_token) additional results. A next_page_token will not be returned if there are no additional results to display.
+ public async Task> search_reports(
+ string? folder_id = null,
+ bool? favorite = null,
+ bool? recent = null,
+ string? id = null,
+ string? title = null,
+ string? sorts = null,
+ long? limit = null,
+ string? fields = null,
+ string? next_page_token = null,
+ ITransportSettings? options = null)
+{
+ return await AuthRequest(HttpMethod.Get, "/reports/search", new Values {
+ { "folder_id", folder_id },
+ { "favorite", favorite },
+ { "recent", recent },
+ { "id", id },
+ { "title", title },
+ { "sorts", sorts },
+ { "limit", limit },
+ { "fields", fields },
+ { "next_page_token", next_page_token }},null,options);
+ }
+
+ #endregion Report: Report
+
#region Role: Manage Roles
/// ### Search model sets
diff --git a/csharp/sdk/4.0/models.cs b/csharp/sdk/4.0/models.cs
index 1e68d8239..08f498a35 100644
--- a/csharp/sdk/4.0/models.cs
+++ b/csharp/sdk/4.0/models.cs
@@ -21,7 +21,7 @@
/// SOFTWARE.
///
-/// 343 API models: 259 Spec, 0 Request, 62 Write, 22 Enum
+/// 344 API models: 260 Spec, 0 Request, 62 Write, 22 Enum
#nullable enable
using System;
@@ -1658,8 +1658,10 @@ public class DBConnection : SdkModel
public Snippet[]? snippets { get; set; } = null;
/// True if PDTs are enabled on this connection (read-only)
public bool? pdts_enabled { get; set; } = null;
- /// JDBC driver version name
- public string? named_driver_version { get; set; } = null;
+ /// Requested JDBC driver version name
+ public string? named_driver_version_requested { get; set; } = null;
+ /// Resolved JDBC driver version (read-only)
+ public string? named_driver_version_actual { get; set; } = null;
/// Host name/address of server; or the string 'localhost' in case of a connection over an SSH tunnel.
public string? host { get; set; } = null;
/// Port number on server. If the connection is over an SSH tunnel, then the local port associated with the SSH tunnel.
@@ -1788,26 +1790,46 @@ public class DBConnectionOverride : SdkModel
public string? context { get; set; } = null;
/// Host name/address of server
public string? host { get; set; } = null;
+ /// Host name/address of server (same as host)
+ public string? pdt_host { get; set; } = null;
/// Port number on server
public string? port { get; set; } = null;
+ /// Port number on server (same as port)
+ public string? pdt_port { get; set; } = null;
/// Username for server authentication
public string? username { get; set; } = null;
+ /// Username for server authentication (same as username)
+ public string? pdt_username { get; set; } = null;
/// (Write-Only) Password for server authentication
public string? password { get; set; } = null;
+ /// (Write-Only) Password for server authentication (same as password)
+ public string? pdt_password { get; set; } = null;
/// Whether or not the password is overridden in this context (read-only)
public bool? has_password { get; set; } = null;
/// (Write-Only) Base64 encoded Certificate body for server authentication (when appropriate for dialect).
public string? certificate { get; set; } = null;
+ /// (Write-Only) Base64 encoded Certificate body for server authentication (when appropriate for dialect) (same as certificate).
+ public string? pdt_certificate { get; set; } = null;
/// (Write-Only) Certificate keyfile type - .json or .p12
public string? file_type { get; set; } = null;
+ /// (Write-Only) Certificate keyfile type - .json or .p12 (same as file_type)
+ public string? pdt_file_type { get; set; } = null;
/// Database name
public string? database { get; set; } = null;
+ /// Database name (same as database)
+ public string? pdt_database { get; set; } = null;
/// Schema name
public string? schema { get; set; } = null;
+ /// Schema name (same as schema)
+ public string? pdt_schema { get; set; } = null;
/// Additional params to add to JDBC connection string
public string? jdbc_additional_params { get; set; } = null;
+ /// Additional params to add to JDBC connection string (same as jdbc_additional_params)
+ public string? pdt_jdbc_additional_params { get; set; } = null;
/// SQL statements (semicolon separated) to issue after connecting to the database. Requires `custom_after_connect_statements` license feature
public string? after_connect_statements { get; set; } = null;
+ /// SQL statements (semicolon separated) to issue after connecting to the database. Requires `custom_after_connect_statements` license feature (same as after_connect_statements)
+ public string? pdt_after_connect_statements { get; set; } = null;
}
public class DBConnectionTestResult : SdkModel
@@ -1923,6 +1945,10 @@ public class DialectInfo : SdkModel
public string? label_for_schema_equivalent { get; set; } = null;
/// The name of the dialect (read-only)
public string? name { get; set; } = null;
+ /// The name of the driver used for this dialect (read-only)
+ public string? supported_driver_name { get; set; } = null;
+ /// Array of supported drivers for a given dialect (read-only)
+ public string[]? supported_driver_versions { get; set; } = null;
public DialectInfoOptions? supported_options { get; set; }
}
@@ -4436,6 +4462,45 @@ public class RenderTask : SdkModel
public long? width { get; set; } = null;
}
+public class Report : SdkModel
+{
+ /// Operations the current user is able to perform on this object (read-only)
+ public StringDictionary? can { get; set; } = null;
+ /// ID of the report
+ public string? id { get; set; } = null;
+ /// Title of the report
+ public string? title { get; set; } = null;
+ /// User Id of the owner of the report
+ public string? user_id { get; set; } = null;
+ /// Created at (read-only)
+ public DateTime? created_at { get; set; } = null;
+ /// Modified at (read-only)
+ public DateTime? updated_at { get; set; } = null;
+ /// Last viewed at (read-only)
+ public DateTime? last_viewed_at { get; set; } = null;
+ /// Is favorite report
+ public bool? favorite { get; set; } = null;
+ /// Favorite count (read-only)
+ public long? favorite_count { get; set; } = null;
+ /// View count (read-only)
+ public long? view_count { get; set; } = null;
+ public FolderBase? folder { get; set; }
+ /// Id of the folder where the report is stored
+ public string? folder_id { get; set; } = null;
+ /// Relative URL of the report (read-only)
+ public string? url { get; set; } = null;
+ /// Name of User that created the Studio Report. (read-only)
+ public string? user_name { get; set; } = null;
+ /// Deleted at (read-only)
+ public DateTime? deleted_at { get; set; } = null;
+ /// Last Accessed at (read-only)
+ public DateTime? last_accessed_at { get; set; } = null;
+ /// User Id of the deleter of the report (read-only)
+ public string? deleter_user_id { get; set; } = null;
+ /// Name of User that deleted the Report. (read-only)
+ public string? deleter_user_name { get; set; } = null;
+}
+
public class RepositoryCredential : SdkModel
{
/// Operations the current user is able to perform on this object (read-only)
@@ -5033,8 +5098,8 @@ public class Setting : SdkModel
public bool? dashboard_auto_refresh_restriction { get; set; } = null;
/// Minimum time interval for dashboard element automatic refresh. Examples: (30 seconds, 1 minute)
public string? dashboard_auto_refresh_minimum_interval { get; set; } = null;
- /// URI pointing to the location of a private root certificate in Secret Manager
- public string? managed_certificate_uri { get; set; } = null;
+ /// Array of URIs pointing to the location of a root certificate in Secret Manager
+ public string[]? managed_certificate_uri { get; set; } = null;
}
public class SmtpNodeStatus : SdkModel
@@ -5536,6 +5601,8 @@ public class User : SdkModel
public bool? allow_roles_from_normal_groups { get; set; } = null;
/// (Embed only) ID of user's group folder based on the external_group_id optionally specified during embed user login (read-only)
public string? embed_group_folder_id { get; set; } = null;
+ /// User is an IAM Admin - only available in Looker (Google Cloud core) (read-only)
+ public bool? is_iam_admin { get; set; } = null;
/// Link to get this item (read-only)
public string? url { get; set; } = null;
}
@@ -6229,13 +6296,13 @@ public class WriteDatagroup : SdkModel
}
/// Dynamic writeable type for DBConnection removes:
-/// can, dialect, snippets, pdts_enabled, uses_oauth, uses_instance_oauth, supports_data_studio_link, created_at, user_id, example, last_regen_at, last_reap_at, managed, default_bq_connection, p4sa_name
+/// can, dialect, snippets, pdts_enabled, named_driver_version_actual, uses_oauth, uses_instance_oauth, supports_data_studio_link, created_at, user_id, example, last_regen_at, last_reap_at, managed, default_bq_connection, p4sa_name
public class WriteDBConnection : SdkModel
{
/// Name of the connection. Also used as the unique identifier
public string? name { get; set; } = null;
- /// JDBC driver version name
- public string? named_driver_version { get; set; } = null;
+ /// Requested JDBC driver version name
+ public string? named_driver_version_requested { get; set; } = null;
/// Host name/address of server; or the string 'localhost' in case of a connection over an SSH tunnel.
public string? host { get; set; } = null;
/// Port number on server. If the connection is over an SSH tunnel, then the local port associated with the SSH tunnel.
@@ -6335,24 +6402,44 @@ public class WriteDBConnectionOverride : SdkModel
public string? context { get; set; } = null;
/// Host name/address of server
public string? host { get; set; } = null;
+ /// Host name/address of server (same as host)
+ public string? pdt_host { get; set; } = null;
/// Port number on server
public string? port { get; set; } = null;
+ /// Port number on server (same as port)
+ public string? pdt_port { get; set; } = null;
/// Username for server authentication
public string? username { get; set; } = null;
+ /// Username for server authentication (same as username)
+ public string? pdt_username { get; set; } = null;
/// (Write-Only) Password for server authentication
public string? password { get; set; } = null;
+ /// (Write-Only) Password for server authentication (same as password)
+ public string? pdt_password { get; set; } = null;
/// (Write-Only) Base64 encoded Certificate body for server authentication (when appropriate for dialect).
public string? certificate { get; set; } = null;
+ /// (Write-Only) Base64 encoded Certificate body for server authentication (when appropriate for dialect) (same as certificate).
+ public string? pdt_certificate { get; set; } = null;
/// (Write-Only) Certificate keyfile type - .json or .p12
public string? file_type { get; set; } = null;
+ /// (Write-Only) Certificate keyfile type - .json or .p12 (same as file_type)
+ public string? pdt_file_type { get; set; } = null;
/// Database name
public string? database { get; set; } = null;
+ /// Database name (same as database)
+ public string? pdt_database { get; set; } = null;
/// Schema name
public string? schema { get; set; } = null;
+ /// Schema name (same as schema)
+ public string? pdt_schema { get; set; } = null;
/// Additional params to add to JDBC connection string
public string? jdbc_additional_params { get; set; } = null;
+ /// Additional params to add to JDBC connection string (same as jdbc_additional_params)
+ public string? pdt_jdbc_additional_params { get; set; } = null;
/// SQL statements (semicolon separated) to issue after connecting to the database. Requires `custom_after_connect_statements` license feature
public string? after_connect_statements { get; set; } = null;
+ /// SQL statements (semicolon separated) to issue after connecting to the database. Requires `custom_after_connect_statements` license feature (same as after_connect_statements)
+ public string? pdt_after_connect_statements { get; set; } = null;
}
/// Dynamic writeable type for EmbedConfig removes:
@@ -7097,8 +7184,8 @@ public class WriteSetting : SdkModel
public bool? dashboard_auto_refresh_restriction { get; set; } = null;
/// Minimum time interval for dashboard element automatic refresh. Examples: (30 seconds, 1 minute)
public string? dashboard_auto_refresh_minimum_interval { get; set; } = null;
- /// URI pointing to the location of a private root certificate in Secret Manager
- public string? managed_certificate_uri { get; set; } = null;
+ /// Array of URIs pointing to the location of a root certificate in Secret Manager
+ public string[]? managed_certificate_uri { get; set; } = null;
}
/// Dynamic writeable type for SqlInterfaceQueryCreate removes:
@@ -7153,7 +7240,7 @@ public class WriteTheme : SdkModel
}
/// Dynamic writeable type for User removes:
-/// can, avatar_url, avatar_url_without_sizing, credentials_api3, credentials_embed, credentials_google, credentials_ldap, credentials_looker_openid, credentials_oidc, credentials_saml, credentials_totp, display_name, email, embed_group_space_id, group_ids, id, looker_versions, personal_folder_id, presumed_looker_employee, role_ids, sessions, verified_looker_employee, roles_externally_managed, allow_direct_roles, allow_normal_group_membership, allow_roles_from_normal_groups, embed_group_folder_id, url
+/// can, avatar_url, avatar_url_without_sizing, credentials_api3, credentials_embed, credentials_google, credentials_ldap, credentials_looker_openid, credentials_oidc, credentials_saml, credentials_totp, display_name, email, embed_group_space_id, group_ids, id, looker_versions, personal_folder_id, presumed_looker_employee, role_ids, sessions, verified_looker_employee, roles_externally_managed, allow_direct_roles, allow_normal_group_membership, allow_roles_from_normal_groups, embed_group_folder_id, is_iam_admin, url
public class WriteUser : SdkModel
{
///
diff --git a/go/sdk/v4/methods.go b/go/sdk/v4/methods.go
index 40f709853..c61307a64 100644
--- a/go/sdk/v4/methods.go
+++ b/go/sdk/v4/methods.go
@@ -26,7 +26,7 @@ SOFTWARE.
/*
-467 API methods
+469 API methods
*/
// NOTE: Do not edit this file generated by Looker SDK Codegen for API v4
@@ -407,7 +407,7 @@ func (l *LookerSDK) SearchArtifacts(request RequestSearchArtifacts,
options *rtl.ApiSettings) ([]Artifact, error) {
request.Namespace = url.PathEscape(request.Namespace)
var result []Artifact
- err := l.session.Do(&result, "GET", "/4.0", fmt.Sprintf("/artifact/%v/search", request.Namespace), map[string]interface{}{"fields": request.Fields, "key": request.Key, "user_ids": request.UserIds, "min_size": request.MinSize, "max_size": request.MaxSize, "limit": request.Limit, "offset": request.Offset}, nil, options)
+ err := l.session.Do(&result, "GET", "/4.0", fmt.Sprintf("/artifact/%v/search", request.Namespace), map[string]interface{}{"fields": request.Fields, "key": request.Key, "user_ids": request.UserIds, "min_size": request.MinSize, "max_size": request.MaxSize, "limit": request.Limit, "offset": request.Offset, "tally": request.Tally}, nil, options)
return result, err
}
@@ -423,7 +423,7 @@ func (l *LookerSDK) Artifact(request RequestArtifact,
options *rtl.ApiSettings) ([]Artifact, error) {
request.Namespace = url.PathEscape(request.Namespace)
var result []Artifact
- err := l.session.Do(&result, "GET", "/4.0", fmt.Sprintf("/artifact/%v", request.Namespace), map[string]interface{}{"key": request.Key, "fields": request.Fields, "limit": request.Limit, "offset": request.Offset}, nil, options)
+ err := l.session.Do(&result, "GET", "/4.0", fmt.Sprintf("/artifact/%v", request.Namespace), map[string]interface{}{"key": request.Key, "fields": request.Fields, "limit": request.Limit, "offset": request.Offset, "tally": request.Tally}, nil, options)
return result, err
}
@@ -5924,6 +5924,44 @@ func (l *LookerSDK) CreateDashboardElementRenderTask(
// endregion RenderTask: Manage Render Tasks
+// region Report: Report
+
+// ### Search Reports
+//
+// Returns an **array of Report objects** that match the specified search criteria.
+//
+// If multiple search params are given and `filter_or` is FALSE or not specified,
+// search params are combined in a logical AND operation.
+// Only rows that match *all* search param criteria will be returned.
+//
+// If `filter_or` is TRUE, multiple search params are combined in a logical OR operation.
+// Results will include rows that match **any** of the search criteria.
+//
+// String search params use case-insensitive matching.
+// String search params can contain `%` and '_' as SQL LIKE pattern match wildcard expressions.
+// example="dan%" will match "danger" and "Danzig" but not "David"
+// example="D_m%" will match "Damage" and "dump"
+//
+// Integer search params can accept a single value or a comma separated list of values. The multiple
+// values will be combined under a logical OR operation - results will match at least one of
+// the given values.
+//
+// Most search params can accept "IS NULL" and "NOT NULL" as special expressions to match
+// or exclude (respectively) rows where the column is null.
+//
+// Boolean search params accept only "true" and "false" as values.
+//
+// GET /reports/search -> []Report
+func (l *LookerSDK) SearchReports(request RequestSearchReports,
+ options *rtl.ApiSettings) ([]Report, error) {
+ var result []Report
+ err := l.session.Do(&result, "GET", "/4.0", "/reports/search", map[string]interface{}{"folder_id": request.FolderId, "favorite": request.Favorite, "recent": request.Recent, "id": request.Id, "title": request.Title, "sorts": request.Sorts, "limit": request.Limit, "fields": request.Fields, "next_page_token": request.NextPageToken}, nil, options)
+ return result, err
+
+}
+
+// endregion Report: Report
+
// region Role: Manage Roles
// ### Search model sets
diff --git a/go/sdk/v4/models.go b/go/sdk/v4/models.go
index 015f87e2c..d1a505588 100644
--- a/go/sdk/v4/models.go
+++ b/go/sdk/v4/models.go
@@ -26,7 +26,7 @@ SOFTWARE.
/*
-412 API models: 259 Spec, 70 Request, 61 Write, 22 Enum
+414 API models: 260 Spec, 71 Request, 61 Write, 22 Enum
*/
// NOTE: Do not edit this file generated by Looker SDK Codegen for API v4
@@ -942,44 +942,45 @@ type DBConnection struct {
Can *map[string]bool `json:"can,omitempty"` // Operations the current user is able to perform on this object
Name *string `json:"name,omitempty"` // Name of the connection. Also used as the unique identifier
Dialect *Dialect `json:"dialect,omitempty"`
- Snippets *[]Snippet `json:"snippets,omitempty"` // SQL Runner snippets for this connection
- PdtsEnabled *bool `json:"pdts_enabled,omitempty"` // True if PDTs are enabled on this connection
- NamedDriverVersion *string `json:"named_driver_version,omitempty"` // JDBC driver version name
- Host *string `json:"host,omitempty"` // Host name/address of server; or the string 'localhost' in case of a connection over an SSH tunnel.
- Port *string `json:"port,omitempty"` // Port number on server. If the connection is over an SSH tunnel, then the local port associated with the SSH tunnel.
- Username *string `json:"username,omitempty"` // Username for server authentication
- Password *string `json:"password,omitempty"` // (Write-Only) Password for server authentication
- UsesOauth *bool `json:"uses_oauth,omitempty"` // Whether the connection uses OAuth for authentication.
- UsesInstanceOauth *bool `json:"uses_instance_oauth,omitempty"` // Whether the integration uses the oauth instance account.
- Certificate *string `json:"certificate,omitempty"` // (Write-Only) Base64 encoded Certificate body for server authentication (when appropriate for dialect).
- FileType *string `json:"file_type,omitempty"` // (Write-Only) Certificate keyfile type - .json or .p12
- Database *string `json:"database,omitempty"` // Database name
- DbTimezone *string `json:"db_timezone,omitempty"` // Time zone of database
- QueryTimezone *string `json:"query_timezone,omitempty"` // Timezone to use in queries
- Schema *string `json:"schema,omitempty"` // Schema name
- MaxConnections *int64 `json:"max_connections,omitempty"` // Maximum number of concurrent connection to use
- MaxQueries *int64 `json:"max_queries,omitempty"` // Maximum number of concurrent queries to begin on this connection
- MaxQueriesPerUser *int64 `json:"max_queries_per_user,omitempty"` // Maximum number of concurrent queries per user to begin on this connection
- MaxBillingGigabytes *string `json:"max_billing_gigabytes,omitempty"` // Maximum size of query in GBs (BigQuery only, can be a user_attribute name)
- Ssl *bool `json:"ssl,omitempty"` // Use SSL/TLS when connecting to server
- VerifySsl *bool `json:"verify_ssl,omitempty"` // Verify the SSL
- TmpDbName *string `json:"tmp_db_name,omitempty"` // Name of temporary database (if used)
- TmpDbHost *string `json:"tmp_db_host,omitempty"` // Name of temporary host (if used)
- JdbcAdditionalParams *string `json:"jdbc_additional_params,omitempty"` // Additional params to add to JDBC connection string
- PoolTimeout *int64 `json:"pool_timeout,omitempty"` // Connection Pool Timeout, in seconds
- DialectName *string `json:"dialect_name,omitempty"` // (Read/Write) SQL Dialect name
- SupportsDataStudioLink *bool `json:"supports_data_studio_link,omitempty"` // Database connection has the ability to support open data studio from explore
- CreatedAt *string `json:"created_at,omitempty"` // Creation date for this connection
- UserId *string `json:"user_id,omitempty"` // Id of user who last modified this connection configuration
- Example *bool `json:"example,omitempty"` // Is this an example connection?
- UserDbCredentials *bool `json:"user_db_credentials,omitempty"` // (Limited access feature) Are per user db credentials enabled. Enabling will remove previously set username and password
- UserAttributeFields *[]string `json:"user_attribute_fields,omitempty"` // Fields whose values map to user attribute names
- MaintenanceCron *string `json:"maintenance_cron,omitempty"` // Cron string specifying when maintenance such as PDT trigger checks and drops should be performed
- LastRegenAt *string `json:"last_regen_at,omitempty"` // Unix timestamp at start of last completed PDT trigger check process
- LastReapAt *string `json:"last_reap_at,omitempty"` // Unix timestamp at start of last completed PDT reap process
- SqlRunnerPrecacheTables *bool `json:"sql_runner_precache_tables,omitempty"` // Precache tables in the SQL Runner
- SqlWritingWithInfoSchema *bool `json:"sql_writing_with_info_schema,omitempty"` // Fetch Information Schema For SQL Writing
- AfterConnectStatements *string `json:"after_connect_statements,omitempty"` // SQL statements (semicolon separated) to issue after connecting to the database. Requires `custom_after_connect_statements` license feature
+ Snippets *[]Snippet `json:"snippets,omitempty"` // SQL Runner snippets for this connection
+ PdtsEnabled *bool `json:"pdts_enabled,omitempty"` // True if PDTs are enabled on this connection
+ NamedDriverVersionRequested *string `json:"named_driver_version_requested,omitempty"` // Requested JDBC driver version name
+ NamedDriverVersionActual *string `json:"named_driver_version_actual,omitempty"` // Resolved JDBC driver version
+ Host *string `json:"host,omitempty"` // Host name/address of server; or the string 'localhost' in case of a connection over an SSH tunnel.
+ Port *string `json:"port,omitempty"` // Port number on server. If the connection is over an SSH tunnel, then the local port associated with the SSH tunnel.
+ Username *string `json:"username,omitempty"` // Username for server authentication
+ Password *string `json:"password,omitempty"` // (Write-Only) Password for server authentication
+ UsesOauth *bool `json:"uses_oauth,omitempty"` // Whether the connection uses OAuth for authentication.
+ UsesInstanceOauth *bool `json:"uses_instance_oauth,omitempty"` // Whether the integration uses the oauth instance account.
+ Certificate *string `json:"certificate,omitempty"` // (Write-Only) Base64 encoded Certificate body for server authentication (when appropriate for dialect).
+ FileType *string `json:"file_type,omitempty"` // (Write-Only) Certificate keyfile type - .json or .p12
+ Database *string `json:"database,omitempty"` // Database name
+ DbTimezone *string `json:"db_timezone,omitempty"` // Time zone of database
+ QueryTimezone *string `json:"query_timezone,omitempty"` // Timezone to use in queries
+ Schema *string `json:"schema,omitempty"` // Schema name
+ MaxConnections *int64 `json:"max_connections,omitempty"` // Maximum number of concurrent connection to use
+ MaxQueries *int64 `json:"max_queries,omitempty"` // Maximum number of concurrent queries to begin on this connection
+ MaxQueriesPerUser *int64 `json:"max_queries_per_user,omitempty"` // Maximum number of concurrent queries per user to begin on this connection
+ MaxBillingGigabytes *string `json:"max_billing_gigabytes,omitempty"` // Maximum size of query in GBs (BigQuery only, can be a user_attribute name)
+ Ssl *bool `json:"ssl,omitempty"` // Use SSL/TLS when connecting to server
+ VerifySsl *bool `json:"verify_ssl,omitempty"` // Verify the SSL
+ TmpDbName *string `json:"tmp_db_name,omitempty"` // Name of temporary database (if used)
+ TmpDbHost *string `json:"tmp_db_host,omitempty"` // Name of temporary host (if used)
+ JdbcAdditionalParams *string `json:"jdbc_additional_params,omitempty"` // Additional params to add to JDBC connection string
+ PoolTimeout *int64 `json:"pool_timeout,omitempty"` // Connection Pool Timeout, in seconds
+ DialectName *string `json:"dialect_name,omitempty"` // (Read/Write) SQL Dialect name
+ SupportsDataStudioLink *bool `json:"supports_data_studio_link,omitempty"` // Database connection has the ability to support open data studio from explore
+ CreatedAt *string `json:"created_at,omitempty"` // Creation date for this connection
+ UserId *string `json:"user_id,omitempty"` // Id of user who last modified this connection configuration
+ Example *bool `json:"example,omitempty"` // Is this an example connection?
+ UserDbCredentials *bool `json:"user_db_credentials,omitempty"` // (Limited access feature) Are per user db credentials enabled. Enabling will remove previously set username and password
+ UserAttributeFields *[]string `json:"user_attribute_fields,omitempty"` // Fields whose values map to user attribute names
+ MaintenanceCron *string `json:"maintenance_cron,omitempty"` // Cron string specifying when maintenance such as PDT trigger checks and drops should be performed
+ LastRegenAt *string `json:"last_regen_at,omitempty"` // Unix timestamp at start of last completed PDT trigger check process
+ LastReapAt *string `json:"last_reap_at,omitempty"` // Unix timestamp at start of last completed PDT reap process
+ SqlRunnerPrecacheTables *bool `json:"sql_runner_precache_tables,omitempty"` // Precache tables in the SQL Runner
+ SqlWritingWithInfoSchema *bool `json:"sql_writing_with_info_schema,omitempty"` // Fetch Information Schema For SQL Writing
+ AfterConnectStatements *string `json:"after_connect_statements,omitempty"` // SQL statements (semicolon separated) to issue after connecting to the database. Requires `custom_after_connect_statements` license feature
PdtContextOverride *DBConnectionOverride `json:"pdt_context_override,omitempty"`
Managed *bool `json:"managed,omitempty"` // Is this connection created and managed by Looker
CustomLocalPort *int64 `json:"custom_local_port,omitempty"` // This field is only applicable to connections over an SSH Tunnel. The value of this field would be the local port associated with the SSH tunnel if configured manually. Otherwise either enter NULL or exclude this field.
@@ -1010,18 +1011,28 @@ type DBConnectionBase struct {
}
type DBConnectionOverride struct {
- Context *string `json:"context,omitempty"` // Context in which to override (`pdt` is the only allowed value)
- Host *string `json:"host,omitempty"` // Host name/address of server
- Port *string `json:"port,omitempty"` // Port number on server
- Username *string `json:"username,omitempty"` // Username for server authentication
- Password *string `json:"password,omitempty"` // (Write-Only) Password for server authentication
- HasPassword *bool `json:"has_password,omitempty"` // Whether or not the password is overridden in this context
- Certificate *string `json:"certificate,omitempty"` // (Write-Only) Base64 encoded Certificate body for server authentication (when appropriate for dialect).
- FileType *string `json:"file_type,omitempty"` // (Write-Only) Certificate keyfile type - .json or .p12
- Database *string `json:"database,omitempty"` // Database name
- Schema *string `json:"schema,omitempty"` // Schema name
- JdbcAdditionalParams *string `json:"jdbc_additional_params,omitempty"` // Additional params to add to JDBC connection string
- AfterConnectStatements *string `json:"after_connect_statements,omitempty"` // SQL statements (semicolon separated) to issue after connecting to the database. Requires `custom_after_connect_statements` license feature
+ Context *string `json:"context,omitempty"` // Context in which to override (`pdt` is the only allowed value)
+ Host *string `json:"host,omitempty"` // Host name/address of server
+ PdtHost *string `json:"pdt_host,omitempty"` // Host name/address of server (same as host)
+ Port *string `json:"port,omitempty"` // Port number on server
+ PdtPort *string `json:"pdt_port,omitempty"` // Port number on server (same as port)
+ Username *string `json:"username,omitempty"` // Username for server authentication
+ PdtUsername *string `json:"pdt_username,omitempty"` // Username for server authentication (same as username)
+ Password *string `json:"password,omitempty"` // (Write-Only) Password for server authentication
+ PdtPassword *string `json:"pdt_password,omitempty"` // (Write-Only) Password for server authentication (same as password)
+ HasPassword *bool `json:"has_password,omitempty"` // Whether or not the password is overridden in this context
+ Certificate *string `json:"certificate,omitempty"` // (Write-Only) Base64 encoded Certificate body for server authentication (when appropriate for dialect).
+ PdtCertificate *string `json:"pdt_certificate,omitempty"` // (Write-Only) Base64 encoded Certificate body for server authentication (when appropriate for dialect) (same as certificate).
+ FileType *string `json:"file_type,omitempty"` // (Write-Only) Certificate keyfile type - .json or .p12
+ PdtFileType *string `json:"pdt_file_type,omitempty"` // (Write-Only) Certificate keyfile type - .json or .p12 (same as file_type)
+ Database *string `json:"database,omitempty"` // Database name
+ PdtDatabase *string `json:"pdt_database,omitempty"` // Database name (same as database)
+ Schema *string `json:"schema,omitempty"` // Schema name
+ PdtSchema *string `json:"pdt_schema,omitempty"` // Schema name (same as schema)
+ JdbcAdditionalParams *string `json:"jdbc_additional_params,omitempty"` // Additional params to add to JDBC connection string
+ PdtJdbcAdditionalParams *string `json:"pdt_jdbc_additional_params,omitempty"` // Additional params to add to JDBC connection string (same as jdbc_additional_params)
+ AfterConnectStatements *string `json:"after_connect_statements,omitempty"` // SQL statements (semicolon separated) to issue after connecting to the database. Requires `custom_after_connect_statements` license feature
+ PdtAfterConnectStatements *string `json:"pdt_after_connect_statements,omitempty"` // SQL statements (semicolon separated) to issue after connecting to the database. Requires `custom_after_connect_statements` license feature (same as after_connect_statements)
}
type DBConnectionTestResult struct {
@@ -1086,6 +1097,8 @@ type DialectInfo struct {
LabelForDatabaseEquivalent *string `json:"label_for_database_equivalent,omitempty"` // What the dialect calls the equivalent of a normal SQL table
LabelForSchemaEquivalent *string `json:"label_for_schema_equivalent,omitempty"` // What the dialect calls the equivalent of a schema-level namespace
Name *string `json:"name,omitempty"` // The name of the dialect
+ SupportedDriverName *string `json:"supported_driver_name,omitempty"` // The name of the driver used for this dialect
+ SupportedDriverVersions *[]string `json:"supported_driver_versions,omitempty"` // Array of supported drivers for a given dialect
SupportedOptions *DialectInfoOptions `json:"supported_options,omitempty"`
}
@@ -2469,6 +2482,27 @@ type RenderTask struct {
Width *int64 `json:"width,omitempty"` // Output width in pixels
}
+type Report struct {
+ Can *map[string]bool `json:"can,omitempty"` // Operations the current user is able to perform on this object
+ Id *string `json:"id,omitempty"` // ID of the report
+ Title *string `json:"title,omitempty"` // Title of the report
+ UserId *string `json:"user_id,omitempty"` // User Id of the owner of the report
+ CreatedAt *time.Time `json:"created_at,omitempty"` // Created at
+ UpdatedAt *time.Time `json:"updated_at,omitempty"` // Modified at
+ LastViewedAt *time.Time `json:"last_viewed_at,omitempty"` // Last viewed at
+ Favorite *bool `json:"favorite,omitempty"` // Is favorite report
+ FavoriteCount *int64 `json:"favorite_count,omitempty"` // Favorite count
+ ViewCount *int64 `json:"view_count,omitempty"` // View count
+ Folder *FolderBase `json:"folder,omitempty"`
+ FolderId *string `json:"folder_id,omitempty"` // Id of the folder where the report is stored
+ Url *string `json:"url,omitempty"` // Relative URL of the report
+ UserName *string `json:"user_name,omitempty"` // Name of User that created the Studio Report.
+ DeletedAt *time.Time `json:"deleted_at,omitempty"` // Deleted at
+ LastAccessedAt *time.Time `json:"last_accessed_at,omitempty"` // Last Accessed at
+ DeleterUserId *string `json:"deleter_user_id,omitempty"` // User Id of the deleter of the report
+ DeleterUserName *string `json:"deleter_user_name,omitempty"` // Name of User that deleted the Report.
+}
+
type RepositoryCredential struct {
Can *map[string]bool `json:"can,omitempty"` // Operations the current user is able to perform on this object
Id *string `json:"id,omitempty"` // Unique Id
@@ -2589,6 +2623,7 @@ type RequestArtifact struct {
Fields *string `json:"fields,omitempty"` // Comma-delimited names of fields to return in responses. Omit for all fields
Limit *int64 `json:"limit,omitempty"` // Number of results to return. (used with offset)
Offset *int64 `json:"offset,omitempty"` // Number of results to skip before returning any. (used with limit)
+ Tally *bool `json:"tally,omitempty"` // Return the full count of results in the X-Total-Count response header. (Slight performance hit.)
}
// Dynamically generated request type for artifact_namespaces
@@ -2899,6 +2934,7 @@ type RequestSearchArtifacts struct {
MaxSize *int64 `json:"max_size,omitempty"` // Maximum storage size of the artifact
Limit *int64 `json:"limit,omitempty"` // Number of results to return. (used with offset)
Offset *int64 `json:"offset,omitempty"` // Number of results to skip before returning any. (used with limit)
+ Tally *bool `json:"tally,omitempty"` // Return the full count of results in the X-Total-Count response header. (Slight performance hit.)
}
// Dynamically generated request type for search_boards
@@ -3116,6 +3152,19 @@ type RequestSearchPermissionSets struct {
FilterOr *bool `json:"filter_or,omitempty"` // Combine given search criteria in a boolean OR expression.
}
+// Dynamically generated request type for search_reports
+type RequestSearchReports struct {
+ FolderId *string `json:"folder_id,omitempty"` // Select reports in a particular folder.
+ Favorite *bool `json:"favorite,omitempty"` // Select favorite reports.
+ Recent *bool `json:"recent,omitempty"` // Select reports viewed recently.
+ Id *string `json:"id,omitempty"` // Match report id.
+ Title *string `json:"title,omitempty"` // Match report title.
+ Sorts *string `json:"sorts,omitempty"` // One or more fields to sort results by.
+ Limit *int64 `json:"limit,omitempty"` // Number of results to return.(used with next_page_token)
+ Fields *string `json:"fields,omitempty"` // Comma delimited list of field names. If provided, only the fields specified will be included in the response.
+ NextPageToken *string `json:"next_page_token,omitempty"` // Contains a token that can be used to return up to Number of results to return.(used with next_page_token) additional results. A next_page_token will not be returned if there are no additional results to display.
+}
+
// Dynamically generated request type for search_roles
type RequestSearchRoles struct {
Fields *string `json:"fields,omitempty"` // Requested fields.
@@ -3579,7 +3628,7 @@ type Setting struct {
LoginNotificationText *string `json:"login_notification_text,omitempty"` // Login notification text
DashboardAutoRefreshRestriction *bool `json:"dashboard_auto_refresh_restriction,omitempty"` // Toggle Dashboard Auto Refresh restriction
DashboardAutoRefreshMinimumInterval *string `json:"dashboard_auto_refresh_minimum_interval,omitempty"` // Minimum time interval for dashboard element automatic refresh. Examples: (30 seconds, 1 minute)
- ManagedCertificateUri *string `json:"managed_certificate_uri,omitempty"` // URI pointing to the location of a private root certificate in Secret Manager
+ ManagedCertificateUri *[]string `json:"managed_certificate_uri,omitempty"` // Array of URIs pointing to the location of a root certificate in Secret Manager
}
type SmtpNodeStatus struct {
@@ -3860,6 +3909,7 @@ type User struct {
AllowNormalGroupMembership *bool `json:"allow_normal_group_membership,omitempty"` // User can be a direct member of a normal Looker group.
AllowRolesFromNormalGroups *bool `json:"allow_roles_from_normal_groups,omitempty"` // User can inherit roles from a normal Looker group.
EmbedGroupFolderId *string `json:"embed_group_folder_id,omitempty"` // (Embed only) ID of user's group folder based on the external_group_id optionally specified during embed user login
+ IsIamAdmin *bool `json:"is_iam_admin,omitempty"` // User is an IAM Admin - only available in Looker (Google Cloud core)
Url *string `json:"url,omitempty"` // Link to get this item
}
@@ -4257,38 +4307,38 @@ type WriteDatagroup struct {
}
// Dynamic writeable type for DBConnection removes:
-// can, dialect, snippets, pdts_enabled, uses_oauth, uses_instance_oauth, supports_data_studio_link, created_at, user_id, example, last_regen_at, last_reap_at, managed, default_bq_connection, p4sa_name
+// can, dialect, snippets, pdts_enabled, named_driver_version_actual, uses_oauth, uses_instance_oauth, supports_data_studio_link, created_at, user_id, example, last_regen_at, last_reap_at, managed, default_bq_connection, p4sa_name
type WriteDBConnection struct {
- Name *string `json:"name,omitempty"` // Name of the connection. Also used as the unique identifier
- NamedDriverVersion *string `json:"named_driver_version,omitempty"` // JDBC driver version name
- Host *string `json:"host,omitempty"` // Host name/address of server; or the string 'localhost' in case of a connection over an SSH tunnel.
- Port *string `json:"port,omitempty"` // Port number on server. If the connection is over an SSH tunnel, then the local port associated with the SSH tunnel.
- Username *string `json:"username,omitempty"` // Username for server authentication
- Password *string `json:"password,omitempty"` // (Write-Only) Password for server authentication
- Certificate *string `json:"certificate,omitempty"` // (Write-Only) Base64 encoded Certificate body for server authentication (when appropriate for dialect).
- FileType *string `json:"file_type,omitempty"` // (Write-Only) Certificate keyfile type - .json or .p12
- Database *string `json:"database,omitempty"` // Database name
- DbTimezone *string `json:"db_timezone,omitempty"` // Time zone of database
- QueryTimezone *string `json:"query_timezone,omitempty"` // Timezone to use in queries
- Schema *string `json:"schema,omitempty"` // Schema name
- MaxConnections *int64 `json:"max_connections,omitempty"` // Maximum number of concurrent connection to use
- MaxQueries *int64 `json:"max_queries,omitempty"` // Maximum number of concurrent queries to begin on this connection
- MaxQueriesPerUser *int64 `json:"max_queries_per_user,omitempty"` // Maximum number of concurrent queries per user to begin on this connection
- MaxBillingGigabytes *string `json:"max_billing_gigabytes,omitempty"` // Maximum size of query in GBs (BigQuery only, can be a user_attribute name)
- Ssl *bool `json:"ssl,omitempty"` // Use SSL/TLS when connecting to server
- VerifySsl *bool `json:"verify_ssl,omitempty"` // Verify the SSL
- TmpDbName *string `json:"tmp_db_name,omitempty"` // Name of temporary database (if used)
- TmpDbHost *string `json:"tmp_db_host,omitempty"` // Name of temporary host (if used)
- JdbcAdditionalParams *string `json:"jdbc_additional_params,omitempty"` // Additional params to add to JDBC connection string
- PoolTimeout *int64 `json:"pool_timeout,omitempty"` // Connection Pool Timeout, in seconds
- DialectName *string `json:"dialect_name,omitempty"` // (Read/Write) SQL Dialect name
- UserDbCredentials *bool `json:"user_db_credentials,omitempty"` // (Limited access feature) Are per user db credentials enabled. Enabling will remove previously set username and password
- UserAttributeFields *[]string `json:"user_attribute_fields,omitempty"` // Fields whose values map to user attribute names
- MaintenanceCron *string `json:"maintenance_cron,omitempty"` // Cron string specifying when maintenance such as PDT trigger checks and drops should be performed
- SqlRunnerPrecacheTables *bool `json:"sql_runner_precache_tables,omitempty"` // Precache tables in the SQL Runner
- SqlWritingWithInfoSchema *bool `json:"sql_writing_with_info_schema,omitempty"` // Fetch Information Schema For SQL Writing
- AfterConnectStatements *string `json:"after_connect_statements,omitempty"` // SQL statements (semicolon separated) to issue after connecting to the database. Requires `custom_after_connect_statements` license feature
- PdtContextOverride *WriteDBConnectionOverride `json:"pdt_context_override,omitempty"` // Dynamic writeable type for DBConnectionOverride removes:
+ Name *string `json:"name,omitempty"` // Name of the connection. Also used as the unique identifier
+ NamedDriverVersionRequested *string `json:"named_driver_version_requested,omitempty"` // Requested JDBC driver version name
+ Host *string `json:"host,omitempty"` // Host name/address of server; or the string 'localhost' in case of a connection over an SSH tunnel.
+ Port *string `json:"port,omitempty"` // Port number on server. If the connection is over an SSH tunnel, then the local port associated with the SSH tunnel.
+ Username *string `json:"username,omitempty"` // Username for server authentication
+ Password *string `json:"password,omitempty"` // (Write-Only) Password for server authentication
+ Certificate *string `json:"certificate,omitempty"` // (Write-Only) Base64 encoded Certificate body for server authentication (when appropriate for dialect).
+ FileType *string `json:"file_type,omitempty"` // (Write-Only) Certificate keyfile type - .json or .p12
+ Database *string `json:"database,omitempty"` // Database name
+ DbTimezone *string `json:"db_timezone,omitempty"` // Time zone of database
+ QueryTimezone *string `json:"query_timezone,omitempty"` // Timezone to use in queries
+ Schema *string `json:"schema,omitempty"` // Schema name
+ MaxConnections *int64 `json:"max_connections,omitempty"` // Maximum number of concurrent connection to use
+ MaxQueries *int64 `json:"max_queries,omitempty"` // Maximum number of concurrent queries to begin on this connection
+ MaxQueriesPerUser *int64 `json:"max_queries_per_user,omitempty"` // Maximum number of concurrent queries per user to begin on this connection
+ MaxBillingGigabytes *string `json:"max_billing_gigabytes,omitempty"` // Maximum size of query in GBs (BigQuery only, can be a user_attribute name)
+ Ssl *bool `json:"ssl,omitempty"` // Use SSL/TLS when connecting to server
+ VerifySsl *bool `json:"verify_ssl,omitempty"` // Verify the SSL
+ TmpDbName *string `json:"tmp_db_name,omitempty"` // Name of temporary database (if used)
+ TmpDbHost *string `json:"tmp_db_host,omitempty"` // Name of temporary host (if used)
+ JdbcAdditionalParams *string `json:"jdbc_additional_params,omitempty"` // Additional params to add to JDBC connection string
+ PoolTimeout *int64 `json:"pool_timeout,omitempty"` // Connection Pool Timeout, in seconds
+ DialectName *string `json:"dialect_name,omitempty"` // (Read/Write) SQL Dialect name
+ UserDbCredentials *bool `json:"user_db_credentials,omitempty"` // (Limited access feature) Are per user db credentials enabled. Enabling will remove previously set username and password
+ UserAttributeFields *[]string `json:"user_attribute_fields,omitempty"` // Fields whose values map to user attribute names
+ MaintenanceCron *string `json:"maintenance_cron,omitempty"` // Cron string specifying when maintenance such as PDT trigger checks and drops should be performed
+ SqlRunnerPrecacheTables *bool `json:"sql_runner_precache_tables,omitempty"` // Precache tables in the SQL Runner
+ SqlWritingWithInfoSchema *bool `json:"sql_writing_with_info_schema,omitempty"` // Fetch Information Schema For SQL Writing
+ AfterConnectStatements *string `json:"after_connect_statements,omitempty"` // SQL statements (semicolon separated) to issue after connecting to the database. Requires `custom_after_connect_statements` license feature
+ PdtContextOverride *WriteDBConnectionOverride `json:"pdt_context_override,omitempty"` // Dynamic writeable type for DBConnectionOverride removes:
// has_password
CustomLocalPort *int64 `json:"custom_local_port,omitempty"` // This field is only applicable to connections over an SSH Tunnel. The value of this field would be the local port associated with the SSH tunnel if configured manually. Otherwise either enter NULL or exclude this field.
TunnelId *string `json:"tunnel_id,omitempty"` // The Id of the ssh tunnel this connection uses
@@ -4310,17 +4360,27 @@ type WriteDBConnection struct {
// Dynamic writeable type for DBConnectionOverride removes:
// has_password
type WriteDBConnectionOverride struct {
- Context *string `json:"context,omitempty"` // Context in which to override (`pdt` is the only allowed value)
- Host *string `json:"host,omitempty"` // Host name/address of server
- Port *string `json:"port,omitempty"` // Port number on server
- Username *string `json:"username,omitempty"` // Username for server authentication
- Password *string `json:"password,omitempty"` // (Write-Only) Password for server authentication
- Certificate *string `json:"certificate,omitempty"` // (Write-Only) Base64 encoded Certificate body for server authentication (when appropriate for dialect).
- FileType *string `json:"file_type,omitempty"` // (Write-Only) Certificate keyfile type - .json or .p12
- Database *string `json:"database,omitempty"` // Database name
- Schema *string `json:"schema,omitempty"` // Schema name
- JdbcAdditionalParams *string `json:"jdbc_additional_params,omitempty"` // Additional params to add to JDBC connection string
- AfterConnectStatements *string `json:"after_connect_statements,omitempty"` // SQL statements (semicolon separated) to issue after connecting to the database. Requires `custom_after_connect_statements` license feature
+ Context *string `json:"context,omitempty"` // Context in which to override (`pdt` is the only allowed value)
+ Host *string `json:"host,omitempty"` // Host name/address of server
+ PdtHost *string `json:"pdt_host,omitempty"` // Host name/address of server (same as host)
+ Port *string `json:"port,omitempty"` // Port number on server
+ PdtPort *string `json:"pdt_port,omitempty"` // Port number on server (same as port)
+ Username *string `json:"username,omitempty"` // Username for server authentication
+ PdtUsername *string `json:"pdt_username,omitempty"` // Username for server authentication (same as username)
+ Password *string `json:"password,omitempty"` // (Write-Only) Password for server authentication
+ PdtPassword *string `json:"pdt_password,omitempty"` // (Write-Only) Password for server authentication (same as password)
+ Certificate *string `json:"certificate,omitempty"` // (Write-Only) Base64 encoded Certificate body for server authentication (when appropriate for dialect).
+ PdtCertificate *string `json:"pdt_certificate,omitempty"` // (Write-Only) Base64 encoded Certificate body for server authentication (when appropriate for dialect) (same as certificate).
+ FileType *string `json:"file_type,omitempty"` // (Write-Only) Certificate keyfile type - .json or .p12
+ PdtFileType *string `json:"pdt_file_type,omitempty"` // (Write-Only) Certificate keyfile type - .json or .p12 (same as file_type)
+ Database *string `json:"database,omitempty"` // Database name
+ PdtDatabase *string `json:"pdt_database,omitempty"` // Database name (same as database)
+ Schema *string `json:"schema,omitempty"` // Schema name
+ PdtSchema *string `json:"pdt_schema,omitempty"` // Schema name (same as schema)
+ JdbcAdditionalParams *string `json:"jdbc_additional_params,omitempty"` // Additional params to add to JDBC connection string
+ PdtJdbcAdditionalParams *string `json:"pdt_jdbc_additional_params,omitempty"` // Additional params to add to JDBC connection string (same as jdbc_additional_params)
+ AfterConnectStatements *string `json:"after_connect_statements,omitempty"` // SQL statements (semicolon separated) to issue after connecting to the database. Requires `custom_after_connect_statements` license feature
+ PdtAfterConnectStatements *string `json:"pdt_after_connect_statements,omitempty"` // SQL statements (semicolon separated) to issue after connecting to the database. Requires `custom_after_connect_statements` license feature (same as after_connect_statements)
}
// Dynamic writeable type for EmbedConfig removes:
@@ -4752,9 +4812,9 @@ type WriteSetting struct {
EmbedCookielessV2 *bool `json:"embed_cookieless_v2,omitempty"` // (DEPRECATED) Use embed_config.embed_cookieless_v2 instead. If embed_config.embed_cookieless_v2 is specified, it overrides this value.
EmbedConfig *WriteEmbedConfig `json:"embed_config,omitempty"` // Dynamic writeable type for EmbedConfig removes:
// embed_enabled
- DashboardAutoRefreshRestriction *bool `json:"dashboard_auto_refresh_restriction,omitempty"` // Toggle Dashboard Auto Refresh restriction
- DashboardAutoRefreshMinimumInterval *string `json:"dashboard_auto_refresh_minimum_interval,omitempty"` // Minimum time interval for dashboard element automatic refresh. Examples: (30 seconds, 1 minute)
- ManagedCertificateUri *string `json:"managed_certificate_uri,omitempty"` // URI pointing to the location of a private root certificate in Secret Manager
+ DashboardAutoRefreshRestriction *bool `json:"dashboard_auto_refresh_restriction,omitempty"` // Toggle Dashboard Auto Refresh restriction
+ DashboardAutoRefreshMinimumInterval *string `json:"dashboard_auto_refresh_minimum_interval,omitempty"` // Minimum time interval for dashboard element automatic refresh. Examples: (30 seconds, 1 minute)
+ ManagedCertificateUri *[]string `json:"managed_certificate_uri,omitempty"` // Array of URIs pointing to the location of a root certificate in Secret Manager
}
// Dynamic writeable type for SqlInterfaceQueryCreate removes:
@@ -4792,7 +4852,7 @@ type WriteTheme struct {
}
// Dynamic writeable type for User removes:
-// can, avatar_url, avatar_url_without_sizing, credentials_api3, credentials_embed, credentials_google, credentials_ldap, credentials_looker_openid, credentials_oidc, credentials_saml, credentials_totp, display_name, email, embed_group_space_id, group_ids, id, looker_versions, personal_folder_id, presumed_looker_employee, role_ids, sessions, verified_looker_employee, roles_externally_managed, allow_direct_roles, allow_normal_group_membership, allow_roles_from_normal_groups, embed_group_folder_id, url
+// can, avatar_url, avatar_url_without_sizing, credentials_api3, credentials_embed, credentials_google, credentials_ldap, credentials_looker_openid, credentials_oidc, credentials_saml, credentials_totp, display_name, email, embed_group_space_id, group_ids, id, looker_versions, personal_folder_id, presumed_looker_employee, role_ids, sessions, verified_looker_employee, roles_externally_managed, allow_direct_roles, allow_normal_group_membership, allow_roles_from_normal_groups, embed_group_folder_id, is_iam_admin, url
type WriteUser struct {
CredentialsEmail *WriteCredentialsEmail `json:"credentials_email,omitempty"` // Dynamic writeable type for CredentialsEmail removes:
// can, created_at, user_id, is_disabled, logged_in_at, password_reset_url, account_setup_url, password_reset_url_expired, account_setup_url_expired, type, url, user_url
diff --git a/kotlin/src/main/com/looker/sdk/4.0/methods.kt b/kotlin/src/main/com/looker/sdk/4.0/methods.kt
index f7243ccc1..72af94b1d 100644
--- a/kotlin/src/main/com/looker/sdk/4.0/methods.kt
+++ b/kotlin/src/main/com/looker/sdk/4.0/methods.kt
@@ -25,7 +25,7 @@
*/
/**
- * 467 API methods
+ * 469 API methods
*/
// NOTE: Do not edit this file generated by Looker SDK Codegen for API 4.0
@@ -491,6 +491,7 @@ class LookerSDK(authSession: AuthSession) : APIMethods(authSession) {
* @param {Long} max_size Maximum storage size of the artifact
* @param {Long} limit Number of results to return. (used with offset)
* @param {Long} offset Number of results to skip before returning any. (used with limit)
+ * @param {Boolean} tally Return the full count of results in the X-Total-Count response header. (Slight performance hit.)
*
* GET /artifact/{namespace}/search -> Array
*/
@@ -503,6 +504,7 @@ class LookerSDK(authSession: AuthSession) : APIMethods(authSession) {
max_size: Long? = null,
limit: Long? = null,
offset: Long? = null,
+ tally: Boolean? = null,
): SDKResponse {
val path_namespace = encodeParam(namespace)
return this.get>(
@@ -515,6 +517,7 @@ class LookerSDK(authSession: AuthSession) : APIMethods(authSession) {
"max_size" to max_size,
"limit" to limit,
"offset" to offset,
+ "tally" to tally,
),
)
}
@@ -531,6 +534,7 @@ class LookerSDK(authSession: AuthSession) : APIMethods(authSession) {
* @param {String} fields Comma-delimited names of fields to return in responses. Omit for all fields
* @param {Long} limit Number of results to return. (used with offset)
* @param {Long} offset Number of results to skip before returning any. (used with limit)
+ * @param {Boolean} tally Return the full count of results in the X-Total-Count response header. (Slight performance hit.)
*
* GET /artifact/{namespace} -> Array
*/
@@ -540,6 +544,7 @@ class LookerSDK(authSession: AuthSession) : APIMethods(authSession) {
fields: String? = null,
limit: Long? = null,
offset: Long? = null,
+ tally: Boolean? = null,
): SDKResponse {
val path_namespace = encodeParam(namespace)
return this.get>(
@@ -549,6 +554,7 @@ class LookerSDK(authSession: AuthSession) : APIMethods(authSession) {
"fields" to fields,
"limit" to limit,
"offset" to offset,
+ "tally" to tally,
),
)
}
@@ -7926,6 +7932,75 @@ class LookerSDK(authSession: AuthSession) : APIMethods(authSession) {
//endregion RenderTask: Manage Render Tasks
+ //region Report: Report
+
+ /**
+ * ### Search Reports
+ *
+ * Returns an **array of Report objects** that match the specified search criteria.
+ *
+ * If multiple search params are given and `filter_or` is FALSE or not specified,
+ * search params are combined in a logical AND operation.
+ * Only rows that match *all* search param criteria will be returned.
+ *
+ * If `filter_or` is TRUE, multiple search params are combined in a logical OR operation.
+ * Results will include rows that match **any** of the search criteria.
+ *
+ * String search params use case-insensitive matching.
+ * String search params can contain `%` and '_' as SQL LIKE pattern match wildcard expressions.
+ * example="dan%" will match "danger" and "Danzig" but not "David"
+ * example="D_m%" will match "Damage" and "dump"
+ *
+ * Integer search params can accept a single value or a comma separated list of values. The multiple
+ * values will be combined under a logical OR operation - results will match at least one of
+ * the given values.
+ *
+ * Most search params can accept "IS NULL" and "NOT NULL" as special expressions to match
+ * or exclude (respectively) rows where the column is null.
+ *
+ * Boolean search params accept only "true" and "false" as values.
+ *
+ * @param {String} folder_id Select reports in a particular folder.
+ * @param {Boolean} favorite Select favorite reports.
+ * @param {Boolean} recent Select reports viewed recently.
+ * @param {String} id Match report id.
+ * @param {String} title Match report title.
+ * @param {String} sorts One or more fields to sort results by.
+ * @param {Long} limit Number of results to return.(used with next_page_token)
+ * @param {String} fields Comma delimited list of field names. If provided, only the fields specified will be included in the response.
+ * @param {String} next_page_token Contains a token that can be used to return up to Number of results to return.(used with next_page_token) additional results. A next_page_token will not be returned if there are no additional results to display.
+ *
+ * GET /reports/search -> Array
+ */
+ @JvmOverloads fun search_reports(
+ folder_id: String? = null,
+ favorite: Boolean? = null,
+ recent: Boolean? = null,
+ id: String? = null,
+ title: String? = null,
+ sorts: String? = null,
+ limit: Long? = null,
+ fields: String? = null,
+ next_page_token: String? = null,
+ ): SDKResponse {
+ return this.get>(
+ "/reports/search",
+ mapOf(
+ "folder_id" to folder_id,
+ "favorite" to favorite,
+ "recent" to recent,
+ "id" to id,
+ "title" to title,
+ "sorts" to sorts,
+ "limit" to limit,
+ "fields" to fields,
+ "next_page_token" to next_page_token,
+ ),
+ )
+ }
+
+ //endregion Report: Report
+
//region Role: Manage Roles
/**
diff --git a/kotlin/src/main/com/looker/sdk/4.0/models.kt b/kotlin/src/main/com/looker/sdk/4.0/models.kt
index c120b9fc0..1fbb82d2b 100644
--- a/kotlin/src/main/com/looker/sdk/4.0/models.kt
+++ b/kotlin/src/main/com/looker/sdk/4.0/models.kt
@@ -25,7 +25,7 @@
*/
/**
- * 343 API models: 259 Spec, 0 Request, 62 Write, 22 Enum
+ * 344 API models: 260 Spec, 0 Request, 62 Write, 22 Enum
*/
// NOTE: Do not edit this file generated by Looker SDK Codegen for API 4.0
@@ -1749,7 +1749,8 @@ data class Datagroup(
* @property dialect
* @property snippets SQL Runner snippets for this connection (read-only)
* @property pdts_enabled True if PDTs are enabled on this connection (read-only)
- * @property named_driver_version JDBC driver version name
+ * @property named_driver_version_requested Requested JDBC driver version name
+ * @property named_driver_version_actual Resolved JDBC driver version (read-only)
* @property host Host name/address of server; or the string 'localhost' in case of a connection over an SSH tunnel.
* @property port Port number on server. If the connection is over an SSH tunnel, then the local port associated with the SSH tunnel.
* @property username Username for server authentication
@@ -1811,7 +1812,8 @@ data class DBConnection(
var dialect: Dialect? = null,
var snippets: Array? = null,
var pdts_enabled: Boolean? = null,
- var named_driver_version: String? = null,
+ var named_driver_version_requested: String? = null,
+ var named_driver_version_actual: String? = null,
var host: String? = null,
var port: String? = null,
var username: String? = null,
@@ -1886,30 +1888,50 @@ data class DBConnectionBase(
/**
* @property context Context in which to override (`pdt` is the only allowed value)
* @property host Host name/address of server
+ * @property pdt_host Host name/address of server (same as host)
* @property port Port number on server
+ * @property pdt_port Port number on server (same as port)
* @property username Username for server authentication
+ * @property pdt_username Username for server authentication (same as username)
* @property password (Write-Only) Password for server authentication
+ * @property pdt_password (Write-Only) Password for server authentication (same as password)
* @property has_password Whether or not the password is overridden in this context (read-only)
* @property certificate (Write-Only) Base64 encoded Certificate body for server authentication (when appropriate for dialect).
+ * @property pdt_certificate (Write-Only) Base64 encoded Certificate body for server authentication (when appropriate for dialect) (same as certificate).
* @property file_type (Write-Only) Certificate keyfile type - .json or .p12
+ * @property pdt_file_type (Write-Only) Certificate keyfile type - .json or .p12 (same as file_type)
* @property database Database name
+ * @property pdt_database Database name (same as database)
* @property schema Schema name
+ * @property pdt_schema Schema name (same as schema)
* @property jdbc_additional_params Additional params to add to JDBC connection string
+ * @property pdt_jdbc_additional_params Additional params to add to JDBC connection string (same as jdbc_additional_params)
* @property after_connect_statements SQL statements (semicolon separated) to issue after connecting to the database. Requires `custom_after_connect_statements` license feature
+ * @property pdt_after_connect_statements SQL statements (semicolon separated) to issue after connecting to the database. Requires `custom_after_connect_statements` license feature (same as after_connect_statements)
*/
data class DBConnectionOverride(
var context: String? = null,
var host: String? = null,
+ var pdt_host: String? = null,
var port: String? = null,
+ var pdt_port: String? = null,
var username: String? = null,
+ var pdt_username: String? = null,
var password: String? = null,
+ var pdt_password: String? = null,
var has_password: Boolean? = null,
var certificate: String? = null,
+ var pdt_certificate: String? = null,
var file_type: String? = null,
+ var pdt_file_type: String? = null,
var database: String? = null,
+ var pdt_database: String? = null,
var schema: String? = null,
+ var pdt_schema: String? = null,
var jdbc_additional_params: String? = null,
+ var pdt_jdbc_additional_params: String? = null,
var after_connect_statements: String? = null,
+ var pdt_after_connect_statements: String? = null,
) : Serializable
/**
@@ -2015,6 +2037,8 @@ data class Dialect(
* @property label_for_database_equivalent What the dialect calls the equivalent of a normal SQL table (read-only)
* @property label_for_schema_equivalent What the dialect calls the equivalent of a schema-level namespace (read-only)
* @property name The name of the dialect (read-only)
+ * @property supported_driver_name The name of the driver used for this dialect (read-only)
+ * @property supported_driver_versions Array of supported drivers for a given dialect (read-only)
* @property supported_options
*/
data class DialectInfo(
@@ -2026,6 +2050,8 @@ data class DialectInfo(
var label_for_database_equivalent: String? = null,
var label_for_schema_equivalent: String? = null,
var name: String? = null,
+ var supported_driver_name: String? = null,
+ var supported_driver_versions: Array? = null,
var supported_options: DialectInfoOptions? = null,
) : Serializable
@@ -4652,6 +4678,47 @@ data class RenderTask(
var width: Long? = null,
) : Serializable
+/**
+ * @property can Operations the current user is able to perform on this object (read-only)
+ * @property id ID of the report
+ * @property title Title of the report
+ * @property user_id User Id of the owner of the report
+ * @property created_at Created at (read-only)
+ * @property updated_at Modified at (read-only)
+ * @property last_viewed_at Last viewed at (read-only)
+ * @property favorite Is favorite report
+ * @property favorite_count Favorite count (read-only)
+ * @property view_count View count (read-only)
+ * @property folder
+ * @property folder_id Id of the folder where the report is stored
+ * @property url Relative URL of the report (read-only)
+ * @property user_name Name of User that created the Studio Report. (read-only)
+ * @property deleted_at Deleted at (read-only)
+ * @property last_accessed_at Last Accessed at (read-only)
+ * @property deleter_user_id User Id of the deleter of the report (read-only)
+ * @property deleter_user_name Name of User that deleted the Report. (read-only)
+ */
+data class Report(
+ var can: Map? = null,
+ var id: String? = null,
+ var title: String? = null,
+ var user_id: String? = null,
+ var created_at: Date? = null,
+ var updated_at: Date? = null,
+ var last_viewed_at: Date? = null,
+ var favorite: Boolean? = null,
+ var favorite_count: Long? = null,
+ var view_count: Long? = null,
+ var folder: FolderBase? = null,
+ var folder_id: String? = null,
+ var url: String? = null,
+ var user_name: String? = null,
+ var deleted_at: Date? = null,
+ var last_accessed_at: Date? = null,
+ var deleter_user_id: String? = null,
+ var deleter_user_name: String? = null,
+) : Serializable
+
/**
* @property can Operations the current user is able to perform on this object (read-only)
* @property id Unique Id (read-only)
@@ -5248,7 +5315,7 @@ data class SessionConfig(
* @property login_notification_text Login notification text (read-only)
* @property dashboard_auto_refresh_restriction Toggle Dashboard Auto Refresh restriction
* @property dashboard_auto_refresh_minimum_interval Minimum time interval for dashboard element automatic refresh. Examples: (30 seconds, 1 minute)
- * @property managed_certificate_uri URI pointing to the location of a private root certificate in Secret Manager
+ * @property managed_certificate_uri Array of URIs pointing to the location of a root certificate in Secret Manager
*/
data class Setting(
var instance_config: InstanceConfig? = null,
@@ -5275,7 +5342,7 @@ data class Setting(
var login_notification_text: String? = null,
var dashboard_auto_refresh_restriction: Boolean? = null,
var dashboard_auto_refresh_minimum_interval: String? = null,
- var managed_certificate_uri: String? = null,
+ var managed_certificate_uri: Array? = null,
) : Serializable
/**
@@ -5750,6 +5817,7 @@ data class UpdateFolder(
* @property allow_normal_group_membership User can be a direct member of a normal Looker group. (read-only)
* @property allow_roles_from_normal_groups User can inherit roles from a normal Looker group. (read-only)
* @property embed_group_folder_id (Embed only) ID of user's group folder based on the external_group_id optionally specified during embed user login (read-only)
+ * @property is_iam_admin User is an IAM Admin - only available in Looker (Google Cloud core) (read-only)
* @property url Link to get this item (read-only)
*/
data class User(
@@ -5788,6 +5856,7 @@ data class User(
var allow_normal_group_membership: Boolean? = null,
var allow_roles_from_normal_groups: Boolean? = null,
var embed_group_folder_id: String? = null,
+ var is_iam_admin: Boolean? = null,
var url: String? = null,
) : Serializable
@@ -6505,10 +6574,10 @@ data class WriteDatagroup(
/**
* Dynamic writeable type for DBConnection removes:
- * can, dialect, snippets, pdts_enabled, uses_oauth, uses_instance_oauth, supports_data_studio_link, created_at, user_id, example, last_regen_at, last_reap_at, managed, default_bq_connection, p4sa_name
+ * can, dialect, snippets, pdts_enabled, named_driver_version_actual, uses_oauth, uses_instance_oauth, supports_data_studio_link, created_at, user_id, example, last_regen_at, last_reap_at, managed, default_bq_connection, p4sa_name
*
* @property name Name of the connection. Also used as the unique identifier
- * @property named_driver_version JDBC driver version name
+ * @property named_driver_version_requested Requested JDBC driver version name
* @property host Host name/address of server; or the string 'localhost' in case of a connection over an SSH tunnel.
* @property port Port number on server. If the connection is over an SSH tunnel, then the local port associated with the SSH tunnel.
* @property username Username for server authentication
@@ -6556,7 +6625,7 @@ data class WriteDatagroup(
*/
data class WriteDBConnection(
var name: String? = null,
- var named_driver_version: String? = null,
+ var named_driver_version_requested: String? = null,
var host: String? = null,
var port: String? = null,
var username: String? = null,
@@ -6608,28 +6677,48 @@ data class WriteDBConnection(
*
* @property context Context in which to override (`pdt` is the only allowed value)
* @property host Host name/address of server
+ * @property pdt_host Host name/address of server (same as host)
* @property port Port number on server
+ * @property pdt_port Port number on server (same as port)
* @property username Username for server authentication
+ * @property pdt_username Username for server authentication (same as username)
* @property password (Write-Only) Password for server authentication
+ * @property pdt_password (Write-Only) Password for server authentication (same as password)
* @property certificate (Write-Only) Base64 encoded Certificate body for server authentication (when appropriate for dialect).
+ * @property pdt_certificate (Write-Only) Base64 encoded Certificate body for server authentication (when appropriate for dialect) (same as certificate).
* @property file_type (Write-Only) Certificate keyfile type - .json or .p12
+ * @property pdt_file_type (Write-Only) Certificate keyfile type - .json or .p12 (same as file_type)
* @property database Database name
+ * @property pdt_database Database name (same as database)
* @property schema Schema name
+ * @property pdt_schema Schema name (same as schema)
* @property jdbc_additional_params Additional params to add to JDBC connection string
+ * @property pdt_jdbc_additional_params Additional params to add to JDBC connection string (same as jdbc_additional_params)
* @property after_connect_statements SQL statements (semicolon separated) to issue after connecting to the database. Requires `custom_after_connect_statements` license feature
+ * @property pdt_after_connect_statements SQL statements (semicolon separated) to issue after connecting to the database. Requires `custom_after_connect_statements` license feature (same as after_connect_statements)
*/
data class WriteDBConnectionOverride(
var context: String? = null,
var host: String? = null,
+ var pdt_host: String? = null,
var port: String? = null,
+ var pdt_port: String? = null,
var username: String? = null,
+ var pdt_username: String? = null,
var password: String? = null,
+ var pdt_password: String? = null,
var certificate: String? = null,
+ var pdt_certificate: String? = null,
var file_type: String? = null,
+ var pdt_file_type: String? = null,
var database: String? = null,
+ var pdt_database: String? = null,
var schema: String? = null,
+ var pdt_schema: String? = null,
var jdbc_additional_params: String? = null,
+ var pdt_jdbc_additional_params: String? = null,
var after_connect_statements: String? = null,
+ var pdt_after_connect_statements: String? = null,
) : Serializable
/**
@@ -7404,7 +7493,7 @@ data class WriteSessionConfig(
* embed_enabled
* @property dashboard_auto_refresh_restriction Toggle Dashboard Auto Refresh restriction
* @property dashboard_auto_refresh_minimum_interval Minimum time interval for dashboard element automatic refresh. Examples: (30 seconds, 1 minute)
- * @property managed_certificate_uri URI pointing to the location of a private root certificate in Secret Manager
+ * @property managed_certificate_uri Array of URIs pointing to the location of a root certificate in Secret Manager
*/
data class WriteSetting(
var extension_framework_enabled: Boolean? = null,
@@ -7426,7 +7515,7 @@ data class WriteSetting(
var embed_config: WriteEmbedConfig? = null,
var dashboard_auto_refresh_restriction: Boolean? = null,
var dashboard_auto_refresh_minimum_interval: String? = null,
- var managed_certificate_uri: String? = null,
+ var managed_certificate_uri: Array? = null,
) : Serializable
/**
@@ -7491,7 +7580,7 @@ data class WriteTheme(
/**
* Dynamic writeable type for User removes:
- * can, avatar_url, avatar_url_without_sizing, credentials_api3, credentials_embed, credentials_google, credentials_ldap, credentials_looker_openid, credentials_oidc, credentials_saml, credentials_totp, display_name, email, embed_group_space_id, group_ids, id, looker_versions, personal_folder_id, presumed_looker_employee, role_ids, sessions, verified_looker_employee, roles_externally_managed, allow_direct_roles, allow_normal_group_membership, allow_roles_from_normal_groups, embed_group_folder_id, url
+ * can, avatar_url, avatar_url_without_sizing, credentials_api3, credentials_embed, credentials_google, credentials_ldap, credentials_looker_openid, credentials_oidc, credentials_saml, credentials_totp, display_name, email, embed_group_space_id, group_ids, id, looker_versions, personal_folder_id, presumed_looker_employee, role_ids, sessions, verified_looker_employee, roles_externally_managed, allow_direct_roles, allow_normal_group_membership, allow_roles_from_normal_groups, embed_group_folder_id, is_iam_admin, url
*
* @property credentials_email Dynamic writeable type for CredentialsEmail removes:
* can, created_at, user_id, is_disabled, logged_in_at, password_reset_url, account_setup_url, password_reset_url_expired, account_setup_url_expired, type, url, user_url
diff --git a/kotlin/src/main/com/looker/sdk/4.0/streams.kt b/kotlin/src/main/com/looker/sdk/4.0/streams.kt
index 5f50118d3..c2528a91f 100644
--- a/kotlin/src/main/com/looker/sdk/4.0/streams.kt
+++ b/kotlin/src/main/com/looker/sdk/4.0/streams.kt
@@ -25,7 +25,7 @@
*/
/**
- * 467 API methods
+ * 469 API methods
*/
// NOTE: Do not edit this file generated by Looker SDK Codegen for API 4.0
@@ -489,6 +489,7 @@ class LookerSDKStream(authSession: AuthSession) : APIMethods(authSession) {
* @param {Long} max_size Maximum storage size of the artifact
* @param {Long} limit Number of results to return. (used with offset)
* @param {Long} offset Number of results to skip before returning any. (used with limit)
+ * @param {Boolean} tally Return the full count of results in the X-Total-Count response header. (Slight performance hit.)
*
* GET /artifact/{namespace}/search -> ByteArray
*/
@@ -501,6 +502,7 @@ class LookerSDKStream(authSession: AuthSession) : APIMethods(authSession) {
max_size: Long? = null,
limit: Long? = null,
offset: Long? = null,
+ tally: Boolean? = null,
): SDKResponse {
val path_namespace = encodeParam(namespace)
return this.get(
@@ -513,6 +515,7 @@ class LookerSDKStream(authSession: AuthSession) : APIMethods(authSession) {
"max_size" to max_size,
"limit" to limit,
"offset" to offset,
+ "tally" to tally,
),
)
}
@@ -529,6 +532,7 @@ class LookerSDKStream(authSession: AuthSession) : APIMethods(authSession) {
* @param {String} fields Comma-delimited names of fields to return in responses. Omit for all fields
* @param {Long} limit Number of results to return. (used with offset)
* @param {Long} offset Number of results to skip before returning any. (used with limit)
+ * @param {Boolean} tally Return the full count of results in the X-Total-Count response header. (Slight performance hit.)
*
* GET /artifact/{namespace} -> ByteArray
*/
@@ -538,6 +542,7 @@ class LookerSDKStream(authSession: AuthSession) : APIMethods(authSession) {
fields: String? = null,
limit: Long? = null,
offset: Long? = null,
+ tally: Boolean? = null,
): SDKResponse {
val path_namespace = encodeParam(namespace)
return this.get(
@@ -547,6 +552,7 @@ class LookerSDKStream(authSession: AuthSession) : APIMethods(authSession) {
"fields" to fields,
"limit" to limit,
"offset" to offset,
+ "tally" to tally,
),
)
}
@@ -7924,6 +7930,75 @@ class LookerSDKStream(authSession: AuthSession) : APIMethods(authSession) {
//endregion RenderTask: Manage Render Tasks
+ //region Report: Report
+
+ /**
+ * ### Search Reports
+ *
+ * Returns an **array of Report objects** that match the specified search criteria.
+ *
+ * If multiple search params are given and `filter_or` is FALSE or not specified,
+ * search params are combined in a logical AND operation.
+ * Only rows that match *all* search param criteria will be returned.
+ *
+ * If `filter_or` is TRUE, multiple search params are combined in a logical OR operation.
+ * Results will include rows that match **any** of the search criteria.
+ *
+ * String search params use case-insensitive matching.
+ * String search params can contain `%` and '_' as SQL LIKE pattern match wildcard expressions.
+ * example="dan%" will match "danger" and "Danzig" but not "David"
+ * example="D_m%" will match "Damage" and "dump"
+ *
+ * Integer search params can accept a single value or a comma separated list of values. The multiple
+ * values will be combined under a logical OR operation - results will match at least one of
+ * the given values.
+ *
+ * Most search params can accept "IS NULL" and "NOT NULL" as special expressions to match
+ * or exclude (respectively) rows where the column is null.
+ *
+ * Boolean search params accept only "true" and "false" as values.
+ *
+ * @param {String} folder_id Select reports in a particular folder.
+ * @param {Boolean} favorite Select favorite reports.
+ * @param {Boolean} recent Select reports viewed recently.
+ * @param {String} id Match report id.
+ * @param {String} title Match report title.
+ * @param {String} sorts One or more fields to sort results by.
+ * @param {Long} limit Number of results to return.(used with next_page_token)
+ * @param {String} fields Comma delimited list of field names. If provided, only the fields specified will be included in the response.
+ * @param {String} next_page_token Contains a token that can be used to return up to Number of results to return.(used with next_page_token) additional results. A next_page_token will not be returned if there are no additional results to display.
+ *
+ * GET /reports/search -> ByteArray
+ */
+ @JvmOverloads fun search_reports(
+ folder_id: String? = null,
+ favorite: Boolean? = null,
+ recent: Boolean? = null,
+ id: String? = null,
+ title: String? = null,
+ sorts: String? = null,
+ limit: Long? = null,
+ fields: String? = null,
+ next_page_token: String? = null,
+ ): SDKResponse {
+ return this.get(
+ "/reports/search",
+ mapOf(
+ "folder_id" to folder_id,
+ "favorite" to favorite,
+ "recent" to recent,
+ "id" to id,
+ "title" to title,
+ "sorts" to sorts,
+ "limit" to limit,
+ "fields" to fields,
+ "next_page_token" to next_page_token,
+ ),
+ )
+ }
+
+ //endregion Report: Report
+
//region Role: Manage Roles
/**
diff --git a/kotlin/src/main/com/looker/sdk/Constants.kt b/kotlin/src/main/com/looker/sdk/Constants.kt
index 19e62f75f..15704883c 100644
--- a/kotlin/src/main/com/looker/sdk/Constants.kt
+++ b/kotlin/src/main/com/looker/sdk/Constants.kt
@@ -28,7 +28,7 @@ package com.looker.sdk
const val ENVIRONMENT_PREFIX = "LOOKERSDK"
const val SDK_TAG = "KT-SDK"
-const val LOOKER_VERSION = "25.2"
+const val LOOKER_VERSION = "25.4"
const val API_VERSION = "4.0"
const val AGENT_TAG = "$SDK_TAG $LOOKER_VERSION"
const val LOOKER_APPID = "x-looker-appid"
diff --git a/packages/sdk/src/4.0/funcs.ts b/packages/sdk/src/4.0/funcs.ts
index a002ea7e8..11408a45a 100644
--- a/packages/sdk/src/4.0/funcs.ts
+++ b/packages/sdk/src/4.0/funcs.ts
@@ -25,7 +25,7 @@
*/
/**
- * 467 API methods
+ * 469 API methods
*/
import type {
@@ -163,6 +163,7 @@ import type {
IQuery,
IQueryTask,
IRenderTask,
+ IReport,
IRepositoryCredential,
IRequestActiveThemes,
IRequestAlertNotifications,
@@ -223,6 +224,7 @@ import type {
IRequestSearchLooks,
IRequestSearchModelSets,
IRequestSearchPermissionSets,
+ IRequestSearchReports,
IRequestSearchRoles,
IRequestSearchRolesWithUserCount,
IRequestSearchScheduledPlans,
@@ -913,6 +915,7 @@ export const search_artifacts = async (
max_size: request.max_size,
limit: request.limit,
offset: request.offset,
+ tally: request.tally,
},
null,
options
@@ -946,6 +949,7 @@ export const artifact = async (
fields: request.fields,
limit: request.limit,
offset: request.offset,
+ tally: request.tally,
},
null,
options
@@ -10267,6 +10271,66 @@ export const create_dashboard_element_render_task = async (
//#endregion RenderTask: Manage Render Tasks
+//#region Report: Report
+
+/**
+ * ### Search Reports
+ *
+ * Returns an **array of Report objects** that match the specified search criteria.
+ *
+ * If multiple search params are given and `filter_or` is FALSE or not specified,
+ * search params are combined in a logical AND operation.
+ * Only rows that match *all* search param criteria will be returned.
+ *
+ * If `filter_or` is TRUE, multiple search params are combined in a logical OR operation.
+ * Results will include rows that match **any** of the search criteria.
+ *
+ * String search params use case-insensitive matching.
+ * String search params can contain `%` and '_' as SQL LIKE pattern match wildcard expressions.
+ * example="dan%" will match "danger" and "Danzig" but not "David"
+ * example="D_m%" will match "Damage" and "dump"
+ *
+ * Integer search params can accept a single value or a comma separated list of values. The multiple
+ * values will be combined under a logical OR operation - results will match at least one of
+ * the given values.
+ *
+ * Most search params can accept "IS NULL" and "NOT NULL" as special expressions to match
+ * or exclude (respectively) rows where the column is null.
+ *
+ * Boolean search params accept only "true" and "false" as values.
+ *
+ * GET /reports/search -> IReport[]
+ *
+ * @param sdk IAPIMethods implementation
+ * @param request composed interface "IRequestSearchReports" for complex method parameters
+ * @param options one-time API call overrides
+ *
+ */
+export const search_reports = async (
+ sdk: IAPIMethods,
+ request: IRequestSearchReports,
+ options?: Partial
+): Promise> => {
+ return sdk.get(
+ '/reports/search',
+ {
+ folder_id: request.folder_id,
+ favorite: request.favorite,
+ recent: request.recent,
+ id: request.id,
+ title: request.title,
+ sorts: request.sorts,
+ limit: request.limit,
+ fields: request.fields,
+ next_page_token: request.next_page_token,
+ },
+ null,
+ options
+ );
+};
+
+//#endregion Report: Report
+
//#region Role: Manage Roles
/**
diff --git a/packages/sdk/src/4.0/methods.ts b/packages/sdk/src/4.0/methods.ts
index 051ec8a0b..8f1d7668f 100644
--- a/packages/sdk/src/4.0/methods.ts
+++ b/packages/sdk/src/4.0/methods.ts
@@ -25,7 +25,7 @@
*/
/**
- * 467 API methods
+ * 469 API methods
*/
import type {
@@ -161,6 +161,7 @@ import type {
IQuery,
IQueryTask,
IRenderTask,
+ IReport,
IRepositoryCredential,
IRequestActiveThemes,
IRequestAlertNotifications,
@@ -221,6 +222,7 @@ import type {
IRequestSearchLooks,
IRequestSearchModelSets,
IRequestSearchPermissionSets,
+ IRequestSearchReports,
IRequestSearchRoles,
IRequestSearchRolesWithUserCount,
IRequestSearchScheduledPlans,
@@ -881,6 +883,7 @@ export class Looker40SDK extends APIMethods implements ILooker40SDK {
max_size: request.max_size,
limit: request.limit,
offset: request.offset,
+ tally: request.tally,
},
null,
options
@@ -912,6 +915,7 @@ export class Looker40SDK extends APIMethods implements ILooker40SDK {
fields: request.fields,
limit: request.limit,
offset: request.offset,
+ tally: request.tally,
},
null,
options
@@ -9653,6 +9657,64 @@ export class Looker40SDK extends APIMethods implements ILooker40SDK {
//#endregion RenderTask: Manage Render Tasks
+ //#region Report: Report
+
+ /**
+ * ### Search Reports
+ *
+ * Returns an **array of Report objects** that match the specified search criteria.
+ *
+ * If multiple search params are given and `filter_or` is FALSE or not specified,
+ * search params are combined in a logical AND operation.
+ * Only rows that match *all* search param criteria will be returned.
+ *
+ * If `filter_or` is TRUE, multiple search params are combined in a logical OR operation.
+ * Results will include rows that match **any** of the search criteria.
+ *
+ * String search params use case-insensitive matching.
+ * String search params can contain `%` and '_' as SQL LIKE pattern match wildcard expressions.
+ * example="dan%" will match "danger" and "Danzig" but not "David"
+ * example="D_m%" will match "Damage" and "dump"
+ *
+ * Integer search params can accept a single value or a comma separated list of values. The multiple
+ * values will be combined under a logical OR operation - results will match at least one of
+ * the given values.
+ *
+ * Most search params can accept "IS NULL" and "NOT NULL" as special expressions to match
+ * or exclude (respectively) rows where the column is null.
+ *
+ * Boolean search params accept only "true" and "false" as values.
+ *
+ * GET /reports/search -> IReport[]
+ *
+ * @param request composed interface "IRequestSearchReports" for complex method parameters
+ * @param options one-time API call overrides
+ *
+ */
+ async search_reports(
+ request: IRequestSearchReports,
+ options?: Partial
+ ): Promise> {
+ return this.get(
+ '/reports/search',
+ {
+ folder_id: request.folder_id,
+ favorite: request.favorite,
+ recent: request.recent,
+ id: request.id,
+ title: request.title,
+ sorts: request.sorts,
+ limit: request.limit,
+ fields: request.fields,
+ next_page_token: request.next_page_token,
+ },
+ null,
+ options
+ );
+ }
+
+ //#endregion Report: Report
+
//#region Role: Manage Roles
/**
diff --git a/packages/sdk/src/4.0/methodsInterface.ts b/packages/sdk/src/4.0/methodsInterface.ts
index 1006b363f..420539211 100644
--- a/packages/sdk/src/4.0/methodsInterface.ts
+++ b/packages/sdk/src/4.0/methodsInterface.ts
@@ -25,7 +25,7 @@
*/
/**
- * 467 API methods
+ * 469 API methods
*/
import type {
@@ -158,6 +158,7 @@ import type {
IQuery,
IQueryTask,
IRenderTask,
+ IReport,
IRepositoryCredential,
IRequestActiveThemes,
IRequestAlertNotifications,
@@ -218,6 +219,7 @@ import type {
IRequestSearchLooks,
IRequestSearchModelSets,
IRequestSearchPermissionSets,
+ IRequestSearchReports,
IRequestSearchRoles,
IRequestSearchRolesWithUserCount,
IRequestSearchScheduledPlans,
@@ -6837,6 +6839,47 @@ export interface ILooker40SDK extends IAPIMethods {
//#endregion RenderTask: Manage Render Tasks
+ //#region Report: Report
+
+ /**
+ * ### Search Reports
+ *
+ * Returns an **array of Report objects** that match the specified search criteria.
+ *
+ * If multiple search params are given and `filter_or` is FALSE or not specified,
+ * search params are combined in a logical AND operation.
+ * Only rows that match *all* search param criteria will be returned.
+ *
+ * If `filter_or` is TRUE, multiple search params are combined in a logical OR operation.
+ * Results will include rows that match **any** of the search criteria.
+ *
+ * String search params use case-insensitive matching.
+ * String search params can contain `%` and '_' as SQL LIKE pattern match wildcard expressions.
+ * example="dan%" will match "danger" and "Danzig" but not "David"
+ * example="D_m%" will match "Damage" and "dump"
+ *
+ * Integer search params can accept a single value or a comma separated list of values. The multiple
+ * values will be combined under a logical OR operation - results will match at least one of
+ * the given values.
+ *
+ * Most search params can accept "IS NULL" and "NOT NULL" as special expressions to match
+ * or exclude (respectively) rows where the column is null.
+ *
+ * Boolean search params accept only "true" and "false" as values.
+ *
+ * GET /reports/search -> IReport[]
+ *
+ * @param request composed interface "IRequestSearchReports" for complex method parameters
+ * @param options one-time API call overrides
+ *
+ */
+ search_reports(
+ request: IRequestSearchReports,
+ options?: Partial
+ ): Promise>;
+
+ //#endregion Report: Report
+
//#region Role: Manage Roles
/**
diff --git a/packages/sdk/src/4.0/models.ts b/packages/sdk/src/4.0/models.ts
index bf1702106..e002b0295 100644
--- a/packages/sdk/src/4.0/models.ts
+++ b/packages/sdk/src/4.0/models.ts
@@ -25,7 +25,7 @@
*/
/**
- * 413 API models: 259 Spec, 70 Request, 62 Write, 22 Enum
+ * 415 API models: 260 Spec, 71 Request, 62 Write, 22 Enum
*/
import type { IDictionary, DelimArray } from '@looker/sdk-rtl';
@@ -2780,9 +2780,13 @@ export interface IDBConnection {
*/
pdts_enabled?: boolean;
/**
- * JDBC driver version name
+ * Requested JDBC driver version name
*/
- named_driver_version?: string | null;
+ named_driver_version_requested?: string | null;
+ /**
+ * Resolved JDBC driver version (read-only)
+ */
+ named_driver_version_actual?: string | null;
/**
* Host name/address of server; or the string 'localhost' in case of a connection over an SSH tunnel.
*/
@@ -3027,18 +3031,34 @@ export interface IDBConnectionOverride {
* Host name/address of server
*/
host?: string | null;
+ /**
+ * Host name/address of server (same as host)
+ */
+ pdt_host?: string | null;
/**
* Port number on server
*/
port?: string | null;
+ /**
+ * Port number on server (same as port)
+ */
+ pdt_port?: string | null;
/**
* Username for server authentication
*/
username?: string | null;
+ /**
+ * Username for server authentication (same as username)
+ */
+ pdt_username?: string | null;
/**
* (Write-Only) Password for server authentication
*/
password?: string | null;
+ /**
+ * (Write-Only) Password for server authentication (same as password)
+ */
+ pdt_password?: string | null;
/**
* Whether or not the password is overridden in this context (read-only)
*/
@@ -3047,26 +3067,50 @@ export interface IDBConnectionOverride {
* (Write-Only) Base64 encoded Certificate body for server authentication (when appropriate for dialect).
*/
certificate?: string | null;
+ /**
+ * (Write-Only) Base64 encoded Certificate body for server authentication (when appropriate for dialect) (same as certificate).
+ */
+ pdt_certificate?: string | null;
/**
* (Write-Only) Certificate keyfile type - .json or .p12
*/
file_type?: string | null;
+ /**
+ * (Write-Only) Certificate keyfile type - .json or .p12 (same as file_type)
+ */
+ pdt_file_type?: string | null;
/**
* Database name
*/
database?: string | null;
+ /**
+ * Database name (same as database)
+ */
+ pdt_database?: string | null;
/**
* Schema name
*/
schema?: string | null;
+ /**
+ * Schema name (same as schema)
+ */
+ pdt_schema?: string | null;
/**
* Additional params to add to JDBC connection string
*/
jdbc_additional_params?: string | null;
+ /**
+ * Additional params to add to JDBC connection string (same as jdbc_additional_params)
+ */
+ pdt_jdbc_additional_params?: string | null;
/**
* SQL statements (semicolon separated) to issue after connecting to the database. Requires `custom_after_connect_statements` license feature
*/
after_connect_statements?: string | null;
+ /**
+ * SQL statements (semicolon separated) to issue after connecting to the database. Requires `custom_after_connect_statements` license feature (same as after_connect_statements)
+ */
+ pdt_after_connect_statements?: string | null;
}
export interface IDBConnectionTestResult {
@@ -3236,6 +3280,14 @@ export interface IDialectInfo {
* The name of the dialect (read-only)
*/
name?: string | null;
+ /**
+ * The name of the driver used for this dialect (read-only)
+ */
+ supported_driver_name?: string | null;
+ /**
+ * Array of supported drivers for a given dialect (read-only)
+ */
+ supported_driver_versions?: string[] | null;
supported_options?: IDialectInfoOptions;
}
@@ -7554,6 +7606,78 @@ export interface IRenderTask {
width?: number | null;
}
+export interface IReport {
+ /**
+ * Operations the current user is able to perform on this object (read-only)
+ */
+ can?: IDictionary;
+ /**
+ * ID of the report
+ */
+ id?: string;
+ /**
+ * Title of the report
+ */
+ title?: string | null;
+ /**
+ * User Id of the owner of the report
+ */
+ user_id?: string | null;
+ /**
+ * Created at (read-only)
+ */
+ created_at?: Date | null;
+ /**
+ * Modified at (read-only)
+ */
+ updated_at?: Date | null;
+ /**
+ * Last viewed at (read-only)
+ */
+ last_viewed_at?: Date | null;
+ /**
+ * Is favorite report
+ */
+ favorite?: boolean;
+ /**
+ * Favorite count (read-only)
+ */
+ favorite_count?: number | null;
+ /**
+ * View count (read-only)
+ */
+ view_count?: number | null;
+ folder?: IFolderBase;
+ /**
+ * Id of the folder where the report is stored
+ */
+ folder_id?: string | null;
+ /**
+ * Relative URL of the report (read-only)
+ */
+ url?: string | null;
+ /**
+ * Name of User that created the Studio Report. (read-only)
+ */
+ user_name?: string | null;
+ /**
+ * Deleted at (read-only)
+ */
+ deleted_at?: Date | null;
+ /**
+ * Last Accessed at (read-only)
+ */
+ last_accessed_at?: Date | null;
+ /**
+ * User Id of the deleter of the report (read-only)
+ */
+ deleter_user_id?: string | null;
+ /**
+ * Name of User that deleted the Report. (read-only)
+ */
+ deleter_user_name?: string | null;
+}
+
export interface IRepositoryCredential {
/**
* Operations the current user is able to perform on this object (read-only)
@@ -7891,6 +8015,10 @@ export interface IRequestArtifact {
* Number of results to skip before returning any. (used with limit)
*/
offset?: number | null;
+ /**
+ * Return the full count of results in the X-Total-Count response header. (Slight performance hit.)
+ */
+ tally?: boolean | null;
}
/**
@@ -8821,6 +8949,10 @@ export interface IRequestSearchArtifacts {
* Number of results to skip before returning any. (used with limit)
*/
offset?: number | null;
+ /**
+ * Return the full count of results in the X-Total-Count response header. (Slight performance hit.)
+ */
+ tally?: boolean | null;
}
/**
@@ -9543,6 +9675,48 @@ export interface IRequestSearchPermissionSets {
filter_or?: boolean | null;
}
+/**
+ * Dynamically generated request type for search_reports
+ */
+export interface IRequestSearchReports {
+ /**
+ * Select reports in a particular folder.
+ */
+ folder_id?: string | null;
+ /**
+ * Select favorite reports.
+ */
+ favorite?: boolean | null;
+ /**
+ * Select reports viewed recently.
+ */
+ recent?: boolean | null;
+ /**
+ * Match report id.
+ */
+ id?: string | null;
+ /**
+ * Match report title.
+ */
+ title?: string | null;
+ /**
+ * One or more fields to sort results by.
+ */
+ sorts?: string | null;
+ /**
+ * Number of results to return.(used with next_page_token)
+ */
+ limit?: number | null;
+ /**
+ * Comma delimited list of field names. If provided, only the fields specified will be included in the response.
+ */
+ fields?: string | null;
+ /**
+ * Contains a token that can be used to return up to Number of results to return.(used with next_page_token) additional results. A next_page_token will not be returned if there are no additional results to display.
+ */
+ next_page_token?: string | null;
+}
+
/**
* Dynamically generated request type for search_roles
*/
@@ -10992,9 +11166,9 @@ export interface ISetting {
*/
dashboard_auto_refresh_minimum_interval?: string | null;
/**
- * URI pointing to the location of a private root certificate in Secret Manager
+ * Array of URIs pointing to the location of a root certificate in Secret Manager
*/
- managed_certificate_uri?: string | null;
+ managed_certificate_uri?: string[] | null;
}
export interface ISmtpNodeStatus {
@@ -11770,6 +11944,10 @@ export interface IUser {
* (Embed only) ID of user's group folder based on the external_group_id optionally specified during embed user login (read-only)
*/
embed_group_folder_id?: string | null;
+ /**
+ * User is an IAM Admin - only available in Looker (Google Cloud core) (read-only)
+ */
+ is_iam_admin?: boolean;
/**
* Link to get this item (read-only)
*/
@@ -12900,7 +13078,7 @@ export interface IWriteDatagroup {
/**
* Dynamic writeable type for DBConnection removes:
- * can, dialect, snippets, pdts_enabled, uses_oauth, uses_instance_oauth, supports_data_studio_link, created_at, user_id, example, last_regen_at, last_reap_at, managed, default_bq_connection, p4sa_name
+ * can, dialect, snippets, pdts_enabled, named_driver_version_actual, uses_oauth, uses_instance_oauth, supports_data_studio_link, created_at, user_id, example, last_regen_at, last_reap_at, managed, default_bq_connection, p4sa_name
*/
export interface IWriteDBConnection {
/**
@@ -12908,9 +13086,9 @@ export interface IWriteDBConnection {
*/
name?: string;
/**
- * JDBC driver version name
+ * Requested JDBC driver version name
*/
- named_driver_version?: string | null;
+ named_driver_version_requested?: string | null;
/**
* Host name/address of server; or the string 'localhost' in case of a connection over an SSH tunnel.
*/
@@ -13099,42 +13277,82 @@ export interface IWriteDBConnectionOverride {
* Host name/address of server
*/
host?: string | null;
+ /**
+ * Host name/address of server (same as host)
+ */
+ pdt_host?: string | null;
/**
* Port number on server
*/
port?: string | null;
+ /**
+ * Port number on server (same as port)
+ */
+ pdt_port?: string | null;
/**
* Username for server authentication
*/
username?: string | null;
+ /**
+ * Username for server authentication (same as username)
+ */
+ pdt_username?: string | null;
/**
* (Write-Only) Password for server authentication
*/
password?: string | null;
+ /**
+ * (Write-Only) Password for server authentication (same as password)
+ */
+ pdt_password?: string | null;
/**
* (Write-Only) Base64 encoded Certificate body for server authentication (when appropriate for dialect).
*/
certificate?: string | null;
+ /**
+ * (Write-Only) Base64 encoded Certificate body for server authentication (when appropriate for dialect) (same as certificate).
+ */
+ pdt_certificate?: string | null;
/**
* (Write-Only) Certificate keyfile type - .json or .p12
*/
file_type?: string | null;
+ /**
+ * (Write-Only) Certificate keyfile type - .json or .p12 (same as file_type)
+ */
+ pdt_file_type?: string | null;
/**
* Database name
*/
database?: string | null;
+ /**
+ * Database name (same as database)
+ */
+ pdt_database?: string | null;
/**
* Schema name
*/
schema?: string | null;
+ /**
+ * Schema name (same as schema)
+ */
+ pdt_schema?: string | null;
/**
* Additional params to add to JDBC connection string
*/
jdbc_additional_params?: string | null;
+ /**
+ * Additional params to add to JDBC connection string (same as jdbc_additional_params)
+ */
+ pdt_jdbc_additional_params?: string | null;
/**
* SQL statements (semicolon separated) to issue after connecting to the database. Requires `custom_after_connect_statements` license feature
*/
after_connect_statements?: string | null;
+ /**
+ * SQL statements (semicolon separated) to issue after connecting to the database. Requires `custom_after_connect_statements` license feature (same as after_connect_statements)
+ */
+ pdt_after_connect_statements?: string | null;
}
/**
@@ -14419,9 +14637,9 @@ export interface IWriteSetting {
*/
dashboard_auto_refresh_minimum_interval?: string | null;
/**
- * URI pointing to the location of a private root certificate in Secret Manager
+ * Array of URIs pointing to the location of a root certificate in Secret Manager
*/
- managed_certificate_uri?: string | null;
+ managed_certificate_uri?: string[] | null;
}
/**
@@ -14507,7 +14725,7 @@ export interface IWriteTheme {
/**
* Dynamic writeable type for User removes:
- * can, avatar_url, avatar_url_without_sizing, credentials_api3, credentials_embed, credentials_google, credentials_ldap, credentials_looker_openid, credentials_oidc, credentials_saml, credentials_totp, display_name, email, embed_group_space_id, group_ids, id, looker_versions, personal_folder_id, presumed_looker_employee, role_ids, sessions, verified_looker_employee, roles_externally_managed, allow_direct_roles, allow_normal_group_membership, allow_roles_from_normal_groups, embed_group_folder_id, url
+ * can, avatar_url, avatar_url_without_sizing, credentials_api3, credentials_embed, credentials_google, credentials_ldap, credentials_looker_openid, credentials_oidc, credentials_saml, credentials_totp, display_name, email, embed_group_space_id, group_ids, id, looker_versions, personal_folder_id, presumed_looker_employee, role_ids, sessions, verified_looker_employee, roles_externally_managed, allow_direct_roles, allow_normal_group_membership, allow_roles_from_normal_groups, embed_group_folder_id, is_iam_admin, url
*/
export interface IWriteUser {
/**
diff --git a/packages/sdk/src/4.0/streams.ts b/packages/sdk/src/4.0/streams.ts
index ed977b187..0ba31f1b4 100644
--- a/packages/sdk/src/4.0/streams.ts
+++ b/packages/sdk/src/4.0/streams.ts
@@ -25,7 +25,7 @@
*/
/**
- * 467 API methods
+ * 469 API methods
*/
import type {
@@ -159,6 +159,7 @@ import type {
IQuery,
IQueryTask,
IRenderTask,
+ IReport,
IRepositoryCredential,
IRequestActiveThemes,
IRequestAlertNotifications,
@@ -219,6 +220,7 @@ import type {
IRequestSearchLooks,
IRequestSearchModelSets,
IRequestSearchPermissionSets,
+ IRequestSearchReports,
IRequestSearchRoles,
IRequestSearchRolesWithUserCount,
IRequestSearchScheduledPlans,
@@ -966,6 +968,7 @@ export class Looker40SDKStream extends APIMethods {
max_size: request.max_size,
limit: request.limit,
offset: request.offset,
+ tally: request.tally,
},
null,
options
@@ -1001,6 +1004,7 @@ export class Looker40SDKStream extends APIMethods {
fields: request.fields,
limit: request.limit,
offset: request.offset,
+ tally: request.tally,
},
null,
options
@@ -11008,6 +11012,68 @@ export class Looker40SDKStream extends APIMethods {
//#endregion RenderTask: Manage Render Tasks
+ //#region Report: Report
+
+ /**
+ * ### Search Reports
+ *
+ * Returns an **array of Report objects** that match the specified search criteria.
+ *
+ * If multiple search params are given and `filter_or` is FALSE or not specified,
+ * search params are combined in a logical AND operation.
+ * Only rows that match *all* search param criteria will be returned.
+ *
+ * If `filter_or` is TRUE, multiple search params are combined in a logical OR operation.
+ * Results will include rows that match **any** of the search criteria.
+ *
+ * String search params use case-insensitive matching.
+ * String search params can contain `%` and '_' as SQL LIKE pattern match wildcard expressions.
+ * example="dan%" will match "danger" and "Danzig" but not "David"
+ * example="D_m%" will match "Damage" and "dump"
+ *
+ * Integer search params can accept a single value or a comma separated list of values. The multiple
+ * values will be combined under a logical OR operation - results will match at least one of
+ * the given values.
+ *
+ * Most search params can accept "IS NULL" and "NOT NULL" as special expressions to match
+ * or exclude (respectively) rows where the column is null.
+ *
+ * Boolean search params accept only "true" and "false" as values.
+ *
+ * GET /reports/search -> IReport[]
+ *
+ * @param callback streaming output function
+ * @param request composed interface "IRequestSearchReports" for complex method parameters
+ * @param options one-time API call overrides
+ *
+ */
+ async search_reports(
+ callback: (response: Response) => Promise,
+ request: IRequestSearchReports,
+ options?: Partial
+ ) {
+ return this.authStream(
+ callback,
+ 'GET',
+ '/reports/search',
+ {
+ folder_id: request.folder_id,
+ favorite: request.favorite,
+ recent: request.recent,
+ id: request.id,
+ title: request.title,
+ sorts: request.sorts,
+ limit: request.limit,
+ fields: request.fields,
+ next_page_token: request.next_page_token,
+ },
+ null,
+ options
+ );
+ }
+
+ //#endregion Report: Report
+
//#region Role: Manage Roles
/**
diff --git a/packages/sdk/src/constants.ts b/packages/sdk/src/constants.ts
index 310bc38f3..a8b2fe28e 100644
--- a/packages/sdk/src/constants.ts
+++ b/packages/sdk/src/constants.ts
@@ -24,5 +24,5 @@
*/
-export const sdkVersion = '25.2';
+export const sdkVersion = '25.4';
export const environmentPrefix = 'LOOKERSDK';
diff --git a/python/looker_sdk/sdk/api40/methods.py b/python/looker_sdk/sdk/api40/methods.py
index c1356fa83..d902c432c 100644
--- a/python/looker_sdk/sdk/api40/methods.py
+++ b/python/looker_sdk/sdk/api40/methods.py
@@ -21,7 +21,7 @@
# SOFTWARE.
#
-# 467 API methods
+# 469 API methods
# NOTE: Do not edit this file generated by Looker SDK Codegen for API 4.0
@@ -602,6 +602,8 @@ def search_artifacts(
limit: Optional[int] = None,
# Number of results to skip before returning any. (used with limit)
offset: Optional[int] = None,
+ # Return the full count of results in the X-Total-Count response header. (Slight performance hit.)
+ tally: Optional[bool] = None,
transport_options: Optional[transport.TransportOptions] = None,
) -> Sequence[mdls.Artifact]:
"""Search artifacts"""
@@ -619,6 +621,7 @@ def search_artifacts(
"max_size": max_size,
"limit": limit,
"offset": offset,
+ "tally": tally,
},
transport_options=transport_options,
),
@@ -644,6 +647,8 @@ def artifact(
limit: Optional[int] = None,
# Number of results to skip before returning any. (used with limit)
offset: Optional[int] = None,
+ # Return the full count of results in the X-Total-Count response header. (Slight performance hit.)
+ tally: Optional[bool] = None,
transport_options: Optional[transport.TransportOptions] = None,
) -> Sequence[mdls.Artifact]:
"""Get one or more artifacts"""
@@ -658,6 +663,7 @@ def artifact(
"fields": fields,
"limit": limit,
"offset": offset,
+ "tally": tally,
},
transport_options=transport_options,
),
@@ -9831,6 +9837,80 @@ def create_dashboard_element_render_task(
# endregion
+ # region Report: Report
+
+ # ### Search Reports
+ #
+ # Returns an **array of Report objects** that match the specified search criteria.
+ #
+ # If multiple search params are given and `filter_or` is FALSE or not specified,
+ # search params are combined in a logical AND operation.
+ # Only rows that match *all* search param criteria will be returned.
+ #
+ # If `filter_or` is TRUE, multiple search params are combined in a logical OR operation.
+ # Results will include rows that match **any** of the search criteria.
+ #
+ # String search params use case-insensitive matching.
+ # String search params can contain `%` and '_' as SQL LIKE pattern match wildcard expressions.
+ # example="dan%" will match "danger" and "Danzig" but not "David"
+ # example="D_m%" will match "Damage" and "dump"
+ #
+ # Integer search params can accept a single value or a comma separated list of values. The multiple
+ # values will be combined under a logical OR operation - results will match at least one of
+ # the given values.
+ #
+ # Most search params can accept "IS NULL" and "NOT NULL" as special expressions to match
+ # or exclude (respectively) rows where the column is null.
+ #
+ # Boolean search params accept only "true" and "false" as values.
+ #
+ # GET /reports/search -> Sequence[mdls.Report]
+ def search_reports(
+ self,
+ # Select reports in a particular folder.
+ folder_id: Optional[str] = None,
+ # Select favorite reports.
+ favorite: Optional[bool] = None,
+ # Select reports viewed recently.
+ recent: Optional[bool] = None,
+ # Match report id.
+ id: Optional[str] = None,
+ # Match report title.
+ title: Optional[str] = None,
+ # One or more fields to sort results by.
+ sorts: Optional[str] = None,
+ # Number of results to return.(used with next_page_token)
+ limit: Optional[int] = None,
+ # Comma delimited list of field names. If provided, only the fields specified will be included in the response.
+ fields: Optional[str] = None,
+ # Contains a token that can be used to return up to Number of results to return.(used with next_page_token) additional results. A next_page_token will not be returned if there are no additional results to display.
+ next_page_token: Optional[str] = None,
+ transport_options: Optional[transport.TransportOptions] = None,
+ ) -> Sequence[mdls.Report]:
+ """Search Reports"""
+ response = cast(
+ Sequence[mdls.Report],
+ self.get(
+ path="/reports/search",
+ structure=Sequence[mdls.Report],
+ query_params={
+ "folder_id": folder_id,
+ "favorite": favorite,
+ "recent": recent,
+ "id": id,
+ "title": title,
+ "sorts": sorts,
+ "limit": limit,
+ "fields": fields,
+ "next_page_token": next_page_token,
+ },
+ transport_options=transport_options,
+ ),
+ )
+ return response
+
+ # endregion
+
# region Role: Manage Roles
# ### Search model sets
diff --git a/python/looker_sdk/sdk/api40/models.py b/python/looker_sdk/sdk/api40/models.py
index f689626cf..6bd7ef1ed 100644
--- a/python/looker_sdk/sdk/api40/models.py
+++ b/python/looker_sdk/sdk/api40/models.py
@@ -21,7 +21,7 @@
# SOFTWARE.
#
-# 343 API models: 259 Spec, 0 Request, 62 Write, 22 Enum
+# 344 API models: 260 Spec, 0 Request, 62 Write, 22 Enum
# NOTE: Do not edit this file generated by Looker SDK Codegen for API 4.0
@@ -3685,7 +3685,8 @@ class DBConnection(model.Model):
dialect:
snippets: SQL Runner snippets for this connection
pdts_enabled: True if PDTs are enabled on this connection
- named_driver_version: JDBC driver version name
+ named_driver_version_requested: Requested JDBC driver version name
+ named_driver_version_actual: Resolved JDBC driver version
host: Host name/address of server; or the string 'localhost' in case of a connection over an SSH tunnel.
port: Port number on server. If the connection is over an SSH tunnel, then the local port associated with the SSH tunnel.
username: Username for server authentication
@@ -3747,7 +3748,8 @@ class DBConnection(model.Model):
dialect: Optional["Dialect"] = None
snippets: Optional[Sequence["Snippet"]] = None
pdts_enabled: Optional[bool] = None
- named_driver_version: Optional[str] = None
+ named_driver_version_requested: Optional[str] = None
+ named_driver_version_actual: Optional[str] = None
host: Optional[str] = None
port: Optional[str] = None
username: Optional[str] = None
@@ -3811,7 +3813,8 @@ def __init__(
dialect: Optional["Dialect"] = None,
snippets: Optional[Sequence["Snippet"]] = None,
pdts_enabled: Optional[bool] = None,
- named_driver_version: Optional[str] = None,
+ named_driver_version_requested: Optional[str] = None,
+ named_driver_version_actual: Optional[str] = None,
host: Optional[str] = None,
port: Optional[str] = None,
username: Optional[str] = None,
@@ -3872,7 +3875,8 @@ def __init__(
self.dialect = dialect
self.snippets = snippets
self.pdts_enabled = pdts_enabled
- self.named_driver_version = named_driver_version
+ self.named_driver_version_requested = named_driver_version_requested
+ self.named_driver_version_actual = named_driver_version_actual
self.host = host
self.port = port
self.username = username
@@ -3968,59 +3972,99 @@ class DBConnectionOverride(model.Model):
Attributes:
context: Context in which to override (`pdt` is the only allowed value)
host: Host name/address of server
+ pdt_host: Host name/address of server (same as host)
port: Port number on server
+ pdt_port: Port number on server (same as port)
username: Username for server authentication
+ pdt_username: Username for server authentication (same as username)
password: (Write-Only) Password for server authentication
+ pdt_password: (Write-Only) Password for server authentication (same as password)
has_password: Whether or not the password is overridden in this context
certificate: (Write-Only) Base64 encoded Certificate body for server authentication (when appropriate for dialect).
+ pdt_certificate: (Write-Only) Base64 encoded Certificate body for server authentication (when appropriate for dialect) (same as certificate).
file_type: (Write-Only) Certificate keyfile type - .json or .p12
+ pdt_file_type: (Write-Only) Certificate keyfile type - .json or .p12 (same as file_type)
database: Database name
+ pdt_database: Database name (same as database)
schema: Schema name
+ pdt_schema: Schema name (same as schema)
jdbc_additional_params: Additional params to add to JDBC connection string
+ pdt_jdbc_additional_params: Additional params to add to JDBC connection string (same as jdbc_additional_params)
after_connect_statements: SQL statements (semicolon separated) to issue after connecting to the database. Requires `custom_after_connect_statements` license feature
+ pdt_after_connect_statements: SQL statements (semicolon separated) to issue after connecting to the database. Requires `custom_after_connect_statements` license feature (same as after_connect_statements)
"""
context: Optional[str] = None
host: Optional[str] = None
+ pdt_host: Optional[str] = None
port: Optional[str] = None
+ pdt_port: Optional[str] = None
username: Optional[str] = None
+ pdt_username: Optional[str] = None
password: Optional[str] = None
+ pdt_password: Optional[str] = None
has_password: Optional[bool] = None
certificate: Optional[str] = None
+ pdt_certificate: Optional[str] = None
file_type: Optional[str] = None
+ pdt_file_type: Optional[str] = None
database: Optional[str] = None
+ pdt_database: Optional[str] = None
schema: Optional[str] = None
+ pdt_schema: Optional[str] = None
jdbc_additional_params: Optional[str] = None
+ pdt_jdbc_additional_params: Optional[str] = None
after_connect_statements: Optional[str] = None
+ pdt_after_connect_statements: Optional[str] = None
def __init__(
self,
*,
context: Optional[str] = None,
host: Optional[str] = None,
+ pdt_host: Optional[str] = None,
port: Optional[str] = None,
+ pdt_port: Optional[str] = None,
username: Optional[str] = None,
+ pdt_username: Optional[str] = None,
password: Optional[str] = None,
+ pdt_password: Optional[str] = None,
has_password: Optional[bool] = None,
certificate: Optional[str] = None,
+ pdt_certificate: Optional[str] = None,
file_type: Optional[str] = None,
+ pdt_file_type: Optional[str] = None,
database: Optional[str] = None,
+ pdt_database: Optional[str] = None,
schema: Optional[str] = None,
+ pdt_schema: Optional[str] = None,
jdbc_additional_params: Optional[str] = None,
- after_connect_statements: Optional[str] = None
+ pdt_jdbc_additional_params: Optional[str] = None,
+ after_connect_statements: Optional[str] = None,
+ pdt_after_connect_statements: Optional[str] = None
):
self.context = context
self.host = host
+ self.pdt_host = pdt_host
self.port = port
+ self.pdt_port = pdt_port
self.username = username
+ self.pdt_username = pdt_username
self.password = password
+ self.pdt_password = pdt_password
self.has_password = has_password
self.certificate = certificate
+ self.pdt_certificate = pdt_certificate
self.file_type = file_type
+ self.pdt_file_type = pdt_file_type
self.database = database
+ self.pdt_database = pdt_database
self.schema = schema
+ self.pdt_schema = pdt_schema
self.jdbc_additional_params = jdbc_additional_params
+ self.pdt_jdbc_additional_params = pdt_jdbc_additional_params
self.after_connect_statements = after_connect_statements
+ self.pdt_after_connect_statements = pdt_after_connect_statements
@attr.s(auto_attribs=True, init=False)
@@ -4228,6 +4272,8 @@ class DialectInfo(model.Model):
label_for_database_equivalent: What the dialect calls the equivalent of a normal SQL table
label_for_schema_equivalent: What the dialect calls the equivalent of a schema-level namespace
name: The name of the dialect
+ supported_driver_name: The name of the driver used for this dialect
+ supported_driver_versions: Array of supported drivers for a given dialect
supported_options:
"""
@@ -4239,6 +4285,8 @@ class DialectInfo(model.Model):
label_for_database_equivalent: Optional[str] = None
label_for_schema_equivalent: Optional[str] = None
name: Optional[str] = None
+ supported_driver_name: Optional[str] = None
+ supported_driver_versions: Optional[Sequence[str]] = None
supported_options: Optional["DialectInfoOptions"] = None
def __init__(
@@ -4252,6 +4300,8 @@ def __init__(
label_for_database_equivalent: Optional[str] = None,
label_for_schema_equivalent: Optional[str] = None,
name: Optional[str] = None,
+ supported_driver_name: Optional[str] = None,
+ supported_driver_versions: Optional[Sequence[str]] = None,
supported_options: Optional["DialectInfoOptions"] = None
):
self.can = can
@@ -4262,6 +4312,8 @@ def __init__(
self.label_for_database_equivalent = label_for_database_equivalent
self.label_for_schema_equivalent = label_for_schema_equivalent
self.name = name
+ self.supported_driver_name = supported_driver_name
+ self.supported_driver_versions = supported_driver_versions
self.supported_options = supported_options
@@ -9778,6 +9830,91 @@ def __init__(
self.width = width
+@attr.s(auto_attribs=True, init=False)
+class Report(model.Model):
+ """
+ Attributes:
+ can: Operations the current user is able to perform on this object
+ id: ID of the report
+ title: Title of the report
+ user_id: User Id of the owner of the report
+ created_at: Created at
+ updated_at: Modified at
+ last_viewed_at: Last viewed at
+ favorite: Is favorite report
+ favorite_count: Favorite count
+ view_count: View count
+ folder:
+ folder_id: Id of the folder where the report is stored
+ url: Relative URL of the report
+ user_name: Name of User that created the Studio Report.
+ deleted_at: Deleted at
+ last_accessed_at: Last Accessed at
+ deleter_user_id: User Id of the deleter of the report
+ deleter_user_name: Name of User that deleted the Report.
+ """
+
+ can: Optional[MutableMapping[str, bool]] = None
+ id: Optional[str] = None
+ title: Optional[str] = None
+ user_id: Optional[str] = None
+ created_at: Optional[datetime.datetime] = None
+ updated_at: Optional[datetime.datetime] = None
+ last_viewed_at: Optional[datetime.datetime] = None
+ favorite: Optional[bool] = None
+ favorite_count: Optional[int] = None
+ view_count: Optional[int] = None
+ folder: Optional["FolderBase"] = None
+ folder_id: Optional[str] = None
+ url: Optional[str] = None
+ user_name: Optional[str] = None
+ deleted_at: Optional[datetime.datetime] = None
+ last_accessed_at: Optional[datetime.datetime] = None
+ deleter_user_id: Optional[str] = None
+ deleter_user_name: Optional[str] = None
+
+ def __init__(
+ self,
+ *,
+ can: Optional[MutableMapping[str, bool]] = None,
+ id: Optional[str] = None,
+ title: Optional[str] = None,
+ user_id: Optional[str] = None,
+ created_at: Optional[datetime.datetime] = None,
+ updated_at: Optional[datetime.datetime] = None,
+ last_viewed_at: Optional[datetime.datetime] = None,
+ favorite: Optional[bool] = None,
+ favorite_count: Optional[int] = None,
+ view_count: Optional[int] = None,
+ folder: Optional["FolderBase"] = None,
+ folder_id: Optional[str] = None,
+ url: Optional[str] = None,
+ user_name: Optional[str] = None,
+ deleted_at: Optional[datetime.datetime] = None,
+ last_accessed_at: Optional[datetime.datetime] = None,
+ deleter_user_id: Optional[str] = None,
+ deleter_user_name: Optional[str] = None
+ ):
+ self.can = can
+ self.id = id
+ self.title = title
+ self.user_id = user_id
+ self.created_at = created_at
+ self.updated_at = updated_at
+ self.last_viewed_at = last_viewed_at
+ self.favorite = favorite
+ self.favorite_count = favorite_count
+ self.view_count = view_count
+ self.folder = folder
+ self.folder_id = folder_id
+ self.url = url
+ self.user_name = user_name
+ self.deleted_at = deleted_at
+ self.last_accessed_at = last_accessed_at
+ self.deleter_user_id = deleter_user_id
+ self.deleter_user_name = deleter_user_name
+
+
@attr.s(auto_attribs=True, init=False)
class RepositoryCredential(model.Model):
"""
@@ -11000,7 +11137,7 @@ class Setting(model.Model):
login_notification_text: Login notification text
dashboard_auto_refresh_restriction: Toggle Dashboard Auto Refresh restriction
dashboard_auto_refresh_minimum_interval: Minimum time interval for dashboard element automatic refresh. Examples: (30 seconds, 1 minute)
- managed_certificate_uri: URI pointing to the location of a private root certificate in Secret Manager
+ managed_certificate_uri: Array of URIs pointing to the location of a root certificate in Secret Manager
"""
instance_config: Optional["InstanceConfig"] = None
@@ -11027,7 +11164,7 @@ class Setting(model.Model):
login_notification_text: Optional[str] = None
dashboard_auto_refresh_restriction: Optional[bool] = None
dashboard_auto_refresh_minimum_interval: Optional[str] = None
- managed_certificate_uri: Optional[str] = None
+ managed_certificate_uri: Optional[Sequence[str]] = None
def __init__(
self,
@@ -11056,7 +11193,7 @@ def __init__(
login_notification_text: Optional[str] = None,
dashboard_auto_refresh_restriction: Optional[bool] = None,
dashboard_auto_refresh_minimum_interval: Optional[str] = None,
- managed_certificate_uri: Optional[str] = None
+ managed_certificate_uri: Optional[Sequence[str]] = None
):
self.instance_config = instance_config
self.extension_framework_enabled = extension_framework_enabled
@@ -12020,6 +12157,7 @@ class User(model.Model):
allow_normal_group_membership: User can be a direct member of a normal Looker group.
allow_roles_from_normal_groups: User can inherit roles from a normal Looker group.
embed_group_folder_id: (Embed only) ID of user's group folder based on the external_group_id optionally specified during embed user login
+ is_iam_admin: User is an IAM Admin - only available in Looker (Google Cloud core)
url: Link to get this item
"""
@@ -12058,6 +12196,7 @@ class User(model.Model):
allow_normal_group_membership: Optional[bool] = None
allow_roles_from_normal_groups: Optional[bool] = None
embed_group_folder_id: Optional[str] = None
+ is_iam_admin: Optional[bool] = None
url: Optional[str] = None
def __init__(
@@ -12098,6 +12237,7 @@ def __init__(
allow_normal_group_membership: Optional[bool] = None,
allow_roles_from_normal_groups: Optional[bool] = None,
embed_group_folder_id: Optional[str] = None,
+ is_iam_admin: Optional[bool] = None,
url: Optional[str] = None
):
self.can = can
@@ -12135,6 +12275,7 @@ def __init__(
self.allow_normal_group_membership = allow_normal_group_membership
self.allow_roles_from_normal_groups = allow_roles_from_normal_groups
self.embed_group_folder_id = embed_group_folder_id
+ self.is_iam_admin = is_iam_admin
self.url = url
@@ -13592,11 +13733,11 @@ def __init__(
class WriteDBConnection(model.Model):
"""
Dynamic writeable type for DBConnection removes:
- can, dialect, snippets, pdts_enabled, uses_oauth, uses_instance_oauth, supports_data_studio_link, created_at, user_id, example, last_regen_at, last_reap_at, managed, default_bq_connection, p4sa_name
+ can, dialect, snippets, pdts_enabled, named_driver_version_actual, uses_oauth, uses_instance_oauth, supports_data_studio_link, created_at, user_id, example, last_regen_at, last_reap_at, managed, default_bq_connection, p4sa_name
Attributes:
name: Name of the connection. Also used as the unique identifier
- named_driver_version: JDBC driver version name
+ named_driver_version_requested: Requested JDBC driver version name
host: Host name/address of server; or the string 'localhost' in case of a connection over an SSH tunnel.
port: Port number on server. If the connection is over an SSH tunnel, then the local port associated with the SSH tunnel.
username: Username for server authentication
@@ -13644,7 +13785,7 @@ class WriteDBConnection(model.Model):
"""
name: Optional[str] = None
- named_driver_version: Optional[str] = None
+ named_driver_version_requested: Optional[str] = None
host: Optional[str] = None
port: Optional[str] = None
username: Optional[str] = None
@@ -13693,7 +13834,7 @@ def __init__(
self,
*,
name: Optional[str] = None,
- named_driver_version: Optional[str] = None,
+ named_driver_version_requested: Optional[str] = None,
host: Optional[str] = None,
port: Optional[str] = None,
username: Optional[str] = None,
@@ -13739,7 +13880,7 @@ def __init__(
query_holding_disabled: Optional[bool] = None
):
self.name = name
- self.named_driver_version = named_driver_version
+ self.named_driver_version_requested = named_driver_version_requested
self.host = host
self.port = port
self.username = username
@@ -13794,55 +13935,95 @@ class WriteDBConnectionOverride(model.Model):
Attributes:
context: Context in which to override (`pdt` is the only allowed value)
host: Host name/address of server
+ pdt_host: Host name/address of server (same as host)
port: Port number on server
+ pdt_port: Port number on server (same as port)
username: Username for server authentication
+ pdt_username: Username for server authentication (same as username)
password: (Write-Only) Password for server authentication
+ pdt_password: (Write-Only) Password for server authentication (same as password)
certificate: (Write-Only) Base64 encoded Certificate body for server authentication (when appropriate for dialect).
+ pdt_certificate: (Write-Only) Base64 encoded Certificate body for server authentication (when appropriate for dialect) (same as certificate).
file_type: (Write-Only) Certificate keyfile type - .json or .p12
+ pdt_file_type: (Write-Only) Certificate keyfile type - .json or .p12 (same as file_type)
database: Database name
+ pdt_database: Database name (same as database)
schema: Schema name
+ pdt_schema: Schema name (same as schema)
jdbc_additional_params: Additional params to add to JDBC connection string
+ pdt_jdbc_additional_params: Additional params to add to JDBC connection string (same as jdbc_additional_params)
after_connect_statements: SQL statements (semicolon separated) to issue after connecting to the database. Requires `custom_after_connect_statements` license feature
+ pdt_after_connect_statements: SQL statements (semicolon separated) to issue after connecting to the database. Requires `custom_after_connect_statements` license feature (same as after_connect_statements)
"""
context: Optional[str] = None
host: Optional[str] = None
+ pdt_host: Optional[str] = None
port: Optional[str] = None
+ pdt_port: Optional[str] = None
username: Optional[str] = None
+ pdt_username: Optional[str] = None
password: Optional[str] = None
+ pdt_password: Optional[str] = None
certificate: Optional[str] = None
+ pdt_certificate: Optional[str] = None
file_type: Optional[str] = None
+ pdt_file_type: Optional[str] = None
database: Optional[str] = None
+ pdt_database: Optional[str] = None
schema: Optional[str] = None
+ pdt_schema: Optional[str] = None
jdbc_additional_params: Optional[str] = None
+ pdt_jdbc_additional_params: Optional[str] = None
after_connect_statements: Optional[str] = None
+ pdt_after_connect_statements: Optional[str] = None
def __init__(
self,
*,
context: Optional[str] = None,
host: Optional[str] = None,
+ pdt_host: Optional[str] = None,
port: Optional[str] = None,
+ pdt_port: Optional[str] = None,
username: Optional[str] = None,
+ pdt_username: Optional[str] = None,
password: Optional[str] = None,
+ pdt_password: Optional[str] = None,
certificate: Optional[str] = None,
+ pdt_certificate: Optional[str] = None,
file_type: Optional[str] = None,
+ pdt_file_type: Optional[str] = None,
database: Optional[str] = None,
+ pdt_database: Optional[str] = None,
schema: Optional[str] = None,
+ pdt_schema: Optional[str] = None,
jdbc_additional_params: Optional[str] = None,
- after_connect_statements: Optional[str] = None
+ pdt_jdbc_additional_params: Optional[str] = None,
+ after_connect_statements: Optional[str] = None,
+ pdt_after_connect_statements: Optional[str] = None
):
self.context = context
self.host = host
+ self.pdt_host = pdt_host
self.port = port
+ self.pdt_port = pdt_port
self.username = username
+ self.pdt_username = pdt_username
self.password = password
+ self.pdt_password = pdt_password
self.certificate = certificate
+ self.pdt_certificate = pdt_certificate
self.file_type = file_type
+ self.pdt_file_type = pdt_file_type
self.database = database
+ self.pdt_database = pdt_database
self.schema = schema
+ self.pdt_schema = pdt_schema
self.jdbc_additional_params = jdbc_additional_params
+ self.pdt_jdbc_additional_params = pdt_jdbc_additional_params
self.after_connect_statements = after_connect_statements
+ self.pdt_after_connect_statements = pdt_after_connect_statements
@attr.s(auto_attribs=True, init=False)
@@ -15325,7 +15506,7 @@ class WriteSetting(model.Model):
embed_enabled
dashboard_auto_refresh_restriction: Toggle Dashboard Auto Refresh restriction
dashboard_auto_refresh_minimum_interval: Minimum time interval for dashboard element automatic refresh. Examples: (30 seconds, 1 minute)
- managed_certificate_uri: URI pointing to the location of a private root certificate in Secret Manager
+ managed_certificate_uri: Array of URIs pointing to the location of a root certificate in Secret Manager
"""
extension_framework_enabled: Optional[bool] = None
@@ -15347,7 +15528,7 @@ class WriteSetting(model.Model):
embed_config: Optional["WriteEmbedConfig"] = None
dashboard_auto_refresh_restriction: Optional[bool] = None
dashboard_auto_refresh_minimum_interval: Optional[str] = None
- managed_certificate_uri: Optional[str] = None
+ managed_certificate_uri: Optional[Sequence[str]] = None
def __init__(
self,
@@ -15371,7 +15552,7 @@ def __init__(
embed_config: Optional["WriteEmbedConfig"] = None,
dashboard_auto_refresh_restriction: Optional[bool] = None,
dashboard_auto_refresh_minimum_interval: Optional[str] = None,
- managed_certificate_uri: Optional[str] = None
+ managed_certificate_uri: Optional[Sequence[str]] = None
):
self.extension_framework_enabled = extension_framework_enabled
self.extension_load_url_enabled = extension_load_url_enabled
@@ -15516,7 +15697,7 @@ def __init__(
class WriteUser(model.Model):
"""
Dynamic writeable type for User removes:
- can, avatar_url, avatar_url_without_sizing, credentials_api3, credentials_embed, credentials_google, credentials_ldap, credentials_looker_openid, credentials_oidc, credentials_saml, credentials_totp, display_name, email, embed_group_space_id, group_ids, id, looker_versions, personal_folder_id, presumed_looker_employee, role_ids, sessions, verified_looker_employee, roles_externally_managed, allow_direct_roles, allow_normal_group_membership, allow_roles_from_normal_groups, embed_group_folder_id, url
+ can, avatar_url, avatar_url_without_sizing, credentials_api3, credentials_embed, credentials_google, credentials_ldap, credentials_looker_openid, credentials_oidc, credentials_saml, credentials_totp, display_name, email, embed_group_space_id, group_ids, id, looker_versions, personal_folder_id, presumed_looker_employee, role_ids, sessions, verified_looker_employee, roles_externally_managed, allow_direct_roles, allow_normal_group_membership, allow_roles_from_normal_groups, embed_group_folder_id, is_iam_admin, url
Attributes:
credentials_email: Dynamic writeable type for CredentialsEmail removes:
diff --git a/python/looker_sdk/sdk/constants.py b/python/looker_sdk/sdk/constants.py
index ee6207c4f..7b14005a6 100644
--- a/python/looker_sdk/sdk/constants.py
+++ b/python/looker_sdk/sdk/constants.py
@@ -20,5 +20,5 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
-sdk_version = "25.2"
+sdk_version = "25.4"
environment_prefix = "LOOKERSDK"
diff --git a/spec/Looker.4.0.json b/spec/Looker.4.0.json
index 33f6e3012..c301e49f2 100644
--- a/spec/Looker.4.0.json
+++ b/spec/Looker.4.0.json
@@ -1,8 +1,8 @@
{
"swagger": "2.0",
"info": {
- "version": "4.0.25.2",
- "x-looker-release-version": "25.2.0",
+ "version": "4.0.25.4",
+ "x-looker-release-version": "25.4.7",
"title": "Looker API 4.0 Reference",
"description": "\nAPI 4.0 is the current release of the Looker API. API 3.x has been removed.\n\n### Authorization\n\nThe classic method of API authorization uses Looker **API** credentials for authorization and access control.\nLooker admins can create API credentials on Looker's **Admin/Users** page.\n\nAPI 4.0 adds additional ways to authenticate API requests, including OAuth and CORS requests.\n\nFor details, see [Looker API Authorization](https://cloud.google.com/looker/docs/r/api/authorization).\n\n\n### API Explorer\n\nThe API Explorer is a Looker-provided utility with many new and unique features for learning and using the Looker API and SDKs.\n\nFor details, see the [API Explorer documentation](https://cloud.google.com/looker/docs/r/api/explorer).\n\n\n### Looker Language SDKs\n\nThe Looker API is a RESTful system that should be usable by any programming language capable of making\nHTTPS requests. SDKs for a variety of programming languages are also provided to streamline using the API. Looker\nhas an OpenSource [sdk-codegen project](https://github.com/looker-open-source/sdk-codegen) that provides several\nlanguage SDKs. Language SDKs generated by `sdk-codegen` have an Authentication manager that can automatically\nauthenticate API requests when needed.\n\nFor details on available Looker SDKs, see [Looker API Client SDKs](https://cloud.google.com/looker/docs/r/api/client_sdks).\n\n\n### API Versioning\n\nFuture releases of Looker expand the latest API version release-by-release to securely expose more and more of the core\npower of the Looker platform to API client applications. API endpoints marked as \"beta\" may receive breaking changes without\nwarning (but we will try to avoid doing that). Stable (non-beta) API endpoints should not receive breaking\nchanges in future releases.\n\nFor details, see [Looker API Versioning](https://cloud.google.com/looker/docs/r/api/versioning).\n\n\n### In This Release\n\nAPI 4.0 is the only supported API version for Looker starting with release 23.18. API 3.0 and 3.1 have been removed.\n\nAPI 4.0 has better support for strongly typed languages like TypeScript, Kotlin, Swift, Go, C#, and more.\n\nSee the [API 4.0 GA announcement](https://developers.looker.com/api/advanced-usage/version-4-ga) for more information\nabout API 4.0.\n\nThe API Explorer can be used to [interactively compare](https://cloud.google.com/looker/docs/r/api/explorer#comparing_api_versions) the differences between API 3.1 and 4.0.\n\n\n### API and SDK Support Policies\n\nLooker API versions and language SDKs have varying support levels. Please read the API and SDK\n[support policies](https://cloud.google.com/looker/docs/r/api/support-policy) for more information.\n\n\n",
"contact": {
@@ -118,6 +118,10 @@
"name": "RenderTask",
"description": "Manage Render Tasks"
},
+ {
+ "name": "Report",
+ "description": "Report"
+ },
{
"name": "Role",
"description": "Manage Roles"
@@ -2191,6 +2195,13 @@
"required": false,
"type": "integer",
"format": "int64"
+ },
+ {
+ "name": "tally",
+ "in": "query",
+ "description": "Return the full count of results in the X-Total-Count response header. (Slight performance hit.)",
+ "required": false,
+ "type": "boolean"
}
],
"responses": {
@@ -2278,6 +2289,13 @@
"required": false,
"type": "integer",
"format": "int64"
+ },
+ {
+ "name": "tally",
+ "in": "query",
+ "description": "Return the full count of results in the X-Total-Count response header. (Slight performance hit.)",
+ "required": false,
+ "type": "boolean"
}
],
"responses": {
@@ -19302,6 +19320,12 @@
"$ref": "#/definitions/Error"
}
},
+ "409": {
+ "description": "Resource Already Exists",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ },
"422": {
"description": "Validation Error",
"schema": {
@@ -22423,6 +22447,114 @@
"x-looker-rate-limited": true
}
},
+ "/reports/search": {
+ "get": {
+ "tags": [
+ "Report"
+ ],
+ "operationId": "search_reports",
+ "summary": "Search Reports",
+ "description": "### Search Reports\n\nReturns an **array of Report objects** that match the specified search criteria.\n\nIf multiple search params are given and `filter_or` is FALSE or not specified,\nsearch params are combined in a logical AND operation.\nOnly rows that match *all* search param criteria will be returned.\n\nIf `filter_or` is TRUE, multiple search params are combined in a logical OR operation.\nResults will include rows that match **any** of the search criteria.\n\nString search params use case-insensitive matching.\nString search params can contain `%` and '_' as SQL LIKE pattern match wildcard expressions.\nexample=\"dan%\" will match \"danger\" and \"Danzig\" but not \"David\"\nexample=\"D_m%\" will match \"Damage\" and \"dump\"\n\nInteger search params can accept a single value or a comma separated list of values. The multiple\nvalues will be combined under a logical OR operation - results will match at least one of\nthe given values.\n\nMost search params can accept \"IS NULL\" and \"NOT NULL\" as special expressions to match\nor exclude (respectively) rows where the column is null.\n\nBoolean search params accept only \"true\" and \"false\" as values.\n\n",
+ "parameters": [
+ {
+ "name": "folder_id",
+ "in": "query",
+ "description": "Select reports in a particular folder.",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "favorite",
+ "in": "query",
+ "description": "Select favorite reports.",
+ "required": false,
+ "type": "boolean"
+ },
+ {
+ "name": "recent",
+ "in": "query",
+ "description": "Select reports viewed recently.",
+ "required": false,
+ "type": "boolean"
+ },
+ {
+ "name": "id",
+ "in": "query",
+ "description": "Match report id.",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "title",
+ "in": "query",
+ "description": "Match report title.",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "sorts",
+ "in": "query",
+ "description": "One or more fields to sort results by.",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "limit",
+ "in": "query",
+ "description": "Number of results to return.(used with next_page_token)",
+ "required": false,
+ "type": "integer",
+ "format": "int64"
+ },
+ {
+ "name": "fields",
+ "in": "query",
+ "description": "Comma delimited list of field names. If provided, only the fields specified will be included in the response.",
+ "required": false,
+ "type": "string"
+ },
+ {
+ "name": "next_page_token",
+ "in": "query",
+ "description": "Contains a token that can be used to return up to Number of results to return.(used with next_page_token) additional results. A next_page_token will not be returned if there are no additional results to display.",
+ "required": false,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "returns a list of reports.",
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Report"
+ }
+ }
+ },
+ "400": {
+ "description": "Bad Request",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "404": {
+ "description": "Not Found",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ },
+ "429": {
+ "description": "Too Many Requests",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ },
+ "x-looker-status": "alpha",
+ "x-looker-activity-type": "non_query",
+ "x-looker-rate-limited": true
+ }
+ },
"/support_access/allowlist": {
"get": {
"tags": [
@@ -32745,9 +32877,15 @@
"description": "True if PDTs are enabled on this connection",
"x-looker-nullable": false
},
- "named_driver_version": {
+ "named_driver_version_requested": {
"type": "string",
- "description": "JDBC driver version name",
+ "description": "Requested JDBC driver version name",
+ "x-looker-nullable": true
+ },
+ "named_driver_version_actual": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resolved JDBC driver version",
"x-looker-nullable": true
},
"host": {
@@ -33058,22 +33196,43 @@
"description": "Host name/address of server",
"x-looker-nullable": true
},
+ "pdt_host": {
+ "type": "string",
+ "description": "Host name/address of server (same as host)",
+ "x-looker-nullable": true
+ },
"port": {
"type": "string",
"description": "Port number on server",
"x-looker-nullable": true
},
+ "pdt_port": {
+ "type": "string",
+ "description": "Port number on server (same as port)",
+ "x-looker-nullable": true
+ },
"username": {
"type": "string",
"description": "Username for server authentication",
"x-looker-nullable": true
},
+ "pdt_username": {
+ "type": "string",
+ "description": "Username for server authentication (same as username)",
+ "x-looker-nullable": true
+ },
"password": {
"type": "string",
"x-looker-write-only": true,
"description": "(Write-Only) Password for server authentication",
"x-looker-nullable": true
},
+ "pdt_password": {
+ "type": "string",
+ "x-looker-write-only": true,
+ "description": "(Write-Only) Password for server authentication (same as password)",
+ "x-looker-nullable": true
+ },
"has_password": {
"type": "boolean",
"readOnly": true,
@@ -33086,31 +33245,63 @@
"description": "(Write-Only) Base64 encoded Certificate body for server authentication (when appropriate for dialect).",
"x-looker-nullable": true
},
+ "pdt_certificate": {
+ "type": "string",
+ "x-looker-write-only": true,
+ "description": "(Write-Only) Base64 encoded Certificate body for server authentication (when appropriate for dialect) (same as certificate).",
+ "x-looker-nullable": true
+ },
"file_type": {
"type": "string",
"x-looker-write-only": true,
"description": "(Write-Only) Certificate keyfile type - .json or .p12",
"x-looker-nullable": true
},
+ "pdt_file_type": {
+ "type": "string",
+ "x-looker-write-only": true,
+ "description": "(Write-Only) Certificate keyfile type - .json or .p12 (same as file_type)",
+ "x-looker-nullable": true
+ },
"database": {
"type": "string",
"description": "Database name",
"x-looker-nullable": true
},
+ "pdt_database": {
+ "type": "string",
+ "description": "Database name (same as database)",
+ "x-looker-nullable": true
+ },
"schema": {
"type": "string",
"description": "Schema name",
"x-looker-nullable": true
},
+ "pdt_schema": {
+ "type": "string",
+ "description": "Schema name (same as schema)",
+ "x-looker-nullable": true
+ },
"jdbc_additional_params": {
"type": "string",
"description": "Additional params to add to JDBC connection string",
"x-looker-nullable": true
},
+ "pdt_jdbc_additional_params": {
+ "type": "string",
+ "description": "Additional params to add to JDBC connection string (same as jdbc_additional_params)",
+ "x-looker-nullable": true
+ },
"after_connect_statements": {
"type": "string",
"description": "SQL statements (semicolon separated) to issue after connecting to the database. Requires `custom_after_connect_statements` license feature",
"x-looker-nullable": true
+ },
+ "pdt_after_connect_statements": {
+ "type": "string",
+ "description": "SQL statements (semicolon separated) to issue after connecting to the database. Requires `custom_after_connect_statements` license feature (same as after_connect_statements)",
+ "x-looker-nullable": true
}
},
"x-looker-status": "stable"
@@ -33246,6 +33437,21 @@
"description": "The name of the dialect",
"x-looker-nullable": true
},
+ "supported_driver_name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The name of the driver used for this dialect",
+ "x-looker-nullable": true
+ },
+ "supported_driver_versions": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "readOnly": true,
+ "description": "Array of supported drivers for a given dialect",
+ "x-looker-nullable": true
+ },
"supported_options": {
"$ref": "#/definitions/DialectInfoOptions",
"readOnly": true,
@@ -42017,8 +42223,11 @@
"x-looker-nullable": true
},
"managed_certificate_uri": {
- "type": "string",
- "description": "URI pointing to the location of a private root certificate in Secret Manager",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Array of URIs pointing to the location of a root certificate in Secret Manager",
"x-looker-nullable": true
}
},
@@ -42434,6 +42643,124 @@
},
"x-looker-status": "stable"
},
+ "Report": {
+ "properties": {
+ "can": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "boolean"
+ },
+ "readOnly": true,
+ "description": "Operations the current user is able to perform on this object",
+ "x-looker-nullable": false
+ },
+ "id": {
+ "type": "string",
+ "description": "ID of the report",
+ "x-looker-nullable": false
+ },
+ "title": {
+ "type": "string",
+ "description": "Title of the report",
+ "x-looker-nullable": true
+ },
+ "user_id": {
+ "type": "string",
+ "description": "User Id of the owner of the report",
+ "x-looker-nullable": true
+ },
+ "created_at": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true,
+ "description": "Created at",
+ "x-looker-nullable": true
+ },
+ "updated_at": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true,
+ "description": "Modified at",
+ "x-looker-nullable": true
+ },
+ "last_viewed_at": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true,
+ "description": "Last viewed at",
+ "x-looker-nullable": true
+ },
+ "favorite": {
+ "type": "boolean",
+ "description": "Is favorite report",
+ "x-looker-nullable": false
+ },
+ "favorite_count": {
+ "type": "integer",
+ "format": "int64",
+ "readOnly": true,
+ "description": "Favorite count",
+ "x-looker-nullable": true
+ },
+ "view_count": {
+ "type": "integer",
+ "format": "int64",
+ "readOnly": true,
+ "description": "View count",
+ "x-looker-nullable": true
+ },
+ "folder": {
+ "$ref": "#/definitions/FolderBase",
+ "readOnly": true,
+ "description": "folder where the report is stored",
+ "x-looker-nullable": true
+ },
+ "folder_id": {
+ "type": "string",
+ "description": "Id of the folder where the report is stored",
+ "x-looker-nullable": true
+ },
+ "url": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Relative URL of the report",
+ "x-looker-nullable": true
+ },
+ "user_name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Name of User that created the Studio Report.",
+ "x-looker-nullable": true
+ },
+ "deleted_at": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true,
+ "description": "Deleted at",
+ "x-looker-nullable": true
+ },
+ "last_accessed_at": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true,
+ "description": "Last Accessed at",
+ "x-looker-nullable": true
+ },
+ "deleter_user_id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "User Id of the deleter of the report",
+ "x-looker-nullable": true
+ },
+ "deleter_user_name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Name of User that deleted the Report.",
+ "x-looker-nullable": true
+ }
+ },
+ "x-looker-status": "alpha"
+ },
"SupportAccessAllowlistEntry": {
"properties": {
"id": {
@@ -43333,6 +43660,12 @@
"description": "(Embed only) ID of user's group folder based on the external_group_id optionally specified during embed user login",
"x-looker-nullable": true
},
+ "is_iam_admin": {
+ "type": "boolean",
+ "readOnly": true,
+ "description": "User is an IAM Admin - only available in Looker (Google Cloud core)",
+ "x-looker-nullable": false
+ },
"url": {
"type": "string",
"format": "uri-reference",
diff --git a/spec/Looker.4.0.oas.json b/spec/Looker.4.0.oas.json
index b4de6533e..eab73a1e5 100644
--- a/spec/Looker.4.0.oas.json
+++ b/spec/Looker.4.0.oas.json
@@ -1,8 +1,8 @@
{
"openapi": "3.0.0",
"info": {
- "version": "4.0.25.2",
- "x-looker-release-version": "25.2.0",
+ "version": "4.0.25.4",
+ "x-looker-release-version": "25.4.7",
"title": "Looker API 4.0 Reference",
"description": "\nAPI 4.0 is the current release of the Looker API. API 3.x has been removed.\n\n### Authorization\n\nThe classic method of API authorization uses Looker **API** credentials for authorization and access control.\nLooker admins can create API credentials on Looker's **Admin/Users** page.\n\nAPI 4.0 adds additional ways to authenticate API requests, including OAuth and CORS requests.\n\nFor details, see [Looker API Authorization](https://cloud.google.com/looker/docs/r/api/authorization).\n\n\n### API Explorer\n\nThe API Explorer is a Looker-provided utility with many new and unique features for learning and using the Looker API and SDKs.\n\nFor details, see the [API Explorer documentation](https://cloud.google.com/looker/docs/r/api/explorer).\n\n\n### Looker Language SDKs\n\nThe Looker API is a RESTful system that should be usable by any programming language capable of making\nHTTPS requests. SDKs for a variety of programming languages are also provided to streamline using the API. Looker\nhas an OpenSource [sdk-codegen project](https://github.com/looker-open-source/sdk-codegen) that provides several\nlanguage SDKs. Language SDKs generated by `sdk-codegen` have an Authentication manager that can automatically\nauthenticate API requests when needed.\n\nFor details on available Looker SDKs, see [Looker API Client SDKs](https://cloud.google.com/looker/docs/r/api/client_sdks).\n\n\n### API Versioning\n\nFuture releases of Looker expand the latest API version release-by-release to securely expose more and more of the core\npower of the Looker platform to API client applications. API endpoints marked as \"beta\" may receive breaking changes without\nwarning (but we will try to avoid doing that). Stable (non-beta) API endpoints should not receive breaking\nchanges in future releases.\n\nFor details, see [Looker API Versioning](https://cloud.google.com/looker/docs/r/api/versioning).\n\n\n### In This Release\n\nAPI 4.0 is the only supported API version for Looker starting with release 23.18. API 3.0 and 3.1 have been removed.\n\nAPI 4.0 has better support for strongly typed languages like TypeScript, Kotlin, Swift, Go, C#, and more.\n\nSee the [API 4.0 GA announcement](https://developers.looker.com/api/advanced-usage/version-4-ga) for more information\nabout API 4.0.\n\nThe API Explorer can be used to [interactively compare](https://cloud.google.com/looker/docs/r/api/explorer#comparing_api_versions) the differences between API 3.1 and 4.0.\n\n\n### API and SDK Support Policies\n\nLooker API versions and language SDKs have varying support levels. Please read the API and SDK\n[support policies](https://cloud.google.com/looker/docs/r/api/support-policy) for more information.\n\n\n",
"contact": {
@@ -107,6 +107,10 @@
"name": "RenderTask",
"description": "Manage Render Tasks"
},
+ {
+ "name": "Report",
+ "description": "Report"
+ },
{
"name": "Role",
"description": "Manage Roles"
@@ -3156,6 +3160,15 @@
"type": "integer",
"format": "int64"
}
+ },
+ {
+ "name": "tally",
+ "in": "query",
+ "description": "Return the full count of results in the X-Total-Count response header. (Slight performance hit.)",
+ "required": false,
+ "schema": {
+ "type": "boolean"
+ }
}
],
"responses": {
@@ -3273,6 +3286,15 @@
"type": "integer",
"format": "int64"
}
+ },
+ {
+ "name": "tally",
+ "in": "query",
+ "description": "Return the full count of results in the X-Total-Count response header. (Slight performance hit.)",
+ "required": false,
+ "schema": {
+ "type": "boolean"
+ }
}
],
"responses": {
@@ -26734,6 +26756,16 @@
}
}
},
+ "409": {
+ "description": "Resource Already Exists",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
"422": {
"description": "Validation Error",
"content": {
@@ -31060,6 +31092,148 @@
"x-looker-rate-limited": true
}
},
+ "/reports/search": {
+ "get": {
+ "tags": [
+ "Report"
+ ],
+ "operationId": "search_reports",
+ "summary": "Search Reports",
+ "description": "### Search Reports\n\nReturns an **array of Report objects** that match the specified search criteria.\n\nIf multiple search params are given and `filter_or` is FALSE or not specified,\nsearch params are combined in a logical AND operation.\nOnly rows that match *all* search param criteria will be returned.\n\nIf `filter_or` is TRUE, multiple search params are combined in a logical OR operation.\nResults will include rows that match **any** of the search criteria.\n\nString search params use case-insensitive matching.\nString search params can contain `%` and '_' as SQL LIKE pattern match wildcard expressions.\nexample=\"dan%\" will match \"danger\" and \"Danzig\" but not \"David\"\nexample=\"D_m%\" will match \"Damage\" and \"dump\"\n\nInteger search params can accept a single value or a comma separated list of values. The multiple\nvalues will be combined under a logical OR operation - results will match at least one of\nthe given values.\n\nMost search params can accept \"IS NULL\" and \"NOT NULL\" as special expressions to match\nor exclude (respectively) rows where the column is null.\n\nBoolean search params accept only \"true\" and \"false\" as values.\n\n",
+ "parameters": [
+ {
+ "name": "folder_id",
+ "in": "query",
+ "description": "Select reports in a particular folder.",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "favorite",
+ "in": "query",
+ "description": "Select favorite reports.",
+ "required": false,
+ "schema": {
+ "type": "boolean"
+ }
+ },
+ {
+ "name": "recent",
+ "in": "query",
+ "description": "Select reports viewed recently.",
+ "required": false,
+ "schema": {
+ "type": "boolean"
+ }
+ },
+ {
+ "name": "id",
+ "in": "query",
+ "description": "Match report id.",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "title",
+ "in": "query",
+ "description": "Match report title.",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "sorts",
+ "in": "query",
+ "description": "One or more fields to sort results by.",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "limit",
+ "in": "query",
+ "description": "Number of results to return.(used with next_page_token)",
+ "required": false,
+ "schema": {
+ "type": "integer",
+ "format": "int64"
+ }
+ },
+ {
+ "name": "fields",
+ "in": "query",
+ "description": "Comma delimited list of field names. If provided, only the fields specified will be included in the response.",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ },
+ {
+ "name": "next_page_token",
+ "in": "query",
+ "description": "Contains a token that can be used to return up to Number of results to return.(used with next_page_token) additional results. A next_page_token will not be returned if there are no additional results to display.",
+ "required": false,
+ "schema": {
+ "type": "string"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "returns a list of reports.",
+ "content": {
+ "application/json": {
+ "schema": {
+ "type": "array",
+ "items": {
+ "$ref": "#/components/schemas/Report"
+ }
+ }
+ }
+ }
+ },
+ "400": {
+ "description": "Bad Request",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "404": {
+ "description": "Not Found",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ },
+ "429": {
+ "description": "Too Many Requests",
+ "content": {
+ "application/json": {
+ "schema": {
+ "$ref": "#/components/schemas/Error"
+ }
+ }
+ }
+ }
+ },
+ "x-looker-status": "alpha",
+ "x-looker-activity-type": "non_query",
+ "x-looker-rate-limited": true
+ }
+ },
"/support_access/allowlist": {
"get": {
"tags": [
@@ -43502,9 +43676,15 @@
"description": "True if PDTs are enabled on this connection",
"nullable": false
},
- "named_driver_version": {
+ "named_driver_version_requested": {
"type": "string",
- "description": "JDBC driver version name",
+ "description": "Requested JDBC driver version name",
+ "nullable": true
+ },
+ "named_driver_version_actual": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Resolved JDBC driver version",
"nullable": true
},
"host": {
@@ -43813,22 +43993,43 @@
"description": "Host name/address of server",
"nullable": true
},
+ "pdt_host": {
+ "type": "string",
+ "description": "Host name/address of server (same as host)",
+ "nullable": true
+ },
"port": {
"type": "string",
"description": "Port number on server",
"nullable": true
},
+ "pdt_port": {
+ "type": "string",
+ "description": "Port number on server (same as port)",
+ "nullable": true
+ },
"username": {
"type": "string",
"description": "Username for server authentication",
"nullable": true
},
+ "pdt_username": {
+ "type": "string",
+ "description": "Username for server authentication (same as username)",
+ "nullable": true
+ },
"password": {
"type": "string",
"x-looker-write-only": true,
"description": "(Write-Only) Password for server authentication",
"nullable": true
},
+ "pdt_password": {
+ "type": "string",
+ "x-looker-write-only": true,
+ "description": "(Write-Only) Password for server authentication (same as password)",
+ "nullable": true
+ },
"has_password": {
"type": "boolean",
"readOnly": true,
@@ -43841,31 +44042,63 @@
"description": "(Write-Only) Base64 encoded Certificate body for server authentication (when appropriate for dialect).",
"nullable": true
},
+ "pdt_certificate": {
+ "type": "string",
+ "x-looker-write-only": true,
+ "description": "(Write-Only) Base64 encoded Certificate body for server authentication (when appropriate for dialect) (same as certificate).",
+ "nullable": true
+ },
"file_type": {
"type": "string",
"x-looker-write-only": true,
"description": "(Write-Only) Certificate keyfile type - .json or .p12",
"nullable": true
},
+ "pdt_file_type": {
+ "type": "string",
+ "x-looker-write-only": true,
+ "description": "(Write-Only) Certificate keyfile type - .json or .p12 (same as file_type)",
+ "nullable": true
+ },
"database": {
"type": "string",
"description": "Database name",
"nullable": true
},
+ "pdt_database": {
+ "type": "string",
+ "description": "Database name (same as database)",
+ "nullable": true
+ },
"schema": {
"type": "string",
"description": "Schema name",
"nullable": true
},
+ "pdt_schema": {
+ "type": "string",
+ "description": "Schema name (same as schema)",
+ "nullable": true
+ },
"jdbc_additional_params": {
"type": "string",
"description": "Additional params to add to JDBC connection string",
"nullable": true
},
+ "pdt_jdbc_additional_params": {
+ "type": "string",
+ "description": "Additional params to add to JDBC connection string (same as jdbc_additional_params)",
+ "nullable": true
+ },
"after_connect_statements": {
"type": "string",
"description": "SQL statements (semicolon separated) to issue after connecting to the database. Requires `custom_after_connect_statements` license feature",
"nullable": true
+ },
+ "pdt_after_connect_statements": {
+ "type": "string",
+ "description": "SQL statements (semicolon separated) to issue after connecting to the database. Requires `custom_after_connect_statements` license feature (same as after_connect_statements)",
+ "nullable": true
}
},
"x-looker-status": "stable"
@@ -44001,6 +44234,21 @@
"description": "The name of the dialect",
"nullable": true
},
+ "supported_driver_name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "The name of the driver used for this dialect",
+ "nullable": true
+ },
+ "supported_driver_versions": {
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "readOnly": true,
+ "description": "Array of supported drivers for a given dialect",
+ "nullable": true
+ },
"supported_options": {
"$ref": "#/components/schemas/DialectInfoOptions"
}
@@ -52670,8 +52918,11 @@
"nullable": true
},
"managed_certificate_uri": {
- "type": "string",
- "description": "URI pointing to the location of a private root certificate in Secret Manager",
+ "type": "array",
+ "items": {
+ "type": "string"
+ },
+ "description": "Array of URIs pointing to the location of a root certificate in Secret Manager",
"nullable": true
}
},
@@ -53081,6 +53332,121 @@
},
"x-looker-status": "stable"
},
+ "Report": {
+ "properties": {
+ "can": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "boolean"
+ },
+ "readOnly": true,
+ "description": "Operations the current user is able to perform on this object",
+ "nullable": false
+ },
+ "id": {
+ "type": "string",
+ "description": "ID of the report",
+ "nullable": false
+ },
+ "title": {
+ "type": "string",
+ "description": "Title of the report",
+ "nullable": true
+ },
+ "user_id": {
+ "type": "string",
+ "description": "User Id of the owner of the report",
+ "nullable": true
+ },
+ "created_at": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true,
+ "description": "Created at",
+ "nullable": true
+ },
+ "updated_at": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true,
+ "description": "Modified at",
+ "nullable": true
+ },
+ "last_viewed_at": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true,
+ "description": "Last viewed at",
+ "nullable": true
+ },
+ "favorite": {
+ "type": "boolean",
+ "description": "Is favorite report",
+ "nullable": false
+ },
+ "favorite_count": {
+ "type": "integer",
+ "format": "int64",
+ "readOnly": true,
+ "description": "Favorite count",
+ "nullable": true
+ },
+ "view_count": {
+ "type": "integer",
+ "format": "int64",
+ "readOnly": true,
+ "description": "View count",
+ "nullable": true
+ },
+ "folder": {
+ "$ref": "#/components/schemas/FolderBase"
+ },
+ "folder_id": {
+ "type": "string",
+ "description": "Id of the folder where the report is stored",
+ "nullable": true
+ },
+ "url": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Relative URL of the report",
+ "nullable": true
+ },
+ "user_name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Name of User that created the Studio Report.",
+ "nullable": true
+ },
+ "deleted_at": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true,
+ "description": "Deleted at",
+ "nullable": true
+ },
+ "last_accessed_at": {
+ "type": "string",
+ "format": "date-time",
+ "readOnly": true,
+ "description": "Last Accessed at",
+ "nullable": true
+ },
+ "deleter_user_id": {
+ "type": "string",
+ "readOnly": true,
+ "description": "User Id of the deleter of the report",
+ "nullable": true
+ },
+ "deleter_user_name": {
+ "type": "string",
+ "readOnly": true,
+ "description": "Name of User that deleted the Report.",
+ "nullable": true
+ }
+ },
+ "x-looker-status": "alpha"
+ },
"SupportAccessAllowlistEntry": {
"properties": {
"id": {
@@ -53957,6 +54323,12 @@
"description": "(Embed only) ID of user's group folder based on the external_group_id optionally specified during embed user login",
"nullable": true
},
+ "is_iam_admin": {
+ "type": "boolean",
+ "readOnly": true,
+ "description": "User is an IAM Admin - only available in Looker (Google Cloud core)",
+ "nullable": false
+ },
"url": {
"type": "string",
"format": "uri-reference",
diff --git a/swift/looker/rtl/constants.swift b/swift/looker/rtl/constants.swift
index 50231a36b..c17ad0006 100644
--- a/swift/looker/rtl/constants.swift
+++ b/swift/looker/rtl/constants.swift
@@ -51,7 +51,7 @@ extension String {
}
public struct Constants {
- public static let lookerVersion = "25.2"
+ public static let lookerVersion = "25.4"
public static let apiVersion = "4.0"
public static let defaultApiVersion = "4.0" // Swift requires API 4.0
public static let sdkVersion = #"\#(apiVersion).\#(lookerVersion)"#
diff --git a/swift/looker/sdk/methods.swift b/swift/looker/sdk/methods.swift
index 958123cc9..3b9f9008c 100644
--- a/swift/looker/sdk/methods.swift
+++ b/swift/looker/sdk/methods.swift
@@ -25,7 +25,7 @@
*/
/**
- * 467 API methods
+ * 469 API methods
*/
@@ -571,11 +571,15 @@ open class LookerSDK: APIMethods {
* @param {Int64} offset Number of results to skip before returning any. (used with limit)
*/
offset: Int64? = nil,
+ /**
+ * @param {Bool} tally Return the full count of results in the X-Total-Count response header. (Slight performance hit.)
+ */
+ tally: Bool? = nil,
options: ITransportSettings? = nil
) -> SDKResponse<[Artifact], SDKError> {
let path_namespace = encodeParam(namespace)
let result: SDKResponse<[Artifact], SDKError> = self.get("/artifact/\(path_namespace)/search",
- ["fields": fields, "key": key, "user_ids": user_ids, "min_size": min_size, "max_size": max_size, "limit": limit, "offset": offset], nil, options)
+ ["fields": fields, "key": key, "user_ids": user_ids, "min_size": min_size, "max_size": max_size, "limit": limit, "offset": offset, "tally": tally as Any?], nil, options)
return result
}
@@ -609,11 +613,15 @@ open class LookerSDK: APIMethods {
* @param {Int64} offset Number of results to skip before returning any. (used with limit)
*/
offset: Int64? = nil,
+ /**
+ * @param {Bool} tally Return the full count of results in the X-Total-Count response header. (Slight performance hit.)
+ */
+ tally: Bool? = nil,
options: ITransportSettings? = nil
) -> SDKResponse<[Artifact], SDKError> {
let path_namespace = encodeParam(namespace)
let result: SDKResponse<[Artifact], SDKError> = self.get("/artifact/\(path_namespace)",
- ["key": key, "fields": fields, "limit": limit, "offset": offset], nil, options)
+ ["key": key, "fields": fields, "limit": limit, "offset": offset, "tally": tally as Any?], nil, options)
return result
}
@@ -9089,6 +9097,82 @@ open class LookerSDK: APIMethods {
+ // MARK Report: Report
+
+ /**
+ * ### Search Reports
+ *
+ * Returns an **array of Report objects** that match the specified search criteria.
+ *
+ * If multiple search params are given and `filter_or` is FALSE or not specified,
+ * search params are combined in a logical AND operation.
+ * Only rows that match *all* search param criteria will be returned.
+ *
+ * If `filter_or` is TRUE, multiple search params are combined in a logical OR operation.
+ * Results will include rows that match **any** of the search criteria.
+ *
+ * String search params use case-insensitive matching.
+ * String search params can contain `%` and '_' as SQL LIKE pattern match wildcard expressions.
+ * example="dan%" will match "danger" and "Danzig" but not "David"
+ * example="D_m%" will match "Damage" and "dump"
+ *
+ * Integer search params can accept a single value or a comma separated list of values. The multiple
+ * values will be combined under a logical OR operation - results will match at least one of
+ * the given values.
+ *
+ * Most search params can accept "IS NULL" and "NOT NULL" as special expressions to match
+ * or exclude (respectively) rows where the column is null.
+ *
+ * Boolean search params accept only "true" and "false" as values.
+ *
+ * GET /reports/search -> [Report]
+ */
+ public func search_reports(
+ /**
+ * @param {String} folder_id Select reports in a particular folder.
+ */
+ folder_id: String? = nil,
+ /**
+ * @param {Bool} favorite Select favorite reports.
+ */
+ favorite: Bool? = nil,
+ /**
+ * @param {Bool} recent Select reports viewed recently.
+ */
+ recent: Bool? = nil,
+ /**
+ * @param {String} id Match report id.
+ */
+ id: String? = nil,
+ /**
+ * @param {String} title Match report title.
+ */
+ title: String? = nil,
+ /**
+ * @param {String} sorts One or more fields to sort results by.
+ */
+ sorts: String? = nil,
+ /**
+ * @param {Int64} limit Number of results to return.(used with next_page_token)
+ */
+ limit: Int64? = nil,
+ /**
+ * @param {String} fields Comma delimited list of field names. If provided, only the fields specified will be included in the response.
+ */
+ fields: String? = nil,
+ /**
+ * @param {String} next_page_token Contains a token that can be used to return up to Number of results to return.(used with next_page_token) additional results. A next_page_token will not be returned if there are no additional results to display.
+ */
+ next_page_token: String? = nil,
+ options: ITransportSettings? = nil
+ ) -> SDKResponse<[Report], SDKError> {
+ let result: SDKResponse<[Report], SDKError> = self.get("/reports/search",
+ ["folder_id": folder_id, "favorite": favorite as Any?, "recent": recent as Any?, "id": id, "title": title, "sorts": sorts, "limit": limit, "fields": fields, "next_page_token": next_page_token], nil, options)
+ return result
+ }
+
+
+
// MARK Role: Manage Roles
/**
diff --git a/swift/looker/sdk/models.swift b/swift/looker/sdk/models.swift
index 03c3ea4f4..b81945be9 100644
--- a/swift/looker/sdk/models.swift
+++ b/swift/looker/sdk/models.swift
@@ -25,7 +25,7 @@
*/
/**
- * 343 API models: 259 Spec, 0 Request, 62 Write, 22 Enum
+ * 344 API models: 260 Spec, 0 Request, 62 Write, 22 Enum
*/
@@ -6995,7 +6995,8 @@ public struct DBConnection: SDKModel {
case dialect
case snippets
case pdts_enabled
- case _named_driver_version = "named_driver_version"
+ case _named_driver_version_requested = "named_driver_version_requested"
+ case _named_driver_version_actual = "named_driver_version_actual"
case _host = "host"
case _port = "port"
case _username = "username"
@@ -7077,13 +7078,22 @@ public struct DBConnection: SDKModel {
*/
public var pdts_enabled: Bool?
- private var _named_driver_version: AnyString?
+ private var _named_driver_version_requested: AnyString?
/**
- * JDBC driver version name
+ * Requested JDBC driver version name
*/
- public var named_driver_version: String? {
- get { _named_driver_version?.value }
- set { _named_driver_version = newValue.map(AnyString.init) }
+ public var named_driver_version_requested: String? {
+ get { _named_driver_version_requested?.value }
+ set { _named_driver_version_requested = newValue.map(AnyString.init) }
+ }
+
+ private var _named_driver_version_actual: AnyString?
+ /**
+ * Resolved JDBC driver version (read-only)
+ */
+ public var named_driver_version_actual: String? {
+ get { _named_driver_version_actual?.value }
+ set { _named_driver_version_actual = newValue.map(AnyString.init) }
}
private var _host: AnyString?
@@ -7485,13 +7495,14 @@ public struct DBConnection: SDKModel {
*/
public var query_holding_disabled: Bool?
- public init(can: StringDictionary? = nil, name: String? = nil, dialect: Dialect? = nil, snippets: [Snippet]? = nil, pdts_enabled: Bool? = nil, named_driver_version: String? = nil, host: String? = nil, port: String? = nil, username: String? = nil, password: String? = nil, uses_oauth: Bool? = nil, uses_instance_oauth: Bool? = nil, certificate: String? = nil, file_type: String? = nil, database: String? = nil, db_timezone: String? = nil, query_timezone: String? = nil, schema: String? = nil, max_connections: Int64? = nil, max_queries: Int64? = nil, max_queries_per_user: Int64? = nil, max_billing_gigabytes: String? = nil, ssl: Bool? = nil, verify_ssl: Bool? = nil, tmp_db_name: String? = nil, tmp_db_host: String? = nil, jdbc_additional_params: String? = nil, pool_timeout: Int64? = nil, dialect_name: String? = nil, supports_data_studio_link: Bool? = nil, created_at: String? = nil, user_id: String? = nil, example: Bool? = nil, user_db_credentials: Bool? = nil, user_attribute_fields: [String]? = nil, maintenance_cron: String? = nil, last_regen_at: String? = nil, last_reap_at: String? = nil, sql_runner_precache_tables: Bool? = nil, sql_writing_with_info_schema: Bool? = nil, after_connect_statements: String? = nil, pdt_context_override: DBConnectionOverride? = nil, managed: Bool? = nil, custom_local_port: Int64? = nil, tunnel_id: String? = nil, uses_tns: Bool? = nil, pdt_concurrency: Int64? = nil, disable_context_comment: Bool? = nil, oauth_application_id: String? = nil, always_retry_failed_builds: Bool? = nil, uses_application_default_credentials: Bool? = nil, impersonated_service_account: String? = nil, cost_estimate_enabled: Bool? = nil, pdt_api_control_enabled: Bool? = nil, connection_pooling: Bool? = nil, default_bq_connection: Bool? = nil, bq_storage_project_id: String? = nil, bq_roles_verified: Bool? = nil, p4sa_name: String? = nil, query_holding_disabled: Bool? = nil) {
+ public init(can: StringDictionary? = nil, name: String? = nil, dialect: Dialect? = nil, snippets: [Snippet]? = nil, pdts_enabled: Bool? = nil, named_driver_version_requested: String? = nil, named_driver_version_actual: String? = nil, host: String? = nil, port: String? = nil, username: String? = nil, password: String? = nil, uses_oauth: Bool? = nil, uses_instance_oauth: Bool? = nil, certificate: String? = nil, file_type: String? = nil, database: String? = nil, db_timezone: String? = nil, query_timezone: String? = nil, schema: String? = nil, max_connections: Int64? = nil, max_queries: Int64? = nil, max_queries_per_user: Int64? = nil, max_billing_gigabytes: String? = nil, ssl: Bool? = nil, verify_ssl: Bool? = nil, tmp_db_name: String? = nil, tmp_db_host: String? = nil, jdbc_additional_params: String? = nil, pool_timeout: Int64? = nil, dialect_name: String? = nil, supports_data_studio_link: Bool? = nil, created_at: String? = nil, user_id: String? = nil, example: Bool? = nil, user_db_credentials: Bool? = nil, user_attribute_fields: [String]? = nil, maintenance_cron: String? = nil, last_regen_at: String? = nil, last_reap_at: String? = nil, sql_runner_precache_tables: Bool? = nil, sql_writing_with_info_schema: Bool? = nil, after_connect_statements: String? = nil, pdt_context_override: DBConnectionOverride? = nil, managed: Bool? = nil, custom_local_port: Int64? = nil, tunnel_id: String? = nil, uses_tns: Bool? = nil, pdt_concurrency: Int64? = nil, disable_context_comment: Bool? = nil, oauth_application_id: String? = nil, always_retry_failed_builds: Bool? = nil, uses_application_default_credentials: Bool? = nil, impersonated_service_account: String? = nil, cost_estimate_enabled: Bool? = nil, pdt_api_control_enabled: Bool? = nil, connection_pooling: Bool? = nil, default_bq_connection: Bool? = nil, bq_storage_project_id: String? = nil, bq_roles_verified: Bool? = nil, p4sa_name: String? = nil, query_holding_disabled: Bool? = nil) {
self.can = can
self._name = name.map(AnyString.init)
self.dialect = dialect
self.snippets = snippets
self.pdts_enabled = pdts_enabled
- self._named_driver_version = named_driver_version.map(AnyString.init)
+ self._named_driver_version_requested = named_driver_version_requested.map(AnyString.init)
+ self._named_driver_version_actual = named_driver_version_actual.map(AnyString.init)
self._host = host.map(AnyString.init)
self._port = port.map(AnyString.init)
self._username = username.map(AnyString.init)
@@ -7600,16 +7611,26 @@ public struct DBConnectionOverride: SDKModel {
private enum CodingKeys : String, CodingKey {
case _context = "context"
case _host = "host"
+ case _pdt_host = "pdt_host"
case _port = "port"
+ case _pdt_port = "pdt_port"
case _username = "username"
+ case _pdt_username = "pdt_username"
case _password = "password"
+ case _pdt_password = "pdt_password"
case has_password
case _certificate = "certificate"
+ case _pdt_certificate = "pdt_certificate"
case _file_type = "file_type"
+ case _pdt_file_type = "pdt_file_type"
case _database = "database"
+ case _pdt_database = "pdt_database"
case _schema = "schema"
+ case _pdt_schema = "pdt_schema"
case _jdbc_additional_params = "jdbc_additional_params"
+ case _pdt_jdbc_additional_params = "pdt_jdbc_additional_params"
case _after_connect_statements = "after_connect_statements"
+ case _pdt_after_connect_statements = "pdt_after_connect_statements"
}
private var _context: AnyString?
/**
@@ -7629,6 +7650,15 @@ public struct DBConnectionOverride: SDKModel {
set { _host = newValue.map(AnyString.init) }
}
+ private var _pdt_host: AnyString?
+ /**
+ * Host name/address of server (same as host)
+ */
+ public var pdt_host: String? {
+ get { _pdt_host?.value }
+ set { _pdt_host = newValue.map(AnyString.init) }
+ }
+
private var _port: AnyString?
/**
* Port number on server
@@ -7638,6 +7668,15 @@ public struct DBConnectionOverride: SDKModel {
set { _port = newValue.map(AnyString.init) }
}
+ private var _pdt_port: AnyString?
+ /**
+ * Port number on server (same as port)
+ */
+ public var pdt_port: String? {
+ get { _pdt_port?.value }
+ set { _pdt_port = newValue.map(AnyString.init) }
+ }
+
private var _username: AnyString?
/**
* Username for server authentication
@@ -7647,6 +7686,15 @@ public struct DBConnectionOverride: SDKModel {
set { _username = newValue.map(AnyString.init) }
}
+ private var _pdt_username: AnyString?
+ /**
+ * Username for server authentication (same as username)
+ */
+ public var pdt_username: String? {
+ get { _pdt_username?.value }
+ set { _pdt_username = newValue.map(AnyString.init) }
+ }
+
private var _password: AnyString?
/**
* (Write-Only) Password for server authentication
@@ -7656,6 +7704,15 @@ public struct DBConnectionOverride: SDKModel {
set { _password = newValue.map(AnyString.init) }
}
+ private var _pdt_password: AnyString?
+ /**
+ * (Write-Only) Password for server authentication (same as password)
+ */
+ public var pdt_password: String? {
+ get { _pdt_password?.value }
+ set { _pdt_password = newValue.map(AnyString.init) }
+ }
+
/**
* Whether or not the password is overridden in this context (read-only)
*/
@@ -7670,6 +7727,15 @@ public struct DBConnectionOverride: SDKModel {
set { _certificate = newValue.map(AnyString.init) }
}
+ private var _pdt_certificate: AnyString?
+ /**
+ * (Write-Only) Base64 encoded Certificate body for server authentication (when appropriate for dialect) (same as certificate).
+ */
+ public var pdt_certificate: String? {
+ get { _pdt_certificate?.value }
+ set { _pdt_certificate = newValue.map(AnyString.init) }
+ }
+
private var _file_type: AnyString?
/**
* (Write-Only) Certificate keyfile type - .json or .p12
@@ -7679,6 +7745,15 @@ public struct DBConnectionOverride: SDKModel {
set { _file_type = newValue.map(AnyString.init) }
}
+ private var _pdt_file_type: AnyString?
+ /**
+ * (Write-Only) Certificate keyfile type - .json or .p12 (same as file_type)
+ */
+ public var pdt_file_type: String? {
+ get { _pdt_file_type?.value }
+ set { _pdt_file_type = newValue.map(AnyString.init) }
+ }
+
private var _database: AnyString?
/**
* Database name
@@ -7688,6 +7763,15 @@ public struct DBConnectionOverride: SDKModel {
set { _database = newValue.map(AnyString.init) }
}
+ private var _pdt_database: AnyString?
+ /**
+ * Database name (same as database)
+ */
+ public var pdt_database: String? {
+ get { _pdt_database?.value }
+ set { _pdt_database = newValue.map(AnyString.init) }
+ }
+
private var _schema: AnyString?
/**
* Schema name
@@ -7697,6 +7781,15 @@ public struct DBConnectionOverride: SDKModel {
set { _schema = newValue.map(AnyString.init) }
}
+ private var _pdt_schema: AnyString?
+ /**
+ * Schema name (same as schema)
+ */
+ public var pdt_schema: String? {
+ get { _pdt_schema?.value }
+ set { _pdt_schema = newValue.map(AnyString.init) }
+ }
+
private var _jdbc_additional_params: AnyString?
/**
* Additional params to add to JDBC connection string
@@ -7706,6 +7799,15 @@ public struct DBConnectionOverride: SDKModel {
set { _jdbc_additional_params = newValue.map(AnyString.init) }
}
+ private var _pdt_jdbc_additional_params: AnyString?
+ /**
+ * Additional params to add to JDBC connection string (same as jdbc_additional_params)
+ */
+ public var pdt_jdbc_additional_params: String? {
+ get { _pdt_jdbc_additional_params?.value }
+ set { _pdt_jdbc_additional_params = newValue.map(AnyString.init) }
+ }
+
private var _after_connect_statements: AnyString?
/**
* SQL statements (semicolon separated) to issue after connecting to the database. Requires `custom_after_connect_statements` license feature
@@ -7715,19 +7817,38 @@ public struct DBConnectionOverride: SDKModel {
set { _after_connect_statements = newValue.map(AnyString.init) }
}
- public init(context: String? = nil, host: String? = nil, port: String? = nil, username: String? = nil, password: String? = nil, has_password: Bool? = nil, certificate: String? = nil, file_type: String? = nil, database: String? = nil, schema: String? = nil, jdbc_additional_params: String? = nil, after_connect_statements: String? = nil) {
+ private var _pdt_after_connect_statements: AnyString?
+ /**
+ * SQL statements (semicolon separated) to issue after connecting to the database. Requires `custom_after_connect_statements` license feature (same as after_connect_statements)
+ */
+ public var pdt_after_connect_statements: String? {
+ get { _pdt_after_connect_statements?.value }
+ set { _pdt_after_connect_statements = newValue.map(AnyString.init) }
+ }
+
+ public init(context: String? = nil, host: String? = nil, pdt_host: String? = nil, port: String? = nil, pdt_port: String? = nil, username: String? = nil, pdt_username: String? = nil, password: String? = nil, pdt_password: String? = nil, has_password: Bool? = nil, certificate: String? = nil, pdt_certificate: String? = nil, file_type: String? = nil, pdt_file_type: String? = nil, database: String? = nil, pdt_database: String? = nil, schema: String? = nil, pdt_schema: String? = nil, jdbc_additional_params: String? = nil, pdt_jdbc_additional_params: String? = nil, after_connect_statements: String? = nil, pdt_after_connect_statements: String? = nil) {
self._context = context.map(AnyString.init)
self._host = host.map(AnyString.init)
+ self._pdt_host = pdt_host.map(AnyString.init)
self._port = port.map(AnyString.init)
+ self._pdt_port = pdt_port.map(AnyString.init)
self._username = username.map(AnyString.init)
+ self._pdt_username = pdt_username.map(AnyString.init)
self._password = password.map(AnyString.init)
+ self._pdt_password = pdt_password.map(AnyString.init)
self.has_password = has_password
self._certificate = certificate.map(AnyString.init)
+ self._pdt_certificate = pdt_certificate.map(AnyString.init)
self._file_type = file_type.map(AnyString.init)
+ self._pdt_file_type = pdt_file_type.map(AnyString.init)
self._database = database.map(AnyString.init)
+ self._pdt_database = pdt_database.map(AnyString.init)
self._schema = schema.map(AnyString.init)
+ self._pdt_schema = pdt_schema.map(AnyString.init)
self._jdbc_additional_params = jdbc_additional_params.map(AnyString.init)
+ self._pdt_jdbc_additional_params = pdt_jdbc_additional_params.map(AnyString.init)
self._after_connect_statements = after_connect_statements.map(AnyString.init)
+ self._pdt_after_connect_statements = pdt_after_connect_statements.map(AnyString.init)
}
}
@@ -8033,6 +8154,8 @@ public struct DialectInfo: SDKModel {
case _label_for_database_equivalent = "label_for_database_equivalent"
case _label_for_schema_equivalent = "label_for_schema_equivalent"
case _name = "name"
+ case _supported_driver_name = "supported_driver_name"
+ case _supported_driver_versions = "supported_driver_versions"
case supported_options
}
/**
@@ -8099,9 +8222,27 @@ public struct DialectInfo: SDKModel {
set { _name = newValue.map(AnyString.init) }
}
+ private var _supported_driver_name: AnyString?
+ /**
+ * The name of the driver used for this dialect (read-only)
+ */
+ public var supported_driver_name: String? {
+ get { _supported_driver_name?.value }
+ set { _supported_driver_name = newValue.map(AnyString.init) }
+ }
+
+ private var _supported_driver_versions: [AnyString]?
+ /**
+ * Array of supported drivers for a given dialect (read-only)
+ */
+ public var supported_driver_versions: [String]? {
+ get { if let v = _supported_driver_versions { return v.map { $0.value } } else { return nil } }
+ set { if let v = newValue { _supported_driver_versions = v.map { AnyString.init($0) } } else { _supported_driver_versions = nil } }
+ }
+
public var supported_options: DialectInfoOptions?
- public init(can: StringDictionary? = nil, default_max_connections: String? = nil, default_port: String? = nil, installed: Bool? = nil, label: String? = nil, label_for_database_equivalent: String? = nil, label_for_schema_equivalent: String? = nil, name: String? = nil, supported_options: DialectInfoOptions? = nil) {
+ public init(can: StringDictionary? = nil, default_max_connections: String? = nil, default_port: String? = nil, installed: Bool? = nil, label: String? = nil, label_for_database_equivalent: String? = nil, label_for_schema_equivalent: String? = nil, name: String? = nil, supported_driver_name: String? = nil, supported_driver_versions: [String]? = nil, supported_options: DialectInfoOptions? = nil) {
self.can = can
self._default_max_connections = default_max_connections.map(AnyString.init)
self._default_port = default_port.map(AnyString.init)
@@ -8110,6 +8251,8 @@ public struct DialectInfo: SDKModel {
self._label_for_database_equivalent = label_for_database_equivalent.map(AnyString.init)
self._label_for_schema_equivalent = label_for_schema_equivalent.map(AnyString.init)
self._name = name.map(AnyString.init)
+ self._supported_driver_name = supported_driver_name.map(AnyString.init)
+ if let v = supported_driver_versions { _supported_driver_versions = v.map { AnyString.init($0) } } else { _supported_driver_versions = nil }
self.supported_options = supported_options
}
@@ -18514,6 +18657,178 @@ public struct RenderTask: SDKModel {
}
+public struct Report: SDKModel {
+
+ private enum CodingKeys : String, CodingKey {
+ case can
+ case _id = "id"
+ case _title = "title"
+ case _user_id = "user_id"
+ case created_at
+ case updated_at
+ case last_viewed_at
+ case favorite
+ case _favorite_count = "favorite_count"
+ case _view_count = "view_count"
+ case folder
+ case _folder_id = "folder_id"
+ case _url = "url"
+ case _user_name = "user_name"
+ case deleted_at
+ case last_accessed_at
+ case _deleter_user_id = "deleter_user_id"
+ case _deleter_user_name = "deleter_user_name"
+ }
+ /**
+ * Operations the current user is able to perform on this object (read-only)
+ */
+ public var can: StringDictionary?
+
+ private var _id: AnyString?
+ /**
+ * ID of the report
+ */
+ public var id: String? {
+ get { _id?.value }
+ set { _id = newValue.map(AnyString.init) }
+ }
+
+ private var _title: AnyString?
+ /**
+ * Title of the report
+ */
+ public var title: String? {
+ get { _title?.value }
+ set { _title = newValue.map(AnyString.init) }
+ }
+
+ private var _user_id: AnyString?
+ /**
+ * User Id of the owner of the report
+ */
+ public var user_id: String? {
+ get { _user_id?.value }
+ set { _user_id = newValue.map(AnyString.init) }
+ }
+
+ /**
+ * Created at (read-only)
+ */
+ public var created_at: Date?
+
+ /**
+ * Modified at (read-only)
+ */
+ public var updated_at: Date?
+
+ /**
+ * Last viewed at (read-only)
+ */
+ public var last_viewed_at: Date?
+
+ /**
+ * Is favorite report
+ */
+ public var favorite: Bool?
+
+ private var _favorite_count: AnyInt?
+ /**
+ * Favorite count (read-only)
+ */
+ public var favorite_count: Int64? {
+ get { _favorite_count?.value }
+ set { _favorite_count = newValue.map(AnyInt.init) }
+ }
+
+ private var _view_count: AnyInt?
+ /**
+ * View count (read-only)
+ */
+ public var view_count: Int64? {
+ get { _view_count?.value }
+ set { _view_count = newValue.map(AnyInt.init) }
+ }
+
+ public var folder: FolderBase?
+
+ private var _folder_id: AnyString?
+ /**
+ * Id of the folder where the report is stored
+ */
+ public var folder_id: String? {
+ get { _folder_id?.value }
+ set { _folder_id = newValue.map(AnyString.init) }
+ }
+
+ private var _url: AnyString?
+ /**
+ * Relative URL of the report (read-only)
+ */
+ public var url: String? {
+ get { _url?.value }
+ set { _url = newValue.map(AnyString.init) }
+ }
+
+ private var _user_name: AnyString?
+ /**
+ * Name of User that created the Studio Report. (read-only)
+ */
+ public var user_name: String? {
+ get { _user_name?.value }
+ set { _user_name = newValue.map(AnyString.init) }
+ }
+
+ /**
+ * Deleted at (read-only)
+ */
+ public var deleted_at: Date?
+
+ /**
+ * Last Accessed at (read-only)
+ */
+ public var last_accessed_at: Date?
+
+ private var _deleter_user_id: AnyString?
+ /**
+ * User Id of the deleter of the report (read-only)
+ */
+ public var deleter_user_id: String? {
+ get { _deleter_user_id?.value }
+ set { _deleter_user_id = newValue.map(AnyString.init) }
+ }
+
+ private var _deleter_user_name: AnyString?
+ /**
+ * Name of User that deleted the Report. (read-only)
+ */
+ public var deleter_user_name: String? {
+ get { _deleter_user_name?.value }
+ set { _deleter_user_name = newValue.map(AnyString.init) }
+ }
+
+ public init(can: StringDictionary? = nil, id: String? = nil, title: String? = nil, user_id: String? = nil, created_at: Date? = nil, updated_at: Date? = nil, last_viewed_at: Date? = nil, favorite: Bool? = nil, favorite_count: Int64? = nil, view_count: Int64? = nil, folder: FolderBase? = nil, folder_id: String? = nil, url: String? = nil, user_name: String? = nil, deleted_at: Date? = nil, last_accessed_at: Date? = nil, deleter_user_id: String? = nil, deleter_user_name: String? = nil) {
+ self.can = can
+ self._id = id.map(AnyString.init)
+ self._title = title.map(AnyString.init)
+ self._user_id = user_id.map(AnyString.init)
+ self.created_at = created_at
+ self.updated_at = updated_at
+ self.last_viewed_at = last_viewed_at
+ self.favorite = favorite
+ self._favorite_count = favorite_count.map(AnyInt.init)
+ self._view_count = view_count.map(AnyInt.init)
+ self.folder = folder
+ self._folder_id = folder_id.map(AnyString.init)
+ self._url = url.map(AnyString.init)
+ self._user_name = user_name.map(AnyString.init)
+ self.deleted_at = deleted_at
+ self.last_accessed_at = last_accessed_at
+ self._deleter_user_id = deleter_user_id.map(AnyString.init)
+ self._deleter_user_name = deleter_user_name.map(AnyString.init)
+ }
+
+}
+
public struct RepositoryCredential: SDKModel {
private enum CodingKeys : String, CodingKey {
@@ -20958,16 +21273,16 @@ public struct Setting: SDKModel {
set { _dashboard_auto_refresh_minimum_interval = newValue.map(AnyString.init) }
}
- private var _managed_certificate_uri: AnyString?
+ private var _managed_certificate_uri: [AnyString]?
/**
- * URI pointing to the location of a private root certificate in Secret Manager
+ * Array of URIs pointing to the location of a root certificate in Secret Manager
*/
- public var managed_certificate_uri: String? {
- get { _managed_certificate_uri?.value }
- set { _managed_certificate_uri = newValue.map(AnyString.init) }
+ public var managed_certificate_uri: [String]? {
+ get { if let v = _managed_certificate_uri { return v.map { $0.value } } else { return nil } }
+ set { if let v = newValue { _managed_certificate_uri = v.map { AnyString.init($0) } } else { _managed_certificate_uri = nil } }
}
- public init(instance_config: InstanceConfig? = nil, extension_framework_enabled: Bool? = nil, extension_load_url_enabled: Bool? = nil, marketplace_auto_install_enabled: Bool? = nil, marketplace_automation: MarketplaceAutomation? = nil, marketplace_enabled: Bool? = nil, marketplace_site: String? = nil, marketplace_terms_accepted: Bool? = nil, privatelabel_configuration: PrivatelabelConfiguration? = nil, custom_welcome_email: CustomWelcomeEmail? = nil, onboarding_enabled: Bool? = nil, timezone: String? = nil, allow_user_timezones: Bool? = nil, data_connector_default_enabled: Bool? = nil, host_url: String? = nil, override_warnings: Bool? = nil, email_domain_allowlist: [String]? = nil, embed_cookieless_v2: Bool? = nil, embed_enabled: Bool? = nil, embed_config: EmbedConfig? = nil, login_notification_enabled: Bool? = nil, login_notification_text: String? = nil, dashboard_auto_refresh_restriction: Bool? = nil, dashboard_auto_refresh_minimum_interval: String? = nil, managed_certificate_uri: String? = nil) {
+ public init(instance_config: InstanceConfig? = nil, extension_framework_enabled: Bool? = nil, extension_load_url_enabled: Bool? = nil, marketplace_auto_install_enabled: Bool? = nil, marketplace_automation: MarketplaceAutomation? = nil, marketplace_enabled: Bool? = nil, marketplace_site: String? = nil, marketplace_terms_accepted: Bool? = nil, privatelabel_configuration: PrivatelabelConfiguration? = nil, custom_welcome_email: CustomWelcomeEmail? = nil, onboarding_enabled: Bool? = nil, timezone: String? = nil, allow_user_timezones: Bool? = nil, data_connector_default_enabled: Bool? = nil, host_url: String? = nil, override_warnings: Bool? = nil, email_domain_allowlist: [String]? = nil, embed_cookieless_v2: Bool? = nil, embed_enabled: Bool? = nil, embed_config: EmbedConfig? = nil, login_notification_enabled: Bool? = nil, login_notification_text: String? = nil, dashboard_auto_refresh_restriction: Bool? = nil, dashboard_auto_refresh_minimum_interval: String? = nil, managed_certificate_uri: [String]? = nil) {
self.instance_config = instance_config
self.extension_framework_enabled = extension_framework_enabled
self.extension_load_url_enabled = extension_load_url_enabled
@@ -20992,7 +21307,7 @@ public struct Setting: SDKModel {
self._login_notification_text = login_notification_text.map(AnyString.init)
self.dashboard_auto_refresh_restriction = dashboard_auto_refresh_restriction
self._dashboard_auto_refresh_minimum_interval = dashboard_auto_refresh_minimum_interval.map(AnyString.init)
- self._managed_certificate_uri = managed_certificate_uri.map(AnyString.init)
+ if let v = managed_certificate_uri { _managed_certificate_uri = v.map { AnyString.init($0) } } else { _managed_certificate_uri = nil }
}
}
@@ -22587,6 +22902,7 @@ public struct User: SDKModel {
case allow_normal_group_membership
case allow_roles_from_normal_groups
case _embed_group_folder_id = "embed_group_folder_id"
+ case is_iam_admin
case _url = "url"
}
/**
@@ -22803,6 +23119,11 @@ public struct User: SDKModel {
set { _embed_group_folder_id = newValue.map(AnyString.init) }
}
+ /**
+ * User is an IAM Admin - only available in Looker (Google Cloud core) (read-only)
+ */
+ public var is_iam_admin: Bool?
+
private var _url: AnyString?
/**
* Link to get this item (read-only)
@@ -22812,7 +23133,7 @@ public struct User: SDKModel {
set { _url = newValue.map(AnyString.init) }
}
- public init(can: StringDictionary? = nil, avatar_url: String? = nil, avatar_url_without_sizing: String? = nil, credentials_api3: [CredentialsApi3]? = nil, credentials_email: CredentialsEmail? = nil, credentials_embed: [CredentialsEmbed]? = nil, credentials_google: CredentialsGoogle? = nil, credentials_ldap: CredentialsLDAP? = nil, credentials_looker_openid: CredentialsLookerOpenid? = nil, credentials_oidc: CredentialsOIDC? = nil, credentials_saml: CredentialsSaml? = nil, credentials_totp: CredentialsTotp? = nil, display_name: String? = nil, email: String? = nil, embed_group_space_id: String? = nil, first_name: String? = nil, group_ids: [String]? = nil, home_folder_id: String? = nil, id: String? = nil, is_disabled: Bool? = nil, last_name: String? = nil, locale: String? = nil, looker_versions: [String]? = nil, models_dir_validated: Bool? = nil, personal_folder_id: String? = nil, presumed_looker_employee: Bool? = nil, role_ids: [String]? = nil, sessions: [Session]? = nil, ui_state: StringDictionary? = nil, verified_looker_employee: Bool? = nil, roles_externally_managed: Bool? = nil, allow_direct_roles: Bool? = nil, allow_normal_group_membership: Bool? = nil, allow_roles_from_normal_groups: Bool? = nil, embed_group_folder_id: String? = nil, url: String? = nil) {
+ public init(can: StringDictionary? = nil, avatar_url: String? = nil, avatar_url_without_sizing: String? = nil, credentials_api3: [CredentialsApi3]? = nil, credentials_email: CredentialsEmail? = nil, credentials_embed: [CredentialsEmbed]? = nil, credentials_google: CredentialsGoogle? = nil, credentials_ldap: CredentialsLDAP? = nil, credentials_looker_openid: CredentialsLookerOpenid? = nil, credentials_oidc: CredentialsOIDC? = nil, credentials_saml: CredentialsSaml? = nil, credentials_totp: CredentialsTotp? = nil, display_name: String? = nil, email: String? = nil, embed_group_space_id: String? = nil, first_name: String? = nil, group_ids: [String]? = nil, home_folder_id: String? = nil, id: String? = nil, is_disabled: Bool? = nil, last_name: String? = nil, locale: String? = nil, looker_versions: [String]? = nil, models_dir_validated: Bool? = nil, personal_folder_id: String? = nil, presumed_looker_employee: Bool? = nil, role_ids: [String]? = nil, sessions: [Session]? = nil, ui_state: StringDictionary? = nil, verified_looker_employee: Bool? = nil, roles_externally_managed: Bool? = nil, allow_direct_roles: Bool? = nil, allow_normal_group_membership: Bool? = nil, allow_roles_from_normal_groups: Bool? = nil, embed_group_folder_id: String? = nil, is_iam_admin: Bool? = nil, url: String? = nil) {
self.can = can
self._avatar_url = avatar_url.map(AnyString.init)
self._avatar_url_without_sizing = avatar_url_without_sizing.map(AnyString.init)
@@ -22848,6 +23169,7 @@ public struct User: SDKModel {
self.allow_normal_group_membership = allow_normal_group_membership
self.allow_roles_from_normal_groups = allow_roles_from_normal_groups
self._embed_group_folder_id = embed_group_folder_id.map(AnyString.init)
+ self.is_iam_admin = is_iam_admin
self._url = url.map(AnyString.init)
}
@@ -25493,13 +25815,13 @@ public struct WriteDatagroup: SDKModel {
/**
* Dynamic writeable type for DBConnection removes:
- * can, dialect, snippets, pdts_enabled, uses_oauth, uses_instance_oauth, supports_data_studio_link, created_at, user_id, example, last_regen_at, last_reap_at, managed, default_bq_connection, p4sa_name
+ * can, dialect, snippets, pdts_enabled, named_driver_version_actual, uses_oauth, uses_instance_oauth, supports_data_studio_link, created_at, user_id, example, last_regen_at, last_reap_at, managed, default_bq_connection, p4sa_name
*/
public struct WriteDBConnection: SDKModel {
private enum CodingKeys : String, CodingKey {
case _name = "name"
- case _named_driver_version = "named_driver_version"
+ case _named_driver_version_requested = "named_driver_version_requested"
case _host = "host"
case _port = "port"
case _username = "username"
@@ -25553,13 +25875,13 @@ public struct WriteDBConnection: SDKModel {
set { _name = newValue.map(AnyString.init) }
}
- private var _named_driver_version: AnyString?
+ private var _named_driver_version_requested: AnyString?
/**
- * JDBC driver version name
+ * Requested JDBC driver version name
*/
- public var named_driver_version: String? {
- get { _named_driver_version?.value }
- set { _named_driver_version = newValue.map(AnyString.init) }
+ public var named_driver_version_requested: String? {
+ get { _named_driver_version_requested?.value }
+ set { _named_driver_version_requested = newValue.map(AnyString.init) }
}
private var _host: AnyString?
@@ -25890,9 +26212,9 @@ public struct WriteDBConnection: SDKModel {
*/
public var query_holding_disabled: Bool?
- public init(name: String? = nil, named_driver_version: String? = nil, host: String? = nil, port: String? = nil, username: String? = nil, password: String? = nil, certificate: String? = nil, file_type: String? = nil, database: String? = nil, db_timezone: String? = nil, query_timezone: String? = nil, schema: String? = nil, max_connections: Int64? = nil, max_queries: Int64? = nil, max_queries_per_user: Int64? = nil, max_billing_gigabytes: String? = nil, ssl: Bool? = nil, verify_ssl: Bool? = nil, tmp_db_name: String? = nil, tmp_db_host: String? = nil, jdbc_additional_params: String? = nil, pool_timeout: Int64? = nil, dialect_name: String? = nil, user_db_credentials: Bool? = nil, user_attribute_fields: [String]? = nil, maintenance_cron: String? = nil, sql_runner_precache_tables: Bool? = nil, sql_writing_with_info_schema: Bool? = nil, after_connect_statements: String? = nil, pdt_context_override: WriteDBConnectionOverride? = nil, custom_local_port: Int64? = nil, tunnel_id: String? = nil, uses_tns: Bool? = nil, pdt_concurrency: Int64? = nil, disable_context_comment: Bool? = nil, oauth_application_id: String? = nil, always_retry_failed_builds: Bool? = nil, uses_application_default_credentials: Bool? = nil, impersonated_service_account: String? = nil, cost_estimate_enabled: Bool? = nil, pdt_api_control_enabled: Bool? = nil, connection_pooling: Bool? = nil, bq_storage_project_id: String? = nil, bq_roles_verified: Bool? = nil, query_holding_disabled: Bool? = nil) {
+ public init(name: String? = nil, named_driver_version_requested: String? = nil, host: String? = nil, port: String? = nil, username: String? = nil, password: String? = nil, certificate: String? = nil, file_type: String? = nil, database: String? = nil, db_timezone: String? = nil, query_timezone: String? = nil, schema: String? = nil, max_connections: Int64? = nil, max_queries: Int64? = nil, max_queries_per_user: Int64? = nil, max_billing_gigabytes: String? = nil, ssl: Bool? = nil, verify_ssl: Bool? = nil, tmp_db_name: String? = nil, tmp_db_host: String? = nil, jdbc_additional_params: String? = nil, pool_timeout: Int64? = nil, dialect_name: String? = nil, user_db_credentials: Bool? = nil, user_attribute_fields: [String]? = nil, maintenance_cron: String? = nil, sql_runner_precache_tables: Bool? = nil, sql_writing_with_info_schema: Bool? = nil, after_connect_statements: String? = nil, pdt_context_override: WriteDBConnectionOverride? = nil, custom_local_port: Int64? = nil, tunnel_id: String? = nil, uses_tns: Bool? = nil, pdt_concurrency: Int64? = nil, disable_context_comment: Bool? = nil, oauth_application_id: String? = nil, always_retry_failed_builds: Bool? = nil, uses_application_default_credentials: Bool? = nil, impersonated_service_account: String? = nil, cost_estimate_enabled: Bool? = nil, pdt_api_control_enabled: Bool? = nil, connection_pooling: Bool? = nil, bq_storage_project_id: String? = nil, bq_roles_verified: Bool? = nil, query_holding_disabled: Bool? = nil) {
self._name = name.map(AnyString.init)
- self._named_driver_version = named_driver_version.map(AnyString.init)
+ self._named_driver_version_requested = named_driver_version_requested.map(AnyString.init)
self._host = host.map(AnyString.init)
self._port = port.map(AnyString.init)
self._username = username.map(AnyString.init)
@@ -25949,15 +26271,25 @@ public struct WriteDBConnectionOverride: SDKModel {
private enum CodingKeys : String, CodingKey {
case _context = "context"
case _host = "host"
+ case _pdt_host = "pdt_host"
case _port = "port"
+ case _pdt_port = "pdt_port"
case _username = "username"
+ case _pdt_username = "pdt_username"
case _password = "password"
+ case _pdt_password = "pdt_password"
case _certificate = "certificate"
+ case _pdt_certificate = "pdt_certificate"
case _file_type = "file_type"
+ case _pdt_file_type = "pdt_file_type"
case _database = "database"
+ case _pdt_database = "pdt_database"
case _schema = "schema"
+ case _pdt_schema = "pdt_schema"
case _jdbc_additional_params = "jdbc_additional_params"
+ case _pdt_jdbc_additional_params = "pdt_jdbc_additional_params"
case _after_connect_statements = "after_connect_statements"
+ case _pdt_after_connect_statements = "pdt_after_connect_statements"
}
private var _context: AnyString?
/**
@@ -25977,6 +26309,15 @@ public struct WriteDBConnectionOverride: SDKModel {
set { _host = newValue.map(AnyString.init) }
}
+ private var _pdt_host: AnyString?
+ /**
+ * Host name/address of server (same as host)
+ */
+ public var pdt_host: String? {
+ get { _pdt_host?.value }
+ set { _pdt_host = newValue.map(AnyString.init) }
+ }
+
private var _port: AnyString?
/**
* Port number on server
@@ -25986,6 +26327,15 @@ public struct WriteDBConnectionOverride: SDKModel {
set { _port = newValue.map(AnyString.init) }
}
+ private var _pdt_port: AnyString?
+ /**
+ * Port number on server (same as port)
+ */
+ public var pdt_port: String? {
+ get { _pdt_port?.value }
+ set { _pdt_port = newValue.map(AnyString.init) }
+ }
+
private var _username: AnyString?
/**
* Username for server authentication
@@ -25995,6 +26345,15 @@ public struct WriteDBConnectionOverride: SDKModel {
set { _username = newValue.map(AnyString.init) }
}
+ private var _pdt_username: AnyString?
+ /**
+ * Username for server authentication (same as username)
+ */
+ public var pdt_username: String? {
+ get { _pdt_username?.value }
+ set { _pdt_username = newValue.map(AnyString.init) }
+ }
+
private var _password: AnyString?
/**
* (Write-Only) Password for server authentication
@@ -26004,6 +26363,15 @@ public struct WriteDBConnectionOverride: SDKModel {
set { _password = newValue.map(AnyString.init) }
}
+ private var _pdt_password: AnyString?
+ /**
+ * (Write-Only) Password for server authentication (same as password)
+ */
+ public var pdt_password: String? {
+ get { _pdt_password?.value }
+ set { _pdt_password = newValue.map(AnyString.init) }
+ }
+
private var _certificate: AnyString?
/**
* (Write-Only) Base64 encoded Certificate body for server authentication (when appropriate for dialect).
@@ -26013,6 +26381,15 @@ public struct WriteDBConnectionOverride: SDKModel {
set { _certificate = newValue.map(AnyString.init) }
}
+ private var _pdt_certificate: AnyString?
+ /**
+ * (Write-Only) Base64 encoded Certificate body for server authentication (when appropriate for dialect) (same as certificate).
+ */
+ public var pdt_certificate: String? {
+ get { _pdt_certificate?.value }
+ set { _pdt_certificate = newValue.map(AnyString.init) }
+ }
+
private var _file_type: AnyString?
/**
* (Write-Only) Certificate keyfile type - .json or .p12
@@ -26022,6 +26399,15 @@ public struct WriteDBConnectionOverride: SDKModel {
set { _file_type = newValue.map(AnyString.init) }
}
+ private var _pdt_file_type: AnyString?
+ /**
+ * (Write-Only) Certificate keyfile type - .json or .p12 (same as file_type)
+ */
+ public var pdt_file_type: String? {
+ get { _pdt_file_type?.value }
+ set { _pdt_file_type = newValue.map(AnyString.init) }
+ }
+
private var _database: AnyString?
/**
* Database name
@@ -26031,6 +26417,15 @@ public struct WriteDBConnectionOverride: SDKModel {
set { _database = newValue.map(AnyString.init) }
}
+ private var _pdt_database: AnyString?
+ /**
+ * Database name (same as database)
+ */
+ public var pdt_database: String? {
+ get { _pdt_database?.value }
+ set { _pdt_database = newValue.map(AnyString.init) }
+ }
+
private var _schema: AnyString?
/**
* Schema name
@@ -26040,6 +26435,15 @@ public struct WriteDBConnectionOverride: SDKModel {
set { _schema = newValue.map(AnyString.init) }
}
+ private var _pdt_schema: AnyString?
+ /**
+ * Schema name (same as schema)
+ */
+ public var pdt_schema: String? {
+ get { _pdt_schema?.value }
+ set { _pdt_schema = newValue.map(AnyString.init) }
+ }
+
private var _jdbc_additional_params: AnyString?
/**
* Additional params to add to JDBC connection string
@@ -26049,6 +26453,15 @@ public struct WriteDBConnectionOverride: SDKModel {
set { _jdbc_additional_params = newValue.map(AnyString.init) }
}
+ private var _pdt_jdbc_additional_params: AnyString?
+ /**
+ * Additional params to add to JDBC connection string (same as jdbc_additional_params)
+ */
+ public var pdt_jdbc_additional_params: String? {
+ get { _pdt_jdbc_additional_params?.value }
+ set { _pdt_jdbc_additional_params = newValue.map(AnyString.init) }
+ }
+
private var _after_connect_statements: AnyString?
/**
* SQL statements (semicolon separated) to issue after connecting to the database. Requires `custom_after_connect_statements` license feature
@@ -26058,18 +26471,37 @@ public struct WriteDBConnectionOverride: SDKModel {
set { _after_connect_statements = newValue.map(AnyString.init) }
}
- public init(context: String? = nil, host: String? = nil, port: String? = nil, username: String? = nil, password: String? = nil, certificate: String? = nil, file_type: String? = nil, database: String? = nil, schema: String? = nil, jdbc_additional_params: String? = nil, after_connect_statements: String? = nil) {
+ private var _pdt_after_connect_statements: AnyString?
+ /**
+ * SQL statements (semicolon separated) to issue after connecting to the database. Requires `custom_after_connect_statements` license feature (same as after_connect_statements)
+ */
+ public var pdt_after_connect_statements: String? {
+ get { _pdt_after_connect_statements?.value }
+ set { _pdt_after_connect_statements = newValue.map(AnyString.init) }
+ }
+
+ public init(context: String? = nil, host: String? = nil, pdt_host: String? = nil, port: String? = nil, pdt_port: String? = nil, username: String? = nil, pdt_username: String? = nil, password: String? = nil, pdt_password: String? = nil, certificate: String? = nil, pdt_certificate: String? = nil, file_type: String? = nil, pdt_file_type: String? = nil, database: String? = nil, pdt_database: String? = nil, schema: String? = nil, pdt_schema: String? = nil, jdbc_additional_params: String? = nil, pdt_jdbc_additional_params: String? = nil, after_connect_statements: String? = nil, pdt_after_connect_statements: String? = nil) {
self._context = context.map(AnyString.init)
self._host = host.map(AnyString.init)
+ self._pdt_host = pdt_host.map(AnyString.init)
self._port = port.map(AnyString.init)
+ self._pdt_port = pdt_port.map(AnyString.init)
self._username = username.map(AnyString.init)
+ self._pdt_username = pdt_username.map(AnyString.init)
self._password = password.map(AnyString.init)
+ self._pdt_password = pdt_password.map(AnyString.init)
self._certificate = certificate.map(AnyString.init)
+ self._pdt_certificate = pdt_certificate.map(AnyString.init)
self._file_type = file_type.map(AnyString.init)
+ self._pdt_file_type = pdt_file_type.map(AnyString.init)
self._database = database.map(AnyString.init)
+ self._pdt_database = pdt_database.map(AnyString.init)
self._schema = schema.map(AnyString.init)
+ self._pdt_schema = pdt_schema.map(AnyString.init)
self._jdbc_additional_params = jdbc_additional_params.map(AnyString.init)
+ self._pdt_jdbc_additional_params = pdt_jdbc_additional_params.map(AnyString.init)
self._after_connect_statements = after_connect_statements.map(AnyString.init)
+ self._pdt_after_connect_statements = pdt_after_connect_statements.map(AnyString.init)
}
}
@@ -28928,16 +29360,16 @@ public struct WriteSetting: SDKModel {
set { _dashboard_auto_refresh_minimum_interval = newValue.map(AnyString.init) }
}
- private var _managed_certificate_uri: AnyString?
+ private var _managed_certificate_uri: [AnyString]?
/**
- * URI pointing to the location of a private root certificate in Secret Manager
+ * Array of URIs pointing to the location of a root certificate in Secret Manager
*/
- public var managed_certificate_uri: String? {
- get { _managed_certificate_uri?.value }
- set { _managed_certificate_uri = newValue.map(AnyString.init) }
+ public var managed_certificate_uri: [String]? {
+ get { if let v = _managed_certificate_uri { return v.map { $0.value } } else { return nil } }
+ set { if let v = newValue { _managed_certificate_uri = v.map { AnyString.init($0) } } else { _managed_certificate_uri = nil } }
}
- public init(extension_framework_enabled: Bool? = nil, extension_load_url_enabled: Bool? = nil, marketplace_auto_install_enabled: Bool? = nil, marketplace_automation: MarketplaceAutomation? = nil, marketplace_enabled: Bool? = nil, marketplace_terms_accepted: Bool? = nil, privatelabel_configuration: WritePrivatelabelConfiguration? = nil, custom_welcome_email: CustomWelcomeEmail? = nil, onboarding_enabled: Bool? = nil, timezone: String? = nil, allow_user_timezones: Bool? = nil, data_connector_default_enabled: Bool? = nil, host_url: String? = nil, override_warnings: Bool? = nil, email_domain_allowlist: [String]? = nil, embed_cookieless_v2: Bool? = nil, embed_config: WriteEmbedConfig? = nil, dashboard_auto_refresh_restriction: Bool? = nil, dashboard_auto_refresh_minimum_interval: String? = nil, managed_certificate_uri: String? = nil) {
+ public init(extension_framework_enabled: Bool? = nil, extension_load_url_enabled: Bool? = nil, marketplace_auto_install_enabled: Bool? = nil, marketplace_automation: MarketplaceAutomation? = nil, marketplace_enabled: Bool? = nil, marketplace_terms_accepted: Bool? = nil, privatelabel_configuration: WritePrivatelabelConfiguration? = nil, custom_welcome_email: CustomWelcomeEmail? = nil, onboarding_enabled: Bool? = nil, timezone: String? = nil, allow_user_timezones: Bool? = nil, data_connector_default_enabled: Bool? = nil, host_url: String? = nil, override_warnings: Bool? = nil, email_domain_allowlist: [String]? = nil, embed_cookieless_v2: Bool? = nil, embed_config: WriteEmbedConfig? = nil, dashboard_auto_refresh_restriction: Bool? = nil, dashboard_auto_refresh_minimum_interval: String? = nil, managed_certificate_uri: [String]? = nil) {
self.extension_framework_enabled = extension_framework_enabled
self.extension_load_url_enabled = extension_load_url_enabled
self.marketplace_auto_install_enabled = marketplace_auto_install_enabled
@@ -28957,7 +29389,7 @@ public struct WriteSetting: SDKModel {
self.embed_config = embed_config
self.dashboard_auto_refresh_restriction = dashboard_auto_refresh_restriction
self._dashboard_auto_refresh_minimum_interval = dashboard_auto_refresh_minimum_interval.map(AnyString.init)
- self._managed_certificate_uri = managed_certificate_uri.map(AnyString.init)
+ if let v = managed_certificate_uri { _managed_certificate_uri = v.map { AnyString.init($0) } } else { _managed_certificate_uri = nil }
}
}
@@ -29155,7 +29587,7 @@ public struct WriteTheme: SDKModel {
/**
* Dynamic writeable type for User removes:
- * can, avatar_url, avatar_url_without_sizing, credentials_api3, credentials_embed, credentials_google, credentials_ldap, credentials_looker_openid, credentials_oidc, credentials_saml, credentials_totp, display_name, email, embed_group_space_id, group_ids, id, looker_versions, personal_folder_id, presumed_looker_employee, role_ids, sessions, verified_looker_employee, roles_externally_managed, allow_direct_roles, allow_normal_group_membership, allow_roles_from_normal_groups, embed_group_folder_id, url
+ * can, avatar_url, avatar_url_without_sizing, credentials_api3, credentials_embed, credentials_google, credentials_ldap, credentials_looker_openid, credentials_oidc, credentials_saml, credentials_totp, display_name, email, embed_group_space_id, group_ids, id, looker_versions, personal_folder_id, presumed_looker_employee, role_ids, sessions, verified_looker_employee, roles_externally_managed, allow_direct_roles, allow_normal_group_membership, allow_roles_from_normal_groups, embed_group_folder_id, is_iam_admin, url
*/
public struct WriteUser: SDKModel {
diff --git a/swift/looker/sdk/streams.swift b/swift/looker/sdk/streams.swift
index 608a7c3c5..fc417436b 100644
--- a/swift/looker/sdk/streams.swift
+++ b/swift/looker/sdk/streams.swift
@@ -25,7 +25,7 @@
*/
/**
- * 467 API methods
+ * 469 API methods
*/
@@ -569,11 +569,15 @@ open class LookerSDKStream: APIMethods {
* @param {Int64} offset Number of results to skip before returning any. (used with limit)
*/
offset: Int64? = nil,
+ /**
+ * @param {Bool} tally Return the full count of results in the X-Total-Count response header. (Slight performance hit.)
+ */
+ tally: Bool? = nil,
options: ITransportSettings? = nil
) -> SDKResponse {
let path_namespace = encodeParam(namespace)
let result: SDKResponse = self.get("/artifact/\(path_namespace)/search",
- ["fields": fields, "key": key, "user_ids": user_ids, "min_size": min_size, "max_size": max_size, "limit": limit, "offset": offset], nil, options)
+ ["fields": fields, "key": key, "user_ids": user_ids, "min_size": min_size, "max_size": max_size, "limit": limit, "offset": offset, "tally": tally as Any?], nil, options)
return result
}
@@ -607,11 +611,15 @@ open class LookerSDKStream: APIMethods {
* @param {Int64} offset Number of results to skip before returning any. (used with limit)
*/
offset: Int64? = nil,
+ /**
+ * @param {Bool} tally Return the full count of results in the X-Total-Count response header. (Slight performance hit.)
+ */
+ tally: Bool? = nil,
options: ITransportSettings? = nil
) -> SDKResponse {
let path_namespace = encodeParam(namespace)
let result: SDKResponse = self.get("/artifact/\(path_namespace)",
- ["key": key, "fields": fields, "limit": limit, "offset": offset], nil, options)
+ ["key": key, "fields": fields, "limit": limit, "offset": offset, "tally": tally as Any?], nil, options)
return result
}
@@ -9087,6 +9095,82 @@ open class LookerSDKStream: APIMethods {
+ // MARK Report: Report
+
+ /**
+ * ### Search Reports
+ *
+ * Returns an **array of Report objects** that match the specified search criteria.
+ *
+ * If multiple search params are given and `filter_or` is FALSE or not specified,
+ * search params are combined in a logical AND operation.
+ * Only rows that match *all* search param criteria will be returned.
+ *
+ * If `filter_or` is TRUE, multiple search params are combined in a logical OR operation.
+ * Results will include rows that match **any** of the search criteria.
+ *
+ * String search params use case-insensitive matching.
+ * String search params can contain `%` and '_' as SQL LIKE pattern match wildcard expressions.
+ * example="dan%" will match "danger" and "Danzig" but not "David"
+ * example="D_m%" will match "Damage" and "dump"
+ *
+ * Integer search params can accept a single value or a comma separated list of values. The multiple
+ * values will be combined under a logical OR operation - results will match at least one of
+ * the given values.
+ *
+ * Most search params can accept "IS NULL" and "NOT NULL" as special expressions to match
+ * or exclude (respectively) rows where the column is null.
+ *
+ * Boolean search params accept only "true" and "false" as values.
+ *
+ * GET /reports/search -> [Report]
+ */
+ public func search_reports(
+ /**
+ * @param {String} folder_id Select reports in a particular folder.
+ */
+ folder_id: String? = nil,
+ /**
+ * @param {Bool} favorite Select favorite reports.
+ */
+ favorite: Bool? = nil,
+ /**
+ * @param {Bool} recent Select reports viewed recently.
+ */
+ recent: Bool? = nil,
+ /**
+ * @param {String} id Match report id.
+ */
+ id: String? = nil,
+ /**
+ * @param {String} title Match report title.
+ */
+ title: String? = nil,
+ /**
+ * @param {String} sorts One or more fields to sort results by.
+ */
+ sorts: String? = nil,
+ /**
+ * @param {Int64} limit Number of results to return.(used with next_page_token)
+ */
+ limit: Int64? = nil,
+ /**
+ * @param {String} fields Comma delimited list of field names. If provided, only the fields specified will be included in the response.
+ */
+ fields: String? = nil,
+ /**
+ * @param {String} next_page_token Contains a token that can be used to return up to Number of results to return.(used with next_page_token) additional results. A next_page_token will not be returned if there are no additional results to display.
+ */
+ next_page_token: String? = nil,
+ options: ITransportSettings? = nil
+ ) -> SDKResponse {
+ let result: SDKResponse = self.get("/reports/search",
+ ["folder_id": folder_id, "favorite": favorite as Any?, "recent": recent as Any?, "id": id, "title": title, "sorts": sorts, "limit": limit, "fields": fields, "next_page_token": next_page_token], nil, options)
+ return result
+ }
+
+
+
// MARK Role: Manage Roles
/**
diff --git a/yarn.lock b/yarn.lock
index 47ba43b62..d51e9b0fb 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -14120,16 +14120,11 @@ proto-list@~1.2.1:
resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849"
integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==
-protocols@^2.0.0:
+protocols@^2.0.0, protocols@^2.0.1:
version "2.0.2"
resolved "https://registry.yarnpkg.com/protocols/-/protocols-2.0.2.tgz#822e8fcdcb3df5356538b3e91bfd890b067fd0a4"
integrity sha512-hHVTzba3wboROl0/aWRRG9dMytgH6ow//STBZh43l/wQgmMhYhOFi0EHWAPtoCz9IAUymsyP0TSBHkhgMEGNnQ==
-protocols@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/protocols/-/protocols-2.0.1.tgz#8f155da3fc0f32644e83c5782c8e8212ccf70a86"
- integrity sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==
-
protoduck@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/protoduck/-/protoduck-5.0.1.tgz#03c3659ca18007b69a50fd82a7ebcc516261151f"