diff --git a/csharp/rtl/Constants.cs b/csharp/rtl/Constants.cs index 1d11c4f85..639b1efea 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.10"; + public const string LookerVersion = "24.12"; 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 05956ae7b..2c986c720 100644 --- a/csharp/sdk/4.0/methods.cs +++ b/csharp/sdk/4.0/methods.cs @@ -670,8 +670,11 @@ public async Task> delete_embed_secret( /// /// This function does not strictly require all group_ids, user attribute names, or model names to exist at the moment the /// embed url is created. Unknown group_id, user attribute names or model names will be passed through to the output URL. + /// Because of this, **these parameters are not validated** when the API call is made. /// - /// To diagnose potential problems with an SSO embed URL, you can copy the signed URL into the Embed URI Validator text box in `/admin/embed`. + /// The [Get Embed Url](https://cloud.google.com/looker/docs/r/get-signed-url) dialog can be used to determine and validate the correct permissions for signing an embed url. + /// This dialog also provides the SDK syntax for the API call to make. Alternatively, you can copy the signed URL into the Embed URI Validator text box + /// in `/admin/embed` to diagnose potential problems. /// /// The `secret_id` parameter is optional. If specified, its value must be the id of an active secret defined in the Looker instance. /// if not specified, the URL will be signed using the most recent active signing secret. If there is no active secret for signing embed urls, @@ -2498,6 +2501,7 @@ public async Task> mobile_settings( /// - data_connector_default_enabled /// - extension_framework_enabled /// - extension_load_url_enabled + /// - instance_config /// - marketplace_auto_install_enabled /// - marketplace_automation /// - marketplace_terms_accepted @@ -2533,6 +2537,7 @@ public async Task> get_setting( /// - data_connector_default_enabled /// - extension_framework_enabled /// - extension_load_url_enabled + /// - instance_config /// - marketplace_auto_install_enabled /// - marketplace_automation /// - marketplace_terms_accepted diff --git a/csharp/sdk/4.0/models.cs b/csharp/sdk/4.0/models.cs index 75d5b0d23..6dac9c156 100644 --- a/csharp/sdk/4.0/models.cs +++ b/csharp/sdk/4.0/models.cs @@ -21,7 +21,7 @@ /// SOFTWARE. /// -/// 341 API models: 258 Spec, 0 Request, 61 Write, 22 Enum +/// 342 API models: 259 Spec, 0 Request, 61 Write, 22 Enum #nullable enable using System; @@ -2479,6 +2479,14 @@ public class ImportedProject : SdkModel public bool? is_remote { get; set; } = null; } +public class InstanceConfig : SdkModel +{ + /// Feature flags enabled on the instance (read-only) + public StringDictionary? feature_flags { get; set; } = null; + /// License features enabled on the instance (read-only) + public StringDictionary? license_features { get; set; } = null; +} + public class Integration : SdkModel { /// Operations the current user is able to perform on this object (read-only) @@ -2665,8 +2673,8 @@ public class JsonBiFields : SdkModel public JsonBiField[] measures { get; set; } = null; /// Pivots (read-only) public JsonBiField[] pivots { get; set; } = null; - /// Table Calculations (beta: May not be included) (read-only) - public JsonBiTableCalc[]? table_calculations { get; set; } = null; + /// Table Calculations (read-only) + public JsonBiTableCalc[] table_calculations { get; set; } = null; } public class JsonBiMetadata : SdkModel @@ -4915,6 +4923,7 @@ public class SessionConfig : SdkModel public class Setting : SdkModel { + public InstanceConfig? instance_config { get; set; } /// Toggle extension framework on or off public bool? extension_framework_enabled { get; set; } = null; /// (DEPRECATED) Toggle extension load url on or off. Do not use. This is temporary setting that will eventually become a noop and subsequently deleted. @@ -6926,7 +6935,7 @@ public class WriteSessionConfig : SdkModel } /// Dynamic writeable type for Setting removes: -/// marketplace_site, embed_enabled, login_notification_enabled, login_notification_text +/// instance_config, marketplace_site, embed_enabled, login_notification_enabled, login_notification_text public class WriteSetting : SdkModel { /// Toggle extension framework on or off diff --git a/go/sdk/v4/methods.go b/go/sdk/v4/methods.go index dd4d8d7e4..d9080db46 100644 --- a/go/sdk/v4/methods.go +++ b/go/sdk/v4/methods.go @@ -543,8 +543,11 @@ func (l *LookerSDK) DeleteEmbedSecret( // // This function does not strictly require all group_ids, user attribute names, or model names to exist at the moment the // embed url is created. Unknown group_id, user attribute names or model names will be passed through to the output URL. +// Because of this, **these parameters are not validated** when the API call is made. // -// To diagnose potential problems with an SSO embed URL, you can copy the signed URL into the Embed URI Validator text box in `/admin/embed`. +// The [Get Embed Url](https://cloud.google.com/looker/docs/r/get-signed-url) dialog can be used to determine and validate the correct permissions for signing an embed url. +// This dialog also provides the SDK syntax for the API call to make. Alternatively, you can copy the signed URL into the Embed URI Validator text box +// in `/admin/embed` to diagnose potential problems. // // The `secret_id` parameter is optional. If specified, its value must be the id of an active secret defined in the Looker instance. // if not specified, the URL will be signed using the most recent active signing secret. If there is no active secret for signing embed urls, @@ -2107,6 +2110,7 @@ func (l *LookerSDK) MobileSettings( // - data_connector_default_enabled // - extension_framework_enabled // - extension_load_url_enabled +// - instance_config // - marketplace_auto_install_enabled // - marketplace_automation // - marketplace_terms_accepted @@ -2139,6 +2143,7 @@ func (l *LookerSDK) GetSetting( // - data_connector_default_enabled // - extension_framework_enabled // - extension_load_url_enabled +// - instance_config // - marketplace_auto_install_enabled // - marketplace_automation // - marketplace_terms_accepted diff --git a/go/sdk/v4/models.go b/go/sdk/v4/models.go index e44d02768..76acf2fbf 100644 --- a/go/sdk/v4/models.go +++ b/go/sdk/v4/models.go @@ -26,7 +26,7 @@ SOFTWARE. /* -407 API models: 258 Spec, 67 Request, 60 Write, 22 Enum +408 API models: 259 Spec, 67 Request, 60 Write, 22 Enum */ // NOTE: Do not edit this file generated by Looker SDK Codegen for API v4 @@ -1396,6 +1396,11 @@ type ImportedProject struct { IsRemote *bool `json:"is_remote,omitempty"` // Flag signifying if a dependency is remote or local } +type InstanceConfig struct { + FeatureFlags *map[string]bool `json:"feature_flags,omitempty"` // Feature flags enabled on the instance + LicenseFeatures *map[string]bool `json:"license_features,omitempty"` // License features enabled on the instance +} + type Integration struct { Can *map[string]bool `json:"can,omitempty"` // Operations the current user is able to perform on this object Id *string `json:"id,omitempty"` // ID of the integration. @@ -1497,10 +1502,10 @@ type JsonBiField struct { } type JsonBiFields struct { - Dimensions []JsonBiField `json:"dimensions"` // Dimensions represent a column in a table, or a computed value based on some sort of column manipulation or combination - Measures []JsonBiField `json:"measures"` // Measures are similar to aggregate functions in SQL (for example, COUNT, SUM, AVG) and represent information about multiple rows - Pivots []JsonBiField `json:"pivots"` // Pivots - TableCalculations *[]JsonBiTableCalc `json:"table_calculations,omitempty"` // Table Calculations (beta: May not be included) + Dimensions []JsonBiField `json:"dimensions"` // Dimensions represent a column in a table, or a computed value based on some sort of column manipulation or combination + Measures []JsonBiField `json:"measures"` // Measures are similar to aggregate functions in SQL (for example, COUNT, SUM, AVG) and represent information about multiple rows + Pivots []JsonBiField `json:"pivots"` // Pivots + TableCalculations []JsonBiTableCalc `json:"table_calculations"` // Table Calculations } type JsonBiMetadata struct { @@ -3473,6 +3478,7 @@ 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 @@ -4621,7 +4627,7 @@ type WriteSessionConfig struct { } // Dynamic writeable type for Setting removes: -// marketplace_site, embed_enabled, login_notification_enabled, login_notification_text +// instance_config, marketplace_site, embed_enabled, login_notification_enabled, login_notification_text type WriteSetting struct { 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. 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 75c8675d1..021c2196f 100644 --- a/kotlin/src/main/com/looker/sdk/4.0/methods.kt +++ b/kotlin/src/main/com/looker/sdk/4.0/methods.kt @@ -686,8 +686,11 @@ class LookerSDK(authSession: AuthSession) : APIMethods(authSession) { * * This function does not strictly require all group_ids, user attribute names, or model names to exist at the moment the * embed url is created. Unknown group_id, user attribute names or model names will be passed through to the output URL. + * Because of this, **these parameters are not validated** when the API call is made. * - * To diagnose potential problems with an SSO embed URL, you can copy the signed URL into the Embed URI Validator text box in `/admin/embed`. + * The [Get Embed Url](https://cloud.google.com/looker/docs/r/get-signed-url) dialog can be used to determine and validate the correct permissions for signing an embed url. + * This dialog also provides the SDK syntax for the API call to make. Alternatively, you can copy the signed URL into the Embed URI Validator text box + * in `/admin/embed` to diagnose potential problems. * * The `secret_id` parameter is optional. If specified, its value must be the id of an active secret defined in the Looker instance. * if not specified, the URL will be signed using the most recent active signing secret. If there is no active secret for signing embed urls, @@ -2494,6 +2497,7 @@ class LookerSDK(authSession: AuthSession) : APIMethods(authSession) { * - data_connector_default_enabled * - extension_framework_enabled * - extension_load_url_enabled + * - instance_config * - marketplace_auto_install_enabled * - marketplace_automation * - marketplace_terms_accepted @@ -2530,6 +2534,7 @@ class LookerSDK(authSession: AuthSession) : APIMethods(authSession) { * - data_connector_default_enabled * - extension_framework_enabled * - extension_load_url_enabled + * - instance_config * - marketplace_auto_install_enabled * - marketplace_automation * - marketplace_terms_accepted 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 3bfc915ca..dd9437d5b 100644 --- a/kotlin/src/main/com/looker/sdk/4.0/models.kt +++ b/kotlin/src/main/com/looker/sdk/4.0/models.kt @@ -25,7 +25,7 @@ */ /** - * 341 API models: 258 Spec, 0 Request, 61 Write, 22 Enum + * 342 API models: 259 Spec, 0 Request, 61 Write, 22 Enum */ // NOTE: Do not edit this file generated by Looker SDK Codegen for API 4.0 @@ -2610,6 +2610,15 @@ data class ImportedProject( var is_remote: Boolean? = null, ) : Serializable +/** + * @property feature_flags Feature flags enabled on the instance (read-only) + * @property license_features License features enabled on the instance (read-only) + */ +data class InstanceConfig( + var feature_flags: Map? = null, + var license_features: Map? = null, +) : Serializable + /** * @property can Operations the current user is able to perform on this object (read-only) * @property id ID of the integration. (read-only) @@ -2803,13 +2812,13 @@ data class JsonBiField( * @property dimensions Dimensions represent a column in a table, or a computed value based on some sort of column manipulation or combination (read-only) * @property measures Measures are similar to aggregate functions in SQL (for example, COUNT, SUM, AVG) and represent information about multiple rows (read-only) * @property pivots Pivots (read-only) - * @property table_calculations Table Calculations (beta: May not be included) (read-only) + * @property table_calculations Table Calculations (read-only) */ data class JsonBiFields( var dimensions: Array, var measures: Array, var pivots: Array, - var table_calculations: Array? = null, + var table_calculations: Array, ) : Serializable /** @@ -5150,6 +5159,7 @@ data class SessionConfig( ) : Serializable /** + * @property instance_config * @property extension_framework_enabled Toggle extension framework on or off * @property extension_load_url_enabled (DEPRECATED) Toggle extension load url on or off. Do not use. This is temporary setting that will eventually become a noop and subsequently deleted. * @property marketplace_auto_install_enabled (DEPRECATED) Toggle marketplace auto install on or off. Deprecated - do not use. Auto install can now be enabled via marketplace automation settings @@ -5173,6 +5183,7 @@ data class SessionConfig( * @property login_notification_text Login notification text (read-only) */ data class Setting( + var instance_config: InstanceConfig? = null, var extension_framework_enabled: Boolean? = null, var extension_load_url_enabled: Boolean? = null, var marketplace_auto_install_enabled: Boolean? = null, @@ -7253,7 +7264,7 @@ data class WriteSessionConfig( /** * Dynamic writeable type for Setting removes: - * marketplace_site, embed_enabled, login_notification_enabled, login_notification_text + * instance_config, marketplace_site, embed_enabled, login_notification_enabled, login_notification_text * * @property extension_framework_enabled Toggle extension framework on or off * @property extension_load_url_enabled (DEPRECATED) Toggle extension load url on or off. Do not use. This is temporary setting that will eventually become a noop and subsequently deleted. 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 7248c6a59..df9e5cbd3 100644 --- a/kotlin/src/main/com/looker/sdk/4.0/streams.kt +++ b/kotlin/src/main/com/looker/sdk/4.0/streams.kt @@ -684,8 +684,11 @@ class LookerSDKStream(authSession: AuthSession) : APIMethods(authSession) { * * This function does not strictly require all group_ids, user attribute names, or model names to exist at the moment the * embed url is created. Unknown group_id, user attribute names or model names will be passed through to the output URL. + * Because of this, **these parameters are not validated** when the API call is made. * - * To diagnose potential problems with an SSO embed URL, you can copy the signed URL into the Embed URI Validator text box in `/admin/embed`. + * The [Get Embed Url](https://cloud.google.com/looker/docs/r/get-signed-url) dialog can be used to determine and validate the correct permissions for signing an embed url. + * This dialog also provides the SDK syntax for the API call to make. Alternatively, you can copy the signed URL into the Embed URI Validator text box + * in `/admin/embed` to diagnose potential problems. * * The `secret_id` parameter is optional. If specified, its value must be the id of an active secret defined in the Looker instance. * if not specified, the URL will be signed using the most recent active signing secret. If there is no active secret for signing embed urls, @@ -2492,6 +2495,7 @@ class LookerSDKStream(authSession: AuthSession) : APIMethods(authSession) { * - data_connector_default_enabled * - extension_framework_enabled * - extension_load_url_enabled + * - instance_config * - marketplace_auto_install_enabled * - marketplace_automation * - marketplace_terms_accepted @@ -2528,6 +2532,7 @@ class LookerSDKStream(authSession: AuthSession) : APIMethods(authSession) { * - data_connector_default_enabled * - extension_framework_enabled * - extension_load_url_enabled + * - instance_config * - marketplace_auto_install_enabled * - marketplace_automation * - marketplace_terms_accepted diff --git a/kotlin/src/main/com/looker/sdk/Constants.kt b/kotlin/src/main/com/looker/sdk/Constants.kt index f19000254..7cbed287b 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.10" +const val LOOKER_VERSION = "24.12" const val API_VERSION = "4.0" const val AGENT_TAG = "$SDK_TAG $LOOKER_VERSION" const val LOOKER_APPID = "x-looker-appid" diff --git a/packages/sdk/src/4.0/funcs.ts b/packages/sdk/src/4.0/funcs.ts index 07c21d026..9cc0236a3 100644 --- a/packages/sdk/src/4.0/funcs.ts +++ b/packages/sdk/src/4.0/funcs.ts @@ -1113,8 +1113,11 @@ export const delete_embed_secret = async ( * * This function does not strictly require all group_ids, user attribute names, or model names to exist at the moment the * embed url is created. Unknown group_id, user attribute names or model names will be passed through to the output URL. + * Because of this, **these parameters are not validated** when the API call is made. * - * To diagnose potential problems with an SSO embed URL, you can copy the signed URL into the Embed URI Validator text box in `/admin/embed`. + * The [Get Embed Url](https://cloud.google.com/looker/docs/r/get-signed-url) dialog can be used to determine and validate the correct permissions for signing an embed url. + * This dialog also provides the SDK syntax for the API call to make. Alternatively, you can copy the signed URL into the Embed URI Validator text box + * in `/admin/embed` to diagnose potential problems. * * The `secret_id` parameter is optional. If specified, its value must be the id of an active secret defined in the Looker instance. * if not specified, the URL will be signed using the most recent active signing secret. If there is no active secret for signing embed urls, @@ -3706,6 +3709,7 @@ export const mobile_settings = async ( * - data_connector_default_enabled * - extension_framework_enabled * - extension_load_url_enabled + * - instance_config * - marketplace_auto_install_enabled * - marketplace_automation * - marketplace_terms_accepted @@ -3749,6 +3753,7 @@ export const get_setting = async ( * - data_connector_default_enabled * - extension_framework_enabled * - extension_load_url_enabled + * - instance_config * - marketplace_auto_install_enabled * - marketplace_automation * - marketplace_terms_accepted diff --git a/packages/sdk/src/4.0/methods.ts b/packages/sdk/src/4.0/methods.ts index 215a665db..63e795d8d 100644 --- a/packages/sdk/src/4.0/methods.ts +++ b/packages/sdk/src/4.0/methods.ts @@ -1071,8 +1071,11 @@ export class Looker40SDK extends APIMethods implements ILooker40SDK { * * This function does not strictly require all group_ids, user attribute names, or model names to exist at the moment the * embed url is created. Unknown group_id, user attribute names or model names will be passed through to the output URL. + * Because of this, **these parameters are not validated** when the API call is made. * - * To diagnose potential problems with an SSO embed URL, you can copy the signed URL into the Embed URI Validator text box in `/admin/embed`. + * The [Get Embed Url](https://cloud.google.com/looker/docs/r/get-signed-url) dialog can be used to determine and validate the correct permissions for signing an embed url. + * This dialog also provides the SDK syntax for the API call to make. Alternatively, you can copy the signed URL into the Embed URI Validator text box + * in `/admin/embed` to diagnose potential problems. * * The `secret_id` parameter is optional. If specified, its value must be the id of an active secret defined in the Looker instance. * if not specified, the URL will be signed using the most recent active signing secret. If there is no active secret for signing embed urls, @@ -3488,6 +3491,7 @@ export class Looker40SDK extends APIMethods implements ILooker40SDK { * - data_connector_default_enabled * - extension_framework_enabled * - extension_load_url_enabled + * - instance_config * - marketplace_auto_install_enabled * - marketplace_automation * - marketplace_terms_accepted @@ -3529,6 +3533,7 @@ export class Looker40SDK extends APIMethods implements ILooker40SDK { * - data_connector_default_enabled * - extension_framework_enabled * - extension_load_url_enabled + * - instance_config * - marketplace_auto_install_enabled * - marketplace_automation * - marketplace_terms_accepted diff --git a/packages/sdk/src/4.0/methodsInterface.ts b/packages/sdk/src/4.0/methodsInterface.ts index 97b8031f0..0226580f1 100644 --- a/packages/sdk/src/4.0/methodsInterface.ts +++ b/packages/sdk/src/4.0/methodsInterface.ts @@ -860,8 +860,11 @@ export interface ILooker40SDK extends IAPIMethods { * * This function does not strictly require all group_ids, user attribute names, or model names to exist at the moment the * embed url is created. Unknown group_id, user attribute names or model names will be passed through to the output URL. + * Because of this, **these parameters are not validated** when the API call is made. * - * To diagnose potential problems with an SSO embed URL, you can copy the signed URL into the Embed URI Validator text box in `/admin/embed`. + * The [Get Embed Url](https://cloud.google.com/looker/docs/r/get-signed-url) dialog can be used to determine and validate the correct permissions for signing an embed url. + * This dialog also provides the SDK syntax for the API call to make. Alternatively, you can copy the signed URL into the Embed URI Validator text box + * in `/admin/embed` to diagnose potential problems. * * The `secret_id` parameter is optional. If specified, its value must be the id of an active secret defined in the Looker instance. * if not specified, the URL will be signed using the most recent active signing secret. If there is no active secret for signing embed urls, @@ -2599,6 +2602,7 @@ export interface ILooker40SDK extends IAPIMethods { * - data_connector_default_enabled * - extension_framework_enabled * - extension_load_url_enabled + * - instance_config * - marketplace_auto_install_enabled * - marketplace_automation * - marketplace_terms_accepted @@ -2633,6 +2637,7 @@ export interface ILooker40SDK extends IAPIMethods { * - data_connector_default_enabled * - extension_framework_enabled * - extension_load_url_enabled + * - instance_config * - marketplace_auto_install_enabled * - marketplace_automation * - marketplace_terms_accepted diff --git a/packages/sdk/src/4.0/models.ts b/packages/sdk/src/4.0/models.ts index c97fa7548..4619045af 100644 --- a/packages/sdk/src/4.0/models.ts +++ b/packages/sdk/src/4.0/models.ts @@ -25,7 +25,7 @@ */ /** - * 408 API models: 258 Spec, 67 Request, 61 Write, 22 Enum + * 409 API models: 259 Spec, 67 Request, 61 Write, 22 Enum */ import type { DelimArray, IDictionary } from '@looker/sdk-rtl'; @@ -4180,6 +4180,17 @@ export interface IImportedProject { is_remote?: boolean; } +export interface IInstanceConfig { + /** + * Feature flags enabled on the instance (read-only) + */ + feature_flags?: IDictionary; + /** + * License features enabled on the instance (read-only) + */ + license_features?: IDictionary; +} + export interface IIntegration { /** * Operations the current user is able to perform on this object (read-only) @@ -4492,9 +4503,9 @@ export interface IJsonBiFields { */ pivots: IJsonBiField[]; /** - * Table Calculations (beta: May not be included) (read-only) + * Table Calculations (read-only) */ - table_calculations?: IJsonBiTableCalc[]; + table_calculations: IJsonBiTableCalc[]; } export interface IJsonBiMetadata { @@ -10621,6 +10632,7 @@ export interface ISessionConfig { } export interface ISetting { + instance_config?: IInstanceConfig; /** * Toggle extension framework on or off */ @@ -13958,7 +13970,7 @@ export interface IWriteSessionConfig { /** * Dynamic writeable type for Setting removes: - * marketplace_site, embed_enabled, login_notification_enabled, login_notification_text + * instance_config, marketplace_site, embed_enabled, login_notification_enabled, login_notification_text */ export interface IWriteSetting { /** diff --git a/packages/sdk/src/4.0/streams.ts b/packages/sdk/src/4.0/streams.ts index 9a89b99c4..067caa4e1 100644 --- a/packages/sdk/src/4.0/streams.ts +++ b/packages/sdk/src/4.0/streams.ts @@ -1176,8 +1176,11 @@ export class Looker40SDKStream extends APIMethods { * * This function does not strictly require all group_ids, user attribute names, or model names to exist at the moment the * embed url is created. Unknown group_id, user attribute names or model names will be passed through to the output URL. + * Because of this, **these parameters are not validated** when the API call is made. * - * To diagnose potential problems with an SSO embed URL, you can copy the signed URL into the Embed URI Validator text box in `/admin/embed`. + * The [Get Embed Url](https://cloud.google.com/looker/docs/r/get-signed-url) dialog can be used to determine and validate the correct permissions for signing an embed url. + * This dialog also provides the SDK syntax for the API call to make. Alternatively, you can copy the signed URL into the Embed URI Validator text box + * in `/admin/embed` to diagnose potential problems. * * The `secret_id` parameter is optional. If specified, its value must be the id of an active secret defined in the Looker instance. * if not specified, the URL will be signed using the most recent active signing secret. If there is no active secret for signing embed urls, @@ -3980,6 +3983,7 @@ export class Looker40SDKStream extends APIMethods { * - data_connector_default_enabled * - extension_framework_enabled * - extension_load_url_enabled + * - instance_config * - marketplace_auto_install_enabled * - marketplace_automation * - marketplace_terms_accepted @@ -4025,6 +4029,7 @@ export class Looker40SDKStream extends APIMethods { * - data_connector_default_enabled * - extension_framework_enabled * - extension_load_url_enabled + * - instance_config * - marketplace_auto_install_enabled * - marketplace_automation * - marketplace_terms_accepted diff --git a/packages/sdk/src/constants.ts b/packages/sdk/src/constants.ts index 176f4a4ae..c970cd31e 100644 --- a/packages/sdk/src/constants.ts +++ b/packages/sdk/src/constants.ts @@ -24,5 +24,5 @@ */ -export const sdkVersion = '24.10'; +export const sdkVersion = '24.12'; export const environmentPrefix = 'LOOKERSDK'; diff --git a/python/looker_sdk/sdk/api40/methods.py b/python/looker_sdk/sdk/api40/methods.py index dd60f45f1..d08eeb84b 100644 --- a/python/looker_sdk/sdk/api40/methods.py +++ b/python/looker_sdk/sdk/api40/methods.py @@ -819,8 +819,11 @@ def delete_embed_secret( # # This function does not strictly require all group_ids, user attribute names, or model names to exist at the moment the # embed url is created. Unknown group_id, user attribute names or model names will be passed through to the output URL. + # Because of this, **these parameters are not validated** when the API call is made. # - # To diagnose potential problems with an SSO embed URL, you can copy the signed URL into the Embed URI Validator text box in `/admin/embed`. + # The [Get Embed Url](https://cloud.google.com/looker/docs/r/get-signed-url) dialog can be used to determine and validate the correct permissions for signing an embed url. + # This dialog also provides the SDK syntax for the API call to make. Alternatively, you can copy the signed URL into the Embed URI Validator text box + # in `/admin/embed` to diagnose potential problems. # # The `secret_id` parameter is optional. If specified, its value must be the id of an active secret defined in the Looker instance. # if not specified, the URL will be signed using the most recent active signing secret. If there is no active secret for signing embed urls, @@ -3236,6 +3239,7 @@ def mobile_settings( # - data_connector_default_enabled # - extension_framework_enabled # - extension_load_url_enabled + # - instance_config # - marketplace_auto_install_enabled # - marketplace_automation # - marketplace_terms_accepted @@ -3277,6 +3281,7 @@ def get_setting( # - data_connector_default_enabled # - extension_framework_enabled # - extension_load_url_enabled + # - instance_config # - marketplace_auto_install_enabled # - marketplace_automation # - marketplace_terms_accepted diff --git a/python/looker_sdk/sdk/api40/models.py b/python/looker_sdk/sdk/api40/models.py index 16d9c2506..f8166556b 100644 --- a/python/looker_sdk/sdk/api40/models.py +++ b/python/looker_sdk/sdk/api40/models.py @@ -21,7 +21,7 @@ # SOFTWARE. # -# 341 API models: 258 Spec, 0 Request, 61 Write, 22 Enum +# 342 API models: 259 Spec, 0 Request, 61 Write, 22 Enum # NOTE: Do not edit this file generated by Looker SDK Codegen for API 4.0 @@ -5479,6 +5479,27 @@ def __init__( self.is_remote = is_remote +@attr.s(auto_attribs=True, init=False) +class InstanceConfig(model.Model): + """ + Attributes: + feature_flags: Feature flags enabled on the instance + license_features: License features enabled on the instance + """ + + feature_flags: Optional[MutableMapping[str, bool]] = None + license_features: Optional[MutableMapping[str, bool]] = None + + def __init__( + self, + *, + feature_flags: Optional[MutableMapping[str, bool]] = None, + license_features: Optional[MutableMapping[str, bool]] = None + ): + self.feature_flags = feature_flags + self.license_features = license_features + + @attr.s(auto_attribs=True, init=False) class Integration(model.Model): """ @@ -5891,13 +5912,13 @@ class JsonBiFields(model.Model): dimensions: Dimensions represent a column in a table, or a computed value based on some sort of column manipulation or combination measures: Measures are similar to aggregate functions in SQL (for example, COUNT, SUM, AVG) and represent information about multiple rows pivots: Pivots - table_calculations: Table Calculations (beta: May not be included) + table_calculations: Table Calculations """ dimensions: Sequence["JsonBiField"] measures: Sequence["JsonBiField"] pivots: Sequence["JsonBiField"] - table_calculations: Optional[Sequence["JsonBiTableCalc"]] = None + table_calculations: Sequence["JsonBiTableCalc"] def __init__( self, @@ -5905,7 +5926,7 @@ def __init__( dimensions: Sequence["JsonBiField"], measures: Sequence["JsonBiField"], pivots: Sequence["JsonBiField"], - table_calculations: Optional[Sequence["JsonBiTableCalc"]] = None + table_calculations: Sequence["JsonBiTableCalc"] ): self.dimensions = dimensions self.measures = measures @@ -10826,6 +10847,7 @@ def __init__( class Setting(model.Model): """ Attributes: + instance_config: extension_framework_enabled: Toggle extension framework on or off extension_load_url_enabled: (DEPRECATED) Toggle extension load url on or off. Do not use. This is temporary setting that will eventually become a noop and subsequently deleted. marketplace_auto_install_enabled: (DEPRECATED) Toggle marketplace auto install on or off. Deprecated - do not use. Auto install can now be enabled via marketplace automation settings @@ -10849,6 +10871,7 @@ class Setting(model.Model): login_notification_text: Login notification text """ + instance_config: Optional["InstanceConfig"] = None extension_framework_enabled: Optional[bool] = None extension_load_url_enabled: Optional[bool] = None marketplace_auto_install_enabled: Optional[bool] = None @@ -10874,6 +10897,7 @@ class Setting(model.Model): def __init__( self, *, + instance_config: Optional["InstanceConfig"] = None, extension_framework_enabled: Optional[bool] = None, extension_load_url_enabled: Optional[bool] = None, marketplace_auto_install_enabled: Optional[bool] = None, @@ -10896,6 +10920,7 @@ def __init__( login_notification_enabled: Optional[bool] = None, login_notification_text: Optional[str] = None ): + self.instance_config = instance_config 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 @@ -15041,7 +15066,7 @@ def __init__( class WriteSetting(model.Model): """ Dynamic writeable type for Setting removes: - marketplace_site, embed_enabled, login_notification_enabled, login_notification_text + instance_config, marketplace_site, embed_enabled, login_notification_enabled, login_notification_text Attributes: extension_framework_enabled: Toggle extension framework on or off diff --git a/python/looker_sdk/sdk/constants.py b/python/looker_sdk/sdk/constants.py index 570975107..01f6f4e36 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.10" +sdk_version = "24.12" environment_prefix = "LOOKERSDK" diff --git a/python/mypy.ini b/python/mypy.ini index 772239adb..196f11744 100644 --- a/python/mypy.ini +++ b/python/mypy.ini @@ -1,7 +1,7 @@ [mypy] python_version=3.7 -disallow_any_expr=True +disallow_any_expr=False no_implicit_optional=True diff --git a/spec/Looker.4.0.json b/spec/Looker.4.0.json index 0b702fea7..c17dc343e 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.10", - "x-looker-release-version": "24.10.5", + "version": "4.0.24.12", + "x-looker-release-version": "24.12.6", "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": { @@ -7994,7 +7994,7 @@ ], "operationId": "create_sso_embed_url", "summary": "Create Signed Embed Url", - "description": "### Create Signed Embed URL\n\nCreates a signed embed URL and cryptographically signs it with an embed secret.\nThis signed URL can then be used to instantiate a Looker embed session in a PBL web application.\nDo not make any modifications to the returned URL - any change may invalidate the signature and\ncause the URL to fail to load a Looker embed session.\n\nA signed embed URL can only be **used once**. After the URL has been used to request a page from the\nLooker server, it is invalid. Future requests using the same URL will fail. This is to prevent\n'replay attacks'.\n\nThe `target_url` property must be a complete URL of a Looker UI page - scheme, hostname, path and query params.\nTo load a dashboard with id 56 and with a filter of `Date=1 years`, the looker URL would look like `https:/myname.looker.com/dashboards/56?Date=1%20years`.\nThe best way to obtain this `target_url` is to navigate to the desired Looker page in your web browser and use the \"Get embed URL\" menu option\nto copy it to your clipboard and paste it into the `target_url` property as a quoted string value in this API request.\n\nPermissions for the embed user are defined by the groups in which the embed user is a member (`group_ids` property)\nand the lists of models and permissions assigned to the embed user.\nAt a minimum, you must provide values for either the `group_ids` property, or **both** the models and permissions properties.\nThese properties are additive; an embed user can be a member of certain groups AND be granted access to models and permissions.\n\nThe embed user's access is the union of permissions granted by the `group_ids`, `models`, and `permissions` properties.\n\nThis function does not strictly require all group_ids, user attribute names, or model names to exist at the moment the\nembed url is created. Unknown group_id, user attribute names or model names will be passed through to the output URL.\n\nTo diagnose potential problems with an SSO embed URL, you can copy the signed URL into the Embed URI Validator text box in `/admin/embed`.\n\nThe `secret_id` parameter is optional. If specified, its value must be the id of an active secret defined in the Looker instance.\nif not specified, the URL will be signed using the most recent active signing secret. If there is no active secret for signing embed urls,\na default secret will be created. This default secret is encrypted using HMAC/SHA-256.\n\nThe `embed_domain` parameter is optional. If specified and valid, the domain will be added to the embed domain allowlist if it is missing.\n\n#### Security Note\nProtect this signed URL as you would an access token or password credentials - do not write\nit to disk, do not pass it to a third party, and only pass it through a secure HTTPS\nencrypted transport.\n\n\nCalls to this endpoint require [Embedding](https://cloud.google.com/looker/docs/r/looker-core-feature-embed) to be enabled\n", + "description": "### Create Signed Embed URL\n\nCreates a signed embed URL and cryptographically signs it with an embed secret.\nThis signed URL can then be used to instantiate a Looker embed session in a PBL web application.\nDo not make any modifications to the returned URL - any change may invalidate the signature and\ncause the URL to fail to load a Looker embed session.\n\nA signed embed URL can only be **used once**. After the URL has been used to request a page from the\nLooker server, it is invalid. Future requests using the same URL will fail. This is to prevent\n'replay attacks'.\n\nThe `target_url` property must be a complete URL of a Looker UI page - scheme, hostname, path and query params.\nTo load a dashboard with id 56 and with a filter of `Date=1 years`, the looker URL would look like `https:/myname.looker.com/dashboards/56?Date=1%20years`.\nThe best way to obtain this `target_url` is to navigate to the desired Looker page in your web browser and use the \"Get embed URL\" menu option\nto copy it to your clipboard and paste it into the `target_url` property as a quoted string value in this API request.\n\nPermissions for the embed user are defined by the groups in which the embed user is a member (`group_ids` property)\nand the lists of models and permissions assigned to the embed user.\nAt a minimum, you must provide values for either the `group_ids` property, or **both** the models and permissions properties.\nThese properties are additive; an embed user can be a member of certain groups AND be granted access to models and permissions.\n\nThe embed user's access is the union of permissions granted by the `group_ids`, `models`, and `permissions` properties.\n\nThis function does not strictly require all group_ids, user attribute names, or model names to exist at the moment the\nembed url is created. Unknown group_id, user attribute names or model names will be passed through to the output URL.\nBecause of this, **these parameters are not validated** when the API call is made.\n\nThe [Get Embed Url](https://cloud.google.com/looker/docs/r/get-signed-url) dialog can be used to determine and validate the correct permissions for signing an embed url.\nThis dialog also provides the SDK syntax for the API call to make. Alternatively, you can copy the signed URL into the Embed URI Validator text box\nin `/admin/embed` to diagnose potential problems.\n\nThe `secret_id` parameter is optional. If specified, its value must be the id of an active secret defined in the Looker instance.\nif not specified, the URL will be signed using the most recent active signing secret. If there is no active secret for signing embed urls,\na default secret will be created. This default secret is encrypted using HMAC/SHA-256.\n\nThe `embed_domain` parameter is optional. If specified and valid, the domain will be added to the embed domain allowlist if it is missing.\n\n#### Security Note\nProtect this signed URL as you would an access token or password credentials - do not write\nit to disk, do not pass it to a third party, and only pass it through a secure HTTPS\nencrypted transport.\n\n\nCalls to this endpoint require [Embedding](https://cloud.google.com/looker/docs/r/looker-core-feature-embed) to be enabled\n", "parameters": [ { "name": "body", @@ -20494,7 +20494,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 - 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 - 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 +20567,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 - 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 - 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", @@ -34594,7 +34594,7 @@ "$ref": "#/definitions/JsonBiTableCalc" }, "readOnly": true, - "description": "Table Calculations (beta: May not be included)", + "description": "Table Calculations", "x-looker-nullable": false } }, @@ -34602,7 +34602,8 @@ "required": [ "dimensions", "measures", - "pivots" + "pivots", + "table_calculations" ] }, "JsonBiField": { @@ -41141,8 +41142,37 @@ }, "x-looker-status": "stable" }, + "InstanceConfig": { + "properties": { + "feature_flags": { + "type": "object", + "additionalProperties": { + "type": "boolean" + }, + "readOnly": true, + "description": "Feature flags enabled on the instance", + "x-looker-nullable": false + }, + "license_features": { + "type": "object", + "additionalProperties": { + "type": "boolean" + }, + "readOnly": true, + "description": "License features enabled on the instance", + "x-looker-nullable": false + } + }, + "x-looker-status": "stable" + }, "Setting": { "properties": { + "instance_config": { + "$ref": "#/definitions/InstanceConfig", + "readOnly": true, + "description": "Externally available instance configuration information", + "x-looker-nullable": false + }, "extension_framework_enabled": { "type": "boolean", "description": "Toggle extension framework on or off", diff --git a/spec/Looker.4.0.oas.json b/spec/Looker.4.0.oas.json index 74a8174ae..2571bc31b 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.10", - "x-looker-release-version": "24.10.5", + "version": "4.0.24.12", + "x-looker-release-version": "24.12.6", "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": { @@ -11096,7 +11096,7 @@ ], "operationId": "create_sso_embed_url", "summary": "Create Signed Embed Url", - "description": "### Create Signed Embed URL\n\nCreates a signed embed URL and cryptographically signs it with an embed secret.\nThis signed URL can then be used to instantiate a Looker embed session in a PBL web application.\nDo not make any modifications to the returned URL - any change may invalidate the signature and\ncause the URL to fail to load a Looker embed session.\n\nA signed embed URL can only be **used once**. After the URL has been used to request a page from the\nLooker server, it is invalid. Future requests using the same URL will fail. This is to prevent\n'replay attacks'.\n\nThe `target_url` property must be a complete URL of a Looker UI page - scheme, hostname, path and query params.\nTo load a dashboard with id 56 and with a filter of `Date=1 years`, the looker URL would look like `https:/myname.looker.com/dashboards/56?Date=1%20years`.\nThe best way to obtain this `target_url` is to navigate to the desired Looker page in your web browser and use the \"Get embed URL\" menu option\nto copy it to your clipboard and paste it into the `target_url` property as a quoted string value in this API request.\n\nPermissions for the embed user are defined by the groups in which the embed user is a member (`group_ids` property)\nand the lists of models and permissions assigned to the embed user.\nAt a minimum, you must provide values for either the `group_ids` property, or **both** the models and permissions properties.\nThese properties are additive; an embed user can be a member of certain groups AND be granted access to models and permissions.\n\nThe embed user's access is the union of permissions granted by the `group_ids`, `models`, and `permissions` properties.\n\nThis function does not strictly require all group_ids, user attribute names, or model names to exist at the moment the\nembed url is created. Unknown group_id, user attribute names or model names will be passed through to the output URL.\n\nTo diagnose potential problems with an SSO embed URL, you can copy the signed URL into the Embed URI Validator text box in `/admin/embed`.\n\nThe `secret_id` parameter is optional. If specified, its value must be the id of an active secret defined in the Looker instance.\nif not specified, the URL will be signed using the most recent active signing secret. If there is no active secret for signing embed urls,\na default secret will be created. This default secret is encrypted using HMAC/SHA-256.\n\nThe `embed_domain` parameter is optional. If specified and valid, the domain will be added to the embed domain allowlist if it is missing.\n\n#### Security Note\nProtect this signed URL as you would an access token or password credentials - do not write\nit to disk, do not pass it to a third party, and only pass it through a secure HTTPS\nencrypted transport.\n\n\nCalls to this endpoint require [Embedding](https://cloud.google.com/looker/docs/r/looker-core-feature-embed) to be enabled\n", + "description": "### Create Signed Embed URL\n\nCreates a signed embed URL and cryptographically signs it with an embed secret.\nThis signed URL can then be used to instantiate a Looker embed session in a PBL web application.\nDo not make any modifications to the returned URL - any change may invalidate the signature and\ncause the URL to fail to load a Looker embed session.\n\nA signed embed URL can only be **used once**. After the URL has been used to request a page from the\nLooker server, it is invalid. Future requests using the same URL will fail. This is to prevent\n'replay attacks'.\n\nThe `target_url` property must be a complete URL of a Looker UI page - scheme, hostname, path and query params.\nTo load a dashboard with id 56 and with a filter of `Date=1 years`, the looker URL would look like `https:/myname.looker.com/dashboards/56?Date=1%20years`.\nThe best way to obtain this `target_url` is to navigate to the desired Looker page in your web browser and use the \"Get embed URL\" menu option\nto copy it to your clipboard and paste it into the `target_url` property as a quoted string value in this API request.\n\nPermissions for the embed user are defined by the groups in which the embed user is a member (`group_ids` property)\nand the lists of models and permissions assigned to the embed user.\nAt a minimum, you must provide values for either the `group_ids` property, or **both** the models and permissions properties.\nThese properties are additive; an embed user can be a member of certain groups AND be granted access to models and permissions.\n\nThe embed user's access is the union of permissions granted by the `group_ids`, `models`, and `permissions` properties.\n\nThis function does not strictly require all group_ids, user attribute names, or model names to exist at the moment the\nembed url is created. Unknown group_id, user attribute names or model names will be passed through to the output URL.\nBecause of this, **these parameters are not validated** when the API call is made.\n\nThe [Get Embed Url](https://cloud.google.com/looker/docs/r/get-signed-url) dialog can be used to determine and validate the correct permissions for signing an embed url.\nThis dialog also provides the SDK syntax for the API call to make. Alternatively, you can copy the signed URL into the Embed URI Validator text box\nin `/admin/embed` to diagnose potential problems.\n\nThe `secret_id` parameter is optional. If specified, its value must be the id of an active secret defined in the Looker instance.\nif not specified, the URL will be signed using the most recent active signing secret. If there is no active secret for signing embed urls,\na default secret will be created. This default secret is encrypted using HMAC/SHA-256.\n\nThe `embed_domain` parameter is optional. If specified and valid, the domain will be added to the embed domain allowlist if it is missing.\n\n#### Security Note\nProtect this signed URL as you would an access token or password credentials - do not write\nit to disk, do not pass it to a third party, and only pass it through a secure HTTPS\nencrypted transport.\n\n\nCalls to this endpoint require [Embedding](https://cloud.google.com/looker/docs/r/looker-core-feature-embed) to be enabled\n", "responses": { "200": { "description": "Signed Embed URL", @@ -28328,7 +28328,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 - 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 - 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 +28433,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 - 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 - 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", @@ -45099,7 +45099,7 @@ "$ref": "#/components/schemas/JsonBiTableCalc" }, "readOnly": true, - "description": "Table Calculations (beta: May not be included)", + "description": "Table Calculations", "nullable": false } }, @@ -45107,7 +45107,8 @@ "required": [ "dimensions", "measures", - "pivots" + "pivots", + "table_calculations" ] }, "JsonBiField": { @@ -51569,8 +51570,34 @@ }, "x-looker-status": "stable" }, + "InstanceConfig": { + "properties": { + "feature_flags": { + "type": "object", + "additionalProperties": { + "type": "boolean" + }, + "readOnly": true, + "description": "Feature flags enabled on the instance", + "nullable": false + }, + "license_features": { + "type": "object", + "additionalProperties": { + "type": "boolean" + }, + "readOnly": true, + "description": "License features enabled on the instance", + "nullable": false + } + }, + "x-looker-status": "stable" + }, "Setting": { "properties": { + "instance_config": { + "$ref": "#/components/schemas/InstanceConfig" + }, "extension_framework_enabled": { "type": "boolean", "description": "Toggle extension framework on or off", diff --git a/swift/looker/rtl/constants.swift b/swift/looker/rtl/constants.swift index bf7574be0..7a1985ff0 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.10" + public static let lookerVersion = "24.12" 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 c19a0c5a4..600784866 100644 --- a/swift/looker/sdk/methods.swift +++ b/swift/looker/sdk/methods.swift @@ -763,8 +763,11 @@ open class LookerSDK: APIMethods { * * This function does not strictly require all group_ids, user attribute names, or model names to exist at the moment the * embed url is created. Unknown group_id, user attribute names or model names will be passed through to the output URL. + * Because of this, **these parameters are not validated** when the API call is made. * - * To diagnose potential problems with an SSO embed URL, you can copy the signed URL into the Embed URI Validator text box in `/admin/embed`. + * The [Get Embed Url](https://cloud.google.com/looker/docs/r/get-signed-url) dialog can be used to determine and validate the correct permissions for signing an embed url. + * This dialog also provides the SDK syntax for the API call to make. Alternatively, you can copy the signed URL into the Embed URI Validator text box + * in `/admin/embed` to diagnose potential problems. * * The `secret_id` parameter is optional. If specified, its value must be the id of an active secret defined in the Looker instance. * if not specified, the URL will be signed using the most recent active signing secret. If there is no active secret for signing embed urls, @@ -2847,6 +2850,7 @@ open class LookerSDK: APIMethods { * - data_connector_default_enabled * - extension_framework_enabled * - extension_load_url_enabled + * - instance_config * - marketplace_auto_install_enabled * - marketplace_automation * - marketplace_terms_accepted @@ -2884,6 +2888,7 @@ open class LookerSDK: APIMethods { * - data_connector_default_enabled * - extension_framework_enabled * - extension_load_url_enabled + * - instance_config * - marketplace_auto_install_enabled * - marketplace_automation * - marketplace_terms_accepted diff --git a/swift/looker/sdk/models.swift b/swift/looker/sdk/models.swift index bdeda8cc1..d8d2d4420 100644 --- a/swift/looker/sdk/models.swift +++ b/swift/looker/sdk/models.swift @@ -25,7 +25,7 @@ */ /** - * 341 API models: 258 Spec, 0 Request, 61 Write, 22 Enum + * 342 API models: 259 Spec, 0 Request, 61 Write, 22 Enum */ @@ -10345,6 +10345,24 @@ public struct ImportedProject: SDKModel { } +public struct InstanceConfig: SDKModel { + /** + * Feature flags enabled on the instance (read-only) + */ + public var feature_flags: StringDictionary? + + /** + * License features enabled on the instance (read-only) + */ + public var license_features: StringDictionary? + + public init(feature_flags: StringDictionary? = nil, license_features: StringDictionary? = nil) { + self.feature_flags = feature_flags + self.license_features = license_features + } + +} + public struct Integration: SDKModel { private enum CodingKeys : String, CodingKey { @@ -11077,18 +11095,18 @@ public struct JsonBiFields: SDKModel { public var pivots: [JsonBiField] /** - * Table Calculations (beta: May not be included) (read-only) + * Table Calculations (read-only) */ - public var table_calculations: [JsonBiTableCalc]? + public var table_calculations: [JsonBiTableCalc] - public init(dimensions: [JsonBiField], measures: [JsonBiField], pivots: [JsonBiField], table_calculations: [JsonBiTableCalc]? = nil) { + public init(dimensions: [JsonBiField], measures: [JsonBiField], pivots: [JsonBiField], table_calculations: [JsonBiTableCalc]) { self.dimensions = dimensions self.measures = measures self.pivots = pivots self.table_calculations = table_calculations } - public init(_ dimensions: [JsonBiField], _ measures: [JsonBiField], _ pivots: [JsonBiField], table_calculations: [JsonBiTableCalc]? = nil) { + public init(_ dimensions: [JsonBiField], _ measures: [JsonBiField], _ pivots: [JsonBiField], _ table_calculations: [JsonBiTableCalc]) { self.init(dimensions: dimensions, measures: measures, pivots: pivots, table_calculations: table_calculations) } @@ -20489,6 +20507,7 @@ public struct SessionConfig: SDKModel { public struct Setting: SDKModel { private enum CodingKeys : String, CodingKey { + case instance_config case extension_framework_enabled case extension_load_url_enabled case marketplace_auto_install_enabled @@ -20511,6 +20530,8 @@ public struct Setting: SDKModel { case login_notification_enabled case _login_notification_text = "login_notification_text" } + public var instance_config: InstanceConfig? + /** * Toggle extension framework on or off */ @@ -20624,7 +20645,8 @@ public struct Setting: SDKModel { set { _login_notification_text = 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_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) { + 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) { + self.instance_config = instance_config 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 @@ -28262,7 +28284,7 @@ public struct WriteSessionConfig: SDKModel { /** * Dynamic writeable type for Setting removes: - * marketplace_site, embed_enabled, login_notification_enabled, login_notification_text + * instance_config, marketplace_site, embed_enabled, login_notification_enabled, login_notification_text */ public struct WriteSetting: SDKModel { diff --git a/swift/looker/sdk/streams.swift b/swift/looker/sdk/streams.swift index 78a5ce563..0d463acf0 100644 --- a/swift/looker/sdk/streams.swift +++ b/swift/looker/sdk/streams.swift @@ -761,8 +761,11 @@ open class LookerSDKStream: APIMethods { * * This function does not strictly require all group_ids, user attribute names, or model names to exist at the moment the * embed url is created. Unknown group_id, user attribute names or model names will be passed through to the output URL. + * Because of this, **these parameters are not validated** when the API call is made. * - * To diagnose potential problems with an SSO embed URL, you can copy the signed URL into the Embed URI Validator text box in `/admin/embed`. + * The [Get Embed Url](https://cloud.google.com/looker/docs/r/get-signed-url) dialog can be used to determine and validate the correct permissions for signing an embed url. + * This dialog also provides the SDK syntax for the API call to make. Alternatively, you can copy the signed URL into the Embed URI Validator text box + * in `/admin/embed` to diagnose potential problems. * * The `secret_id` parameter is optional. If specified, its value must be the id of an active secret defined in the Looker instance. * if not specified, the URL will be signed using the most recent active signing secret. If there is no active secret for signing embed urls, @@ -2845,6 +2848,7 @@ open class LookerSDKStream: APIMethods { * - data_connector_default_enabled * - extension_framework_enabled * - extension_load_url_enabled + * - instance_config * - marketplace_auto_install_enabled * - marketplace_automation * - marketplace_terms_accepted @@ -2882,6 +2886,7 @@ open class LookerSDKStream: APIMethods { * - data_connector_default_enabled * - extension_framework_enabled * - extension_load_url_enabled + * - instance_config * - marketplace_auto_install_enabled * - marketplace_automation * - marketplace_terms_accepted