diff --git a/csharp/rtl/Constants.cs b/csharp/rtl/Constants.cs index 639b1efea..b7ee079a9 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 = "24.12"; + public const string LookerVersion = "24.14"; 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 2c986c720..3852eae33 100644 --- a/csharp/sdk/4.0/methods.cs +++ b/csharp/sdk/4.0/methods.cs @@ -21,7 +21,7 @@ /// SOFTWARE. /// -/// 464 API methods +/// 465 API methods #nullable enable using System; @@ -2499,6 +2499,8 @@ public async Task> mobile_settings( /// - allow_user_timezones /// - custom_welcome_email /// - data_connector_default_enabled + /// - dashboard_auto_refresh_restriction + /// - dashboard_auto_refresh_minimum_interval /// - extension_framework_enabled /// - extension_load_url_enabled /// - instance_config @@ -2535,6 +2537,8 @@ public async Task> get_setting( /// - allow_user_timezones /// - custom_welcome_email /// - data_connector_default_enabled + /// - dashboard_auto_refresh_restriction + /// - dashboard_auto_refresh_minimum_interval /// - extension_framework_enabled /// - extension_load_url_enabled /// - instance_config @@ -2880,6 +2884,24 @@ public async Task> create_exter return await AuthRequest(HttpMethod.Post, "/external_oauth_applications", null,body,options); } + /// ### Update an OAuth Application's client secret. + /// + /// This is an OAuth Application which Looker uses to access external systems. + /// + /// PATCH /external_oauth_applications/{client_id} -> ExternalOauthApplication + /// + /// ExternalOauthApplication External OAuth Application (application/json) + /// + /// The client ID of the OAuth App to update + public async Task> update_external_oauth_application( + string client_id, + WriteExternalOauthApplication body, + ITransportSettings? options = null) +{ + client_id = SdkUtils.EncodeParam(client_id); + return await AuthRequest(HttpMethod.Patch, $"/external_oauth_applications/{client_id}", null,body,options); + } + /// ### Create OAuth User state. /// /// POST /external_oauth_applications/user_state -> CreateOAuthApplicationUserStateResponse diff --git a/csharp/sdk/4.0/models.cs b/csharp/sdk/4.0/models.cs index 6dac9c156..3d5fd4535 100644 --- a/csharp/sdk/4.0/models.cs +++ b/csharp/sdk/4.0/models.cs @@ -994,6 +994,10 @@ public class CredentialsEmail : SdkModel public string? password_reset_url { get; set; } = null; /// Url with one-time use secret token that the user can use to setup account (read-only) public string? account_setup_url { get; set; } = null; + /// Is password_reset_url expired or not present? (read-only) + public bool? password_reset_url_expired { get; set; } = null; + /// Is account_setup_url expired or not present? (read-only) + public bool? account_setup_url_expired { get; set; } = null; /// Short name for the type of this kind of credential (read-only) public string? type { get; set; } = null; /// Link to get this item (read-only) @@ -1022,6 +1026,10 @@ public class CredentialsEmailSearch : SdkModel public string? password_reset_url { get; set; } = null; /// Url with one-time use secret token that the user can use to setup account (read-only) public string? account_setup_url { get; set; } = null; + /// Is password_reset_url expired or not present? (read-only) + public bool? password_reset_url_expired { get; set; } = null; + /// Is account_setup_url expired or not present? (read-only) + public bool? account_setup_url_expired { get; set; } = null; /// Short name for the type of this kind of credential (read-only) public string? type { get; set; } = null; /// Link to get this item (read-only) @@ -1616,6 +1624,8 @@ public class DBConnection : SdkModel public string? password { get; set; } = null; /// Whether the connection uses OAuth for authentication. (read-only) public bool? uses_oauth { get; set; } = null; + /// Whether the integration uses the oauth instance account. (read-only) + public bool? uses_instance_oauth { get; set; } = null; /// (Write-Only) Base64 encoded Certificate body for server authentication (when appropriate for dialect). public string? certificate { get; set; } = null; /// (Write-Only) Certificate keyfile type - .json or .p12 @@ -1630,6 +1640,10 @@ public class DBConnection : SdkModel public string? schema { get; set; } = null; /// Maximum number of concurrent connection to use public long? max_connections { get; set; } = null; + /// Maximum number of concurrent queries to begin on this connection + public long? max_queries { get; set; } = null; + /// Maximum number of concurrent queries per user to begin on this connection + public long? max_queries_per_user { get; set; } = null; /// Maximum size of query in GBs (BigQuery only, can be a user_attribute name) public string? max_billing_gigabytes { get; set; } = null; /// Use SSL/TLS when connecting to server @@ -1685,12 +1699,22 @@ public class DBConnection : SdkModel public string? oauth_application_id { get; set; } = null; /// When true, error PDTs will be retried every regenerator cycle public bool? always_retry_failed_builds { get; set; } = null; + /// Whether the connection should authenticate with the Application Default Credentials of the host environment (limited to GCP and certain dialects). + public bool? uses_application_default_credentials { get; set; } = null; + /// An alternative Service Account to use for querying datasets (used primarily with `uses_application_default_credentials`) (limited to GCP and certain dialects). + public string? impersonated_service_account { get; set; } = null; /// When true, query cost estimate will be displayed in explore. public bool? cost_estimate_enabled { get; set; } = null; /// PDT builds on this connection can be kicked off and cancelled via API. public bool? pdt_api_control_enabled { get; set; } = null; /// Enable database connection pooling. public bool? connection_pooling { get; set; } = null; + /// When true, represents that this connection is the default BQ connection. (read-only) + public bool? default_bq_connection { get; set; } = null; + /// The project id of the default BigQuery storage project. + public string? bq_storage_project_id { get; set; } = null; + /// When true, represents that all project roles have been verified. (read-only) + public bool? bq_roles_verified { get; set; } = null; } public class DBConnectionBase : SdkModel @@ -4547,6 +4571,8 @@ public class RunningQueries : SdkModel public double? runtime { get; set; } = null; /// SQL text of the query as run (read-only) public string? sql { get; set; } = null; + /// SQL text of the SQL Interface query as run (read-only) + public string? sql_interface_sql { get; set; } = null; } public class SamlConfig : SdkModel @@ -4962,6 +4988,10 @@ public class Setting : SdkModel public bool? login_notification_enabled { get; set; } = null; /// Login notification text (read-only) public string? login_notification_text { get; set; } = null; + /// Toggle Dashboard Auto Refresh restriction + 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; } public class SmtpNodeStatus : SdkModel @@ -5443,7 +5473,7 @@ public class User : SdkModel public bool? models_dir_validated { get; set; } = null; /// ID of user's personal folder (read-only) public string? personal_folder_id { get; set; } = null; - /// User is identified as an employee of Looker (read-only) + /// (DEPRECATED) User is identified as an employee of Looker (read-only) public bool? presumed_looker_employee { get; set; } = null; /// Array of ids of the roles for this user (read-only) public string[]? role_ids { get; set; } = null; @@ -5940,7 +5970,7 @@ public class WriteCreateQueryTask : SdkModel } /// Dynamic writeable type for CredentialsEmail removes: -/// can, created_at, user_id, is_disabled, logged_in_at, password_reset_url, account_setup_url, type, url, user_url +/// 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 public class WriteCredentialsEmail : SdkModel { /// EMail address used for user login @@ -6158,7 +6188,7 @@ public class WriteDatagroup : SdkModel } /// Dynamic writeable type for DBConnection removes: -/// can, dialect, snippets, pdts_enabled, uses_oauth, supports_data_studio_link, created_at, user_id, example, last_regen_at, last_reap_at, managed +/// 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, bq_roles_verified public class WriteDBConnection : SdkModel { /// Name of the connection. Also used as the unique identifier @@ -6185,6 +6215,10 @@ public class WriteDBConnection : SdkModel public string? schema { get; set; } = null; /// Maximum number of concurrent connection to use public long? max_connections { get; set; } = null; + /// Maximum number of concurrent queries to begin on this connection + public long? max_queries { get; set; } = null; + /// Maximum number of concurrent queries per user to begin on this connection + public long? max_queries_per_user { get; set; } = null; /// Maximum size of query in GBs (BigQuery only, can be a user_attribute name) public string? max_billing_gigabytes { get; set; } = null; /// Use SSL/TLS when connecting to server @@ -6230,12 +6264,18 @@ public class WriteDBConnection : SdkModel public string? oauth_application_id { get; set; } = null; /// When true, error PDTs will be retried every regenerator cycle public bool? always_retry_failed_builds { get; set; } = null; + /// Whether the connection should authenticate with the Application Default Credentials of the host environment (limited to GCP and certain dialects). + public bool? uses_application_default_credentials { get; set; } = null; + /// An alternative Service Account to use for querying datasets (used primarily with `uses_application_default_credentials`) (limited to GCP and certain dialects). + public string? impersonated_service_account { get; set; } = null; /// When true, query cost estimate will be displayed in explore. public bool? cost_estimate_enabled { get; set; } = null; /// PDT builds on this connection can be kicked off and cancelled via API. public bool? pdt_api_control_enabled { get; set; } = null; /// Enable database connection pooling. public bool? connection_pooling { get; set; } = null; + /// The project id of the default BigQuery storage project. + public string? bq_storage_project_id { get; set; } = null; } /// Dynamic writeable type for DBConnectionOverride removes: @@ -6972,6 +7012,10 @@ public class WriteSetting : SdkModel /// (DEPRECATED) Use embed_config.embed_cookieless_v2 instead. If embed_config.embed_cookieless_v2 is specified, it overrides this value. public bool? embed_cookieless_v2 { get; set; } = null; public EmbedConfig? embed_config { get; set; } + /// Toggle Dashboard Auto Refresh restriction + 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; } /// Dynamic writeable type for SqlInterfaceQueryCreate removes: @@ -7031,7 +7075,7 @@ public class WriteUser : SdkModel { /// /// Dynamic writeable type for CredentialsEmail removes: - /// can, created_at, user_id, is_disabled, logged_in_at, password_reset_url, account_setup_url, type, url, user_url + /// 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 /// public WriteCredentialsEmail? credentials_email { get; set; } /// First name diff --git a/go/sdk/v4/methods.go b/go/sdk/v4/methods.go index d9080db46..a69ddb475 100644 --- a/go/sdk/v4/methods.go +++ b/go/sdk/v4/methods.go @@ -26,7 +26,7 @@ SOFTWARE. /* -464 API methods +465 API methods */ // NOTE: Do not edit this file generated by Looker SDK Codegen for API v4 @@ -40,11 +40,15 @@ import ( "time" ) +type authSessionDoer interface { + Do(result interface{}, method, ver, path string, reqPars map[string]interface{}, body interface{}, options *rtl.ApiSettings) error +} + type LookerSDK struct { - session *rtl.AuthSession + session authSessionDoer } -func NewLookerSDK(session *rtl.AuthSession) *LookerSDK { +func NewLookerSDK(session authSessionDoer) *LookerSDK { return &LookerSDK{ session: session, } @@ -2108,6 +2112,8 @@ func (l *LookerSDK) MobileSettings( // - allow_user_timezones // - custom_welcome_email // - data_connector_default_enabled +// - dashboard_auto_refresh_restriction +// - dashboard_auto_refresh_minimum_interval // - extension_framework_enabled // - extension_load_url_enabled // - instance_config @@ -2141,6 +2147,8 @@ func (l *LookerSDK) GetSetting( // - allow_user_timezones // - custom_welcome_email // - data_connector_default_enabled +// - dashboard_auto_refresh_restriction +// - dashboard_auto_refresh_minimum_interval // - extension_framework_enabled // - extension_load_url_enabled // - instance_config @@ -2437,6 +2445,22 @@ func (l *LookerSDK) CreateExternalOauthApplication( } +// ### Update an OAuth Application's client secret. +// +// This is an OAuth Application which Looker uses to access external systems. +// +// PATCH /external_oauth_applications/{client_id} -> ExternalOauthApplication +func (l *LookerSDK) UpdateExternalOauthApplication( + clientId string, + body WriteExternalOauthApplication, + options *rtl.ApiSettings) (ExternalOauthApplication, error) { + clientId = url.PathEscape(clientId) + var result ExternalOauthApplication + err := l.session.Do(&result, "PATCH", "/4.0", fmt.Sprintf("/external_oauth_applications/%v", clientId), nil, body, options) + return result, err + +} + // ### Create OAuth User state. // // POST /external_oauth_applications/user_state -> CreateOAuthApplicationUserStateResponse diff --git a/go/sdk/v4/models.go b/go/sdk/v4/models.go index 76acf2fbf..a5aa3b965 100644 --- a/go/sdk/v4/models.go +++ b/go/sdk/v4/models.go @@ -579,6 +579,8 @@ type CredentialsEmail struct { LoggedInAt *string `json:"logged_in_at,omitempty"` // Timestamp for most recent login using credential PasswordResetUrl *string `json:"password_reset_url,omitempty"` // Url with one-time use secret token that the user can use to reset password AccountSetupUrl *string `json:"account_setup_url,omitempty"` // Url with one-time use secret token that the user can use to setup account + PasswordResetUrlExpired *bool `json:"password_reset_url_expired,omitempty"` // Is password_reset_url expired or not present? + AccountSetupUrlExpired *bool `json:"account_setup_url_expired,omitempty"` // Is account_setup_url expired or not present? Type *string `json:"type,omitempty"` // Short name for the type of this kind of credential Url *string `json:"url,omitempty"` // Link to get this item UserUrl *string `json:"user_url,omitempty"` // Link to get this user @@ -594,6 +596,8 @@ type CredentialsEmailSearch struct { LoggedInAt *string `json:"logged_in_at,omitempty"` // Timestamp for most recent login using credential PasswordResetUrl *string `json:"password_reset_url,omitempty"` // Url with one-time use secret token that the user can use to reset password AccountSetupUrl *string `json:"account_setup_url,omitempty"` // Url with one-time use secret token that the user can use to setup account + PasswordResetUrlExpired *bool `json:"password_reset_url_expired,omitempty"` // Is password_reset_url expired or not present? + AccountSetupUrlExpired *bool `json:"account_setup_url_expired,omitempty"` // Is account_setup_url expired or not present? Type *string `json:"type,omitempty"` // Short name for the type of this kind of credential Url *string `json:"url,omitempty"` // Link to get this item UserUrl *string `json:"user_url,omitempty"` // Link to get this user @@ -912,54 +916,62 @@ type Datagroup struct { } 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 - 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. - 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 - 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) - 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. - TunnelId *string `json:"tunnel_id,omitempty"` // The Id of the ssh tunnel this connection uses - UsesTns *bool `json:"uses_tns,omitempty"` // Enable Transparent Network Substrate (TNS) connections - PdtConcurrency *int64 `json:"pdt_concurrency,omitempty"` // Maximum number of threads to use to build PDTs in parallel - DisableContextComment *bool `json:"disable_context_comment,omitempty"` // When disable_context_comment is true comment will not be added to SQL - OauthApplicationId *string `json:"oauth_application_id,omitempty"` // An External OAuth Application to use for authenticating to the database - AlwaysRetryFailedBuilds *bool `json:"always_retry_failed_builds,omitempty"` // When true, error PDTs will be retried every regenerator cycle - CostEstimateEnabled *bool `json:"cost_estimate_enabled,omitempty"` // When true, query cost estimate will be displayed in explore. - PdtApiControlEnabled *bool `json:"pdt_api_control_enabled,omitempty"` // PDT builds on this connection can be kicked off and cancelled via API. - ConnectionPooling *bool `json:"connection_pooling,omitempty"` // Enable database connection pooling. + 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 + 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) + 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. + TunnelId *string `json:"tunnel_id,omitempty"` // The Id of the ssh tunnel this connection uses + UsesTns *bool `json:"uses_tns,omitempty"` // Enable Transparent Network Substrate (TNS) connections + PdtConcurrency *int64 `json:"pdt_concurrency,omitempty"` // Maximum number of threads to use to build PDTs in parallel + DisableContextComment *bool `json:"disable_context_comment,omitempty"` // When disable_context_comment is true comment will not be added to SQL + OauthApplicationId *string `json:"oauth_application_id,omitempty"` // An External OAuth Application to use for authenticating to the database + AlwaysRetryFailedBuilds *bool `json:"always_retry_failed_builds,omitempty"` // When true, error PDTs will be retried every regenerator cycle + UsesApplicationDefaultCredentials *bool `json:"uses_application_default_credentials,omitempty"` // Whether the connection should authenticate with the Application Default Credentials of the host environment (limited to GCP and certain dialects). + ImpersonatedServiceAccount *string `json:"impersonated_service_account,omitempty"` // An alternative Service Account to use for querying datasets (used primarily with `uses_application_default_credentials`) (limited to GCP and certain dialects). + CostEstimateEnabled *bool `json:"cost_estimate_enabled,omitempty"` // When true, query cost estimate will be displayed in explore. + PdtApiControlEnabled *bool `json:"pdt_api_control_enabled,omitempty"` // PDT builds on this connection can be kicked off and cancelled via API. + ConnectionPooling *bool `json:"connection_pooling,omitempty"` // Enable database connection pooling. + DefaultBqConnection *bool `json:"default_bq_connection,omitempty"` // When true, represents that this connection is the default BQ connection. + BqStorageProjectId *string `json:"bq_storage_project_id,omitempty"` // The project id of the default BigQuery storage project. + BqRolesVerified *bool `json:"bq_roles_verified,omitempty"` // When true, represents that all project roles have been verified. } type DBConnectionBase struct { @@ -3252,27 +3264,28 @@ type RoleSearch struct { } type RunningQueries 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 - User *UserPublic `json:"user,omitempty"` - Query *Query `json:"query,omitempty"` - SqlQuery *SqlQuery `json:"sql_query,omitempty"` - Look *LookBasic `json:"look,omitempty"` - CreatedAt *string `json:"created_at,omitempty"` // Date/Time Query was initiated - CompletedAt *string `json:"completed_at,omitempty"` // Date/Time Query was completed - QueryId *string `json:"query_id,omitempty"` // Query Id - Source *string `json:"source,omitempty"` // Source (look, dashboard, queryrunner, explore, etc.) - NodeId *string `json:"node_id,omitempty"` // Node Id - Slug *string `json:"slug,omitempty"` // Slug - QueryTaskId *string `json:"query_task_id,omitempty"` // ID of a Query Task - CacheKey *string `json:"cache_key,omitempty"` // Cache Key - ConnectionName *string `json:"connection_name,omitempty"` // Connection - Dialect *string `json:"dialect,omitempty"` // Dialect - ConnectionId *string `json:"connection_id,omitempty"` // Connection ID - Message *string `json:"message,omitempty"` // Additional Information(Error message or verbose status) - Status *string `json:"status,omitempty"` // Status description - Runtime *float64 `json:"runtime,omitempty"` // Number of seconds elapsed running the Query - Sql *string `json:"sql,omitempty"` // SQL text of the query as run + 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 + User *UserPublic `json:"user,omitempty"` + Query *Query `json:"query,omitempty"` + SqlQuery *SqlQuery `json:"sql_query,omitempty"` + Look *LookBasic `json:"look,omitempty"` + CreatedAt *string `json:"created_at,omitempty"` // Date/Time Query was initiated + CompletedAt *string `json:"completed_at,omitempty"` // Date/Time Query was completed + QueryId *string `json:"query_id,omitempty"` // Query Id + Source *string `json:"source,omitempty"` // Source (look, dashboard, queryrunner, explore, etc.) + NodeId *string `json:"node_id,omitempty"` // Node Id + Slug *string `json:"slug,omitempty"` // Slug + QueryTaskId *string `json:"query_task_id,omitempty"` // ID of a Query Task + CacheKey *string `json:"cache_key,omitempty"` // Cache Key + ConnectionName *string `json:"connection_name,omitempty"` // Connection + Dialect *string `json:"dialect,omitempty"` // Dialect + ConnectionId *string `json:"connection_id,omitempty"` // Connection ID + Message *string `json:"message,omitempty"` // Additional Information(Error message or verbose status) + Status *string `json:"status,omitempty"` // Status description + Runtime *float64 `json:"runtime,omitempty"` // Number of seconds elapsed running the Query + Sql *string `json:"sql,omitempty"` // SQL text of the query as run + SqlInterfaceSql *string `json:"sql_interface_sql,omitempty"` // SQL text of the SQL Interface query as run } type SamlConfig struct { @@ -3478,28 +3491,30 @@ type SessionConfig struct { } type Setting struct { - InstanceConfig *InstanceConfig `json:"instance_config,omitempty"` - ExtensionFrameworkEnabled *bool `json:"extension_framework_enabled,omitempty"` // Toggle extension framework on or off - ExtensionLoadUrlEnabled *bool `json:"extension_load_url_enabled,omitempty"` // (DEPRECATED) Toggle extension load url on or off. Do not use. This is temporary setting that will eventually become a noop and subsequently deleted. - MarketplaceAutoInstallEnabled *bool `json:"marketplace_auto_install_enabled,omitempty"` // (DEPRECATED) Toggle marketplace auto install on or off. Deprecated - do not use. Auto install can now be enabled via marketplace automation settings - MarketplaceAutomation *MarketplaceAutomation `json:"marketplace_automation,omitempty"` - MarketplaceEnabled *bool `json:"marketplace_enabled,omitempty"` // Toggle marketplace on or off - MarketplaceSite *string `json:"marketplace_site,omitempty"` // Location of Looker marketplace CDN - MarketplaceTermsAccepted *bool `json:"marketplace_terms_accepted,omitempty"` // Accept marketplace terms by setting this value to true, or get the current status. Marketplace terms CANNOT be declined once accepted. Accepting marketplace terms automatically enables the marketplace. The marketplace can still be disabled after it has been enabled. - PrivatelabelConfiguration *PrivatelabelConfiguration `json:"privatelabel_configuration,omitempty"` - CustomWelcomeEmail *CustomWelcomeEmail `json:"custom_welcome_email,omitempty"` - OnboardingEnabled *bool `json:"onboarding_enabled,omitempty"` // Toggle onboarding on or off - Timezone *string `json:"timezone,omitempty"` // Change instance-wide default timezone - AllowUserTimezones *bool `json:"allow_user_timezones,omitempty"` // Toggle user-specific timezones on or off - DataConnectorDefaultEnabled *bool `json:"data_connector_default_enabled,omitempty"` // Toggle default future connectors on or off - HostUrl *string `json:"host_url,omitempty"` // Change the base portion of your Looker instance URL setting - OverrideWarnings *bool `json:"override_warnings,omitempty"` // (Write-Only) If warnings are preventing a host URL change, this parameter allows for overriding warnings to force update the setting. Does not directly change any Looker settings. - EmailDomainAllowlist *[]string `json:"email_domain_allowlist,omitempty"` // An array of Email Domain Allowlist of type string for Scheduled Content - 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. - EmbedEnabled *bool `json:"embed_enabled,omitempty"` // True if embedding is enabled https://cloud.google.com/looker/docs/r/looker-core-feature-embed, false otherwise - EmbedConfig *EmbedConfig `json:"embed_config,omitempty"` - LoginNotificationEnabled *bool `json:"login_notification_enabled,omitempty"` // Login notification enabled - LoginNotificationText *string `json:"login_notification_text,omitempty"` // Login notification text + InstanceConfig *InstanceConfig `json:"instance_config,omitempty"` + ExtensionFrameworkEnabled *bool `json:"extension_framework_enabled,omitempty"` // Toggle extension framework on or off + ExtensionLoadUrlEnabled *bool `json:"extension_load_url_enabled,omitempty"` // (DEPRECATED) Toggle extension load url on or off. Do not use. This is temporary setting that will eventually become a noop and subsequently deleted. + MarketplaceAutoInstallEnabled *bool `json:"marketplace_auto_install_enabled,omitempty"` // (DEPRECATED) Toggle marketplace auto install on or off. Deprecated - do not use. Auto install can now be enabled via marketplace automation settings + MarketplaceAutomation *MarketplaceAutomation `json:"marketplace_automation,omitempty"` + MarketplaceEnabled *bool `json:"marketplace_enabled,omitempty"` // Toggle marketplace on or off + MarketplaceSite *string `json:"marketplace_site,omitempty"` // Location of Looker marketplace CDN + MarketplaceTermsAccepted *bool `json:"marketplace_terms_accepted,omitempty"` // Accept marketplace terms by setting this value to true, or get the current status. Marketplace terms CANNOT be declined once accepted. Accepting marketplace terms automatically enables the marketplace. The marketplace can still be disabled after it has been enabled. + PrivatelabelConfiguration *PrivatelabelConfiguration `json:"privatelabel_configuration,omitempty"` + CustomWelcomeEmail *CustomWelcomeEmail `json:"custom_welcome_email,omitempty"` + OnboardingEnabled *bool `json:"onboarding_enabled,omitempty"` // Toggle onboarding on or off + Timezone *string `json:"timezone,omitempty"` // Change instance-wide default timezone + AllowUserTimezones *bool `json:"allow_user_timezones,omitempty"` // Toggle user-specific timezones on or off + DataConnectorDefaultEnabled *bool `json:"data_connector_default_enabled,omitempty"` // Toggle default future connectors on or off + HostUrl *string `json:"host_url,omitempty"` // Change the base portion of your Looker instance URL setting + OverrideWarnings *bool `json:"override_warnings,omitempty"` // (Write-Only) If warnings are preventing a host URL change, this parameter allows for overriding warnings to force update the setting. Does not directly change any Looker settings. + EmailDomainAllowlist *[]string `json:"email_domain_allowlist,omitempty"` // An array of Email Domain Allowlist of type string for Scheduled Content + 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. + EmbedEnabled *bool `json:"embed_enabled,omitempty"` // True if embedding is enabled https://cloud.google.com/looker/docs/r/looker-core-feature-embed, false otherwise + EmbedConfig *EmbedConfig `json:"embed_config,omitempty"` + LoginNotificationEnabled *bool `json:"login_notification_enabled,omitempty"` // Login notification enabled + 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) } type SmtpNodeStatus struct { @@ -3770,7 +3785,7 @@ type User struct { LookerVersions *[]string `json:"looker_versions,omitempty"` // Array of strings representing the Looker versions that this user has used (this only goes back as far as '3.54.0') ModelsDirValidated *bool `json:"models_dir_validated,omitempty"` // User's dev workspace has been checked for presence of applicable production projects PersonalFolderId *string `json:"personal_folder_id,omitempty"` // ID of user's personal folder - PresumedLookerEmployee *bool `json:"presumed_looker_employee,omitempty"` // User is identified as an employee of Looker + PresumedLookerEmployee *bool `json:"presumed_looker_employee,omitempty"` // (DEPRECATED) User is identified as an employee of Looker RoleIds *[]string `json:"role_ids,omitempty"` // Array of ids of the roles for this user Sessions *[]Session `json:"sessions,omitempty"` // Active sessions UiState *map[string]interface{} `json:"ui_state,omitempty"` // Per user dictionary of undocumented state information owned by the Looker UI. @@ -4053,7 +4068,7 @@ type WriteCreateQueryTask struct { } // Dynamic writeable type for CredentialsEmail removes: -// can, created_at, user_id, is_disabled, logged_in_at, password_reset_url, account_setup_url, type, url, user_url +// 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 type WriteCredentialsEmail struct { Email *string `json:"email,omitempty"` // EMail address used for user login ForcedPasswordResetAtNextLogin *bool `json:"forced_password_reset_at_next_login,omitempty"` // Force the user to change their password upon their next login @@ -4178,7 +4193,7 @@ type WriteDatagroup struct { } // Dynamic writeable type for DBConnection removes: -// can, dialect, snippets, pdts_enabled, uses_oauth, supports_data_studio_link, created_at, user_id, example, last_regen_at, last_reap_at, managed +// 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, bq_roles_verified type WriteDBConnection struct { Name *string `json:"name,omitempty"` // Name of the connection. Also used as the unique identifier Host *string `json:"host,omitempty"` // Host name/address of server; or the string 'localhost' in case of a connection over an SSH tunnel. @@ -4192,6 +4207,8 @@ type WriteDBConnection struct { 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 @@ -4207,16 +4224,19 @@ type WriteDBConnection struct { 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 - UsesTns *bool `json:"uses_tns,omitempty"` // Enable Transparent Network Substrate (TNS) connections - PdtConcurrency *int64 `json:"pdt_concurrency,omitempty"` // Maximum number of threads to use to build PDTs in parallel - DisableContextComment *bool `json:"disable_context_comment,omitempty"` // When disable_context_comment is true comment will not be added to SQL - OauthApplicationId *string `json:"oauth_application_id,omitempty"` // An External OAuth Application to use for authenticating to the database - AlwaysRetryFailedBuilds *bool `json:"always_retry_failed_builds,omitempty"` // When true, error PDTs will be retried every regenerator cycle - CostEstimateEnabled *bool `json:"cost_estimate_enabled,omitempty"` // When true, query cost estimate will be displayed in explore. - PdtApiControlEnabled *bool `json:"pdt_api_control_enabled,omitempty"` // PDT builds on this connection can be kicked off and cancelled via API. - ConnectionPooling *bool `json:"connection_pooling,omitempty"` // Enable database connection pooling. + 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 + UsesTns *bool `json:"uses_tns,omitempty"` // Enable Transparent Network Substrate (TNS) connections + PdtConcurrency *int64 `json:"pdt_concurrency,omitempty"` // Maximum number of threads to use to build PDTs in parallel + DisableContextComment *bool `json:"disable_context_comment,omitempty"` // When disable_context_comment is true comment will not be added to SQL + OauthApplicationId *string `json:"oauth_application_id,omitempty"` // An External OAuth Application to use for authenticating to the database + AlwaysRetryFailedBuilds *bool `json:"always_retry_failed_builds,omitempty"` // When true, error PDTs will be retried every regenerator cycle + UsesApplicationDefaultCredentials *bool `json:"uses_application_default_credentials,omitempty"` // Whether the connection should authenticate with the Application Default Credentials of the host environment (limited to GCP and certain dialects). + ImpersonatedServiceAccount *string `json:"impersonated_service_account,omitempty"` // An alternative Service Account to use for querying datasets (used primarily with `uses_application_default_credentials`) (limited to GCP and certain dialects). + CostEstimateEnabled *bool `json:"cost_estimate_enabled,omitempty"` // When true, query cost estimate will be displayed in explore. + PdtApiControlEnabled *bool `json:"pdt_api_control_enabled,omitempty"` // PDT builds on this connection can be kicked off and cancelled via API. + ConnectionPooling *bool `json:"connection_pooling,omitempty"` // Enable database connection pooling. + BqStorageProjectId *string `json:"bq_storage_project_id,omitempty"` // The project id of the default BigQuery storage project. } // Dynamic writeable type for DBConnectionOverride removes: @@ -4637,16 +4657,18 @@ type WriteSetting struct { MarketplaceTermsAccepted *bool `json:"marketplace_terms_accepted,omitempty"` // Accept marketplace terms by setting this value to true, or get the current status. Marketplace terms CANNOT be declined once accepted. Accepting marketplace terms automatically enables the marketplace. The marketplace can still be disabled after it has been enabled. PrivatelabelConfiguration *WritePrivatelabelConfiguration `json:"privatelabel_configuration,omitempty"` // Dynamic writeable type for PrivatelabelConfiguration removes: // logo_url, favicon_url - CustomWelcomeEmail *CustomWelcomeEmail `json:"custom_welcome_email,omitempty"` - OnboardingEnabled *bool `json:"onboarding_enabled,omitempty"` // Toggle onboarding on or off - Timezone *string `json:"timezone,omitempty"` // Change instance-wide default timezone - AllowUserTimezones *bool `json:"allow_user_timezones,omitempty"` // Toggle user-specific timezones on or off - DataConnectorDefaultEnabled *bool `json:"data_connector_default_enabled,omitempty"` // Toggle default future connectors on or off - HostUrl *string `json:"host_url,omitempty"` // Change the base portion of your Looker instance URL setting - OverrideWarnings *bool `json:"override_warnings,omitempty"` // (Write-Only) If warnings are preventing a host URL change, this parameter allows for overriding warnings to force update the setting. Does not directly change any Looker settings. - EmailDomainAllowlist *[]string `json:"email_domain_allowlist,omitempty"` // An array of Email Domain Allowlist of type string for Scheduled Content - 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 *EmbedConfig `json:"embed_config,omitempty"` + CustomWelcomeEmail *CustomWelcomeEmail `json:"custom_welcome_email,omitempty"` + OnboardingEnabled *bool `json:"onboarding_enabled,omitempty"` // Toggle onboarding on or off + Timezone *string `json:"timezone,omitempty"` // Change instance-wide default timezone + AllowUserTimezones *bool `json:"allow_user_timezones,omitempty"` // Toggle user-specific timezones on or off + DataConnectorDefaultEnabled *bool `json:"data_connector_default_enabled,omitempty"` // Toggle default future connectors on or off + HostUrl *string `json:"host_url,omitempty"` // Change the base portion of your Looker instance URL setting + OverrideWarnings *bool `json:"override_warnings,omitempty"` // (Write-Only) If warnings are preventing a host URL change, this parameter allows for overriding warnings to force update the setting. Does not directly change any Looker settings. + EmailDomainAllowlist *[]string `json:"email_domain_allowlist,omitempty"` // An array of Email Domain Allowlist of type string for Scheduled Content + 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 *EmbedConfig `json:"embed_config,omitempty"` + 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) } // Dynamic writeable type for SqlInterfaceQueryCreate removes: @@ -4687,7 +4709,7 @@ type WriteTheme struct { // 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, type, url, user_url + // 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 FirstName *string `json:"first_name,omitempty"` // First name HomeFolderId *string `json:"home_folder_id,omitempty"` // ID string for user's home folder IsDisabled *bool `json:"is_disabled,omitempty"` // Account has been disabled 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 021c2196f..3acfcbf5d 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 @@ */ /** - * 464 API methods + * 465 API methods */ // NOTE: Do not edit this file generated by Looker SDK Codegen for API 4.0 @@ -2495,6 +2495,8 @@ class LookerSDK(authSession: AuthSession) : APIMethods(authSession) { * - allow_user_timezones * - custom_welcome_email * - data_connector_default_enabled + * - dashboard_auto_refresh_restriction + * - dashboard_auto_refresh_minimum_interval * - extension_framework_enabled * - extension_load_url_enabled * - instance_config @@ -2532,6 +2534,8 @@ class LookerSDK(authSession: AuthSession) : APIMethods(authSession) { * - allow_user_timezones * - custom_welcome_email * - data_connector_default_enabled + * - dashboard_auto_refresh_restriction + * - dashboard_auto_refresh_minimum_interval * - extension_framework_enabled * - extension_load_url_enabled * - instance_config @@ -2887,6 +2891,24 @@ class LookerSDK(authSession: AuthSession) : APIMethods(authSession) { return this.post("/external_oauth_applications", mapOf(), body) } + /** + * ### Update an OAuth Application's client secret. + * + * This is an OAuth Application which Looker uses to access external systems. + * + * @param {String} client_id The client ID of the OAuth App to update + * @param {WriteExternalOauthApplication} body + * + * PATCH /external_oauth_applications/{client_id} -> ExternalOauthApplication + */ + fun update_external_oauth_application( + client_id: String, + body: WriteExternalOauthApplication, + ): SDKResponse { + val path_client_id = encodeParam(client_id) + return this.patch("/external_oauth_applications/${path_client_id}", mapOf(), body) + } + /** * ### Create OAuth User state. * 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 dd9437d5b..5a8122588 100644 --- a/kotlin/src/main/com/looker/sdk/4.0/models.kt +++ b/kotlin/src/main/com/looker/sdk/4.0/models.kt @@ -1042,6 +1042,8 @@ data class CredentialsApi3( * @property logged_in_at Timestamp for most recent login using credential (read-only) * @property password_reset_url Url with one-time use secret token that the user can use to reset password (read-only) * @property account_setup_url Url with one-time use secret token that the user can use to setup account (read-only) + * @property password_reset_url_expired Is password_reset_url expired or not present? (read-only) + * @property account_setup_url_expired Is account_setup_url expired or not present? (read-only) * @property type Short name for the type of this kind of credential (read-only) * @property url Link to get this item (read-only) * @property user_url Link to get this user (read-only) @@ -1056,6 +1058,8 @@ data class CredentialsEmail( var logged_in_at: String? = null, var password_reset_url: String? = null, var account_setup_url: String? = null, + var password_reset_url_expired: Boolean? = null, + var account_setup_url_expired: Boolean? = null, var type: String? = null, var url: String? = null, var user_url: String? = null, @@ -1071,6 +1075,8 @@ data class CredentialsEmail( * @property logged_in_at Timestamp for most recent login using credential (read-only) * @property password_reset_url Url with one-time use secret token that the user can use to reset password (read-only) * @property account_setup_url Url with one-time use secret token that the user can use to setup account (read-only) + * @property password_reset_url_expired Is password_reset_url expired or not present? (read-only) + * @property account_setup_url_expired Is account_setup_url expired or not present? (read-only) * @property type Short name for the type of this kind of credential (read-only) * @property url Link to get this item (read-only) * @property user_url Link to get this user (read-only) @@ -1085,6 +1091,8 @@ data class CredentialsEmailSearch( var logged_in_at: String? = null, var password_reset_url: String? = null, var account_setup_url: String? = null, + var password_reset_url_expired: Boolean? = null, + var account_setup_url_expired: Boolean? = null, var type: String? = null, var url: String? = null, var user_url: String? = null, @@ -1701,6 +1709,7 @@ data class Datagroup( * @property username Username for server authentication * @property password (Write-Only) Password for server authentication * @property uses_oauth Whether the connection uses OAuth for authentication. (read-only) + * @property uses_instance_oauth Whether the integration uses the oauth instance account. (read-only) * @property certificate (Write-Only) Base64 encoded Certificate body for server authentication (when appropriate for dialect). * @property file_type (Write-Only) Certificate keyfile type - .json or .p12 * @property database Database name @@ -1708,6 +1717,8 @@ data class Datagroup( * @property query_timezone Timezone to use in queries * @property schema Schema name * @property max_connections Maximum number of concurrent connection to use + * @property max_queries Maximum number of concurrent queries to begin on this connection + * @property max_queries_per_user Maximum number of concurrent queries per user to begin on this connection * @property max_billing_gigabytes Maximum size of query in GBs (BigQuery only, can be a user_attribute name) * @property ssl Use SSL/TLS when connecting to server * @property verify_ssl Verify the SSL @@ -1736,9 +1747,14 @@ data class Datagroup( * @property disable_context_comment When disable_context_comment is true comment will not be added to SQL * @property oauth_application_id An External OAuth Application to use for authenticating to the database * @property always_retry_failed_builds When true, error PDTs will be retried every regenerator cycle + * @property uses_application_default_credentials Whether the connection should authenticate with the Application Default Credentials of the host environment (limited to GCP and certain dialects). + * @property impersonated_service_account An alternative Service Account to use for querying datasets (used primarily with `uses_application_default_credentials`) (limited to GCP and certain dialects). * @property cost_estimate_enabled When true, query cost estimate will be displayed in explore. * @property pdt_api_control_enabled PDT builds on this connection can be kicked off and cancelled via API. * @property connection_pooling Enable database connection pooling. + * @property default_bq_connection When true, represents that this connection is the default BQ connection. (read-only) + * @property bq_storage_project_id The project id of the default BigQuery storage project. + * @property bq_roles_verified When true, represents that all project roles have been verified. (read-only) */ data class DBConnection( var can: Map? = null, @@ -1751,6 +1767,7 @@ data class DBConnection( var username: String? = null, var password: String? = null, var uses_oauth: Boolean? = null, + var uses_instance_oauth: Boolean? = null, var certificate: String? = null, var file_type: String? = null, var database: String? = null, @@ -1758,6 +1775,8 @@ data class DBConnection( var query_timezone: String? = null, var schema: String? = null, var max_connections: Long? = null, + var max_queries: Long? = null, + var max_queries_per_user: Long? = null, var max_billing_gigabytes: String? = null, var ssl: Boolean? = null, var verify_ssl: Boolean? = null, @@ -1786,9 +1805,14 @@ data class DBConnection( var disable_context_comment: Boolean? = null, var oauth_application_id: String? = null, var always_retry_failed_builds: Boolean? = null, + var uses_application_default_credentials: Boolean? = null, + var impersonated_service_account: String? = null, var cost_estimate_enabled: Boolean? = null, var pdt_api_control_enabled: Boolean? = null, var connection_pooling: Boolean? = null, + var default_bq_connection: Boolean? = null, + var bq_storage_project_id: String? = null, + var bq_roles_verified: Boolean? = null, ) : Serializable /** @@ -4746,6 +4770,7 @@ data class RoleSearch( * @property status Status description (read-only) * @property runtime Number of seconds elapsed running the Query (read-only) * @property sql SQL text of the query as run (read-only) + * @property sql_interface_sql SQL text of the SQL Interface query as run (read-only) */ data class RunningQueries( var can: Map? = null, @@ -4769,6 +4794,7 @@ data class RunningQueries( var status: String? = null, var runtime: Double? = null, var sql: String? = null, + var sql_interface_sql: String? = null, ) : Serializable /** @@ -5181,6 +5207,8 @@ data class SessionConfig( * @property embed_config * @property login_notification_enabled Login notification enabled (read-only) * @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) */ data class Setting( var instance_config: InstanceConfig? = null, @@ -5205,6 +5233,8 @@ data class Setting( var embed_config: EmbedConfig? = null, var login_notification_enabled: Boolean? = null, var login_notification_text: String? = null, + var dashboard_auto_refresh_restriction: Boolean? = null, + var dashboard_auto_refresh_minimum_interval: String? = null, ) : Serializable /** @@ -5669,7 +5699,7 @@ data class UpdateFolder( * @property looker_versions Array of strings representing the Looker versions that this user has used (this only goes back as far as '3.54.0') (read-only) * @property models_dir_validated User's dev workspace has been checked for presence of applicable production projects * @property personal_folder_id ID of user's personal folder (read-only) - * @property presumed_looker_employee User is identified as an employee of Looker (read-only) + * @property presumed_looker_employee (DEPRECATED) User is identified as an employee of Looker (read-only) * @property role_ids Array of ids of the roles for this user (read-only) * @property sessions Active sessions (read-only) * @property ui_state Per user dictionary of undocumented state information owned by the Looker UI. @@ -6209,7 +6239,7 @@ data class WriteCreateQueryTask( /** * Dynamic writeable type for CredentialsEmail removes: - * can, created_at, user_id, is_disabled, logged_in_at, password_reset_url, account_setup_url, type, url, user_url + * 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 * * @property email EMail address used for user login * @property forced_password_reset_at_next_login Force the user to change their password upon their next login @@ -6436,7 +6466,7 @@ data class WriteDatagroup( /** * Dynamic writeable type for DBConnection removes: - * can, dialect, snippets, pdts_enabled, uses_oauth, supports_data_studio_link, created_at, user_id, example, last_regen_at, last_reap_at, managed + * 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, bq_roles_verified * * @property name Name of the connection. Also used as the unique identifier * @property host Host name/address of server; or the string 'localhost' in case of a connection over an SSH tunnel. @@ -6450,6 +6480,8 @@ data class WriteDatagroup( * @property query_timezone Timezone to use in queries * @property schema Schema name * @property max_connections Maximum number of concurrent connection to use + * @property max_queries Maximum number of concurrent queries to begin on this connection + * @property max_queries_per_user Maximum number of concurrent queries per user to begin on this connection * @property max_billing_gigabytes Maximum size of query in GBs (BigQuery only, can be a user_attribute name) * @property ssl Use SSL/TLS when connecting to server * @property verify_ssl Verify the SSL @@ -6472,9 +6504,12 @@ data class WriteDatagroup( * @property disable_context_comment When disable_context_comment is true comment will not be added to SQL * @property oauth_application_id An External OAuth Application to use for authenticating to the database * @property always_retry_failed_builds When true, error PDTs will be retried every regenerator cycle + * @property uses_application_default_credentials Whether the connection should authenticate with the Application Default Credentials of the host environment (limited to GCP and certain dialects). + * @property impersonated_service_account An alternative Service Account to use for querying datasets (used primarily with `uses_application_default_credentials`) (limited to GCP and certain dialects). * @property cost_estimate_enabled When true, query cost estimate will be displayed in explore. * @property pdt_api_control_enabled PDT builds on this connection can be kicked off and cancelled via API. * @property connection_pooling Enable database connection pooling. + * @property bq_storage_project_id The project id of the default BigQuery storage project. */ data class WriteDBConnection( var name: String? = null, @@ -6489,6 +6524,8 @@ data class WriteDBConnection( var query_timezone: String? = null, var schema: String? = null, var max_connections: Long? = null, + var max_queries: Long? = null, + var max_queries_per_user: Long? = null, var max_billing_gigabytes: String? = null, var ssl: Boolean? = null, var verify_ssl: Boolean? = null, @@ -6510,9 +6547,12 @@ data class WriteDBConnection( var disable_context_comment: Boolean? = null, var oauth_application_id: String? = null, var always_retry_failed_builds: Boolean? = null, + var uses_application_default_credentials: Boolean? = null, + var impersonated_service_account: String? = null, var cost_estimate_enabled: Boolean? = null, var pdt_api_control_enabled: Boolean? = null, var connection_pooling: Boolean? = null, + var bq_storage_project_id: String? = null, ) : Serializable /** @@ -7284,6 +7324,8 @@ data class WriteSessionConfig( * @property email_domain_allowlist An array of Email Domain Allowlist of type string for Scheduled Content * @property embed_cookieless_v2 (DEPRECATED) Use embed_config.embed_cookieless_v2 instead. If embed_config.embed_cookieless_v2 is specified, it overrides this value. * @property embed_config + * @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) */ data class WriteSetting( var extension_framework_enabled: Boolean? = null, @@ -7303,6 +7345,8 @@ data class WriteSetting( var email_domain_allowlist: Array? = null, var embed_cookieless_v2: Boolean? = null, var embed_config: EmbedConfig? = null, + var dashboard_auto_refresh_restriction: Boolean? = null, + var dashboard_auto_refresh_minimum_interval: String? = null, ) : Serializable /** @@ -7370,7 +7414,7 @@ data class WriteTheme( * 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, type, url, user_url + * 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 * @property first_name First name * @property home_folder_id ID string for user's home folder * @property is_disabled Account has been disabled 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 df9e5cbd3..05c9e2652 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 @@ */ /** - * 464 API methods + * 465 API methods */ // NOTE: Do not edit this file generated by Looker SDK Codegen for API 4.0 @@ -2493,6 +2493,8 @@ class LookerSDKStream(authSession: AuthSession) : APIMethods(authSession) { * - allow_user_timezones * - custom_welcome_email * - data_connector_default_enabled + * - dashboard_auto_refresh_restriction + * - dashboard_auto_refresh_minimum_interval * - extension_framework_enabled * - extension_load_url_enabled * - instance_config @@ -2530,6 +2532,8 @@ class LookerSDKStream(authSession: AuthSession) : APIMethods(authSession) { * - allow_user_timezones * - custom_welcome_email * - data_connector_default_enabled + * - dashboard_auto_refresh_restriction + * - dashboard_auto_refresh_minimum_interval * - extension_framework_enabled * - extension_load_url_enabled * - instance_config @@ -2885,6 +2889,24 @@ class LookerSDKStream(authSession: AuthSession) : APIMethods(authSession) { return this.post("/external_oauth_applications", mapOf(), body) } + /** + * ### Update an OAuth Application's client secret. + * + * This is an OAuth Application which Looker uses to access external systems. + * + * @param {String} client_id The client ID of the OAuth App to update + * @param {WriteExternalOauthApplication} body + * + * PATCH /external_oauth_applications/{client_id} -> ByteArray + */ + fun update_external_oauth_application( + client_id: String, + body: WriteExternalOauthApplication, + ): SDKResponse { + val path_client_id = encodeParam(client_id) + return this.patch("/external_oauth_applications/${path_client_id}", mapOf(), body) + } + /** * ### Create OAuth User state. * diff --git a/kotlin/src/main/com/looker/sdk/Constants.kt b/kotlin/src/main/com/looker/sdk/Constants.kt index 7cbed287b..73b0b0bac 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 = "24.12" +const val LOOKER_VERSION = "24.14" const val API_VERSION = "4.0" const val AGENT_TAG = "$SDK_TAG $LOOKER_VERSION" const val LOOKER_APPID = "x-looker-appid" diff --git a/package.json b/package.json index e1f7edb6b..275f96753 100644 --- a/package.json +++ b/package.json @@ -79,9 +79,9 @@ "watch:cjs": "lerna run --parallel watch:cjs" }, "devDependencies": { - "@babel/eslint-parser": "7.23.3", "@babel/cli": "^7.13.16", "@babel/core": "^7.14.0", + "@babel/eslint-parser": "7.23.3", "@babel/plugin-proposal-class-properties": "^7.13.0", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.13.8", "@babel/plugin-proposal-object-rest-spread": "^7.13.8", @@ -91,9 +91,9 @@ "@babel/preset-typescript": "^7.13.0", "@babel/runtime": "^7.14.0", "@babel/runtime-corejs3": "^7.14.0", - "@looker/eslint-plugin": "~1.0.0", - "@looker/eslint-config-oss": "1.7.21", "@looker/eslint-config": "1.5.1", + "@looker/eslint-config-oss": "1.7.21", + "@looker/eslint-plugin": "~1.0.0", "@testing-library/jest-dom": "5.16.5", "@types/blueimp-md5": "^2.7.0", "@types/ini": "^1.3.30", @@ -119,16 +119,16 @@ "eslint-config-standard": "17.0.0", "eslint-plugin-header": "3.1.1", "eslint-plugin-import": "2.29.0", + "eslint-plugin-jest": "27.2.1", + "eslint-plugin-jest-dom": "4.0.3", "eslint-plugin-lodash": "7.4.0", "eslint-plugin-mdx": "3.1.1", "eslint-plugin-n": "15.2.4", "eslint-plugin-node": "11.1.0", + "eslint-plugin-prettier": "5.1.2", "eslint-plugin-promise": "6.1.1", "eslint-plugin-react": "7.29.4", "eslint-plugin-react-hooks": "4.6.0", - "eslint-plugin-jest": "27.2.1", - "eslint-plugin-jest-dom": "4.0.3", - "eslint-plugin-prettier": "5.1.2", "eslint-plugin-testing-library": "^5.3.1", "eslint-plugin-unicorn": "^44.0.2", "jest": "29.3.1", @@ -345,5 +345,6 @@ "ws": ">= 7.4.6", "**/url-parse": ">= 1.5.7", "parse-url": "^8.1.0" - } + }, + "dependencies": {} } diff --git a/packages/sdk/src/4.0/funcs.ts b/packages/sdk/src/4.0/funcs.ts index 9cc0236a3..edb55bcbc 100644 --- a/packages/sdk/src/4.0/funcs.ts +++ b/packages/sdk/src/4.0/funcs.ts @@ -25,7 +25,7 @@ */ /** - * 464 API methods + * 465 API methods */ import type { @@ -3707,6 +3707,8 @@ export const mobile_settings = async ( * - allow_user_timezones * - custom_welcome_email * - data_connector_default_enabled + * - dashboard_auto_refresh_restriction + * - dashboard_auto_refresh_minimum_interval * - extension_framework_enabled * - extension_load_url_enabled * - instance_config @@ -3751,6 +3753,8 @@ export const get_setting = async ( * - allow_user_timezones * - custom_welcome_email * - data_connector_default_enabled + * - dashboard_auto_refresh_restriction + * - dashboard_auto_refresh_minimum_interval * - extension_framework_enabled * - extension_load_url_enabled * - instance_config @@ -4258,6 +4262,36 @@ export const create_external_oauth_application = async ( ); }; +/** + * ### Update an OAuth Application's client secret. + * + * This is an OAuth Application which Looker uses to access external systems. + * + * PATCH /external_oauth_applications/{client_id} -> IExternalOauthApplication + * + * @param sdk IAPIMethods implementation + * @param client_id The client ID of the OAuth App to update + * @param body Partial + * @param options one-time API call overrides + * + */ +export const update_external_oauth_application = async ( + sdk: IAPIMethods, + client_id: string, + body: Partial, + options?: Partial +): Promise< + SDKResponse +> => { + client_id = encodeParam(client_id); + return sdk.patch( + `/external_oauth_applications/${client_id}`, + null, + body, + options + ); +}; + /** * ### Create OAuth User state. * diff --git a/packages/sdk/src/4.0/methods.ts b/packages/sdk/src/4.0/methods.ts index 63e795d8d..c06a60c40 100644 --- a/packages/sdk/src/4.0/methods.ts +++ b/packages/sdk/src/4.0/methods.ts @@ -25,7 +25,7 @@ */ /** - * 464 API methods + * 465 API methods */ import type { @@ -3489,6 +3489,8 @@ export class Looker40SDK extends APIMethods implements ILooker40SDK { * - allow_user_timezones * - custom_welcome_email * - data_connector_default_enabled + * - dashboard_auto_refresh_restriction + * - dashboard_auto_refresh_minimum_interval * - extension_framework_enabled * - extension_load_url_enabled * - instance_config @@ -3531,6 +3533,8 @@ export class Looker40SDK extends APIMethods implements ILooker40SDK { * - allow_user_timezones * - custom_welcome_email * - data_connector_default_enabled + * - dashboard_auto_refresh_restriction + * - dashboard_auto_refresh_minimum_interval * - extension_framework_enabled * - extension_load_url_enabled * - instance_config @@ -4003,6 +4007,34 @@ export class Looker40SDK extends APIMethods implements ILooker40SDK { ); } + /** + * ### Update an OAuth Application's client secret. + * + * This is an OAuth Application which Looker uses to access external systems. + * + * PATCH /external_oauth_applications/{client_id} -> IExternalOauthApplication + * + * @param client_id The client ID of the OAuth App to update + * @param body Partial + * @param options one-time API call overrides + * + */ + async update_external_oauth_application( + client_id: string, + body: Partial, + options?: Partial + ): Promise< + SDKResponse + > { + client_id = encodeParam(client_id); + return this.patch( + `/external_oauth_applications/${client_id}`, + null, + body, + options + ); + } + /** * ### Create OAuth User state. * diff --git a/packages/sdk/src/4.0/methodsInterface.ts b/packages/sdk/src/4.0/methodsInterface.ts index 0226580f1..05bc2c7ff 100644 --- a/packages/sdk/src/4.0/methodsInterface.ts +++ b/packages/sdk/src/4.0/methodsInterface.ts @@ -25,7 +25,7 @@ */ /** - * 464 API methods + * 465 API methods */ import type { @@ -2600,6 +2600,8 @@ export interface ILooker40SDK extends IAPIMethods { * - allow_user_timezones * - custom_welcome_email * - data_connector_default_enabled + * - dashboard_auto_refresh_restriction + * - dashboard_auto_refresh_minimum_interval * - extension_framework_enabled * - extension_load_url_enabled * - instance_config @@ -2635,6 +2637,8 @@ export interface ILooker40SDK extends IAPIMethods { * - allow_user_timezones * - custom_welcome_email * - data_connector_default_enabled + * - dashboard_auto_refresh_restriction + * - dashboard_auto_refresh_minimum_interval * - extension_framework_enabled * - extension_load_url_enabled * - instance_config @@ -2967,6 +2971,24 @@ export interface ILooker40SDK extends IAPIMethods { options?: Partial ): Promise>; + /** + * ### Update an OAuth Application's client secret. + * + * This is an OAuth Application which Looker uses to access external systems. + * + * PATCH /external_oauth_applications/{client_id} -> IExternalOauthApplication + * + * @param client_id The client ID of the OAuth App to update + * @param body Partial + * @param options one-time API call overrides + * + */ + update_external_oauth_application( + client_id: string, + body: Partial, + options?: Partial + ): Promise>; + /** * ### Create OAuth User state. * diff --git a/packages/sdk/src/4.0/models.ts b/packages/sdk/src/4.0/models.ts index 4619045af..421fbab19 100644 --- a/packages/sdk/src/4.0/models.ts +++ b/packages/sdk/src/4.0/models.ts @@ -1596,6 +1596,14 @@ export interface ICredentialsEmail { * Url with one-time use secret token that the user can use to setup account (read-only) */ account_setup_url?: string | null; + /** + * Is password_reset_url expired or not present? (read-only) + */ + password_reset_url_expired?: boolean; + /** + * Is account_setup_url expired or not present? (read-only) + */ + account_setup_url_expired?: boolean; /** * Short name for the type of this kind of credential (read-only) */ @@ -1647,6 +1655,14 @@ export interface ICredentialsEmailSearch { * Url with one-time use secret token that the user can use to setup account (read-only) */ account_setup_url?: string | null; + /** + * Is password_reset_url expired or not present? (read-only) + */ + password_reset_url_expired?: boolean; + /** + * Is account_setup_url expired or not present? (read-only) + */ + account_setup_url_expired?: boolean; /** * Short name for the type of this kind of credential (read-only) */ @@ -2700,6 +2716,10 @@ export interface IDBConnection { * Whether the connection uses OAuth for authentication. (read-only) */ uses_oauth?: boolean; + /** + * Whether the integration uses the oauth instance account. (read-only) + */ + uses_instance_oauth?: boolean; /** * (Write-Only) Base64 encoded Certificate body for server authentication (when appropriate for dialect). */ @@ -2728,6 +2748,14 @@ export interface IDBConnection { * Maximum number of concurrent connection to use */ max_connections?: number | null; + /** + * Maximum number of concurrent queries to begin on this connection + */ + max_queries?: number | null; + /** + * Maximum number of concurrent queries per user to begin on this connection + */ + max_queries_per_user?: number | null; /** * Maximum size of query in GBs (BigQuery only, can be a user_attribute name) */ @@ -2837,6 +2865,14 @@ export interface IDBConnection { * When true, error PDTs will be retried every regenerator cycle */ always_retry_failed_builds?: boolean | null; + /** + * Whether the connection should authenticate with the Application Default Credentials of the host environment (limited to GCP and certain dialects). + */ + uses_application_default_credentials?: boolean | null; + /** + * An alternative Service Account to use for querying datasets (used primarily with `uses_application_default_credentials`) (limited to GCP and certain dialects). + */ + impersonated_service_account?: string | null; /** * When true, query cost estimate will be displayed in explore. */ @@ -2849,6 +2885,18 @@ export interface IDBConnection { * Enable database connection pooling. */ connection_pooling?: boolean; + /** + * When true, represents that this connection is the default BQ connection. (read-only) + */ + default_bq_connection?: boolean; + /** + * The project id of the default BigQuery storage project. + */ + bq_storage_project_id?: string | null; + /** + * When true, represents that all project roles have been verified. (read-only) + */ + bq_roles_verified?: boolean | null; } export interface IDBConnectionBase { @@ -9971,6 +10019,10 @@ export interface IRunningQueries { * SQL text of the query as run (read-only) */ sql?: string | null; + /** + * SQL text of the SQL Interface query as run (read-only) + */ + sql_interface_sql?: string | null; } export interface ISamlConfig { @@ -10705,6 +10757,14 @@ export interface ISetting { * Login notification text (read-only) */ login_notification_text?: string | null; + /** + * Toggle Dashboard Auto Refresh restriction + */ + dashboard_auto_refresh_restriction?: boolean; + /** + * Minimum time interval for dashboard element automatic refresh. Examples: (30 seconds, 1 minute) + */ + dashboard_auto_refresh_minimum_interval?: string | null; } export interface ISmtpNodeStatus { @@ -11441,7 +11501,7 @@ export interface IUser { */ personal_folder_id?: string | null; /** - * User is identified as an employee of Looker (read-only) + * (DEPRECATED) User is identified as an employee of Looker (read-only) */ presumed_looker_employee?: boolean; /** @@ -12249,7 +12309,7 @@ export interface IWriteCreateQueryTask { /** * Dynamic writeable type for CredentialsEmail removes: - * can, created_at, user_id, is_disabled, logged_in_at, password_reset_url, account_setup_url, type, url, user_url + * 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 */ export interface IWriteCredentialsEmail { /** @@ -12614,7 +12674,7 @@ export interface IWriteDatagroup { /** * Dynamic writeable type for DBConnection removes: - * can, dialect, snippets, pdts_enabled, uses_oauth, supports_data_studio_link, created_at, user_id, example, last_regen_at, last_reap_at, managed + * 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, bq_roles_verified */ export interface IWriteDBConnection { /** @@ -12665,6 +12725,14 @@ export interface IWriteDBConnection { * Maximum number of concurrent connection to use */ max_connections?: number | null; + /** + * Maximum number of concurrent queries to begin on this connection + */ + max_queries?: number | null; + /** + * Maximum number of concurrent queries per user to begin on this connection + */ + max_queries_per_user?: number | null; /** * Maximum size of query in GBs (BigQuery only, can be a user_attribute name) */ @@ -12750,6 +12818,14 @@ export interface IWriteDBConnection { * When true, error PDTs will be retried every regenerator cycle */ always_retry_failed_builds?: boolean | null; + /** + * Whether the connection should authenticate with the Application Default Credentials of the host environment (limited to GCP and certain dialects). + */ + uses_application_default_credentials?: boolean | null; + /** + * An alternative Service Account to use for querying datasets (used primarily with `uses_application_default_credentials`) (limited to GCP and certain dialects). + */ + impersonated_service_account?: string | null; /** * When true, query cost estimate will be displayed in explore. */ @@ -12762,6 +12838,10 @@ export interface IWriteDBConnection { * Enable database connection pooling. */ connection_pooling?: boolean; + /** + * The project id of the default BigQuery storage project. + */ + bq_storage_project_id?: string | null; } /** @@ -14033,6 +14113,14 @@ export interface IWriteSetting { */ embed_cookieless_v2?: boolean; embed_config?: IEmbedConfig | null; + /** + * Toggle Dashboard Auto Refresh restriction + */ + dashboard_auto_refresh_restriction?: boolean; + /** + * Minimum time interval for dashboard element automatic refresh. Examples: (30 seconds, 1 minute) + */ + dashboard_auto_refresh_minimum_interval?: string | null; } /** @@ -14123,7 +14211,7 @@ export interface IWriteTheme { export interface IWriteUser { /** * Dynamic writeable type for CredentialsEmail removes: - * can, created_at, user_id, is_disabled, logged_in_at, password_reset_url, account_setup_url, type, url, user_url + * 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 */ credentials_email?: IWriteCredentialsEmail | null; /** diff --git a/packages/sdk/src/4.0/streams.ts b/packages/sdk/src/4.0/streams.ts index 067caa4e1..121bd1ed7 100644 --- a/packages/sdk/src/4.0/streams.ts +++ b/packages/sdk/src/4.0/streams.ts @@ -25,7 +25,7 @@ */ /** - * 464 API methods + * 465 API methods */ import type { Readable } from 'readable-stream'; @@ -3981,6 +3981,8 @@ export class Looker40SDKStream extends APIMethods { * - allow_user_timezones * - custom_welcome_email * - data_connector_default_enabled + * - dashboard_auto_refresh_restriction + * - dashboard_auto_refresh_minimum_interval * - extension_framework_enabled * - extension_load_url_enabled * - instance_config @@ -4027,6 +4029,8 @@ export class Looker40SDKStream extends APIMethods { * - allow_user_timezones * - custom_welcome_email * - data_connector_default_enabled + * - dashboard_auto_refresh_restriction + * - dashboard_auto_refresh_minimum_interval * - extension_framework_enabled * - extension_load_url_enabled * - instance_config @@ -4576,6 +4580,36 @@ export class Looker40SDKStream extends APIMethods { ); } + /** + * ### Update an OAuth Application's client secret. + * + * This is an OAuth Application which Looker uses to access external systems. + * + * PATCH /external_oauth_applications/{client_id} -> IExternalOauthApplication + * + * @param callback streaming output function + * @param client_id The client ID of the OAuth App to update + * @param body Partial + * @param options one-time API call overrides + * + */ + async update_external_oauth_application( + callback: (readable: Readable) => Promise, + client_id: string, + body: Partial, + options?: Partial + ) { + client_id = encodeParam(client_id); + return this.authStream( + callback, + 'PATCH', + `/external_oauth_applications/${client_id}`, + null, + body, + options + ); + } + /** * ### Create OAuth User state. * diff --git a/packages/sdk/src/constants.ts b/packages/sdk/src/constants.ts index c970cd31e..eebd4058f 100644 --- a/packages/sdk/src/constants.ts +++ b/packages/sdk/src/constants.ts @@ -24,5 +24,5 @@ */ -export const sdkVersion = '24.12'; +export const sdkVersion = '24.14'; export const environmentPrefix = 'LOOKERSDK'; diff --git a/python/looker_sdk/sdk/api40/methods.py b/python/looker_sdk/sdk/api40/methods.py index d08eeb84b..16aacbf3e 100644 --- a/python/looker_sdk/sdk/api40/methods.py +++ b/python/looker_sdk/sdk/api40/methods.py @@ -21,7 +21,7 @@ # SOFTWARE. # -# 464 API methods +# 465 API methods # NOTE: Do not edit this file generated by Looker SDK Codegen for API 4.0 @@ -3237,6 +3237,8 @@ def mobile_settings( # - allow_user_timezones # - custom_welcome_email # - data_connector_default_enabled + # - dashboard_auto_refresh_restriction + # - dashboard_auto_refresh_minimum_interval # - extension_framework_enabled # - extension_load_url_enabled # - instance_config @@ -3279,6 +3281,8 @@ def get_setting( # - allow_user_timezones # - custom_welcome_email # - data_connector_default_enabled + # - dashboard_auto_refresh_restriction + # - dashboard_auto_refresh_minimum_interval # - extension_framework_enabled # - extension_load_url_enabled # - instance_config @@ -3742,6 +3746,31 @@ def create_external_oauth_application( ) return response + # ### Update an OAuth Application's client secret. + # + # This is an OAuth Application which Looker uses to access external systems. + # + # PATCH /external_oauth_applications/{client_id} -> mdls.ExternalOauthApplication + def update_external_oauth_application( + self, + # The client ID of the OAuth App to update + client_id: str, + body: mdls.WriteExternalOauthApplication, + transport_options: Optional[transport.TransportOptions] = None, + ) -> mdls.ExternalOauthApplication: + """Update External OAuth Application""" + client_id = self.encode_path_param(client_id) + response = cast( + mdls.ExternalOauthApplication, + self.patch( + path=f"/external_oauth_applications/{client_id}", + structure=mdls.ExternalOauthApplication, + body=body, + transport_options=transport_options, + ), + ) + return response + # ### Create OAuth User state. # # POST /external_oauth_applications/user_state -> mdls.CreateOAuthApplicationUserStateResponse diff --git a/python/looker_sdk/sdk/api40/models.py b/python/looker_sdk/sdk/api40/models.py index f8166556b..7d4aca3d7 100644 --- a/python/looker_sdk/sdk/api40/models.py +++ b/python/looker_sdk/sdk/api40/models.py @@ -2192,6 +2192,8 @@ class CredentialsEmail(model.Model): logged_in_at: Timestamp for most recent login using credential password_reset_url: Url with one-time use secret token that the user can use to reset password account_setup_url: Url with one-time use secret token that the user can use to setup account + password_reset_url_expired: Is password_reset_url expired or not present? + account_setup_url_expired: Is account_setup_url expired or not present? type: Short name for the type of this kind of credential url: Link to get this item user_url: Link to get this user @@ -2206,6 +2208,8 @@ class CredentialsEmail(model.Model): logged_in_at: Optional[str] = None password_reset_url: Optional[str] = None account_setup_url: Optional[str] = None + password_reset_url_expired: Optional[bool] = None + account_setup_url_expired: Optional[bool] = None type: Optional[str] = None url: Optional[str] = None user_url: Optional[str] = None @@ -2222,6 +2226,8 @@ def __init__( logged_in_at: Optional[str] = None, password_reset_url: Optional[str] = None, account_setup_url: Optional[str] = None, + password_reset_url_expired: Optional[bool] = None, + account_setup_url_expired: Optional[bool] = None, type: Optional[str] = None, url: Optional[str] = None, user_url: Optional[str] = None @@ -2235,6 +2241,8 @@ def __init__( self.logged_in_at = logged_in_at self.password_reset_url = password_reset_url self.account_setup_url = account_setup_url + self.password_reset_url_expired = password_reset_url_expired + self.account_setup_url_expired = account_setup_url_expired self.type = type self.url = url self.user_url = user_url @@ -2253,6 +2261,8 @@ class CredentialsEmailSearch(model.Model): logged_in_at: Timestamp for most recent login using credential password_reset_url: Url with one-time use secret token that the user can use to reset password account_setup_url: Url with one-time use secret token that the user can use to setup account + password_reset_url_expired: Is password_reset_url expired or not present? + account_setup_url_expired: Is account_setup_url expired or not present? type: Short name for the type of this kind of credential url: Link to get this item user_url: Link to get this user @@ -2267,6 +2277,8 @@ class CredentialsEmailSearch(model.Model): logged_in_at: Optional[str] = None password_reset_url: Optional[str] = None account_setup_url: Optional[str] = None + password_reset_url_expired: Optional[bool] = None + account_setup_url_expired: Optional[bool] = None type: Optional[str] = None url: Optional[str] = None user_url: Optional[str] = None @@ -2283,6 +2295,8 @@ def __init__( logged_in_at: Optional[str] = None, password_reset_url: Optional[str] = None, account_setup_url: Optional[str] = None, + password_reset_url_expired: Optional[bool] = None, + account_setup_url_expired: Optional[bool] = None, type: Optional[str] = None, url: Optional[str] = None, user_url: Optional[str] = None @@ -2296,6 +2310,8 @@ def __init__( self.logged_in_at = logged_in_at self.password_reset_url = password_reset_url self.account_setup_url = account_setup_url + self.password_reset_url_expired = password_reset_url_expired + self.account_setup_url_expired = account_setup_url_expired self.type = type self.url = url self.user_url = user_url @@ -3581,6 +3597,7 @@ class DBConnection(model.Model): username: Username for server authentication password: (Write-Only) Password for server authentication uses_oauth: Whether the connection uses OAuth for authentication. + uses_instance_oauth: Whether the integration uses the oauth instance account. certificate: (Write-Only) Base64 encoded Certificate body for server authentication (when appropriate for dialect). file_type: (Write-Only) Certificate keyfile type - .json or .p12 database: Database name @@ -3588,6 +3605,8 @@ class DBConnection(model.Model): query_timezone: Timezone to use in queries schema: Schema name max_connections: Maximum number of concurrent connection to use + max_queries: Maximum number of concurrent queries to begin on this connection + max_queries_per_user: Maximum number of concurrent queries per user to begin on this connection max_billing_gigabytes: Maximum size of query in GBs (BigQuery only, can be a user_attribute name) ssl: Use SSL/TLS when connecting to server verify_ssl: Verify the SSL @@ -3616,9 +3635,14 @@ class DBConnection(model.Model): disable_context_comment: When disable_context_comment is true comment will not be added to SQL oauth_application_id: An External OAuth Application to use for authenticating to the database always_retry_failed_builds: When true, error PDTs will be retried every regenerator cycle + uses_application_default_credentials: Whether the connection should authenticate with the Application Default Credentials of the host environment (limited to GCP and certain dialects). + impersonated_service_account: An alternative Service Account to use for querying datasets (used primarily with `uses_application_default_credentials`) (limited to GCP and certain dialects). cost_estimate_enabled: When true, query cost estimate will be displayed in explore. pdt_api_control_enabled: PDT builds on this connection can be kicked off and cancelled via API. connection_pooling: Enable database connection pooling. + default_bq_connection: When true, represents that this connection is the default BQ connection. + bq_storage_project_id: The project id of the default BigQuery storage project. + bq_roles_verified: When true, represents that all project roles have been verified. """ can: Optional[MutableMapping[str, bool]] = None @@ -3631,6 +3655,7 @@ class DBConnection(model.Model): username: Optional[str] = None password: Optional[str] = None uses_oauth: Optional[bool] = None + uses_instance_oauth: Optional[bool] = None certificate: Optional[str] = None file_type: Optional[str] = None database: Optional[str] = None @@ -3638,6 +3663,8 @@ class DBConnection(model.Model): query_timezone: Optional[str] = None schema: Optional[str] = None max_connections: Optional[int] = None + max_queries: Optional[int] = None + max_queries_per_user: Optional[int] = None max_billing_gigabytes: Optional[str] = None ssl: Optional[bool] = None verify_ssl: Optional[bool] = None @@ -3666,9 +3693,14 @@ class DBConnection(model.Model): disable_context_comment: Optional[bool] = None oauth_application_id: Optional[str] = None always_retry_failed_builds: Optional[bool] = None + uses_application_default_credentials: Optional[bool] = None + impersonated_service_account: Optional[str] = None cost_estimate_enabled: Optional[bool] = None pdt_api_control_enabled: Optional[bool] = None connection_pooling: Optional[bool] = None + default_bq_connection: Optional[bool] = None + bq_storage_project_id: Optional[str] = None + bq_roles_verified: Optional[bool] = None def __init__( self, @@ -3683,6 +3715,7 @@ def __init__( username: Optional[str] = None, password: Optional[str] = None, uses_oauth: Optional[bool] = None, + uses_instance_oauth: Optional[bool] = None, certificate: Optional[str] = None, file_type: Optional[str] = None, database: Optional[str] = None, @@ -3690,6 +3723,8 @@ def __init__( query_timezone: Optional[str] = None, schema: Optional[str] = None, max_connections: Optional[int] = None, + max_queries: Optional[int] = None, + max_queries_per_user: Optional[int] = None, max_billing_gigabytes: Optional[str] = None, ssl: Optional[bool] = None, verify_ssl: Optional[bool] = None, @@ -3718,9 +3753,14 @@ def __init__( disable_context_comment: Optional[bool] = None, oauth_application_id: Optional[str] = None, always_retry_failed_builds: Optional[bool] = None, + uses_application_default_credentials: Optional[bool] = None, + impersonated_service_account: Optional[str] = None, cost_estimate_enabled: Optional[bool] = None, pdt_api_control_enabled: Optional[bool] = None, - connection_pooling: Optional[bool] = None + connection_pooling: Optional[bool] = None, + default_bq_connection: Optional[bool] = None, + bq_storage_project_id: Optional[str] = None, + bq_roles_verified: Optional[bool] = None ): self.can = can self.name = name @@ -3732,6 +3772,7 @@ def __init__( self.username = username self.password = password self.uses_oauth = uses_oauth + self.uses_instance_oauth = uses_instance_oauth self.certificate = certificate self.file_type = file_type self.database = database @@ -3739,6 +3780,8 @@ def __init__( self.query_timezone = query_timezone self.schema = schema self.max_connections = max_connections + self.max_queries = max_queries + self.max_queries_per_user = max_queries_per_user self.max_billing_gigabytes = max_billing_gigabytes self.ssl = ssl self.verify_ssl = verify_ssl @@ -3767,9 +3810,14 @@ def __init__( self.disable_context_comment = disable_context_comment self.oauth_application_id = oauth_application_id self.always_retry_failed_builds = always_retry_failed_builds + self.uses_application_default_credentials = uses_application_default_credentials + self.impersonated_service_account = impersonated_service_account self.cost_estimate_enabled = cost_estimate_enabled self.pdt_api_control_enabled = pdt_api_control_enabled self.connection_pooling = connection_pooling + self.default_bq_connection = default_bq_connection + self.bq_storage_project_id = bq_storage_project_id + self.bq_roles_verified = bq_roles_verified @attr.s(auto_attribs=True, init=False) @@ -9954,6 +10002,7 @@ class RunningQueries(model.Model): status: Status description runtime: Number of seconds elapsed running the Query sql: SQL text of the query as run + sql_interface_sql: SQL text of the SQL Interface query as run """ can: Optional[MutableMapping[str, bool]] = None @@ -9977,6 +10026,7 @@ class RunningQueries(model.Model): status: Optional[str] = None runtime: Optional[float] = None sql: Optional[str] = None + sql_interface_sql: Optional[str] = None def __init__( self, @@ -10001,7 +10051,8 @@ def __init__( message: Optional[str] = None, status: Optional[str] = None, runtime: Optional[float] = None, - sql: Optional[str] = None + sql: Optional[str] = None, + sql_interface_sql: Optional[str] = None ): self.can = can self.id = id @@ -10024,6 +10075,7 @@ def __init__( self.status = status self.runtime = runtime self.sql = sql + self.sql_interface_sql = sql_interface_sql @attr.s(auto_attribs=True, init=False) @@ -10869,6 +10921,8 @@ class Setting(model.Model): embed_config: login_notification_enabled: Login notification enabled 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) """ instance_config: Optional["InstanceConfig"] = None @@ -10893,6 +10947,8 @@ class Setting(model.Model): embed_config: Optional["EmbedConfig"] = None login_notification_enabled: Optional[bool] = None login_notification_text: Optional[str] = None + dashboard_auto_refresh_restriction: Optional[bool] = None + dashboard_auto_refresh_minimum_interval: Optional[str] = None def __init__( self, @@ -10918,7 +10974,9 @@ def __init__( embed_enabled: Optional[bool] = None, embed_config: Optional["EmbedConfig"] = None, login_notification_enabled: Optional[bool] = None, - login_notification_text: Optional[str] = None + login_notification_text: Optional[str] = None, + dashboard_auto_refresh_restriction: Optional[bool] = None, + dashboard_auto_refresh_minimum_interval: Optional[str] = None ): self.instance_config = instance_config self.extension_framework_enabled = extension_framework_enabled @@ -10942,6 +11000,10 @@ def __init__( self.embed_config = embed_config self.login_notification_enabled = login_notification_enabled self.login_notification_text = login_notification_text + self.dashboard_auto_refresh_restriction = dashboard_auto_refresh_restriction + self.dashboard_auto_refresh_minimum_interval = ( + dashboard_auto_refresh_minimum_interval + ) @attr.s(auto_attribs=True, init=False) @@ -11867,7 +11929,7 @@ class User(model.Model): looker_versions: Array of strings representing the Looker versions that this user has used (this only goes back as far as '3.54.0') models_dir_validated: User's dev workspace has been checked for presence of applicable production projects personal_folder_id: ID of user's personal folder - presumed_looker_employee: User is identified as an employee of Looker + presumed_looker_employee: (DEPRECATED) User is identified as an employee of Looker role_ids: Array of ids of the roles for this user sessions: Active sessions ui_state: Per user dictionary of undocumented state information owned by the Looker UI. @@ -13010,7 +13072,7 @@ def __init__( class WriteCredentialsEmail(model.Model): """ Dynamic writeable type for CredentialsEmail removes: - can, created_at, user_id, is_disabled, logged_in_at, password_reset_url, account_setup_url, type, url, user_url + 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 Attributes: email: EMail address used for user login @@ -13453,7 +13515,7 @@ def __init__( class WriteDBConnection(model.Model): """ Dynamic writeable type for DBConnection removes: - can, dialect, snippets, pdts_enabled, uses_oauth, supports_data_studio_link, created_at, user_id, example, last_regen_at, last_reap_at, managed + 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, bq_roles_verified Attributes: name: Name of the connection. Also used as the unique identifier @@ -13468,6 +13530,8 @@ class WriteDBConnection(model.Model): query_timezone: Timezone to use in queries schema: Schema name max_connections: Maximum number of concurrent connection to use + max_queries: Maximum number of concurrent queries to begin on this connection + max_queries_per_user: Maximum number of concurrent queries per user to begin on this connection max_billing_gigabytes: Maximum size of query in GBs (BigQuery only, can be a user_attribute name) ssl: Use SSL/TLS when connecting to server verify_ssl: Verify the SSL @@ -13490,9 +13554,12 @@ class WriteDBConnection(model.Model): disable_context_comment: When disable_context_comment is true comment will not be added to SQL oauth_application_id: An External OAuth Application to use for authenticating to the database always_retry_failed_builds: When true, error PDTs will be retried every regenerator cycle + uses_application_default_credentials: Whether the connection should authenticate with the Application Default Credentials of the host environment (limited to GCP and certain dialects). + impersonated_service_account: An alternative Service Account to use for querying datasets (used primarily with `uses_application_default_credentials`) (limited to GCP and certain dialects). cost_estimate_enabled: When true, query cost estimate will be displayed in explore. pdt_api_control_enabled: PDT builds on this connection can be kicked off and cancelled via API. connection_pooling: Enable database connection pooling. + bq_storage_project_id: The project id of the default BigQuery storage project. """ name: Optional[str] = None @@ -13507,6 +13574,8 @@ class WriteDBConnection(model.Model): query_timezone: Optional[str] = None schema: Optional[str] = None max_connections: Optional[int] = None + max_queries: Optional[int] = None + max_queries_per_user: Optional[int] = None max_billing_gigabytes: Optional[str] = None ssl: Optional[bool] = None verify_ssl: Optional[bool] = None @@ -13528,9 +13597,12 @@ class WriteDBConnection(model.Model): disable_context_comment: Optional[bool] = None oauth_application_id: Optional[str] = None always_retry_failed_builds: Optional[bool] = None + uses_application_default_credentials: Optional[bool] = None + impersonated_service_account: Optional[str] = None cost_estimate_enabled: Optional[bool] = None pdt_api_control_enabled: Optional[bool] = None connection_pooling: Optional[bool] = None + bq_storage_project_id: Optional[str] = None def __init__( self, @@ -13547,6 +13619,8 @@ def __init__( query_timezone: Optional[str] = None, schema: Optional[str] = None, max_connections: Optional[int] = None, + max_queries: Optional[int] = None, + max_queries_per_user: Optional[int] = None, max_billing_gigabytes: Optional[str] = None, ssl: Optional[bool] = None, verify_ssl: Optional[bool] = None, @@ -13568,9 +13642,12 @@ def __init__( disable_context_comment: Optional[bool] = None, oauth_application_id: Optional[str] = None, always_retry_failed_builds: Optional[bool] = None, + uses_application_default_credentials: Optional[bool] = None, + impersonated_service_account: Optional[str] = None, cost_estimate_enabled: Optional[bool] = None, pdt_api_control_enabled: Optional[bool] = None, - connection_pooling: Optional[bool] = None + connection_pooling: Optional[bool] = None, + bq_storage_project_id: Optional[str] = None ): self.name = name self.host = host @@ -13584,6 +13661,8 @@ def __init__( self.query_timezone = query_timezone self.schema = schema self.max_connections = max_connections + self.max_queries = max_queries + self.max_queries_per_user = max_queries_per_user self.max_billing_gigabytes = max_billing_gigabytes self.ssl = ssl self.verify_ssl = verify_ssl @@ -13605,9 +13684,12 @@ def __init__( self.disable_context_comment = disable_context_comment self.oauth_application_id = oauth_application_id self.always_retry_failed_builds = always_retry_failed_builds + self.uses_application_default_credentials = uses_application_default_credentials + self.impersonated_service_account = impersonated_service_account self.cost_estimate_enabled = cost_estimate_enabled self.pdt_api_control_enabled = pdt_api_control_enabled self.connection_pooling = connection_pooling + self.bq_storage_project_id = bq_storage_project_id @attr.s(auto_attribs=True, init=False) @@ -15087,6 +15169,8 @@ class WriteSetting(model.Model): email_domain_allowlist: An array of Email Domain Allowlist of type string for Scheduled Content embed_cookieless_v2: (DEPRECATED) Use embed_config.embed_cookieless_v2 instead. If embed_config.embed_cookieless_v2 is specified, it overrides this value. embed_config: + 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) """ extension_framework_enabled: Optional[bool] = None @@ -15106,6 +15190,8 @@ class WriteSetting(model.Model): email_domain_allowlist: Optional[Sequence[str]] = None embed_cookieless_v2: Optional[bool] = None embed_config: Optional["EmbedConfig"] = None + dashboard_auto_refresh_restriction: Optional[bool] = None + dashboard_auto_refresh_minimum_interval: Optional[str] = None def __init__( self, @@ -15126,7 +15212,9 @@ def __init__( override_warnings: Optional[bool] = None, email_domain_allowlist: Optional[Sequence[str]] = None, embed_cookieless_v2: Optional[bool] = None, - embed_config: Optional["EmbedConfig"] = None + embed_config: Optional["EmbedConfig"] = None, + dashboard_auto_refresh_restriction: Optional[bool] = None, + dashboard_auto_refresh_minimum_interval: Optional[str] = None ): self.extension_framework_enabled = extension_framework_enabled self.extension_load_url_enabled = extension_load_url_enabled @@ -15145,6 +15233,10 @@ def __init__( self.email_domain_allowlist = email_domain_allowlist self.embed_cookieless_v2 = embed_cookieless_v2 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 + ) @attr.s(auto_attribs=True, init=False) @@ -15270,7 +15362,7 @@ class WriteUser(model.Model): Attributes: credentials_email: Dynamic writeable type for CredentialsEmail removes: - can, created_at, user_id, is_disabled, logged_in_at, password_reset_url, account_setup_url, type, url, user_url + 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 first_name: First name home_folder_id: ID string for user's home folder is_disabled: Account has been disabled diff --git a/python/looker_sdk/sdk/constants.py b/python/looker_sdk/sdk/constants.py index 01f6f4e36..77ff5a7b1 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 = "24.12" +sdk_version = "24.14" environment_prefix = "LOOKERSDK" diff --git a/spec/Looker.4.0.json b/spec/Looker.4.0.json index c17dc343e..ec274198c 100644 --- a/spec/Looker.4.0.json +++ b/spec/Looker.4.0.json @@ -1,8 +1,8 @@ { "swagger": "2.0", "info": { - "version": "4.0.24.12", - "x-looker-release-version": "24.12.6", + "version": "4.0.24.14", + "x-looker-release-version": "24.14.1", "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": { @@ -8455,6 +8455,69 @@ "x-looker-rate-limited": true } }, + "/external_oauth_applications/{client_id}": { + "patch": { + "tags": [ + "Connection" + ], + "operationId": "update_external_oauth_application", + "summary": "Update External OAuth Application", + "description": "### Update an OAuth Application's client secret.\n\nThis is an OAuth Application which Looker uses to access external systems.\n", + "parameters": [ + { + "name": "client_id", + "in": "path", + "description": "The client ID of the OAuth App to update", + "required": true, + "type": "string" + }, + { + "name": "body", + "in": "body", + "description": "External OAuth Application", + "required": true, + "schema": { + "$ref": "#/definitions/ExternalOauthApplication" + } + } + ], + "responses": { + "200": { + "description": "External OAuth Application", + "schema": { + "$ref": "#/definitions/ExternalOauthApplication" + } + }, + "400": { + "description": "Bad Request", + "schema": { + "$ref": "#/definitions/Error" + } + }, + "404": { + "description": "Not Found", + "schema": { + "$ref": "#/definitions/Error" + } + }, + "422": { + "description": "Validation Error", + "schema": { + "$ref": "#/definitions/ValidationError" + } + }, + "429": { + "description": "Too Many Requests", + "schema": { + "$ref": "#/definitions/Error" + } + } + }, + "x-looker-status": "beta", + "x-looker-activity-type": "non_query", + "x-looker-rate-limited": true + } + }, "/external_oauth_applications/user_state": { "post": { "tags": [ @@ -14915,6 +14978,12 @@ "$ref": "#/definitions/Error" } }, + "403": { + "description": "Permission Denied", + "schema": { + "$ref": "#/definitions/Error" + } + }, "404": { "description": "Not Found", "schema": { @@ -20494,7 +20563,7 @@ ], "operationId": "set_setting", "summary": "Set Setting", - "description": "### Configure Looker Settings\n\nAvailable settings are:\n - allow_user_timezones\n - custom_welcome_email\n - data_connector_default_enabled\n - extension_framework_enabled\n - extension_load_url_enabled\n - instance_config\n - marketplace_auto_install_enabled\n - marketplace_automation\n - marketplace_terms_accepted\n - marketplace_enabled\n - marketplace_site\n - onboarding_enabled\n - privatelabel_configuration\n - timezone\n - host_url\n - email_domain_allowlist\n - embed_cookieless_v2\n - embed_enabled\n - embed_config\n\nSee the `Setting` type for more information on the specific values that can be configured.\n\nIf a setting update is rejected, the API error payload should provide information on the cause of the rejection.\n", + "description": "### Configure Looker Settings\n\nAvailable settings are:\n - allow_user_timezones\n - custom_welcome_email\n - data_connector_default_enabled\n - dashboard_auto_refresh_restriction\n - dashboard_auto_refresh_minimum_interval\n - extension_framework_enabled\n - extension_load_url_enabled\n - instance_config\n - marketplace_auto_install_enabled\n - marketplace_automation\n - marketplace_terms_accepted\n - marketplace_enabled\n - marketplace_site\n - onboarding_enabled\n - privatelabel_configuration\n - timezone\n - host_url\n - email_domain_allowlist\n - embed_cookieless_v2\n - embed_enabled\n - embed_config\n\nSee the `Setting` type for more information on the specific values that can be configured.\n\nIf a setting update is rejected, the API error payload should provide information on the cause of the rejection.\n", "parameters": [ { "name": "body", @@ -20567,7 +20636,7 @@ ], "operationId": "get_setting", "summary": "Get Setting", - "description": "### Get Looker Settings\n\nAvailable settings are:\n - allow_user_timezones\n - custom_welcome_email\n - data_connector_default_enabled\n - extension_framework_enabled\n - extension_load_url_enabled\n - instance_config\n - marketplace_auto_install_enabled\n - marketplace_automation\n - marketplace_terms_accepted\n - marketplace_enabled\n - marketplace_site\n - onboarding_enabled\n - privatelabel_configuration\n - timezone\n - host_url\n - email_domain_allowlist\n - embed_cookieless_v2\n - embed_enabled\n - embed_config\n\n", + "description": "### Get Looker Settings\n\nAvailable settings are:\n - allow_user_timezones\n - custom_welcome_email\n - data_connector_default_enabled\n - dashboard_auto_refresh_restriction\n - dashboard_auto_refresh_minimum_interval\n - extension_framework_enabled\n - extension_load_url_enabled\n - instance_config\n - marketplace_auto_install_enabled\n - marketplace_automation\n - marketplace_terms_accepted\n - marketplace_enabled\n - marketplace_site\n - onboarding_enabled\n - privatelabel_configuration\n - timezone\n - host_url\n - email_domain_allowlist\n - embed_cookieless_v2\n - embed_enabled\n - embed_config\n\n", "parameters": [ { "name": "fields", @@ -30316,6 +30385,18 @@ "description": "Url with one-time use secret token that the user can use to setup account", "x-looker-nullable": true }, + "password_reset_url_expired": { + "type": "boolean", + "readOnly": true, + "description": "Is password_reset_url expired or not present?", + "x-looker-nullable": false + }, + "account_setup_url_expired": { + "type": "boolean", + "readOnly": true, + "description": "Is account_setup_url expired or not present?", + "x-looker-nullable": false + }, "type": { "type": "string", "readOnly": true, @@ -30396,6 +30477,18 @@ "description": "Url with one-time use secret token that the user can use to setup account", "x-looker-nullable": true }, + "password_reset_url_expired": { + "type": "boolean", + "readOnly": true, + "description": "Is password_reset_url expired or not present?", + "x-looker-nullable": false + }, + "account_setup_url_expired": { + "type": "boolean", + "readOnly": true, + "description": "Is account_setup_url expired or not present?", + "x-looker-nullable": false + }, "type": { "type": "string", "readOnly": true, @@ -32105,6 +32198,12 @@ "description": "Whether the connection uses OAuth for authentication.", "x-looker-nullable": false }, + "uses_instance_oauth": { + "type": "boolean", + "readOnly": true, + "description": "Whether the integration uses the oauth instance account.", + "x-looker-nullable": false + }, "certificate": { "type": "string", "x-looker-write-only": true, @@ -32143,6 +32242,18 @@ "description": "Maximum number of concurrent connection to use", "x-looker-nullable": true }, + "max_queries": { + "type": "integer", + "format": "int64", + "description": "Maximum number of concurrent queries to begin on this connection", + "x-looker-nullable": true + }, + "max_queries_per_user": { + "type": "integer", + "format": "int64", + "description": "Maximum number of concurrent queries per user to begin on this connection", + "x-looker-nullable": true + }, "max_billing_gigabytes": { "type": "string", "description": "Maximum size of query in GBs (BigQuery only, can be a user_attribute name)", @@ -32296,6 +32407,16 @@ "description": "When true, error PDTs will be retried every regenerator cycle", "x-looker-nullable": true }, + "uses_application_default_credentials": { + "type": "boolean", + "description": "Whether the connection should authenticate with the Application Default Credentials of the host environment (limited to GCP and certain dialects).", + "x-looker-nullable": true + }, + "impersonated_service_account": { + "type": "string", + "description": "An alternative Service Account to use for querying datasets (used primarily with `uses_application_default_credentials`) (limited to GCP and certain dialects).", + "x-looker-nullable": true + }, "cost_estimate_enabled": { "type": "boolean", "description": "When true, query cost estimate will be displayed in explore.", @@ -32310,6 +32431,23 @@ "type": "boolean", "description": "Enable database connection pooling.", "x-looker-nullable": false + }, + "default_bq_connection": { + "type": "boolean", + "readOnly": true, + "description": "When true, represents that this connection is the default BQ connection.", + "x-looker-nullable": false + }, + "bq_storage_project_id": { + "type": "string", + "description": "The project id of the default BigQuery storage project.", + "x-looker-nullable": true + }, + "bq_roles_verified": { + "type": "boolean", + "readOnly": true, + "description": "When true, represents that all project roles have been verified.", + "x-looker-nullable": true } }, "x-looker-status": "stable" @@ -39722,6 +39860,12 @@ "readOnly": true, "description": "SQL text of the query as run", "x-looker-nullable": true + }, + "sql_interface_sql": { + "type": "string", + "readOnly": true, + "description": "SQL text of the SQL Interface query as run", + "x-looker-nullable": true } }, "x-looker-status": "stable" @@ -41292,6 +41436,16 @@ "readOnly": true, "description": "Login notification text", "x-looker-nullable": true + }, + "dashboard_auto_refresh_restriction": { + "type": "boolean", + "description": "Toggle Dashboard Auto Refresh restriction", + "x-looker-nullable": false + }, + "dashboard_auto_refresh_minimum_interval": { + "type": "string", + "description": "Minimum time interval for dashboard element automatic refresh. Examples: (30 seconds, 1 minute)", + "x-looker-nullable": true } }, "x-looker-status": "stable" @@ -42539,7 +42693,8 @@ "presumed_looker_employee": { "type": "boolean", "readOnly": true, - "description": "User is identified as an employee of Looker", + "x-looker-deprecated": true, + "description": "(DEPRECATED) User is identified as an employee of Looker", "x-looker-nullable": false }, "role_ids": { diff --git a/spec/Looker.4.0.oas.json b/spec/Looker.4.0.oas.json index 2571bc31b..095cdc298 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.24.12", - "x-looker-release-version": "24.12.6", + "version": "4.0.24.14", + "x-looker-release-version": "24.14.1", "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": { @@ -11737,6 +11737,93 @@ } } }, + "/external_oauth_applications/{client_id}": { + "patch": { + "tags": [ + "Connection" + ], + "operationId": "update_external_oauth_application", + "summary": "Update External OAuth Application", + "description": "### Update an OAuth Application's client secret.\n\nThis is an OAuth Application which Looker uses to access external systems.\n", + "parameters": [ + { + "name": "client_id", + "in": "path", + "description": "The client ID of the OAuth App to update", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "External OAuth Application", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ExternalOauthApplication" + } + } + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + }, + "404": { + "description": "Not Found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + }, + "422": { + "description": "Validation Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ValidationError" + } + } + } + }, + "429": { + "description": "Too Many Requests", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + } + }, + "x-looker-status": "beta", + "x-looker-activity-type": "non_query", + "x-looker-rate-limited": true, + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ExternalOauthApplication" + } + } + }, + "description": "External OAuth Application", + "required": true + } + } + }, "/external_oauth_applications/user_state": { "post": { "tags": [ @@ -20626,6 +20713,16 @@ } } }, + "403": { + "description": "Permission Denied", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + }, "404": { "description": "Not Found", "content": { @@ -28328,7 +28425,7 @@ ], "operationId": "set_setting", "summary": "Set Setting", - "description": "### Configure Looker Settings\n\nAvailable settings are:\n - allow_user_timezones\n - custom_welcome_email\n - data_connector_default_enabled\n - extension_framework_enabled\n - extension_load_url_enabled\n - instance_config\n - marketplace_auto_install_enabled\n - marketplace_automation\n - marketplace_terms_accepted\n - marketplace_enabled\n - marketplace_site\n - onboarding_enabled\n - privatelabel_configuration\n - timezone\n - host_url\n - email_domain_allowlist\n - embed_cookieless_v2\n - embed_enabled\n - embed_config\n\nSee the `Setting` type for more information on the specific values that can be configured.\n\nIf a setting update is rejected, the API error payload should provide information on the cause of the rejection.\n", + "description": "### Configure Looker Settings\n\nAvailable settings are:\n - allow_user_timezones\n - custom_welcome_email\n - data_connector_default_enabled\n - dashboard_auto_refresh_restriction\n - dashboard_auto_refresh_minimum_interval\n - extension_framework_enabled\n - extension_load_url_enabled\n - instance_config\n - marketplace_auto_install_enabled\n - marketplace_automation\n - marketplace_terms_accepted\n - marketplace_enabled\n - marketplace_site\n - onboarding_enabled\n - privatelabel_configuration\n - timezone\n - host_url\n - email_domain_allowlist\n - embed_cookieless_v2\n - embed_enabled\n - embed_config\n\nSee the `Setting` type for more information on the specific values that can be configured.\n\nIf a setting update is rejected, the API error payload should provide information on the cause of the rejection.\n", "parameters": [ { "name": "fields", @@ -28433,7 +28530,7 @@ ], "operationId": "get_setting", "summary": "Get Setting", - "description": "### Get Looker Settings\n\nAvailable settings are:\n - allow_user_timezones\n - custom_welcome_email\n - data_connector_default_enabled\n - extension_framework_enabled\n - extension_load_url_enabled\n - instance_config\n - marketplace_auto_install_enabled\n - marketplace_automation\n - marketplace_terms_accepted\n - marketplace_enabled\n - marketplace_site\n - onboarding_enabled\n - privatelabel_configuration\n - timezone\n - host_url\n - email_domain_allowlist\n - embed_cookieless_v2\n - embed_enabled\n - embed_config\n\n", + "description": "### Get Looker Settings\n\nAvailable settings are:\n - allow_user_timezones\n - custom_welcome_email\n - data_connector_default_enabled\n - dashboard_auto_refresh_restriction\n - dashboard_auto_refresh_minimum_interval\n - extension_framework_enabled\n - extension_load_url_enabled\n - instance_config\n - marketplace_auto_install_enabled\n - marketplace_automation\n - marketplace_terms_accepted\n - marketplace_enabled\n - marketplace_site\n - onboarding_enabled\n - privatelabel_configuration\n - timezone\n - host_url\n - email_domain_allowlist\n - embed_cookieless_v2\n - embed_enabled\n - embed_config\n\n", "parameters": [ { "name": "fields", @@ -40863,6 +40960,18 @@ "description": "Url with one-time use secret token that the user can use to setup account", "nullable": true }, + "password_reset_url_expired": { + "type": "boolean", + "readOnly": true, + "description": "Is password_reset_url expired or not present?", + "nullable": false + }, + "account_setup_url_expired": { + "type": "boolean", + "readOnly": true, + "description": "Is account_setup_url expired or not present?", + "nullable": false + }, "type": { "type": "string", "readOnly": true, @@ -40943,6 +41052,18 @@ "description": "Url with one-time use secret token that the user can use to setup account", "nullable": true }, + "password_reset_url_expired": { + "type": "boolean", + "readOnly": true, + "description": "Is password_reset_url expired or not present?", + "nullable": false + }, + "account_setup_url_expired": { + "type": "boolean", + "readOnly": true, + "description": "Is account_setup_url expired or not present?", + "nullable": false + }, "type": { "type": "string", "readOnly": true, @@ -42624,6 +42745,12 @@ "description": "Whether the connection uses OAuth for authentication.", "nullable": false }, + "uses_instance_oauth": { + "type": "boolean", + "readOnly": true, + "description": "Whether the integration uses the oauth instance account.", + "nullable": false + }, "certificate": { "type": "string", "x-looker-write-only": true, @@ -42662,6 +42789,18 @@ "description": "Maximum number of concurrent connection to use", "nullable": true }, + "max_queries": { + "type": "integer", + "format": "int64", + "description": "Maximum number of concurrent queries to begin on this connection", + "nullable": true + }, + "max_queries_per_user": { + "type": "integer", + "format": "int64", + "description": "Maximum number of concurrent queries per user to begin on this connection", + "nullable": true + }, "max_billing_gigabytes": { "type": "string", "description": "Maximum size of query in GBs (BigQuery only, can be a user_attribute name)", @@ -42813,6 +42952,16 @@ "description": "When true, error PDTs will be retried every regenerator cycle", "nullable": true }, + "uses_application_default_credentials": { + "type": "boolean", + "description": "Whether the connection should authenticate with the Application Default Credentials of the host environment (limited to GCP and certain dialects).", + "nullable": true + }, + "impersonated_service_account": { + "type": "string", + "description": "An alternative Service Account to use for querying datasets (used primarily with `uses_application_default_credentials`) (limited to GCP and certain dialects).", + "nullable": true + }, "cost_estimate_enabled": { "type": "boolean", "description": "When true, query cost estimate will be displayed in explore.", @@ -42827,6 +42976,23 @@ "type": "boolean", "description": "Enable database connection pooling.", "nullable": false + }, + "default_bq_connection": { + "type": "boolean", + "readOnly": true, + "description": "When true, represents that this connection is the default BQ connection.", + "nullable": false + }, + "bq_storage_project_id": { + "type": "string", + "description": "The project id of the default BigQuery storage project.", + "nullable": true + }, + "bq_roles_verified": { + "type": "boolean", + "readOnly": true, + "description": "When true, represents that all project roles have been verified.", + "nullable": true } }, "x-looker-status": "stable" @@ -50153,6 +50319,12 @@ "readOnly": true, "description": "SQL text of the query as run", "nullable": true + }, + "sql_interface_sql": { + "type": "string", + "readOnly": true, + "description": "SQL text of the SQL Interface query as run", + "nullable": true } }, "x-looker-status": "stable" @@ -51705,6 +51877,16 @@ "readOnly": true, "description": "Login notification text", "nullable": true + }, + "dashboard_auto_refresh_restriction": { + "type": "boolean", + "description": "Toggle Dashboard Auto Refresh restriction", + "nullable": false + }, + "dashboard_auto_refresh_minimum_interval": { + "type": "string", + "description": "Minimum time interval for dashboard element automatic refresh. Examples: (30 seconds, 1 minute)", + "nullable": true } }, "x-looker-status": "stable" @@ -52923,7 +53105,8 @@ "presumed_looker_employee": { "type": "boolean", "readOnly": true, - "description": "User is identified as an employee of Looker", + "deprecated": true, + "description": "(DEPRECATED) User is identified as an employee of Looker", "nullable": false }, "role_ids": { diff --git a/swift/looker/rtl/constants.swift b/swift/looker/rtl/constants.swift index 7a1985ff0..525553896 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 = "24.12" + public static let lookerVersion = "24.14" 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 600784866..cc5326905 100644 --- a/swift/looker/sdk/methods.swift +++ b/swift/looker/sdk/methods.swift @@ -25,7 +25,7 @@ */ /** - * 464 API methods + * 465 API methods */ @@ -2848,6 +2848,8 @@ open class LookerSDK: APIMethods { * - allow_user_timezones * - custom_welcome_email * - data_connector_default_enabled + * - dashboard_auto_refresh_restriction + * - dashboard_auto_refresh_minimum_interval * - extension_framework_enabled * - extension_load_url_enabled * - instance_config @@ -2886,6 +2888,8 @@ open class LookerSDK: APIMethods { * - allow_user_timezones * - custom_welcome_email * - data_connector_default_enabled + * - dashboard_auto_refresh_restriction + * - dashboard_auto_refresh_minimum_interval * - extension_framework_enabled * - extension_load_url_enabled * - instance_config @@ -3288,6 +3292,29 @@ open class LookerSDK: APIMethods { return result } + /** + * ### Update an OAuth Application's client secret. + * + * This is an OAuth Application which Looker uses to access external systems. + * + * PATCH /external_oauth_applications/{client_id} -> ExternalOauthApplication + */ + public func update_external_oauth_application( + /** + * @param {String} client_id The client ID of the OAuth App to update + */ + _ client_id: String, + /** + * @param {WriteExternalOauthApplication} body + */ + _ body: WriteExternalOauthApplication, + options: ITransportSettings? = nil + ) -> SDKResponse { + let path_client_id = encodeParam(client_id) + let result: SDKResponse = self.patch("/external_oauth_applications/\(path_client_id)", nil, try! self.encode(body), options) + return result + } + /** * ### Create OAuth User state. * diff --git a/swift/looker/sdk/models.swift b/swift/looker/sdk/models.swift index d8d2d4420..25d5a971b 100644 --- a/swift/looker/sdk/models.swift +++ b/swift/looker/sdk/models.swift @@ -3988,6 +3988,8 @@ public struct CredentialsEmail: SDKModel { case _logged_in_at = "logged_in_at" case _password_reset_url = "password_reset_url" case _account_setup_url = "account_setup_url" + case password_reset_url_expired + case account_setup_url_expired case _type = "type" case _url = "url" case _user_url = "user_url" @@ -4061,6 +4063,16 @@ public struct CredentialsEmail: SDKModel { set { _account_setup_url = newValue.map(AnyString.init) } } + /** + * Is password_reset_url expired or not present? (read-only) + */ + public var password_reset_url_expired: Bool? + + /** + * Is account_setup_url expired or not present? (read-only) + */ + public var account_setup_url_expired: Bool? + private var _type: AnyString? /** * Short name for the type of this kind of credential (read-only) @@ -4088,7 +4100,7 @@ public struct CredentialsEmail: SDKModel { set { _user_url = newValue.map(AnyString.init) } } - public init(can: StringDictionary? = nil, created_at: String? = nil, email: String? = nil, forced_password_reset_at_next_login: Bool? = nil, user_id: String? = nil, is_disabled: Bool? = nil, logged_in_at: String? = nil, password_reset_url: String? = nil, account_setup_url: String? = nil, type: String? = nil, url: String? = nil, user_url: String? = nil) { + public init(can: StringDictionary? = nil, created_at: String? = nil, email: String? = nil, forced_password_reset_at_next_login: Bool? = nil, user_id: String? = nil, is_disabled: Bool? = nil, logged_in_at: String? = nil, password_reset_url: String? = nil, account_setup_url: String? = nil, password_reset_url_expired: Bool? = nil, account_setup_url_expired: Bool? = nil, type: String? = nil, url: String? = nil, user_url: String? = nil) { self.can = can self._created_at = created_at.map(AnyString.init) self._email = email.map(AnyString.init) @@ -4098,6 +4110,8 @@ public struct CredentialsEmail: SDKModel { self._logged_in_at = logged_in_at.map(AnyString.init) self._password_reset_url = password_reset_url.map(AnyString.init) self._account_setup_url = account_setup_url.map(AnyString.init) + self.password_reset_url_expired = password_reset_url_expired + self.account_setup_url_expired = account_setup_url_expired self._type = type.map(AnyString.init) self._url = url.map(AnyString.init) self._user_url = user_url.map(AnyString.init) @@ -4117,6 +4131,8 @@ public struct CredentialsEmailSearch: SDKModel { case _logged_in_at = "logged_in_at" case _password_reset_url = "password_reset_url" case _account_setup_url = "account_setup_url" + case password_reset_url_expired + case account_setup_url_expired case _type = "type" case _url = "url" case _user_url = "user_url" @@ -4190,6 +4206,16 @@ public struct CredentialsEmailSearch: SDKModel { set { _account_setup_url = newValue.map(AnyString.init) } } + /** + * Is password_reset_url expired or not present? (read-only) + */ + public var password_reset_url_expired: Bool? + + /** + * Is account_setup_url expired or not present? (read-only) + */ + public var account_setup_url_expired: Bool? + private var _type: AnyString? /** * Short name for the type of this kind of credential (read-only) @@ -4217,7 +4243,7 @@ public struct CredentialsEmailSearch: SDKModel { set { _user_url = newValue.map(AnyString.init) } } - public init(can: StringDictionary? = nil, created_at: String? = nil, email: String? = nil, forced_password_reset_at_next_login: Bool? = nil, user_id: String? = nil, is_disabled: Bool? = nil, logged_in_at: String? = nil, password_reset_url: String? = nil, account_setup_url: String? = nil, type: String? = nil, url: String? = nil, user_url: String? = nil) { + public init(can: StringDictionary? = nil, created_at: String? = nil, email: String? = nil, forced_password_reset_at_next_login: Bool? = nil, user_id: String? = nil, is_disabled: Bool? = nil, logged_in_at: String? = nil, password_reset_url: String? = nil, account_setup_url: String? = nil, password_reset_url_expired: Bool? = nil, account_setup_url_expired: Bool? = nil, type: String? = nil, url: String? = nil, user_url: String? = nil) { self.can = can self._created_at = created_at.map(AnyString.init) self._email = email.map(AnyString.init) @@ -4227,6 +4253,8 @@ public struct CredentialsEmailSearch: SDKModel { self._logged_in_at = logged_in_at.map(AnyString.init) self._password_reset_url = password_reset_url.map(AnyString.init) self._account_setup_url = account_setup_url.map(AnyString.init) + self.password_reset_url_expired = password_reset_url_expired + self.account_setup_url_expired = account_setup_url_expired self._type = type.map(AnyString.init) self._url = url.map(AnyString.init) self._user_url = user_url.map(AnyString.init) @@ -6767,6 +6795,7 @@ public struct DBConnection: SDKModel { case _username = "username" case _password = "password" case uses_oauth + case uses_instance_oauth case _certificate = "certificate" case _file_type = "file_type" case _database = "database" @@ -6774,6 +6803,8 @@ public struct DBConnection: SDKModel { case _query_timezone = "query_timezone" case _schema = "schema" case _max_connections = "max_connections" + case _max_queries = "max_queries" + case _max_queries_per_user = "max_queries_per_user" case _max_billing_gigabytes = "max_billing_gigabytes" case ssl case verify_ssl @@ -6802,9 +6833,14 @@ public struct DBConnection: SDKModel { case disable_context_comment case _oauth_application_id = "oauth_application_id" case always_retry_failed_builds + case uses_application_default_credentials + case _impersonated_service_account = "impersonated_service_account" case cost_estimate_enabled case pdt_api_control_enabled case connection_pooling + case default_bq_connection + case _bq_storage_project_id = "bq_storage_project_id" + case bq_roles_verified } /** * Operations the current user is able to perform on this object (read-only) @@ -6873,6 +6909,11 @@ public struct DBConnection: SDKModel { */ public var uses_oauth: Bool? + /** + * Whether the integration uses the oauth instance account. (read-only) + */ + public var uses_instance_oauth: Bool? + private var _certificate: AnyString? /** * (Write-Only) Base64 encoded Certificate body for server authentication (when appropriate for dialect). @@ -6936,6 +6977,24 @@ public struct DBConnection: SDKModel { set { _max_connections = newValue.map(AnyInt.init) } } + private var _max_queries: AnyInt? + /** + * Maximum number of concurrent queries to begin on this connection + */ + public var max_queries: Int64? { + get { _max_queries?.value } + set { _max_queries = newValue.map(AnyInt.init) } + } + + private var _max_queries_per_user: AnyInt? + /** + * Maximum number of concurrent queries per user to begin on this connection + */ + public var max_queries_per_user: Int64? { + get { _max_queries_per_user?.value } + set { _max_queries_per_user = newValue.map(AnyInt.init) } + } + private var _max_billing_gigabytes: AnyString? /** * Maximum size of query in GBs (BigQuery only, can be a user_attribute name) @@ -7137,6 +7196,20 @@ public struct DBConnection: SDKModel { */ public var always_retry_failed_builds: Bool? + /** + * Whether the connection should authenticate with the Application Default Credentials of the host environment (limited to GCP and certain dialects). + */ + public var uses_application_default_credentials: Bool? + + private var _impersonated_service_account: AnyString? + /** + * An alternative Service Account to use for querying datasets (used primarily with `uses_application_default_credentials`) (limited to GCP and certain dialects). + */ + public var impersonated_service_account: String? { + get { _impersonated_service_account?.value } + set { _impersonated_service_account = newValue.map(AnyString.init) } + } + /** * When true, query cost estimate will be displayed in explore. */ @@ -7152,7 +7225,26 @@ public struct DBConnection: SDKModel { */ public var connection_pooling: Bool? - public init(can: StringDictionary? = nil, name: String? = nil, dialect: Dialect? = nil, snippets: [Snippet]? = nil, pdts_enabled: Bool? = nil, host: String? = nil, port: String? = nil, username: String? = nil, password: String? = nil, uses_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_billing_gigabytes: String? = nil, ssl: Bool? = nil, verify_ssl: Bool? = nil, tmp_db_name: 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, cost_estimate_enabled: Bool? = nil, pdt_api_control_enabled: Bool? = nil, connection_pooling: Bool? = nil) { + /** + * When true, represents that this connection is the default BQ connection. (read-only) + */ + public var default_bq_connection: Bool? + + private var _bq_storage_project_id: AnyString? + /** + * The project id of the default BigQuery storage project. + */ + public var bq_storage_project_id: String? { + get { _bq_storage_project_id?.value } + set { _bq_storage_project_id = newValue.map(AnyString.init) } + } + + /** + * When true, represents that all project roles have been verified. (read-only) + */ + public var bq_roles_verified: Bool? + + public init(can: StringDictionary? = nil, name: String? = nil, dialect: Dialect? = nil, snippets: [Snippet]? = nil, pdts_enabled: Bool? = 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, 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) { self.can = can self._name = name.map(AnyString.init) self.dialect = dialect @@ -7163,6 +7255,7 @@ public struct DBConnection: SDKModel { self._username = username.map(AnyString.init) self._password = password.map(AnyString.init) self.uses_oauth = uses_oauth + self.uses_instance_oauth = uses_instance_oauth self._certificate = certificate.map(AnyString.init) self._file_type = file_type.map(AnyString.init) self._database = database.map(AnyString.init) @@ -7170,6 +7263,8 @@ public struct DBConnection: SDKModel { self._query_timezone = query_timezone.map(AnyString.init) self._schema = schema.map(AnyString.init) self._max_connections = max_connections.map(AnyInt.init) + self._max_queries = max_queries.map(AnyInt.init) + self._max_queries_per_user = max_queries_per_user.map(AnyInt.init) self._max_billing_gigabytes = max_billing_gigabytes.map(AnyString.init) self.ssl = ssl self.verify_ssl = verify_ssl @@ -7198,9 +7293,14 @@ public struct DBConnection: SDKModel { self.disable_context_comment = disable_context_comment self._oauth_application_id = oauth_application_id.map(AnyString.init) self.always_retry_failed_builds = always_retry_failed_builds + self.uses_application_default_credentials = uses_application_default_credentials + self._impersonated_service_account = impersonated_service_account.map(AnyString.init) self.cost_estimate_enabled = cost_estimate_enabled self.pdt_api_control_enabled = pdt_api_control_enabled self.connection_pooling = connection_pooling + self.default_bq_connection = default_bq_connection + self._bq_storage_project_id = bq_storage_project_id.map(AnyString.init) + self.bq_roles_verified = bq_roles_verified } } @@ -18732,6 +18832,7 @@ public struct RunningQueries: SDKModel { case _status = "status" case runtime case _sql = "sql" + case _sql_interface_sql = "sql_interface_sql" } /** * Operations the current user is able to perform on this object (read-only) @@ -18886,7 +18987,16 @@ public struct RunningQueries: SDKModel { set { _sql = newValue.map(AnyString.init) } } - public init(can: StringDictionary? = nil, id: String? = nil, user: UserPublic? = nil, query: Query? = nil, sql_query: SqlQuery? = nil, look: LookBasic? = nil, created_at: String? = nil, completed_at: String? = nil, query_id: String? = nil, source: String? = nil, node_id: String? = nil, slug: String? = nil, query_task_id: String? = nil, cache_key: String? = nil, connection_name: String? = nil, dialect: String? = nil, connection_id: String? = nil, message: String? = nil, status: String? = nil, runtime: Double? = nil, sql: String? = nil) { + private var _sql_interface_sql: AnyString? + /** + * SQL text of the SQL Interface query as run (read-only) + */ + public var sql_interface_sql: String? { + get { _sql_interface_sql?.value } + set { _sql_interface_sql = newValue.map(AnyString.init) } + } + + public init(can: StringDictionary? = nil, id: String? = nil, user: UserPublic? = nil, query: Query? = nil, sql_query: SqlQuery? = nil, look: LookBasic? = nil, created_at: String? = nil, completed_at: String? = nil, query_id: String? = nil, source: String? = nil, node_id: String? = nil, slug: String? = nil, query_task_id: String? = nil, cache_key: String? = nil, connection_name: String? = nil, dialect: String? = nil, connection_id: String? = nil, message: String? = nil, status: String? = nil, runtime: Double? = nil, sql: String? = nil, sql_interface_sql: String? = nil) { self.can = can self._id = id.map(AnyString.init) self.user = user @@ -18908,6 +19018,7 @@ public struct RunningQueries: SDKModel { self._status = status.map(AnyString.init) self.runtime = runtime self._sql = sql.map(AnyString.init) + self._sql_interface_sql = sql_interface_sql.map(AnyString.init) } } @@ -20529,6 +20640,8 @@ public struct Setting: SDKModel { case embed_config case login_notification_enabled case _login_notification_text = "login_notification_text" + case dashboard_auto_refresh_restriction + case _dashboard_auto_refresh_minimum_interval = "dashboard_auto_refresh_minimum_interval" } public var instance_config: InstanceConfig? @@ -20645,7 +20758,21 @@ public struct Setting: SDKModel { set { _login_notification_text = newValue.map(AnyString.init) } } - 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) { + /** + * Toggle Dashboard Auto Refresh restriction + */ + public var dashboard_auto_refresh_restriction: Bool? + + private var _dashboard_auto_refresh_minimum_interval: AnyString? + /** + * Minimum time interval for dashboard element automatic refresh. Examples: (30 seconds, 1 minute) + */ + public var dashboard_auto_refresh_minimum_interval: String? { + get { _dashboard_auto_refresh_minimum_interval?.value } + set { _dashboard_auto_refresh_minimum_interval = newValue.map(AnyString.init) } + } + + 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) { self.instance_config = instance_config self.extension_framework_enabled = extension_framework_enabled self.extension_load_url_enabled = extension_load_url_enabled @@ -20668,6 +20795,8 @@ public struct Setting: SDKModel { self.embed_config = embed_config self.login_notification_enabled = login_notification_enabled 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) } } @@ -22422,7 +22551,7 @@ public struct User: SDKModel { } /** - * User is identified as an employee of Looker (read-only) + * (DEPRECATED) User is identified as an employee of Looker (read-only) */ public var presumed_looker_employee: Bool? @@ -24319,7 +24448,7 @@ public struct WriteCreateQueryTask: SDKModel { /** * Dynamic writeable type for CredentialsEmail removes: - * can, created_at, user_id, is_disabled, logged_in_at, password_reset_url, account_setup_url, type, url, user_url + * 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 */ public struct WriteCredentialsEmail: SDKModel { @@ -25175,7 +25304,7 @@ public struct WriteDatagroup: SDKModel { /** * Dynamic writeable type for DBConnection removes: - * can, dialect, snippets, pdts_enabled, uses_oauth, supports_data_studio_link, created_at, user_id, example, last_regen_at, last_reap_at, managed + * 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, bq_roles_verified */ public struct WriteDBConnection: SDKModel { @@ -25192,6 +25321,8 @@ public struct WriteDBConnection: SDKModel { case _query_timezone = "query_timezone" case _schema = "schema" case _max_connections = "max_connections" + case _max_queries = "max_queries" + case _max_queries_per_user = "max_queries_per_user" case _max_billing_gigabytes = "max_billing_gigabytes" case ssl case verify_ssl @@ -25213,9 +25344,12 @@ public struct WriteDBConnection: SDKModel { case disable_context_comment case _oauth_application_id = "oauth_application_id" case always_retry_failed_builds + case uses_application_default_credentials + case _impersonated_service_account = "impersonated_service_account" case cost_estimate_enabled case pdt_api_control_enabled case connection_pooling + case _bq_storage_project_id = "bq_storage_project_id" } private var _name: AnyString? /** @@ -25325,6 +25459,24 @@ public struct WriteDBConnection: SDKModel { set { _max_connections = newValue.map(AnyInt.init) } } + private var _max_queries: AnyInt? + /** + * Maximum number of concurrent queries to begin on this connection + */ + public var max_queries: Int64? { + get { _max_queries?.value } + set { _max_queries = newValue.map(AnyInt.init) } + } + + private var _max_queries_per_user: AnyInt? + /** + * Maximum number of concurrent queries per user to begin on this connection + */ + public var max_queries_per_user: Int64? { + get { _max_queries_per_user?.value } + set { _max_queries_per_user = newValue.map(AnyInt.init) } + } + private var _max_billing_gigabytes: AnyString? /** * Maximum size of query in GBs (BigQuery only, can be a user_attribute name) @@ -25479,6 +25631,20 @@ public struct WriteDBConnection: SDKModel { */ public var always_retry_failed_builds: Bool? + /** + * Whether the connection should authenticate with the Application Default Credentials of the host environment (limited to GCP and certain dialects). + */ + public var uses_application_default_credentials: Bool? + + private var _impersonated_service_account: AnyString? + /** + * An alternative Service Account to use for querying datasets (used primarily with `uses_application_default_credentials`) (limited to GCP and certain dialects). + */ + public var impersonated_service_account: String? { + get { _impersonated_service_account?.value } + set { _impersonated_service_account = newValue.map(AnyString.init) } + } + /** * When true, query cost estimate will be displayed in explore. */ @@ -25494,7 +25660,16 @@ public struct WriteDBConnection: SDKModel { */ public var connection_pooling: Bool? - public init(name: 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_billing_gigabytes: String? = nil, ssl: Bool? = nil, verify_ssl: Bool? = nil, tmp_db_name: 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, cost_estimate_enabled: Bool? = nil, pdt_api_control_enabled: Bool? = nil, connection_pooling: Bool? = nil) { + private var _bq_storage_project_id: AnyString? + /** + * The project id of the default BigQuery storage project. + */ + public var bq_storage_project_id: String? { + get { _bq_storage_project_id?.value } + set { _bq_storage_project_id = newValue.map(AnyString.init) } + } + + public init(name: 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, 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) { self._name = name.map(AnyString.init) self._host = host.map(AnyString.init) self._port = port.map(AnyString.init) @@ -25507,6 +25682,8 @@ public struct WriteDBConnection: SDKModel { self._query_timezone = query_timezone.map(AnyString.init) self._schema = schema.map(AnyString.init) self._max_connections = max_connections.map(AnyInt.init) + self._max_queries = max_queries.map(AnyInt.init) + self._max_queries_per_user = max_queries_per_user.map(AnyInt.init) self._max_billing_gigabytes = max_billing_gigabytes.map(AnyString.init) self.ssl = ssl self.verify_ssl = verify_ssl @@ -25528,9 +25705,12 @@ public struct WriteDBConnection: SDKModel { self.disable_context_comment = disable_context_comment self._oauth_application_id = oauth_application_id.map(AnyString.init) self.always_retry_failed_builds = always_retry_failed_builds + self.uses_application_default_credentials = uses_application_default_credentials + self._impersonated_service_account = impersonated_service_account.map(AnyString.init) self.cost_estimate_enabled = cost_estimate_enabled self.pdt_api_control_enabled = pdt_api_control_enabled self.connection_pooling = connection_pooling + self._bq_storage_project_id = bq_storage_project_id.map(AnyString.init) } } @@ -28306,6 +28486,8 @@ public struct WriteSetting: SDKModel { case _email_domain_allowlist = "email_domain_allowlist" case embed_cookieless_v2 case embed_config + case dashboard_auto_refresh_restriction + case _dashboard_auto_refresh_minimum_interval = "dashboard_auto_refresh_minimum_interval" } /** * Toggle extension framework on or off @@ -28396,7 +28578,21 @@ public struct WriteSetting: SDKModel { public var embed_config: EmbedConfig? - 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: EmbedConfig? = nil) { + /** + * Toggle Dashboard Auto Refresh restriction + */ + public var dashboard_auto_refresh_restriction: Bool? + + private var _dashboard_auto_refresh_minimum_interval: AnyString? + /** + * Minimum time interval for dashboard element automatic refresh. Examples: (30 seconds, 1 minute) + */ + public var dashboard_auto_refresh_minimum_interval: String? { + get { _dashboard_auto_refresh_minimum_interval?.value } + set { _dashboard_auto_refresh_minimum_interval = newValue.map(AnyString.init) } + } + + 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: EmbedConfig? = nil, dashboard_auto_refresh_restriction: Bool? = nil, dashboard_auto_refresh_minimum_interval: 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 @@ -28414,6 +28610,8 @@ public struct WriteSetting: SDKModel { if let v = email_domain_allowlist { _email_domain_allowlist = v.map { AnyString.init($0) } } else { _email_domain_allowlist = nil } self.embed_cookieless_v2 = embed_cookieless_v2 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) } } @@ -28627,7 +28825,7 @@ public struct WriteUser: SDKModel { } /** * Dynamic writeable type for CredentialsEmail removes: - * can, created_at, user_id, is_disabled, logged_in_at, password_reset_url, account_setup_url, type, url, user_url + * 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 */ public var credentials_email: WriteCredentialsEmail? diff --git a/swift/looker/sdk/streams.swift b/swift/looker/sdk/streams.swift index 0d463acf0..9754450d8 100644 --- a/swift/looker/sdk/streams.swift +++ b/swift/looker/sdk/streams.swift @@ -25,7 +25,7 @@ */ /** - * 464 API methods + * 465 API methods */ @@ -2846,6 +2846,8 @@ open class LookerSDKStream: APIMethods { * - allow_user_timezones * - custom_welcome_email * - data_connector_default_enabled + * - dashboard_auto_refresh_restriction + * - dashboard_auto_refresh_minimum_interval * - extension_framework_enabled * - extension_load_url_enabled * - instance_config @@ -2884,6 +2886,8 @@ open class LookerSDKStream: APIMethods { * - allow_user_timezones * - custom_welcome_email * - data_connector_default_enabled + * - dashboard_auto_refresh_restriction + * - dashboard_auto_refresh_minimum_interval * - extension_framework_enabled * - extension_load_url_enabled * - instance_config @@ -3286,6 +3290,29 @@ open class LookerSDKStream: APIMethods { return result } + /** + * ### Update an OAuth Application's client secret. + * + * This is an OAuth Application which Looker uses to access external systems. + * + * PATCH /external_oauth_applications/{client_id} -> ExternalOauthApplication + */ + public func update_external_oauth_application( + /** + * @param {String} client_id The client ID of the OAuth App to update + */ + _ client_id: String, + /** + * @param {WriteExternalOauthApplication} body + */ + _ body: WriteExternalOauthApplication, + options: ITransportSettings? = nil + ) -> SDKResponse { + let path_client_id = encodeParam(client_id) + let result: SDKResponse = self.patch("/external_oauth_applications/\(path_client_id)", nil, try! self.encode(body), options) + return result + } + /** * ### Create OAuth User state. * diff --git a/yarn.lock b/yarn.lock index 15091c36d..4981a9e07 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5563,9 +5563,9 @@ camelize@^1.0.0: integrity sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ== caniuse-lite@^1.0.30001449: - version "1.0.30001570" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001570.tgz" - integrity sha512-+3e0ASu4sw1SWaoCtvPeyXp+5PsjigkSt8OXZbF9StH5pQWbxEjLAZE3n8Aup5udop1uRiKA7a4utUk/uoSpUw== + version "1.0.30001651" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001651.tgz" + integrity sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg== caseless@~0.12.0: version "0.12.0"