From 98d759fd3fb29836f29319299ef982a6736206ec Mon Sep 17 00:00:00 2001 From: Mike DeAngelo Date: Wed, 5 Nov 2025 19:12:23 +0000 Subject: [PATCH] feat: generate SDKs for Looker 25.20 Release-As: 25.20.0 --- csharp/rtl/Constants.cs | 2 +- csharp/sdk/4.0/methods.cs | 5 +- csharp/sdk/4.0/models.cs | 104 +++++- go/sdk/v4/methods.go | 2 +- go/sdk/v4/models.go | 256 ++++++++------ kotlin/src/main/com/looker/sdk/4.0/methods.kt | 3 + kotlin/src/main/com/looker/sdk/4.0/models.kt | 123 +++++-- kotlin/src/main/com/looker/sdk/4.0/streams.kt | 3 + kotlin/src/main/com/looker/sdk/Constants.kt | 2 +- packages/sdk/src/4.0/funcs.ts | 1 + packages/sdk/src/4.0/methods.ts | 1 + packages/sdk/src/4.0/models.ts | 129 ++++++- packages/sdk/src/4.0/streams.ts | 1 + packages/sdk/src/constants.ts | 2 +- python/looker_sdk/sdk/api40/methods.py | 3 + python/looker_sdk/sdk/api40/models.py | 272 +++++++++++---- python/looker_sdk/sdk/constants.py | 2 +- spec/Looker.4.0.json | 117 ++++++- spec/Looker.4.0.oas.json | 98 +++++- swift/looker/rtl/constants.swift | 2 +- swift/looker/sdk/methods.swift | 6 +- swift/looker/sdk/models.swift | 314 +++++++++++++++--- swift/looker/sdk/streams.swift | 6 +- 23 files changed, 1163 insertions(+), 291 deletions(-) diff --git a/csharp/rtl/Constants.cs b/csharp/rtl/Constants.cs index 9e368f196..a2281acc6 100644 --- a/csharp/rtl/Constants.cs +++ b/csharp/rtl/Constants.cs @@ -61,7 +61,7 @@ public struct Constants public const string DefaultApiVersion = "4.0"; public const string AgentPrefix = "CS-SDK"; - public const string LookerVersion = "25.18"; + public const string LookerVersion = "25.20"; 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 49d475060..f9bde0f16 100644 --- a/csharp/sdk/4.0/methods.cs +++ b/csharp/sdk/4.0/methods.cs @@ -5943,6 +5943,7 @@ public async Task> move_look( /// Whether or not to exclude models with no explores from the response (Defaults to false) /// Whether or not to exclude hidden explores from the response (Defaults to false) /// Whether or not to include built-in models such as System Activity (Defaults to false) + /// Whether or not to include self service models (Defaults to false) public async Task> all_lookml_models( string? fields = null, long? limit = null, @@ -5950,6 +5951,7 @@ public async Task> all_lookml_models( bool? exclude_empty = null, bool? exclude_hidden = null, bool? include_internal = null, + bool? include_self_service = null, ITransportSettings? options = null) { return await AuthRequest(HttpMethod.Get, "/lookml_models", new Values { @@ -5958,7 +5960,8 @@ public async Task> all_lookml_models( { "offset", offset }, { "exclude_empty", exclude_empty }, { "exclude_hidden", exclude_hidden }, - { "include_internal", include_internal }},null,options); + { "include_internal", include_internal }, + { "include_self_service", include_self_service }},null,options); } /// ### Create a lookml model using the specified configuration. diff --git a/csharp/sdk/4.0/models.cs b/csharp/sdk/4.0/models.cs index ddac63c5f..bccdb29f2 100644 --- a/csharp/sdk/4.0/models.cs +++ b/csharp/sdk/4.0/models.cs @@ -21,7 +21,7 @@ /// SOFTWARE. /// -/// 377 API models: 289 Spec, 0 Request, 64 Write, 24 Enum +/// 380 API models: 290 Spec, 0 Request, 65 Write, 25 Enum #nullable enable using System; @@ -179,6 +179,8 @@ public class AlertNotifications : SdkModel /// The time at which the alert query ran (read-only) public string? ran_at { get; set; } = null; public MobilePayload? alert { get; set; } + /// The type of notification, 'email' or 'slack' (read-only) + public string? notification_type { get; set; } = null; } public class AlertPatch : SdkModel @@ -480,6 +482,28 @@ public enum Category dimension } +public class Certification : SdkModel +{ + /// Certification status: "certified" or "revoked" Valid values are: "certified", "revoked". + [JsonConverter(typeof(StringEnumConverter))] + public CertificationStatus? certification_status { get; set; } + /// Display name of user who certified the content, derived from user_id (read-only) + public string? user_name { get; set; } = null; + /// Certification notes + public string? notes { get; set; } = null; + /// Timestamp of certification (read-only) + public DateTime? updated_at { get; set; } = null; +} + +/// Certification status: "certified" or "revoked" Valid values are: "certified", "revoked". (Enum defined in Certification) +public enum CertificationStatus +{ + [EnumMember(Value = "certified")] + certified, + [EnumMember(Value = "revoked")] + revoked +} + public class CIChangeRequest : SdkModel { /// Numeric identifier of the change request (read-only) @@ -504,19 +528,6 @@ public class CIGitState : SdkModel public string? target { get; set; } = null; } -public class CIRunResult : SdkModel -{ - public SqlValidatorResult? sql_result { get; set; } - public GenericError? sql_error { get; set; } - public AssertValidatorResult? assert_result { get; set; } - public GenericError? assert_error { get; set; } - public ContentValidatorResult? content_result { get; set; } - public GenericError? content_error { get; set; } - public LookMLValidatorResult? lookml_result { get; set; } - public GenericError? lookml_error { get; set; } - public GenericError? generic_error { get; set; } -} - public class CIScheduleTrigger : SdkModel { /// Whether the CI run schedule is active (read-only) @@ -753,6 +764,7 @@ public class ContentSummary : SdkModel public float? suggestion_score { get; set; } = null; /// The preferred route for viewing this content (ie: dashboards or dashboards-next) (read-only) public string? preferred_viewer { get; set; } = null; + public Certification? certification_metadata { get; set; } } public class ContentValidation : SdkModel @@ -1467,6 +1479,7 @@ public class Dashboard : SdkModel public string? slug { get; set; } = null; /// The preferred route for viewing this dashboard (ie: dashboards or dashboards-next) public string? preferred_viewer { get; set; } = null; + public Certification? certification_metadata { get; set; } /// Enables alerts to keep in sync with dashboard filter changes public bool? alert_sync_with_dashboard_filter_enabled { get; set; } = null; /// Background color @@ -1592,6 +1605,7 @@ public class DashboardBase : SdkModel public string? slug { get; set; } = null; /// The preferred route for viewing this dashboard (ie: dashboards or dashboards-next) (read-only) public string? preferred_viewer { get; set; } = null; + public Certification? certification_metadata { get; set; } } public class DashboardElement : SdkModel @@ -1604,6 +1618,8 @@ public class DashboardElement : SdkModel public string? body_text_as_html { get; set; } = null; /// Id of Dashboard public string? dashboard_id { get; set; } = null; + /// Id of Dashboard Layout + public string? dashboard_layout_id { get; set; } = null; /// Relative path of URI of LookML file to edit the dashboard element (LookML dashboard only). (read-only) public string? edit_uri { get; set; } = null; /// Unique Id (read-only) @@ -2445,6 +2461,8 @@ public class ExternalOauthApplication : SdkModel public string? tenant_id { get; set; } = null; /// The database dialect for this application. public string? dialect_name { get; set; } = null; + /// Whether this application supports bi-directional data access. + public bool? bi_directional_data_access { get; set; } = null; /// Creation time for this application (read-only) public DateTime? created_at { get; set; } = null; } @@ -3337,6 +3355,7 @@ public class Look : SdkModel public string? title { get; set; } = null; /// User Id public string? user_id { get; set; } = null; + public Certification? certification_metadata { get; set; } /// Content Favorite Id (read-only) public string? content_favorite_id { get; set; } = null; /// Time that the Look was created. (read-only) @@ -3401,6 +3420,7 @@ public class LookBasic : SdkModel public string? title { get; set; } = null; /// User Id public string? user_id { get; set; } = null; + public Certification? certification_metadata { get; set; } } public class LookmlFieldLink : SdkModel @@ -3681,6 +3701,10 @@ public class LookmlModelExploreField : SdkModel public long? times_used { get; set; } = null; /// The name of the view this field is defined in. This will be different than "view" when the view has been joined via a different name using the "from" parameter. (read-only) public string? original_view { get; set; } = null; + /// The data_type for a date in lookml (read-only) + public string? datatype { get; set; } = null; + /// Whether time zones should be converted for datetime fields (read-only) + public bool? convert_tz { get; set; } = null; } public class LookmlModelExploreFieldEnumeration : SdkModel @@ -3935,6 +3959,7 @@ public class LookWithDashboards : SdkModel public string? title { get; set; } = null; /// User Id public string? user_id { get; set; } = null; + public Certification? certification_metadata { get; set; } /// Content Favorite Id (read-only) public string? content_favorite_id { get; set; } = null; /// Time that the Look was created. (read-only) @@ -4001,6 +4026,7 @@ public class LookWithQuery : SdkModel public string? title { get; set; } = null; /// User Id public string? user_id { get; set; } = null; + public Certification? certification_metadata { get; set; } /// Content Favorite Id (read-only) public string? content_favorite_id { get; set; } = null; /// Time that the Look was created. (read-only) @@ -5002,7 +5028,7 @@ public class Run : SdkModel /// Git service for CI run (e.g. GitHub) (read-only) public string? git_service { get; set; } = null; public CIGitState? git_state { get; set; } - public CIRunResult? result { get; set; } + public RunResult? result { get; set; } public CIScheduleTrigger? schedule { get; set; } /// Git branch that the CI run compares against during validation, used for incremental runs (read-only) public string? target_branch { get; set; } = null; @@ -5061,6 +5087,19 @@ public class RunningQueries : SdkModel public string? sql_interface_sql { get; set; } = null; } +public class RunResult : SdkModel +{ + public SqlValidatorResult? sql_result { get; set; } + public GenericError? sql_error { get; set; } + public AssertValidatorResult? assert_result { get; set; } + public GenericError? assert_error { get; set; } + public ContentValidatorResult? content_result { get; set; } + public GenericError? content_error { get; set; } + public LookMLValidatorResult? lookml_result { get; set; } + public GenericError? lookml_error { get; set; } + public GenericError? generic_error { get; set; } +} + public class SamlConfig : SdkModel { /// Operations the current user is able to perform on this object (read-only) @@ -6466,6 +6505,17 @@ public class WriteBoardSection : SdkModel public string? title { get; set; } = null; } +/// Dynamic writeable type for Certification removes: +/// user_name, updated_at +public class WriteCertification : SdkModel +{ + /// Certification status: "certified" or "revoked" Valid values are: "certified", "revoked". + [JsonConverter(typeof(StringEnumConverter))] + public CertificationStatus? certification_status { get; set; } + /// Certification notes + public string? notes { get; set; } = null; +} + /// Dynamic writeable type for ColorCollection removes: /// id public class WriteColorCollection : SdkModel @@ -6605,6 +6655,11 @@ public class WriteDashboard : SdkModel public string? slug { get; set; } = null; /// The preferred route for viewing this dashboard (ie: dashboards or dashboards-next) public string? preferred_viewer { get; set; } = null; + /// + /// Dynamic writeable type for Certification removes: + /// user_name, updated_at + /// + public WriteCertification? certification_metadata { get; set; } /// Enables alerts to keep in sync with dashboard filter changes public bool? alert_sync_with_dashboard_filter_enabled { get; set; } = null; /// Background color @@ -6649,6 +6704,11 @@ public class WriteDashboardBase : SdkModel /// id, content_metadata_id, created_at, creator_id, child_count, external_id, is_embed, is_embed_shared_root, is_embed_users_root, is_personal, is_personal_descendant, is_shared_root, is_users_root, can /// public WriteFolderBase? folder { get; set; } + /// + /// Dynamic writeable type for Certification removes: + /// user_name, updated_at + /// + public WriteCertification? certification_metadata { get; set; } } /// Dynamic writeable type for DashboardElement removes: @@ -6659,6 +6719,8 @@ public class WriteDashboardElement : SdkModel public string? body_text { get; set; } = null; /// Id of Dashboard public string? dashboard_id { get; set; } = null; + /// Id of Dashboard Layout + public string? dashboard_layout_id { get; set; } = null; /// /// Dynamic writeable type for LookWithQuery removes: /// can, content_metadata_id, id, content_favorite_id, created_at, deleted_at, deleter_id, embed_url, excel_file_url, favorite_count, google_spreadsheet_formula, image_embed_url, last_accessed_at, last_updater_id, last_viewed_at, model, public_slug, public_url, short_url, updated_at, user_name, view_count, url @@ -7002,6 +7064,8 @@ public class WriteExternalOauthApplication : SdkModel public string? tenant_id { get; set; } = null; /// The database dialect for this application. public string? dialect_name { get; set; } = null; + /// Whether this application supports bi-directional data access. + public bool? bi_directional_data_access { get; set; } = null; } /// Dynamic writeable type for FolderBase removes: @@ -7162,6 +7226,11 @@ public class WriteLookBasic : SdkModel { /// User Id public string? user_id { get; set; } = null; + /// + /// Dynamic writeable type for Certification removes: + /// user_name, updated_at + /// + public WriteCertification? certification_metadata { get; set; } } /// Dynamic writeable type for LookmlModel removes: @@ -7186,6 +7255,11 @@ public class WriteLookWithQuery : SdkModel public string? title { get; set; } = null; /// User Id public string? user_id { get; set; } = null; + /// + /// Dynamic writeable type for Certification removes: + /// user_name, updated_at + /// + public WriteCertification? certification_metadata { get; set; } /// Whether or not a look is 'soft' deleted. public bool? deleted { get; set; } = null; /// Description diff --git a/go/sdk/v4/methods.go b/go/sdk/v4/methods.go index b69d52496..5ba4d33ed 100644 --- a/go/sdk/v4/methods.go +++ b/go/sdk/v4/methods.go @@ -4569,7 +4569,7 @@ func (l *LookerSDK) MoveLook( func (l *LookerSDK) AllLookmlModels(request RequestAllLookmlModels, options *rtl.ApiSettings) ([]LookmlModel, error) { var result []LookmlModel - err := l.AuthSession.Do(&result, "GET", "/4.0", "/lookml_models", map[string]interface{}{"fields": request.Fields, "limit": request.Limit, "offset": request.Offset, "exclude_empty": request.ExcludeEmpty, "exclude_hidden": request.ExcludeHidden, "include_internal": request.IncludeInternal}, nil, options) + err := l.AuthSession.Do(&result, "GET", "/4.0", "/lookml_models", map[string]interface{}{"fields": request.Fields, "limit": request.Limit, "offset": request.Offset, "exclude_empty": request.ExcludeEmpty, "exclude_hidden": request.ExcludeHidden, "include_internal": request.IncludeInternal, "include_self_service": request.IncludeSelfService}, nil, options) return result, err } diff --git a/go/sdk/v4/models.go b/go/sdk/v4/models.go index 6d90b371b..d9a7ea399 100644 --- a/go/sdk/v4/models.go +++ b/go/sdk/v4/models.go @@ -26,7 +26,7 @@ SOFTWARE. /* -449 API models: 289 Spec, 73 Request, 63 Write, 24 Enum +452 API models: 290 Spec, 73 Request, 64 Write, 25 Enum */ // NOTE: Do not edit this file generated by Looker SDK Codegen for API v4 @@ -115,6 +115,7 @@ type AlertNotifications struct { ThresholdValue *float64 `json:"threshold_value,omitempty"` // The value of the threshold which triggers the alert notification RanAt *string `json:"ran_at,omitempty"` // The time at which the alert query ran Alert *MobilePayload `json:"alert,omitempty"` + NotificationType *string `json:"notification_type,omitempty"` // The type of notification, 'email' or 'slack' } type AlertPatch struct { @@ -285,6 +286,18 @@ const Category_Filter Category = "filter" const Category_Measure Category = "measure" const Category_Dimension Category = "dimension" +type Certification struct { + CertificationStatus *CertificationStatus `json:"certification_status,omitempty"` // Certification status: "certified" or "revoked" Valid values are: "certified", "revoked". + UserName *string `json:"user_name,omitempty"` // Display name of user who certified the content, derived from user_id + Notes *string `json:"notes,omitempty"` // Certification notes + UpdatedAt *time.Time `json:"updated_at,omitempty"` // Timestamp of certification +} + +type CertificationStatus string + +const CertificationStatus_Certified CertificationStatus = "certified" +const CertificationStatus_Revoked CertificationStatus = "revoked" + type CIChangeRequest struct { ChangeRequestNumber *int64 `json:"change_request_number,omitempty"` // Numeric identifier of the change request ChangeRequestUrl *string `json:"change_request_url,omitempty"` // URL of the change request @@ -299,18 +312,6 @@ type CIGitState struct { Target *string `json:"target,omitempty"` // For incremental runs, the Git branch that the CI run compares against during validation } -type CIRunResult struct { - SqlResult *SqlValidatorResult `json:"sql_result,omitempty"` - SqlError *GenericError `json:"sql_error,omitempty"` - AssertResult *AssertValidatorResult `json:"assert_result,omitempty"` - AssertError *GenericError `json:"assert_error,omitempty"` - ContentResult *ContentValidatorResult `json:"content_result,omitempty"` - ContentError *GenericError `json:"content_error,omitempty"` - LookmlResult *LookMLValidatorResult `json:"lookml_result,omitempty"` - LookmlError *GenericError `json:"lookml_error,omitempty"` - GenericError *GenericError `json:"generic_error,omitempty"` -} - type CIScheduleTrigger struct { Enabled *bool `json:"enabled,omitempty"` // Whether the CI run schedule is active Day *string `json:"day,omitempty"` // For scheduled runs, day of the week that the CI run is scheduled @@ -421,25 +422,26 @@ type ContentSearch struct { } type ContentSummary 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 - ContentType *string `json:"content_type,omitempty"` // Content type - ContentId *string `json:"content_id,omitempty"` // Content id - ContentSlug *string `json:"content_slug,omitempty"` // Content slug - ContentUrl *string `json:"content_url,omitempty"` // Content url - Title *string `json:"title,omitempty"` // Content title - Description *string `json:"description,omitempty"` // Content Description - LastViewedAt *time.Time `json:"last_viewed_at,omitempty"` // Last time viewed by current user - UserId *string `json:"user_id,omitempty"` // ID of user who created the content - UserFullName *string `json:"user_full_name,omitempty"` // Full name of user who created the content - IsScheduled *bool `json:"is_scheduled,omitempty"` // If the content is scheduled by the current user - FavoriteCount *int64 `json:"favorite_count,omitempty"` // Number of favorites - ViewCount *int64 `json:"view_count,omitempty"` // Number of views - FavoriteId *string `json:"favorite_id,omitempty"` // Corresponding favorite id if item is favorited by current user - WeightedScore *float32 `json:"weighted_score,omitempty"` - GroupWeightedScore *float32 `json:"group_weighted_score,omitempty"` - SuggestionScore *float32 `json:"suggestion_score,omitempty"` - PreferredViewer *string `json:"preferred_viewer,omitempty"` // The preferred route for viewing this content (ie: dashboards or dashboards-next) + 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 + ContentType *string `json:"content_type,omitempty"` // Content type + ContentId *string `json:"content_id,omitempty"` // Content id + ContentSlug *string `json:"content_slug,omitempty"` // Content slug + ContentUrl *string `json:"content_url,omitempty"` // Content url + Title *string `json:"title,omitempty"` // Content title + Description *string `json:"description,omitempty"` // Content Description + LastViewedAt *time.Time `json:"last_viewed_at,omitempty"` // Last time viewed by current user + UserId *string `json:"user_id,omitempty"` // ID of user who created the content + UserFullName *string `json:"user_full_name,omitempty"` // Full name of user who created the content + IsScheduled *bool `json:"is_scheduled,omitempty"` // If the content is scheduled by the current user + FavoriteCount *int64 `json:"favorite_count,omitempty"` // Number of favorites + ViewCount *int64 `json:"view_count,omitempty"` // Number of views + FavoriteId *string `json:"favorite_id,omitempty"` // Corresponding favorite id if item is favorited by current user + WeightedScore *float32 `json:"weighted_score,omitempty"` + GroupWeightedScore *float32 `json:"group_weighted_score,omitempty"` + SuggestionScore *float32 `json:"suggestion_score,omitempty"` + PreferredViewer *string `json:"preferred_viewer,omitempty"` // The preferred route for viewing this content (ie: dashboards or dashboards-next) + CertificationMetadata *Certification `json:"certification_metadata,omitempty"` } type ContentValidation struct { @@ -846,10 +848,11 @@ type Dashboard struct { RefreshInterval *string `json:"refresh_interval,omitempty"` // Refresh Interval, as a time duration phrase like "2 hours 30 minutes". A number with no time units will be interpreted as whole seconds. RefreshIntervalToI *int64 `json:"refresh_interval_to_i,omitempty"` // Refresh Interval in milliseconds Folder *FolderBase `json:"folder,omitempty"` - Title *string `json:"title,omitempty"` // Dashboard Title - UserId *string `json:"user_id,omitempty"` // Id of User - Slug *string `json:"slug,omitempty"` // Content Metadata Slug - PreferredViewer *string `json:"preferred_viewer,omitempty"` // The preferred route for viewing this dashboard (ie: dashboards or dashboards-next) + Title *string `json:"title,omitempty"` // Dashboard Title + UserId *string `json:"user_id,omitempty"` // Id of User + Slug *string `json:"slug,omitempty"` // Content Metadata Slug + PreferredViewer *string `json:"preferred_viewer,omitempty"` // The preferred route for viewing this dashboard (ie: dashboards or dashboards-next) + CertificationMetadata *Certification `json:"certification_metadata,omitempty"` AlertSyncWithDashboardFilterEnabled *bool `json:"alert_sync_with_dashboard_filter_enabled,omitempty"` // Enables alerts to keep in sync with dashboard filter changes BackgroundColor *string `json:"background_color,omitempty"` // Background color CreatedAt *time.Time `json:"created_at,omitempty"` // Time that the Dashboard was created. @@ -901,31 +904,33 @@ type DashboardAppearance struct { } type DashboardBase struct { - Can *map[string]bool `json:"can,omitempty"` // Operations the current user is able to perform on this object - ContentFavoriteId *string `json:"content_favorite_id,omitempty"` // Content Favorite Id - ContentMetadataId *string `json:"content_metadata_id,omitempty"` // Id of content metadata - Description *string `json:"description,omitempty"` // Description - Hidden *bool `json:"hidden,omitempty"` // Is Hidden - Id *string `json:"id,omitempty"` // Unique Id - Model *LookModel `json:"model,omitempty"` - QueryTimezone *string `json:"query_timezone,omitempty"` // Timezone in which the Dashboard will run by default. - Readonly *bool `json:"readonly,omitempty"` // Is Read-only - RefreshInterval *string `json:"refresh_interval,omitempty"` // Refresh Interval, as a time duration phrase like "2 hours 30 minutes". A number with no time units will be interpreted as whole seconds. - RefreshIntervalToI *int64 `json:"refresh_interval_to_i,omitempty"` // Refresh Interval in milliseconds - Folder *FolderBase `json:"folder,omitempty"` - Title *string `json:"title,omitempty"` // Dashboard Title - UserId *string `json:"user_id,omitempty"` // Id of User - Slug *string `json:"slug,omitempty"` // Content Metadata Slug - PreferredViewer *string `json:"preferred_viewer,omitempty"` // The preferred route for viewing this dashboard (ie: dashboards or dashboards-next) + Can *map[string]bool `json:"can,omitempty"` // Operations the current user is able to perform on this object + ContentFavoriteId *string `json:"content_favorite_id,omitempty"` // Content Favorite Id + ContentMetadataId *string `json:"content_metadata_id,omitempty"` // Id of content metadata + Description *string `json:"description,omitempty"` // Description + Hidden *bool `json:"hidden,omitempty"` // Is Hidden + Id *string `json:"id,omitempty"` // Unique Id + Model *LookModel `json:"model,omitempty"` + QueryTimezone *string `json:"query_timezone,omitempty"` // Timezone in which the Dashboard will run by default. + Readonly *bool `json:"readonly,omitempty"` // Is Read-only + RefreshInterval *string `json:"refresh_interval,omitempty"` // Refresh Interval, as a time duration phrase like "2 hours 30 minutes". A number with no time units will be interpreted as whole seconds. + RefreshIntervalToI *int64 `json:"refresh_interval_to_i,omitempty"` // Refresh Interval in milliseconds + Folder *FolderBase `json:"folder,omitempty"` + Title *string `json:"title,omitempty"` // Dashboard Title + UserId *string `json:"user_id,omitempty"` // Id of User + Slug *string `json:"slug,omitempty"` // Content Metadata Slug + PreferredViewer *string `json:"preferred_viewer,omitempty"` // The preferred route for viewing this dashboard (ie: dashboards or dashboards-next) + CertificationMetadata *Certification `json:"certification_metadata,omitempty"` } type DashboardElement struct { - Can *map[string]bool `json:"can,omitempty"` // Operations the current user is able to perform on this object - BodyText *string `json:"body_text,omitempty"` // Text tile body text - BodyTextAsHtml *string `json:"body_text_as_html,omitempty"` // Text tile body text as Html - DashboardId *string `json:"dashboard_id,omitempty"` // Id of Dashboard - EditUri *string `json:"edit_uri,omitempty"` // Relative path of URI of LookML file to edit the dashboard element (LookML dashboard only). - Id *string `json:"id,omitempty"` // Unique Id + Can *map[string]bool `json:"can,omitempty"` // Operations the current user is able to perform on this object + BodyText *string `json:"body_text,omitempty"` // Text tile body text + BodyTextAsHtml *string `json:"body_text_as_html,omitempty"` // Text tile body text as Html + DashboardId *string `json:"dashboard_id,omitempty"` // Id of Dashboard + DashboardLayoutId *string `json:"dashboard_layout_id,omitempty"` // Id of Dashboard Layout + EditUri *string `json:"edit_uri,omitempty"` // Relative path of URI of LookML file to edit the dashboard element (LookML dashboard only). + Id *string `json:"id,omitempty"` // Unique Id Look *LookWithQuery `json:"look,omitempty"` LookId *string `json:"look_id,omitempty"` // Id Of Look LookmlLinkId *string `json:"lookml_link_id,omitempty"` // LookML link ID @@ -1379,14 +1384,15 @@ type Error struct { } type ExternalOauthApplication 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 this OAuth Application - Name *string `json:"name,omitempty"` // The name of this application. For Snowflake connections, this should be the name of the host database. - ClientId *string `json:"client_id,omitempty"` // The OAuth Client ID for this application - ClientSecret *string `json:"client_secret,omitempty"` // (Write-Only) The OAuth Client Secret for this application - TenantId *string `json:"tenant_id,omitempty"` // The OAuth Tenant ID for this application - DialectName *string `json:"dialect_name,omitempty"` // The database dialect for this application. - CreatedAt *time.Time `json:"created_at,omitempty"` // Creation time for this application + 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 this OAuth Application + Name *string `json:"name,omitempty"` // The name of this application. For Snowflake connections, this should be the name of the host database. + ClientId *string `json:"client_id,omitempty"` // The OAuth Client ID for this application + ClientSecret *string `json:"client_secret,omitempty"` // (Write-Only) The OAuth Client Secret for this application + TenantId *string `json:"tenant_id,omitempty"` // The OAuth Tenant ID for this application + DialectName *string `json:"dialect_name,omitempty"` // The database dialect for this application. + BiDirectionalDataAccess *bool `json:"bi_directional_data_access,omitempty"` // Whether this application supports bi-directional data access. + CreatedAt *time.Time `json:"created_at,omitempty"` // Creation time for this application } type FillStyle string @@ -1875,11 +1881,12 @@ type LocalizationSettings struct { } type Look struct { - Can *map[string]bool `json:"can,omitempty"` // Operations the current user is able to perform on this object - ContentMetadataId *string `json:"content_metadata_id,omitempty"` // Id of content metadata - Id *string `json:"id,omitempty"` // Unique Id - Title *string `json:"title,omitempty"` // Look Title - UserId *string `json:"user_id,omitempty"` // User Id + Can *map[string]bool `json:"can,omitempty"` // Operations the current user is able to perform on this object + ContentMetadataId *string `json:"content_metadata_id,omitempty"` // Id of content metadata + Id *string `json:"id,omitempty"` // Unique Id + Title *string `json:"title,omitempty"` // Look Title + UserId *string `json:"user_id,omitempty"` // User Id + CertificationMetadata *Certification `json:"certification_metadata,omitempty"` ContentFavoriteId *string `json:"content_favorite_id,omitempty"` // Content Favorite Id CreatedAt *time.Time `json:"created_at,omitempty"` // Time that the Look was created. Deleted *bool `json:"deleted,omitempty"` // Whether or not a look is 'soft' deleted. @@ -1909,11 +1916,12 @@ type Look struct { } type LookBasic struct { - Can *map[string]bool `json:"can,omitempty"` // Operations the current user is able to perform on this object - ContentMetadataId *string `json:"content_metadata_id,omitempty"` // Id of content metadata - Id *string `json:"id,omitempty"` // Unique Id - Title *string `json:"title,omitempty"` // Look Title - UserId *string `json:"user_id,omitempty"` // User Id + Can *map[string]bool `json:"can,omitempty"` // Operations the current user is able to perform on this object + ContentMetadataId *string `json:"content_metadata_id,omitempty"` // Id of content metadata + Id *string `json:"id,omitempty"` // Unique Id + Title *string `json:"title,omitempty"` // Look Title + UserId *string `json:"user_id,omitempty"` // User Id + CertificationMetadata *Certification `json:"certification_metadata,omitempty"` } type LookmlFieldLink struct { @@ -2063,6 +2071,8 @@ type LookmlModelExploreField struct { WeekStartDay *WeekStartDay `json:"week_start_day,omitempty"` // The name of the starting day of the week. Valid values are: "monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday". TimesUsed *int64 `json:"times_used,omitempty"` // The number of times this field has been used in queries OriginalView *string `json:"original_view,omitempty"` // The name of the view this field is defined in. This will be different than "view" when the view has been joined via a different name using the "from" parameter. + Datatype *string `json:"datatype,omitempty"` // The data_type for a date in lookml + ConvertTz *bool `json:"convert_tz,omitempty"` // Whether time zones should be converted for datetime fields } type LookmlModelExploreFieldEnumeration struct { @@ -2202,11 +2212,12 @@ type LookModel struct { } type LookWithDashboards struct { - Can *map[string]bool `json:"can,omitempty"` // Operations the current user is able to perform on this object - ContentMetadataId *string `json:"content_metadata_id,omitempty"` // Id of content metadata - Id *string `json:"id,omitempty"` // Unique Id - Title *string `json:"title,omitempty"` // Look Title - UserId *string `json:"user_id,omitempty"` // User Id + Can *map[string]bool `json:"can,omitempty"` // Operations the current user is able to perform on this object + ContentMetadataId *string `json:"content_metadata_id,omitempty"` // Id of content metadata + Id *string `json:"id,omitempty"` // Unique Id + Title *string `json:"title,omitempty"` // Look Title + UserId *string `json:"user_id,omitempty"` // User Id + CertificationMetadata *Certification `json:"certification_metadata,omitempty"` ContentFavoriteId *string `json:"content_favorite_id,omitempty"` // Content Favorite Id CreatedAt *time.Time `json:"created_at,omitempty"` // Time that the Look was created. Deleted *bool `json:"deleted,omitempty"` // Whether or not a look is 'soft' deleted. @@ -2237,11 +2248,12 @@ type LookWithDashboards struct { } type LookWithQuery struct { - Can *map[string]bool `json:"can,omitempty"` // Operations the current user is able to perform on this object - ContentMetadataId *string `json:"content_metadata_id,omitempty"` // Id of content metadata - Id *string `json:"id,omitempty"` // Unique Id - Title *string `json:"title,omitempty"` // Look Title - UserId *string `json:"user_id,omitempty"` // User Id + Can *map[string]bool `json:"can,omitempty"` // Operations the current user is able to perform on this object + ContentMetadataId *string `json:"content_metadata_id,omitempty"` // Id of content metadata + Id *string `json:"id,omitempty"` // Unique Id + Title *string `json:"title,omitempty"` // Look Title + UserId *string `json:"user_id,omitempty"` // User Id + CertificationMetadata *Certification `json:"certification_metadata,omitempty"` ContentFavoriteId *string `json:"content_favorite_id,omitempty"` // Content Favorite Id CreatedAt *time.Time `json:"created_at,omitempty"` // Time that the Look was created. Deleted *bool `json:"deleted,omitempty"` // Whether or not a look is 'soft' deleted. @@ -2784,12 +2796,13 @@ type RequestAllIntegrations struct { // Dynamically generated request type for all_lookml_models type RequestAllLookmlModels struct { - Fields *string `json:"fields,omitempty"` // Requested fields. - Limit *int64 `json:"limit,omitempty"` // Number of results to return. (can be used with offset) - Offset *int64 `json:"offset,omitempty"` // Number of results to skip before returning any. (Defaults to 0 if not set when limit is used) - ExcludeEmpty *bool `json:"exclude_empty,omitempty"` // Whether or not to exclude models with no explores from the response (Defaults to false) - ExcludeHidden *bool `json:"exclude_hidden,omitempty"` // Whether or not to exclude hidden explores from the response (Defaults to false) - IncludeInternal *bool `json:"include_internal,omitempty"` // Whether or not to include built-in models such as System Activity (Defaults to false) + Fields *string `json:"fields,omitempty"` // Requested fields. + Limit *int64 `json:"limit,omitempty"` // Number of results to return. (can be used with offset) + Offset *int64 `json:"offset,omitempty"` // Number of results to skip before returning any. (Defaults to 0 if not set when limit is used) + ExcludeEmpty *bool `json:"exclude_empty,omitempty"` // Whether or not to exclude models with no explores from the response (Defaults to false) + ExcludeHidden *bool `json:"exclude_hidden,omitempty"` // Whether or not to exclude hidden explores from the response (Defaults to false) + IncludeInternal *bool `json:"include_internal,omitempty"` // Whether or not to include built-in models such as System Activity (Defaults to false) + IncludeSelfService *bool `json:"include_self_service,omitempty"` // Whether or not to include self service models (Defaults to false) } // Dynamically generated request type for all_roles @@ -3612,7 +3625,7 @@ type Run struct { Status *string `json:"status,omitempty"` // Status of the CI run (unknown, failed, passed, skipped, errored, cancelled, queued, running) GitService *string `json:"git_service,omitempty"` // Git service for CI run (e.g. GitHub) GitState *CIGitState `json:"git_state,omitempty"` - Result *CIRunResult `json:"result,omitempty"` + Result *RunResult `json:"result,omitempty"` Schedule *CIScheduleTrigger `json:"schedule,omitempty"` TargetBranch *string `json:"target_branch,omitempty"` // Git branch that the CI run compares against during validation, used for incremental runs Title *string `json:"title,omitempty"` // Name of the CI suite @@ -3647,6 +3660,18 @@ type RunningQueries struct { SqlInterfaceSql *string `json:"sql_interface_sql,omitempty"` // SQL text of the SQL Interface query as run } +type RunResult struct { + SqlResult *SqlValidatorResult `json:"sql_result,omitempty"` + SqlError *GenericError `json:"sql_error,omitempty"` + AssertResult *AssertValidatorResult `json:"assert_result,omitempty"` + AssertError *GenericError `json:"assert_error,omitempty"` + ContentResult *ContentValidatorResult `json:"content_result,omitempty"` + ContentError *GenericError `json:"content_error,omitempty"` + LookmlResult *LookMLValidatorResult `json:"lookml_result,omitempty"` + LookmlError *GenericError `json:"lookml_error,omitempty"` + GenericError *GenericError `json:"generic_error,omitempty"` +} + type SamlConfig struct { Can *map[string]bool `json:"can,omitempty"` // Operations the current user is able to perform on this object Enabled *bool `json:"enabled,omitempty"` // Enable/Disable Saml authentication for the server @@ -4429,6 +4454,13 @@ type WriteBoardSection struct { Title *string `json:"title,omitempty"` // Name of row } +// Dynamic writeable type for Certification removes: +// user_name, updated_at +type WriteCertification struct { + CertificationStatus *CertificationStatus `json:"certification_status,omitempty"` // Certification status: "certified" or "revoked" Valid values are: "certified", "revoked". + Notes *string `json:"notes,omitempty"` // Certification notes +} + // Dynamic writeable type for ColorCollection removes: // id type WriteColorCollection struct { @@ -4508,9 +4540,11 @@ type WriteDashboard struct { RefreshInterval *string `json:"refresh_interval,omitempty"` // Refresh Interval, as a time duration phrase like "2 hours 30 minutes". A number with no time units will be interpreted as whole seconds. Folder *WriteFolderBase `json:"folder,omitempty"` // Dynamic writeable type for FolderBase removes: // id, content_metadata_id, created_at, creator_id, child_count, external_id, is_embed, is_embed_shared_root, is_embed_users_root, is_personal, is_personal_descendant, is_shared_root, is_users_root, can - Title *string `json:"title,omitempty"` // Dashboard Title - Slug *string `json:"slug,omitempty"` // Content Metadata Slug - PreferredViewer *string `json:"preferred_viewer,omitempty"` // The preferred route for viewing this dashboard (ie: dashboards or dashboards-next) + Title *string `json:"title,omitempty"` // Dashboard Title + Slug *string `json:"slug,omitempty"` // Content Metadata Slug + PreferredViewer *string `json:"preferred_viewer,omitempty"` // The preferred route for viewing this dashboard (ie: dashboards or dashboards-next) + CertificationMetadata *WriteCertification `json:"certification_metadata,omitempty"` // Dynamic writeable type for Certification removes: + // user_name, updated_at AlertSyncWithDashboardFilterEnabled *bool `json:"alert_sync_with_dashboard_filter_enabled,omitempty"` // Enables alerts to keep in sync with dashboard filter changes BackgroundColor *string `json:"background_color,omitempty"` // Background color CrossfilterEnabled *bool `json:"crossfilter_enabled,omitempty"` // Enables crossfiltering in dashboards - only available in dashboards-next (beta) @@ -4535,14 +4569,17 @@ type WriteDashboard struct { type WriteDashboardBase struct { Folder *WriteFolderBase `json:"folder,omitempty"` // Dynamic writeable type for FolderBase removes: // id, content_metadata_id, created_at, creator_id, child_count, external_id, is_embed, is_embed_shared_root, is_embed_users_root, is_personal, is_personal_descendant, is_shared_root, is_users_root, can + CertificationMetadata *WriteCertification `json:"certification_metadata,omitempty"` // Dynamic writeable type for Certification removes: + // user_name, updated_at } // Dynamic writeable type for DashboardElement removes: // can, body_text_as_html, edit_uri, id, lookml_link_id, note_text_as_html, refresh_interval_to_i, alert_count, title_text_as_html, subtitle_text_as_html type WriteDashboardElement struct { - BodyText *string `json:"body_text,omitempty"` // Text tile body text - DashboardId *string `json:"dashboard_id,omitempty"` // Id of Dashboard - Look *WriteLookWithQuery `json:"look,omitempty"` // Dynamic writeable type for LookWithQuery removes: + BodyText *string `json:"body_text,omitempty"` // Text tile body text + DashboardId *string `json:"dashboard_id,omitempty"` // Id of Dashboard + DashboardLayoutId *string `json:"dashboard_layout_id,omitempty"` // Id of Dashboard Layout + Look *WriteLookWithQuery `json:"look,omitempty"` // Dynamic writeable type for LookWithQuery removes: // can, content_metadata_id, id, content_favorite_id, created_at, deleted_at, deleter_id, embed_url, excel_file_url, favorite_count, google_spreadsheet_formula, image_embed_url, last_accessed_at, last_updater_id, last_viewed_at, model, public_slug, public_url, short_url, updated_at, user_name, view_count, url LookId *string `json:"look_id,omitempty"` // Id Of Look MergeResultId *string `json:"merge_result_id,omitempty"` // ID of merge result @@ -4726,11 +4763,12 @@ type WriteEmbedSecret struct { // Dynamic writeable type for ExternalOauthApplication removes: // can, id, created_at type WriteExternalOauthApplication struct { - Name *string `json:"name,omitempty"` // The name of this application. For Snowflake connections, this should be the name of the host database. - ClientId *string `json:"client_id,omitempty"` // The OAuth Client ID for this application - ClientSecret *string `json:"client_secret,omitempty"` // (Write-Only) The OAuth Client Secret for this application - TenantId *string `json:"tenant_id,omitempty"` // The OAuth Tenant ID for this application - DialectName *string `json:"dialect_name,omitempty"` // The database dialect for this application. + Name *string `json:"name,omitempty"` // The name of this application. For Snowflake connections, this should be the name of the host database. + ClientId *string `json:"client_id,omitempty"` // The OAuth Client ID for this application + ClientSecret *string `json:"client_secret,omitempty"` // (Write-Only) The OAuth Client Secret for this application + TenantId *string `json:"tenant_id,omitempty"` // The OAuth Tenant ID for this application + DialectName *string `json:"dialect_name,omitempty"` // The database dialect for this application. + BiDirectionalDataAccess *bool `json:"bi_directional_data_access,omitempty"` // Whether this application supports bi-directional data access. } // Dynamic writeable type for FolderBase removes: @@ -4830,7 +4868,9 @@ type WriteLegacyFeature struct { // Dynamic writeable type for LookBasic removes: // can, content_metadata_id, id, title type WriteLookBasic struct { - UserId *string `json:"user_id,omitempty"` // User Id + UserId *string `json:"user_id,omitempty"` // User Id + CertificationMetadata *WriteCertification `json:"certification_metadata,omitempty"` // Dynamic writeable type for Certification removes: + // user_name, updated_at } // Dynamic writeable type for LookmlModel removes: @@ -4845,8 +4885,10 @@ type WriteLookmlModel struct { // Dynamic writeable type for LookWithQuery removes: // can, content_metadata_id, id, content_favorite_id, created_at, deleted_at, deleter_id, embed_url, excel_file_url, favorite_count, google_spreadsheet_formula, image_embed_url, last_accessed_at, last_updater_id, last_viewed_at, model, public_slug, public_url, short_url, updated_at, user_name, view_count, url type WriteLookWithQuery struct { - Title *string `json:"title,omitempty"` // Look Title - UserId *string `json:"user_id,omitempty"` // User Id + Title *string `json:"title,omitempty"` // Look Title + UserId *string `json:"user_id,omitempty"` // User Id + CertificationMetadata *WriteCertification `json:"certification_metadata,omitempty"` // Dynamic writeable type for Certification removes: + // user_name, updated_at Deleted *bool `json:"deleted,omitempty"` // Whether or not a look is 'soft' deleted. Description *string `json:"description,omitempty"` // Description IsRunOnLoad *bool `json:"is_run_on_load,omitempty"` // auto-run query when Look viewed 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 6cd53f05a..afa19fdbe 100644 --- a/kotlin/src/main/com/looker/sdk/4.0/methods.kt +++ b/kotlin/src/main/com/looker/sdk/4.0/methods.kt @@ -6072,6 +6072,7 @@ class LookerSDK(authSession: AuthSession) : APIMethods(authSession) { * @param {Boolean} exclude_empty Whether or not to exclude models with no explores from the response (Defaults to false) * @param {Boolean} exclude_hidden Whether or not to exclude hidden explores from the response (Defaults to false) * @param {Boolean} include_internal Whether or not to include built-in models such as System Activity (Defaults to false) + * @param {Boolean} include_self_service Whether or not to include self service models (Defaults to false) * * GET /lookml_models -> Array */ @@ -6082,6 +6083,7 @@ class LookerSDK(authSession: AuthSession) : APIMethods(authSession) { exclude_empty: Boolean? = null, exclude_hidden: Boolean? = null, include_internal: Boolean? = null, + include_self_service: Boolean? = null, ): SDKResponse { return this.get>( "/lookml_models", @@ -6092,6 +6094,7 @@ class LookerSDK(authSession: AuthSession) : APIMethods(authSession) { "exclude_empty" to exclude_empty, "exclude_hidden" to exclude_hidden, "include_internal" to include_internal, + "include_self_service" to include_self_service, ), ) } 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 5f6acc0ad..f85c0dd60 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 @@ */ /** - * 377 API models: 289 Spec, 0 Request, 64 Write, 24 Enum + * 380 API models: 290 Spec, 0 Request, 65 Write, 25 Enum */ // NOTE: Do not edit this file generated by Looker SDK Codegen for API 4.0 @@ -174,6 +174,7 @@ data class AlertFieldFilter( * @property threshold_value The value of the threshold which triggers the alert notification (read-only) * @property ran_at The time at which the alert query ran (read-only) * @property alert + * @property notification_type The type of notification, 'email' or 'slack' (read-only) */ data class AlertNotifications( var notification_id: String? = null, @@ -184,6 +185,7 @@ data class AlertNotifications( var threshold_value: Double? = null, var ran_at: String? = null, var alert: MobilePayload? = null, + var notification_type: String? = null, ) : Serializable /** @@ -500,6 +502,27 @@ enum class Category : Serializable { dimension, } +/** + * @property certification_status Certification status: "certified" or "revoked" Valid values are: "certified", "revoked". + * @property user_name Display name of user who certified the content, derived from user_id (read-only) + * @property notes Certification notes + * @property updated_at Timestamp of certification (read-only) + */ +data class Certification( + var certification_status: CertificationStatus? = null, + var user_name: String? = null, + var notes: String? = null, + var updated_at: Date? = null, +) : Serializable + +/** + * Certification status: "certified" or "revoked" Valid values are: "certified", "revoked". (Enum defined in Certification) + */ +enum class CertificationStatus : Serializable { + certified, + revoked, +} + /** * @property change_request_number Numeric identifier of the change request (read-only) * @property change_request_url URL of the change request (read-only) @@ -526,29 +549,6 @@ data class CIGitState( var target: String? = null, ) : Serializable -/** - * @property sql_result - * @property sql_error - * @property assert_result - * @property assert_error - * @property content_result - * @property content_error - * @property lookml_result - * @property lookml_error - * @property generic_error - */ -data class CIRunResult( - var sql_result: SqlValidatorResult? = null, - var sql_error: GenericError? = null, - var assert_result: AssertValidatorResult? = null, - var assert_error: GenericError? = null, - var content_result: ContentValidatorResult? = null, - var content_error: GenericError? = null, - var lookml_result: LookMLValidatorResult? = null, - var lookml_error: GenericError? = null, - var generic_error: GenericError? = null, -) : Serializable - /** * @property enabled Whether the CI run schedule is active (read-only) * @property day For scheduled runs, day of the week that the CI run is scheduled (read-only) @@ -770,6 +770,7 @@ data class ContentSearch( * @property group_weighted_score (read-only) * @property suggestion_score (read-only) * @property preferred_viewer The preferred route for viewing this content (ie: dashboards or dashboards-next) (read-only) + * @property certification_metadata */ data class ContentSummary( var can: Map? = null, @@ -791,6 +792,7 @@ data class ContentSummary( var group_weighted_score: Float? = null, var suggestion_score: Float? = null, var preferred_viewer: String? = null, + var certification_metadata: Certification? = null, ) : Serializable /** @@ -1551,6 +1553,7 @@ data class CustomWelcomeEmail( * @property user_id Id of User (read-only) * @property slug Content Metadata Slug * @property preferred_viewer The preferred route for viewing this dashboard (ie: dashboards or dashboards-next) + * @property certification_metadata * @property alert_sync_with_dashboard_filter_enabled Enables alerts to keep in sync with dashboard filter changes * @property background_color Background color * @property created_at Time that the Dashboard was created. (read-only) @@ -1602,6 +1605,7 @@ data class Dashboard( var user_id: String? = null, var slug: String? = null, var preferred_viewer: String? = null, + var certification_metadata: Certification? = null, var alert_sync_with_dashboard_filter_enabled: Boolean? = null, var background_color: String? = null, var created_at: Date? = null, @@ -1682,6 +1686,7 @@ data class DashboardAppearance( * @property user_id Id of User (read-only) * @property slug Content Metadata Slug (read-only) * @property preferred_viewer The preferred route for viewing this dashboard (ie: dashboards or dashboards-next) (read-only) + * @property certification_metadata */ data class DashboardBase( var can: Map? = null, @@ -1700,6 +1705,7 @@ data class DashboardBase( var user_id: String? = null, var slug: String? = null, var preferred_viewer: String? = null, + var certification_metadata: Certification? = null, ) : Serializable /** @@ -1707,6 +1713,7 @@ data class DashboardBase( * @property body_text Text tile body text * @property body_text_as_html Text tile body text as Html (read-only) * @property dashboard_id Id of Dashboard + * @property dashboard_layout_id Id of Dashboard Layout * @property edit_uri Relative path of URI of LookML file to edit the dashboard element (LookML dashboard only). (read-only) * @property id Unique Id (read-only) * @property look @@ -1740,6 +1747,7 @@ data class DashboardElement( var body_text: String? = null, var body_text_as_html: String? = null, var dashboard_id: String? = null, + var dashboard_layout_id: String? = null, var edit_uri: String? = null, var id: String? = null, var look: LookWithQuery? = null, @@ -2584,6 +2592,7 @@ data class Error( * @property client_secret (Write-Only) The OAuth Client Secret for this application * @property tenant_id The OAuth Tenant ID for this application * @property dialect_name The database dialect for this application. + * @property bi_directional_data_access Whether this application supports bi-directional data access. * @property created_at Creation time for this application (read-only) */ data class ExternalOauthApplication( @@ -2594,6 +2603,7 @@ data class ExternalOauthApplication( var client_secret: String? = null, var tenant_id: String? = null, var dialect_name: String? = null, + var bi_directional_data_access: Boolean? = null, var created_at: Date? = null, ) : Serializable @@ -3523,6 +3533,7 @@ data class LocalizationSettings( * @property id Unique Id (read-only) * @property title Look Title * @property user_id User Id + * @property certification_metadata * @property content_favorite_id Content Favorite Id (read-only) * @property created_at Time that the Look was created. (read-only) * @property deleted Whether or not a look is 'soft' deleted. @@ -3556,6 +3567,7 @@ data class Look( var id: String? = null, var title: String? = null, var user_id: String? = null, + var certification_metadata: Certification? = null, var content_favorite_id: String? = null, var created_at: Date? = null, var deleted: Boolean? = null, @@ -3590,6 +3602,7 @@ data class Look( * @property id Unique Id (read-only) * @property title Look Title (read-only) * @property user_id User Id + * @property certification_metadata */ data class LookBasic( var can: Map? = null, @@ -3597,6 +3610,7 @@ data class LookBasic( var id: String? = null, var title: String? = null, var user_id: String? = null, + var certification_metadata: Certification? = null, ) : Serializable /** @@ -3824,6 +3838,8 @@ data class LookmlModelExploreError( * @property week_start_day The name of the starting day of the week. Valid values are: "monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday". (read-only) * @property times_used The number of times this field has been used in queries (read-only) * @property original_view The name of the view this field is defined in. This will be different than "view" when the view has been joined via a different name using the "from" parameter. (read-only) + * @property datatype The data_type for a date in lookml (read-only) + * @property convert_tz Whether time zones should be converted for datetime fields (read-only) */ data class LookmlModelExploreField( var align: Align? = null, @@ -3886,6 +3902,8 @@ data class LookmlModelExploreField( var week_start_day: WeekStartDay? = null, var times_used: Long? = null, var original_view: String? = null, + var datatype: String? = null, + var convert_tz: Boolean? = null, ) : Serializable /** @@ -4149,6 +4167,7 @@ data class LookModel( * @property id Unique Id (read-only) * @property title Look Title * @property user_id User Id + * @property certification_metadata * @property content_favorite_id Content Favorite Id (read-only) * @property created_at Time that the Look was created. (read-only) * @property deleted Whether or not a look is 'soft' deleted. @@ -4183,6 +4202,7 @@ data class LookWithDashboards( var id: String? = null, var title: String? = null, var user_id: String? = null, + var certification_metadata: Certification? = null, var content_favorite_id: String? = null, var created_at: Date? = null, var deleted: Boolean? = null, @@ -4218,6 +4238,7 @@ data class LookWithDashboards( * @property id Unique Id (read-only) * @property title Look Title * @property user_id User Id + * @property certification_metadata * @property content_favorite_id Content Favorite Id (read-only) * @property created_at Time that the Look was created. (read-only) * @property deleted Whether or not a look is 'soft' deleted. @@ -4253,6 +4274,7 @@ data class LookWithQuery( var id: String? = null, var title: String? = null, var user_id: String? = null, + var certification_metadata: Certification? = null, var content_favorite_id: String? = null, var created_at: Date? = null, var deleted: Boolean? = null, @@ -5260,7 +5282,7 @@ data class Run( var status: String? = null, var git_service: String? = null, var git_state: CIGitState? = null, - var result: CIRunResult? = null, + var result: RunResult? = null, var schedule: CIScheduleTrigger? = null, var target_branch: String? = null, var title: String? = null, @@ -5319,6 +5341,29 @@ data class RunningQueries( var sql_interface_sql: String? = null, ) : Serializable +/** + * @property sql_result + * @property sql_error + * @property assert_result + * @property assert_error + * @property content_result + * @property content_error + * @property lookml_result + * @property lookml_error + * @property generic_error + */ +data class RunResult( + var sql_result: SqlValidatorResult? = null, + var sql_error: GenericError? = null, + var assert_result: AssertValidatorResult? = null, + var assert_error: GenericError? = null, + var content_result: ContentValidatorResult? = null, + var content_error: GenericError? = null, + var lookml_result: LookMLValidatorResult? = null, + var lookml_error: GenericError? = null, + var generic_error: GenericError? = null, +) : Serializable + /** * @property can Operations the current user is able to perform on this object (read-only) * @property enabled Enable/Disable Saml authentication for the server @@ -6772,6 +6817,18 @@ data class WriteBoardSection( var title: String? = null, ) : Serializable +/** + * Dynamic writeable type for Certification removes: + * user_name, updated_at + * + * @property certification_status Certification status: "certified" or "revoked" Valid values are: "certified", "revoked". + * @property notes Certification notes + */ +data class WriteCertification( + var certification_status: CertificationStatus? = null, + var notes: String? = null, +) : Serializable + /** * Dynamic writeable type for ColorCollection removes: * id @@ -6908,6 +6965,8 @@ data class WriteCredentialsEmail( * @property title Dashboard Title * @property slug Content Metadata Slug * @property preferred_viewer The preferred route for viewing this dashboard (ie: dashboards or dashboards-next) + * @property certification_metadata Dynamic writeable type for Certification removes: + * user_name, updated_at * @property alert_sync_with_dashboard_filter_enabled Enables alerts to keep in sync with dashboard filter changes * @property background_color Background color * @property crossfilter_enabled Enables crossfiltering in dashboards - only available in dashboards-next (beta) @@ -6935,6 +6994,7 @@ data class WriteDashboard( var title: String? = null, var slug: String? = null, var preferred_viewer: String? = null, + var certification_metadata: WriteCertification? = null, var alert_sync_with_dashboard_filter_enabled: Boolean? = null, var background_color: String? = null, var crossfilter_enabled: Boolean? = null, @@ -6960,9 +7020,12 @@ data class WriteDashboard( * * @property folder Dynamic writeable type for FolderBase removes: * id, content_metadata_id, created_at, creator_id, child_count, external_id, is_embed, is_embed_shared_root, is_embed_users_root, is_personal, is_personal_descendant, is_shared_root, is_users_root, can + * @property certification_metadata Dynamic writeable type for Certification removes: + * user_name, updated_at */ data class WriteDashboardBase( var folder: WriteFolderBase? = null, + var certification_metadata: WriteCertification? = null, ) : Serializable /** @@ -6971,6 +7034,7 @@ data class WriteDashboardBase( * * @property body_text Text tile body text * @property dashboard_id Id of Dashboard + * @property dashboard_layout_id Id of Dashboard Layout * @property look Dynamic writeable type for LookWithQuery removes: * can, content_metadata_id, id, content_favorite_id, created_at, deleted_at, deleter_id, embed_url, excel_file_url, favorite_count, google_spreadsheet_formula, image_embed_url, last_accessed_at, last_updater_id, last_viewed_at, model, public_slug, public_url, short_url, updated_at, user_name, view_count, url * @property look_id Id Of Look @@ -6997,6 +7061,7 @@ data class WriteDashboardBase( data class WriteDashboardElement( var body_text: String? = null, var dashboard_id: String? = null, + var dashboard_layout_id: String? = null, var look: WriteLookWithQuery? = null, var look_id: String? = null, var merge_result_id: String? = null, @@ -7322,6 +7387,7 @@ data class WriteEmbedSecret( * @property client_secret (Write-Only) The OAuth Client Secret for this application * @property tenant_id The OAuth Tenant ID for this application * @property dialect_name The database dialect for this application. + * @property bi_directional_data_access Whether this application supports bi-directional data access. */ data class WriteExternalOauthApplication( var name: String? = null, @@ -7329,6 +7395,7 @@ data class WriteExternalOauthApplication( var client_secret: String? = null, var tenant_id: String? = null, var dialect_name: String? = null, + var bi_directional_data_access: Boolean? = null, ) : Serializable /** @@ -7506,9 +7573,12 @@ data class WriteLegacyFeature( * can, content_metadata_id, id, title * * @property user_id User Id + * @property certification_metadata Dynamic writeable type for Certification removes: + * user_name, updated_at */ data class WriteLookBasic( var user_id: String? = null, + var certification_metadata: WriteCertification? = null, ) : Serializable /** @@ -7533,6 +7603,8 @@ data class WriteLookmlModel( * * @property title Look Title * @property user_id User Id + * @property certification_metadata Dynamic writeable type for Certification removes: + * user_name, updated_at * @property deleted Whether or not a look is 'soft' deleted. * @property description Description * @property is_run_on_load auto-run query when Look viewed @@ -7547,6 +7619,7 @@ data class WriteLookmlModel( data class WriteLookWithQuery( var title: String? = null, var user_id: String? = null, + var certification_metadata: WriteCertification? = null, var deleted: Boolean? = null, var description: String? = null, var is_run_on_load: Boolean? = null, 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 9f7047542..b469ec91e 100644 --- a/kotlin/src/main/com/looker/sdk/4.0/streams.kt +++ b/kotlin/src/main/com/looker/sdk/4.0/streams.kt @@ -6070,6 +6070,7 @@ class LookerSDKStream(authSession: AuthSession) : APIMethods(authSession) { * @param {Boolean} exclude_empty Whether or not to exclude models with no explores from the response (Defaults to false) * @param {Boolean} exclude_hidden Whether or not to exclude hidden explores from the response (Defaults to false) * @param {Boolean} include_internal Whether or not to include built-in models such as System Activity (Defaults to false) + * @param {Boolean} include_self_service Whether or not to include self service models (Defaults to false) * * GET /lookml_models -> ByteArray */ @@ -6080,6 +6081,7 @@ class LookerSDKStream(authSession: AuthSession) : APIMethods(authSession) { exclude_empty: Boolean? = null, exclude_hidden: Boolean? = null, include_internal: Boolean? = null, + include_self_service: Boolean? = null, ): SDKResponse { return this.get( "/lookml_models", @@ -6090,6 +6092,7 @@ class LookerSDKStream(authSession: AuthSession) : APIMethods(authSession) { "exclude_empty" to exclude_empty, "exclude_hidden" to exclude_hidden, "include_internal" to include_internal, + "include_self_service" to include_self_service, ), ) } diff --git a/kotlin/src/main/com/looker/sdk/Constants.kt b/kotlin/src/main/com/looker/sdk/Constants.kt index 8e064f6ee..95b4b041f 100644 --- a/kotlin/src/main/com/looker/sdk/Constants.kt +++ b/kotlin/src/main/com/looker/sdk/Constants.kt @@ -28,7 +28,7 @@ package com.looker.sdk const val ENVIRONMENT_PREFIX = "LOOKERSDK" const val SDK_TAG = "KT-SDK" -const val LOOKER_VERSION = "25.18" +const val LOOKER_VERSION = "25.20" 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 d3f73fbfa..bd27795a4 100644 --- a/packages/sdk/src/4.0/funcs.ts +++ b/packages/sdk/src/4.0/funcs.ts @@ -8087,6 +8087,7 @@ export const all_lookml_models = async ( exclude_empty: request.exclude_empty, exclude_hidden: request.exclude_hidden, include_internal: request.include_internal, + include_self_service: request.include_self_service, }, null, options diff --git a/packages/sdk/src/4.0/methods.ts b/packages/sdk/src/4.0/methods.ts index 343882fcc..0a819e297 100644 --- a/packages/sdk/src/4.0/methods.ts +++ b/packages/sdk/src/4.0/methods.ts @@ -7599,6 +7599,7 @@ export class Looker40SDK extends APIMethods implements ILooker40SDK { exclude_empty: request.exclude_empty, exclude_hidden: request.exclude_hidden, include_internal: request.include_internal, + include_self_service: request.include_self_service, }, null, options diff --git a/packages/sdk/src/4.0/models.ts b/packages/sdk/src/4.0/models.ts index f1b04e196..786e02c3e 100644 --- a/packages/sdk/src/4.0/models.ts +++ b/packages/sdk/src/4.0/models.ts @@ -25,7 +25,7 @@ */ /** - * 450 API models: 289 Spec, 73 Request, 64 Write, 24 Enum + * 453 API models: 290 Spec, 73 Request, 65 Write, 25 Enum */ import type { IDictionary, DelimArray } from '@looker/sdk-rtl'; @@ -267,6 +267,10 @@ export interface IAlertNotifications { */ ran_at?: string; alert?: IMobilePayload; + /** + * The type of notification, 'email' or 'slack' (read-only) + */ + notification_type?: string | null; } export interface IAlertPatch { @@ -758,6 +762,33 @@ export enum Category { dimension = 'dimension', } +export interface ICertification { + /** + * Certification status: "certified" or "revoked" Valid values are: "certified", "revoked". + */ + certification_status?: CertificationStatus; + /** + * Display name of user who certified the content, derived from user_id (read-only) + */ + user_name?: string | null; + /** + * Certification notes + */ + notes?: string | null; + /** + * Timestamp of certification (read-only) + */ + updated_at?: Date; +} + +/** + * Certification status: "certified" or "revoked" Valid values are: "certified", "revoked". (Enum defined in Certification) + */ +export enum CertificationStatus { + certified = 'certified', + revoked = 'revoked', +} + export interface ICIChangeRequest { /** * Numeric identifier of the change request (read-only) @@ -796,18 +827,6 @@ export interface ICIGitState { target?: string | null; } -export interface ICIRunResult { - sql_result?: ISqlValidatorResult; - sql_error?: IGenericError; - assert_result?: IAssertValidatorResult; - assert_error?: IGenericError; - content_result?: IContentValidatorResult; - content_error?: IGenericError; - lookml_result?: ILookMLValidatorResult; - lookml_error?: IGenericError; - generic_error?: IGenericError; -} - export interface ICIScheduleTrigger { /** * Whether the CI run schedule is active (read-only) @@ -1200,6 +1219,7 @@ export interface IContentSummary { * The preferred route for viewing this content (ie: dashboards or dashboards-next) (read-only) */ preferred_viewer?: string | null; + certification_metadata?: ICertification; } export interface IContentValidation { @@ -2397,6 +2417,7 @@ export interface IDashboard { * The preferred route for viewing this dashboard (ie: dashboards or dashboards-next) */ preferred_viewer?: string | null; + certification_metadata?: ICertification; /** * Enables alerts to keep in sync with dashboard filter changes */ @@ -2629,6 +2650,7 @@ export interface IDashboardBase { * The preferred route for viewing this dashboard (ie: dashboards or dashboards-next) (read-only) */ preferred_viewer?: string | null; + certification_metadata?: ICertification; } export interface IDashboardElement { @@ -2648,6 +2670,10 @@ export interface IDashboardElement { * Id of Dashboard */ dashboard_id?: string | null; + /** + * Id of Dashboard Layout + */ + dashboard_layout_id?: string | null; /** * Relative path of URI of LookML file to edit the dashboard element (LookML dashboard only). (read-only) */ @@ -4103,6 +4129,10 @@ export interface IExternalOauthApplication { * The database dialect for this application. */ dialect_name?: string | null; + /** + * Whether this application supports bi-directional data access. + */ + bi_directional_data_access?: boolean | null; /** * Creation time for this application (read-only) */ @@ -5630,6 +5660,7 @@ export interface ILook { * User Id */ user_id?: string | null; + certification_metadata?: ICertification; /** * Content Favorite Id (read-only) */ @@ -5751,6 +5782,7 @@ export interface ILookBasic { * User Id */ user_id?: string | null; + certification_metadata?: ICertification; } export interface ILookmlFieldLink { @@ -6254,6 +6286,14 @@ export interface ILookmlModelExploreField { * The name of the view this field is defined in. This will be different than "view" when the view has been joined via a different name using the "from" parameter. (read-only) */ original_view?: string; + /** + * The data_type for a date in lookml (read-only) + */ + datatype?: string | null; + /** + * Whether time zones should be converted for datetime fields (read-only) + */ + convert_tz?: boolean | null; } export interface ILookmlModelExploreFieldEnumeration { @@ -6662,6 +6702,7 @@ export interface ILookWithDashboards { * User Id */ user_id?: string | null; + certification_metadata?: ICertification; /** * Content Favorite Id (read-only) */ @@ -6787,6 +6828,7 @@ export interface ILookWithQuery { * User Id */ user_id?: string | null; + certification_metadata?: ICertification; /** * Content Favorite Id (read-only) */ @@ -8430,6 +8472,10 @@ export interface IRequestAllLookmlModels { * Whether or not to include built-in models such as System Activity (Defaults to false) */ include_internal?: boolean | null; + /** + * Whether or not to include self service models (Defaults to false) + */ + include_self_service?: boolean | null; } /** @@ -10961,7 +11007,7 @@ export interface IRun { */ git_service?: string | null; git_state?: ICIGitState; - result?: ICIRunResult; + result?: IRunResult; schedule?: ICIScheduleTrigger; /** * Git branch that the CI run compares against during validation, used for incremental runs (read-only) @@ -11065,6 +11111,18 @@ export interface IRunningQueries { sql_interface_sql?: string | null; } +export interface IRunResult { + sql_result?: ISqlValidatorResult; + sql_error?: IGenericError; + assert_result?: IAssertValidatorResult; + assert_error?: IGenericError; + content_result?: IContentValidatorResult; + content_error?: IGenericError; + lookml_result?: ILookMLValidatorResult; + lookml_error?: IGenericError; + generic_error?: IGenericError; +} + export interface ISamlConfig { /** * Operations the current user is able to perform on this object (read-only) @@ -13379,6 +13437,21 @@ export interface IWriteBoardSection { title?: string | null; } +/** + * Dynamic writeable type for Certification removes: + * user_name, updated_at + */ +export interface IWriteCertification { + /** + * Certification status: "certified" or "revoked" Valid values are: "certified", "revoked". + */ + certification_status?: CertificationStatus | null; + /** + * Certification notes + */ + notes?: string | null; +} + /** * Dynamic writeable type for ColorCollection removes: * id @@ -13597,6 +13670,11 @@ export interface IWriteDashboard { * The preferred route for viewing this dashboard (ie: dashboards or dashboards-next) */ preferred_viewer?: string | null; + /** + * Dynamic writeable type for Certification removes: + * user_name, updated_at + */ + certification_metadata?: IWriteCertification | null; /** * Enables alerts to keep in sync with dashboard filter changes */ @@ -13674,6 +13752,11 @@ export interface IWriteDashboardBase { * id, content_metadata_id, created_at, creator_id, child_count, external_id, is_embed, is_embed_shared_root, is_embed_users_root, is_personal, is_personal_descendant, is_shared_root, is_users_root, can */ folder?: IWriteFolderBase | null; + /** + * Dynamic writeable type for Certification removes: + * user_name, updated_at + */ + certification_metadata?: IWriteCertification | null; } /** @@ -13689,6 +13772,10 @@ export interface IWriteDashboardElement { * Id of Dashboard */ dashboard_id?: string | null; + /** + * Id of Dashboard Layout + */ + dashboard_layout_id?: string | null; /** * Dynamic writeable type for LookWithQuery removes: * can, content_metadata_id, id, content_favorite_id, created_at, deleted_at, deleter_id, embed_url, excel_file_url, favorite_count, google_spreadsheet_formula, image_embed_url, last_accessed_at, last_updater_id, last_viewed_at, model, public_slug, public_url, short_url, updated_at, user_name, view_count, url @@ -14303,6 +14390,10 @@ export interface IWriteExternalOauthApplication { * The database dialect for this application. */ dialect_name?: string | null; + /** + * Whether this application supports bi-directional data access. + */ + bi_directional_data_access?: boolean | null; } /** @@ -14573,6 +14664,11 @@ export interface IWriteLookBasic { * User Id */ user_id?: string | null; + /** + * Dynamic writeable type for Certification removes: + * user_name, updated_at + */ + certification_metadata?: IWriteCertification | null; } /** @@ -14611,6 +14707,11 @@ export interface IWriteLookWithQuery { * User Id */ user_id?: string | null; + /** + * Dynamic writeable type for Certification removes: + * user_name, updated_at + */ + certification_metadata?: IWriteCertification | null; /** * Whether or not a look is 'soft' deleted. */ diff --git a/packages/sdk/src/4.0/streams.ts b/packages/sdk/src/4.0/streams.ts index ceaa959cb..ce9577b37 100644 --- a/packages/sdk/src/4.0/streams.ts +++ b/packages/sdk/src/4.0/streams.ts @@ -8681,6 +8681,7 @@ export class Looker40SDKStream extends APIMethods { exclude_empty: request.exclude_empty, exclude_hidden: request.exclude_hidden, include_internal: request.include_internal, + include_self_service: request.include_self_service, }, null, options diff --git a/packages/sdk/src/constants.ts b/packages/sdk/src/constants.ts index db3404e3c..5b139eb0e 100644 --- a/packages/sdk/src/constants.ts +++ b/packages/sdk/src/constants.ts @@ -24,5 +24,5 @@ */ -export const sdkVersion = '25.18'; +export const sdkVersion = '25.20'; export const environmentPrefix = 'LOOKERSDK'; diff --git a/python/looker_sdk/sdk/api40/methods.py b/python/looker_sdk/sdk/api40/methods.py index 54045dbea..e2e2402f0 100644 --- a/python/looker_sdk/sdk/api40/methods.py +++ b/python/looker_sdk/sdk/api40/methods.py @@ -7637,6 +7637,8 @@ def all_lookml_models( exclude_hidden: Optional[bool] = None, # Whether or not to include built-in models such as System Activity (Defaults to false) include_internal: Optional[bool] = None, + # Whether or not to include self service models (Defaults to false) + include_self_service: Optional[bool] = None, transport_options: Optional[transport.TransportOptions] = None, ) -> Sequence[mdls.LookmlModel]: """Get All LookML Models""" @@ -7652,6 +7654,7 @@ def all_lookml_models( "exclude_empty": exclude_empty, "exclude_hidden": exclude_hidden, "include_internal": include_internal, + "include_self_service": include_self_service, }, transport_options=transport_options, ), diff --git a/python/looker_sdk/sdk/api40/models.py b/python/looker_sdk/sdk/api40/models.py index e40d9722d..b15cc7699 100644 --- a/python/looker_sdk/sdk/api40/models.py +++ b/python/looker_sdk/sdk/api40/models.py @@ -21,7 +21,7 @@ # SOFTWARE. # -# 377 API models: 289 Spec, 0 Request, 64 Write, 24 Enum +# 380 API models: 290 Spec, 0 Request, 65 Write, 25 Enum # NOTE: Do not edit this file generated by Looker SDK Codegen for API 4.0 @@ -367,6 +367,7 @@ class AlertNotifications(model.Model): threshold_value: The value of the threshold which triggers the alert notification ran_at: The time at which the alert query ran alert: + notification_type: The type of notification, 'email' or 'slack' """ notification_id: Optional[str] = None @@ -377,6 +378,7 @@ class AlertNotifications(model.Model): threshold_value: Optional[float] = None ran_at: Optional[str] = None alert: Optional["MobilePayload"] = None + notification_type: Optional[str] = None def __init__( self, @@ -388,7 +390,8 @@ def __init__( field_value: Optional[float] = None, threshold_value: Optional[float] = None, ran_at: Optional[str] = None, - alert: Optional["MobilePayload"] = None + alert: Optional["MobilePayload"] = None, + notification_type: Optional[str] = None ): self.notification_id = notification_id self.alert_condition_id = alert_condition_id @@ -398,6 +401,7 @@ def __init__( self.threshold_value = threshold_value self.ran_at = ran_at self.alert = alert + self.notification_type = notification_type @attr.s(auto_attribs=True, init=False) @@ -1062,6 +1066,50 @@ class Category(enum.Enum): Category.__new__ = model.safe_enum__new__ # type: ignore +@attr.s(auto_attribs=True, init=False) +class Certification(model.Model): + """ + Attributes: + certification_status: Certification status: "certified" or "revoked" Valid values are: "certified", "revoked". + user_name: Display name of user who certified the content, derived from user_id + notes: Certification notes + updated_at: Timestamp of certification + """ + + certification_status: Optional["CertificationStatus"] = None + user_name: Optional[str] = None + notes: Optional[str] = None + updated_at: Optional[datetime.datetime] = None + + def __init__( + self, + *, + certification_status: Optional["CertificationStatus"] = None, + user_name: Optional[str] = None, + notes: Optional[str] = None, + updated_at: Optional[datetime.datetime] = None + ): + self.certification_status = certification_status + self.user_name = user_name + self.notes = notes + self.updated_at = updated_at + + +class CertificationStatus(enum.Enum): + """ + Certification status: "certified" or "revoked" Valid values are: "certified", "revoked". (Enum defined in Certification) + + """ + + certified = "certified" + revoked = "revoked" + invalid_api_enum_value = "invalid_api_enum_value" + + +# https://github.com/python/mypy/issues/2427 +CertificationStatus.__new__ = model.safe_enum__new__ # type: ignore + + @attr.s(auto_attribs=True, init=False) class CIChangeRequest(model.Model): """ @@ -1120,55 +1168,6 @@ def __init__( self.target = target -@attr.s(auto_attribs=True, init=False) -class CIRunResult(model.Model): - """ - Attributes: - sql_result: - sql_error: - assert_result: - assert_error: - content_result: - content_error: - lookml_result: - lookml_error: - generic_error: - """ - - sql_result: Optional["SqlValidatorResult"] = None - sql_error: Optional["GenericError"] = None - assert_result: Optional["AssertValidatorResult"] = None - assert_error: Optional["GenericError"] = None - content_result: Optional["ContentValidatorResult"] = None - content_error: Optional["GenericError"] = None - lookml_result: Optional["LookMLValidatorResult"] = None - lookml_error: Optional["GenericError"] = None - generic_error: Optional["GenericError"] = None - - def __init__( - self, - *, - sql_result: Optional["SqlValidatorResult"] = None, - sql_error: Optional["GenericError"] = None, - assert_result: Optional["AssertValidatorResult"] = None, - assert_error: Optional["GenericError"] = None, - content_result: Optional["ContentValidatorResult"] = None, - content_error: Optional["GenericError"] = None, - lookml_result: Optional["LookMLValidatorResult"] = None, - lookml_error: Optional["GenericError"] = None, - generic_error: Optional["GenericError"] = None - ): - self.sql_result = sql_result - self.sql_error = sql_error - self.assert_result = assert_result - self.assert_error = assert_error - self.content_result = content_result - self.content_error = content_error - self.lookml_result = lookml_result - self.lookml_error = lookml_error - self.generic_error = generic_error - - @attr.s(auto_attribs=True, init=False) class CIScheduleTrigger(model.Model): """ @@ -1607,6 +1606,7 @@ class ContentSummary(model.Model): group_weighted_score: suggestion_score: preferred_viewer: The preferred route for viewing this content (ie: dashboards or dashboards-next) + certification_metadata: """ can: Optional[MutableMapping[str, bool]] = None @@ -1628,6 +1628,7 @@ class ContentSummary(model.Model): group_weighted_score: Optional[float] = None suggestion_score: Optional[float] = None preferred_viewer: Optional[str] = None + certification_metadata: Optional["Certification"] = None def __init__( self, @@ -1650,7 +1651,8 @@ def __init__( weighted_score: Optional[float] = None, group_weighted_score: Optional[float] = None, suggestion_score: Optional[float] = None, - preferred_viewer: Optional[str] = None + preferred_viewer: Optional[str] = None, + certification_metadata: Optional["Certification"] = None ): self.can = can self.id = id @@ -1671,6 +1673,7 @@ def __init__( self.group_weighted_score = group_weighted_score self.suggestion_score = suggestion_score self.preferred_viewer = preferred_viewer + self.certification_metadata = certification_metadata @attr.s(auto_attribs=True, init=False) @@ -3274,6 +3277,7 @@ class Dashboard(model.Model): user_id: Id of User slug: Content Metadata Slug preferred_viewer: The preferred route for viewing this dashboard (ie: dashboards or dashboards-next) + certification_metadata: alert_sync_with_dashboard_filter_enabled: Enables alerts to keep in sync with dashboard filter changes background_color: Background color created_at: Time that the Dashboard was created. @@ -3325,6 +3329,7 @@ class Dashboard(model.Model): user_id: Optional[str] = None slug: Optional[str] = None preferred_viewer: Optional[str] = None + certification_metadata: Optional["Certification"] = None alert_sync_with_dashboard_filter_enabled: Optional[bool] = None background_color: Optional[str] = None created_at: Optional[datetime.datetime] = None @@ -3378,6 +3383,7 @@ def __init__( user_id: Optional[str] = None, slug: Optional[str] = None, preferred_viewer: Optional[str] = None, + certification_metadata: Optional["Certification"] = None, alert_sync_with_dashboard_filter_enabled: Optional[bool] = None, background_color: Optional[str] = None, created_at: Optional[datetime.datetime] = None, @@ -3428,6 +3434,7 @@ def __init__( self.user_id = user_id self.slug = slug self.preferred_viewer = preferred_viewer + self.certification_metadata = certification_metadata self.alert_sync_with_dashboard_filter_enabled = ( alert_sync_with_dashboard_filter_enabled ) @@ -3547,6 +3554,7 @@ class DashboardBase(model.Model): user_id: Id of User slug: Content Metadata Slug preferred_viewer: The preferred route for viewing this dashboard (ie: dashboards or dashboards-next) + certification_metadata: """ can: Optional[MutableMapping[str, bool]] = None @@ -3565,6 +3573,7 @@ class DashboardBase(model.Model): user_id: Optional[str] = None slug: Optional[str] = None preferred_viewer: Optional[str] = None + certification_metadata: Optional["Certification"] = None def __init__( self, @@ -3584,7 +3593,8 @@ def __init__( title: Optional[str] = None, user_id: Optional[str] = None, slug: Optional[str] = None, - preferred_viewer: Optional[str] = None + preferred_viewer: Optional[str] = None, + certification_metadata: Optional["Certification"] = None ): self.can = can self.content_favorite_id = content_favorite_id @@ -3602,6 +3612,7 @@ def __init__( self.user_id = user_id self.slug = slug self.preferred_viewer = preferred_viewer + self.certification_metadata = certification_metadata @attr.s(auto_attribs=True, init=False) @@ -3612,6 +3623,7 @@ class DashboardElement(model.Model): body_text: Text tile body text body_text_as_html: Text tile body text as Html dashboard_id: Id of Dashboard + dashboard_layout_id: Id of Dashboard Layout edit_uri: Relative path of URI of LookML file to edit the dashboard element (LookML dashboard only). id: Unique Id look: @@ -3645,6 +3657,7 @@ class DashboardElement(model.Model): body_text: Optional[str] = None body_text_as_html: Optional[str] = None dashboard_id: Optional[str] = None + dashboard_layout_id: Optional[str] = None edit_uri: Optional[str] = None id: Optional[str] = None look: Optional["LookWithQuery"] = None @@ -3680,6 +3693,7 @@ def __init__( body_text: Optional[str] = None, body_text_as_html: Optional[str] = None, dashboard_id: Optional[str] = None, + dashboard_layout_id: Optional[str] = None, edit_uri: Optional[str] = None, id: Optional[str] = None, look: Optional["LookWithQuery"] = None, @@ -3712,6 +3726,7 @@ def __init__( self.body_text = body_text self.body_text_as_html = body_text_as_html self.dashboard_id = dashboard_id + self.dashboard_layout_id = dashboard_layout_id self.edit_uri = edit_uri self.id = id self.look = look @@ -5436,6 +5451,7 @@ class ExternalOauthApplication(model.Model): client_secret: (Write-Only) The OAuth Client Secret for this application tenant_id: The OAuth Tenant ID for this application dialect_name: The database dialect for this application. + bi_directional_data_access: Whether this application supports bi-directional data access. created_at: Creation time for this application """ @@ -5446,6 +5462,7 @@ class ExternalOauthApplication(model.Model): client_secret: Optional[str] = None tenant_id: Optional[str] = None dialect_name: Optional[str] = None + bi_directional_data_access: Optional[bool] = None created_at: Optional[datetime.datetime] = None def __init__( @@ -5458,6 +5475,7 @@ def __init__( client_secret: Optional[str] = None, tenant_id: Optional[str] = None, dialect_name: Optional[str] = None, + bi_directional_data_access: Optional[bool] = None, created_at: Optional[datetime.datetime] = None ): self.can = can @@ -5467,6 +5485,7 @@ def __init__( self.client_secret = client_secret self.tenant_id = tenant_id self.dialect_name = dialect_name + self.bi_directional_data_access = bi_directional_data_access self.created_at = created_at @@ -7431,6 +7450,7 @@ class Look(model.Model): id: Unique Id title: Look Title user_id: User Id + certification_metadata: content_favorite_id: Content Favorite Id created_at: Time that the Look was created. deleted: Whether or not a look is 'soft' deleted. @@ -7464,6 +7484,7 @@ class Look(model.Model): id: Optional[str] = None title: Optional[str] = None user_id: Optional[str] = None + certification_metadata: Optional["Certification"] = None content_favorite_id: Optional[str] = None created_at: Optional[datetime.datetime] = None deleted: Optional[bool] = None @@ -7499,6 +7520,7 @@ def __init__( id: Optional[str] = None, title: Optional[str] = None, user_id: Optional[str] = None, + certification_metadata: Optional["Certification"] = None, content_favorite_id: Optional[str] = None, created_at: Optional[datetime.datetime] = None, deleted: Optional[bool] = None, @@ -7531,6 +7553,7 @@ def __init__( self.id = id self.title = title self.user_id = user_id + self.certification_metadata = certification_metadata self.content_favorite_id = content_favorite_id self.created_at = created_at self.deleted = deleted @@ -7568,6 +7591,7 @@ class LookBasic(model.Model): id: Unique Id title: Look Title user_id: User Id + certification_metadata: """ can: Optional[MutableMapping[str, bool]] = None @@ -7575,6 +7599,7 @@ class LookBasic(model.Model): id: Optional[str] = None title: Optional[str] = None user_id: Optional[str] = None + certification_metadata: Optional["Certification"] = None def __init__( self, @@ -7583,13 +7608,15 @@ def __init__( content_metadata_id: Optional[str] = None, id: Optional[str] = None, title: Optional[str] = None, - user_id: Optional[str] = None + user_id: Optional[str] = None, + certification_metadata: Optional["Certification"] = None ): self.can = can self.content_metadata_id = content_metadata_id self.id = id self.title = title self.user_id = user_id + self.certification_metadata = certification_metadata @attr.s(auto_attribs=True, init=False) @@ -7998,6 +8025,8 @@ class LookmlModelExploreField(model.Model): week_start_day: The name of the starting day of the week. Valid values are: "monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday". times_used: The number of times this field has been used in queries original_view: The name of the view this field is defined in. This will be different than "view" when the view has been joined via a different name using the "from" parameter. + datatype: The data_type for a date in lookml + convert_tz: Whether time zones should be converted for datetime fields """ align: Optional["Align"] = None @@ -8062,6 +8091,8 @@ class LookmlModelExploreField(model.Model): week_start_day: Optional["WeekStartDay"] = None times_used: Optional[int] = None original_view: Optional[str] = None + datatype: Optional[str] = None + convert_tz: Optional[bool] = None def __init__( self, @@ -8129,7 +8160,9 @@ def __init__( dynamic: Optional[bool] = None, week_start_day: Optional["WeekStartDay"] = None, times_used: Optional[int] = None, - original_view: Optional[str] = None + original_view: Optional[str] = None, + datatype: Optional[str] = None, + convert_tz: Optional[bool] = None ): self.align = align self.can_filter = can_filter @@ -8191,6 +8224,8 @@ def __init__( self.week_start_day = week_start_day self.times_used = times_used self.original_view = original_view + self.datatype = datatype + self.convert_tz = convert_tz @attr.s(auto_attribs=True, init=False) @@ -8735,6 +8770,7 @@ class LookWithDashboards(model.Model): id: Unique Id title: Look Title user_id: User Id + certification_metadata: content_favorite_id: Content Favorite Id created_at: Time that the Look was created. deleted: Whether or not a look is 'soft' deleted. @@ -8769,6 +8805,7 @@ class LookWithDashboards(model.Model): id: Optional[str] = None title: Optional[str] = None user_id: Optional[str] = None + certification_metadata: Optional["Certification"] = None content_favorite_id: Optional[str] = None created_at: Optional[datetime.datetime] = None deleted: Optional[bool] = None @@ -8805,6 +8842,7 @@ def __init__( id: Optional[str] = None, title: Optional[str] = None, user_id: Optional[str] = None, + certification_metadata: Optional["Certification"] = None, content_favorite_id: Optional[str] = None, created_at: Optional[datetime.datetime] = None, deleted: Optional[bool] = None, @@ -8838,6 +8876,7 @@ def __init__( self.id = id self.title = title self.user_id = user_id + self.certification_metadata = certification_metadata self.content_favorite_id = content_favorite_id self.created_at = created_at self.deleted = deleted @@ -8876,6 +8915,7 @@ class LookWithQuery(model.Model): id: Unique Id title: Look Title user_id: User Id + certification_metadata: content_favorite_id: Content Favorite Id created_at: Time that the Look was created. deleted: Whether or not a look is 'soft' deleted. @@ -8911,6 +8951,7 @@ class LookWithQuery(model.Model): id: Optional[str] = None title: Optional[str] = None user_id: Optional[str] = None + certification_metadata: Optional["Certification"] = None content_favorite_id: Optional[str] = None created_at: Optional[datetime.datetime] = None deleted: Optional[bool] = None @@ -8948,6 +8989,7 @@ def __init__( id: Optional[str] = None, title: Optional[str] = None, user_id: Optional[str] = None, + certification_metadata: Optional["Certification"] = None, content_favorite_id: Optional[str] = None, created_at: Optional[datetime.datetime] = None, deleted: Optional[bool] = None, @@ -8982,6 +9024,7 @@ def __init__( self.id = id self.title = title self.user_id = user_id + self.certification_metadata = certification_metadata self.content_favorite_id = content_favorite_id self.created_at = created_at self.deleted = deleted @@ -11031,7 +11074,7 @@ class Run(model.Model): status: Optional[str] = None git_service: Optional[str] = None git_state: Optional["CIGitState"] = None - result: Optional["CIRunResult"] = None + result: Optional["RunResult"] = None schedule: Optional["CIScheduleTrigger"] = None target_branch: Optional[str] = None title: Optional[str] = None @@ -11051,7 +11094,7 @@ def __init__( status: Optional[str] = None, git_service: Optional[str] = None, git_state: Optional["CIGitState"] = None, - result: Optional["CIRunResult"] = None, + result: Optional["RunResult"] = None, schedule: Optional["CIScheduleTrigger"] = None, target_branch: Optional[str] = None, title: Optional[str] = None, @@ -11179,6 +11222,55 @@ def __init__( self.sql_interface_sql = sql_interface_sql +@attr.s(auto_attribs=True, init=False) +class RunResult(model.Model): + """ + Attributes: + sql_result: + sql_error: + assert_result: + assert_error: + content_result: + content_error: + lookml_result: + lookml_error: + generic_error: + """ + + sql_result: Optional["SqlValidatorResult"] = None + sql_error: Optional["GenericError"] = None + assert_result: Optional["AssertValidatorResult"] = None + assert_error: Optional["GenericError"] = None + content_result: Optional["ContentValidatorResult"] = None + content_error: Optional["GenericError"] = None + lookml_result: Optional["LookMLValidatorResult"] = None + lookml_error: Optional["GenericError"] = None + generic_error: Optional["GenericError"] = None + + def __init__( + self, + *, + sql_result: Optional["SqlValidatorResult"] = None, + sql_error: Optional["GenericError"] = None, + assert_result: Optional["AssertValidatorResult"] = None, + assert_error: Optional["GenericError"] = None, + content_result: Optional["ContentValidatorResult"] = None, + content_error: Optional["GenericError"] = None, + lookml_result: Optional["LookMLValidatorResult"] = None, + lookml_error: Optional["GenericError"] = None, + generic_error: Optional["GenericError"] = None + ): + self.sql_result = sql_result + self.sql_error = sql_error + self.assert_result = assert_result + self.assert_error = assert_error + self.content_result = content_result + self.content_error = content_error + self.lookml_result = lookml_result + self.lookml_error = lookml_error + self.generic_error = generic_error + + @attr.s(auto_attribs=True, init=False) class SamlConfig(model.Model): """ @@ -14208,6 +14300,30 @@ def __init__( self.title = title +@attr.s(auto_attribs=True, init=False) +class WriteCertification(model.Model): + """ + Dynamic writeable type for Certification removes: + user_name, updated_at + + Attributes: + certification_status: Certification status: "certified" or "revoked" Valid values are: "certified", "revoked". + notes: Certification notes + """ + + certification_status: Optional["CertificationStatus"] = None + notes: Optional[str] = None + + def __init__( + self, + *, + certification_status: Optional["CertificationStatus"] = None, + notes: Optional[str] = None + ): + self.certification_status = certification_status + self.notes = notes + + @attr.s(auto_attribs=True, init=False) class WriteColorCollection(model.Model): """ @@ -14467,6 +14583,8 @@ class WriteDashboard(model.Model): title: Dashboard Title slug: Content Metadata Slug preferred_viewer: The preferred route for viewing this dashboard (ie: dashboards or dashboards-next) + certification_metadata: Dynamic writeable type for Certification removes: + user_name, updated_at alert_sync_with_dashboard_filter_enabled: Enables alerts to keep in sync with dashboard filter changes background_color: Background color crossfilter_enabled: Enables crossfiltering in dashboards - only available in dashboards-next (beta) @@ -14494,6 +14612,7 @@ class WriteDashboard(model.Model): title: Optional[str] = None slug: Optional[str] = None preferred_viewer: Optional[str] = None + certification_metadata: Optional["WriteCertification"] = None alert_sync_with_dashboard_filter_enabled: Optional[bool] = None background_color: Optional[str] = None crossfilter_enabled: Optional[bool] = None @@ -14523,6 +14642,7 @@ def __init__( title: Optional[str] = None, slug: Optional[str] = None, preferred_viewer: Optional[str] = None, + certification_metadata: Optional["WriteCertification"] = None, alert_sync_with_dashboard_filter_enabled: Optional[bool] = None, background_color: Optional[str] = None, crossfilter_enabled: Optional[bool] = None, @@ -14549,6 +14669,7 @@ def __init__( self.title = title self.slug = slug self.preferred_viewer = preferred_viewer + self.certification_metadata = certification_metadata self.alert_sync_with_dashboard_filter_enabled = ( alert_sync_with_dashboard_filter_enabled ) @@ -14579,12 +14700,21 @@ class WriteDashboardBase(model.Model): Attributes: folder: Dynamic writeable type for FolderBase removes: id, content_metadata_id, created_at, creator_id, child_count, external_id, is_embed, is_embed_shared_root, is_embed_users_root, is_personal, is_personal_descendant, is_shared_root, is_users_root, can + certification_metadata: Dynamic writeable type for Certification removes: + user_name, updated_at """ folder: Optional["WriteFolderBase"] = None + certification_metadata: Optional["WriteCertification"] = None - def __init__(self, *, folder: Optional["WriteFolderBase"] = None): + def __init__( + self, + *, + folder: Optional["WriteFolderBase"] = None, + certification_metadata: Optional["WriteCertification"] = None + ): self.folder = folder + self.certification_metadata = certification_metadata @attr.s(auto_attribs=True, init=False) @@ -14596,6 +14726,7 @@ class WriteDashboardElement(model.Model): Attributes: body_text: Text tile body text dashboard_id: Id of Dashboard + dashboard_layout_id: Id of Dashboard Layout look: Dynamic writeable type for LookWithQuery removes: can, content_metadata_id, id, content_favorite_id, created_at, deleted_at, deleter_id, embed_url, excel_file_url, favorite_count, google_spreadsheet_formula, image_embed_url, last_accessed_at, last_updater_id, last_viewed_at, model, public_slug, public_url, short_url, updated_at, user_name, view_count, url look_id: Id Of Look @@ -14622,6 +14753,7 @@ class WriteDashboardElement(model.Model): body_text: Optional[str] = None dashboard_id: Optional[str] = None + dashboard_layout_id: Optional[str] = None look: Optional["WriteLookWithQuery"] = None look_id: Optional[str] = None merge_result_id: Optional[str] = None @@ -14647,6 +14779,7 @@ def __init__( *, body_text: Optional[str] = None, dashboard_id: Optional[str] = None, + dashboard_layout_id: Optional[str] = None, look: Optional["WriteLookWithQuery"] = None, look_id: Optional[str] = None, merge_result_id: Optional[str] = None, @@ -14671,6 +14804,7 @@ def __init__( ): self.body_text = body_text self.dashboard_id = dashboard_id + self.dashboard_layout_id = dashboard_layout_id self.look = look self.look_id = look_id self.merge_result_id = merge_result_id @@ -15287,6 +15421,7 @@ class WriteExternalOauthApplication(model.Model): client_secret: (Write-Only) The OAuth Client Secret for this application tenant_id: The OAuth Tenant ID for this application dialect_name: The database dialect for this application. + bi_directional_data_access: Whether this application supports bi-directional data access. """ name: Optional[str] = None @@ -15294,6 +15429,7 @@ class WriteExternalOauthApplication(model.Model): client_secret: Optional[str] = None tenant_id: Optional[str] = None dialect_name: Optional[str] = None + bi_directional_data_access: Optional[bool] = None def __init__( self, @@ -15302,13 +15438,15 @@ def __init__( client_id: Optional[str] = None, client_secret: Optional[str] = None, tenant_id: Optional[str] = None, - dialect_name: Optional[str] = None + dialect_name: Optional[str] = None, + bi_directional_data_access: Optional[bool] = None ): self.name = name self.client_id = client_id self.client_secret = client_secret self.tenant_id = tenant_id self.dialect_name = dialect_name + self.bi_directional_data_access = bi_directional_data_access @attr.s(auto_attribs=True, init=False) @@ -15638,12 +15776,21 @@ class WriteLookBasic(model.Model): Attributes: user_id: User Id + certification_metadata: Dynamic writeable type for Certification removes: + user_name, updated_at """ user_id: Optional[str] = None + certification_metadata: Optional["WriteCertification"] = None - def __init__(self, *, user_id: Optional[str] = None): + def __init__( + self, + *, + user_id: Optional[str] = None, + certification_metadata: Optional["WriteCertification"] = None + ): self.user_id = user_id + self.certification_metadata = certification_metadata @attr.s(auto_attribs=True, init=False) @@ -15687,6 +15834,8 @@ class WriteLookWithQuery(model.Model): Attributes: title: Look Title user_id: User Id + certification_metadata: Dynamic writeable type for Certification removes: + user_name, updated_at deleted: Whether or not a look is 'soft' deleted. description: Description is_run_on_load: auto-run query when Look viewed @@ -15701,6 +15850,7 @@ class WriteLookWithQuery(model.Model): title: Optional[str] = None user_id: Optional[str] = None + certification_metadata: Optional["WriteCertification"] = None deleted: Optional[bool] = None description: Optional[str] = None is_run_on_load: Optional[bool] = None @@ -15715,6 +15865,7 @@ def __init__( *, title: Optional[str] = None, user_id: Optional[str] = None, + certification_metadata: Optional["WriteCertification"] = None, deleted: Optional[bool] = None, description: Optional[str] = None, is_run_on_load: Optional[bool] = None, @@ -15726,6 +15877,7 @@ def __init__( ): self.title = title self.user_id = user_id + self.certification_metadata = certification_metadata self.deleted = deleted self.description = description self.is_run_on_load = is_run_on_load diff --git a/python/looker_sdk/sdk/constants.py b/python/looker_sdk/sdk/constants.py index 01c3c0701..5d0d26629 100644 --- a/python/looker_sdk/sdk/constants.py +++ b/python/looker_sdk/sdk/constants.py @@ -20,5 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -sdk_version = "25.18" +sdk_version = "25.20" environment_prefix = "LOOKERSDK" diff --git a/spec/Looker.4.0.json b/spec/Looker.4.0.json index 308a66880..e1a9b1609 100644 --- a/spec/Looker.4.0.json +++ b/spec/Looker.4.0.json @@ -1,8 +1,8 @@ { "swagger": "2.0", "info": { - "version": "4.0.25.18", - "x-looker-release-version": "25.18.16", + "version": "4.0.25.20", + "x-looker-release-version": "25.20.0", "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": { @@ -13954,6 +13954,13 @@ "description": "Whether or not to include built-in models such as System Activity (Defaults to false)", "required": false, "type": "boolean" + }, + { + "name": "include_self_service", + "in": "query", + "description": "Whether or not to include self service models (Defaults to false)", + "required": false, + "type": "boolean" } ], "responses": { @@ -29011,6 +29018,12 @@ "readOnly": true, "description": "The preferred route for viewing this dashboard (ie: dashboards or dashboards-next)", "x-looker-nullable": true + }, + "certification_metadata": { + "$ref": "#/definitions/Certification", + "readOnly": true, + "description": "Certification metadata", + "x-looker-nullable": true } }, "x-looker-status": "stable" @@ -29738,6 +29751,12 @@ "readOnly": true, "description": "It contains the details needed for mobile alerts payload", "x-looker-nullable": false + }, + "notification_type": { + "type": "string", + "readOnly": true, + "description": "The type of notification, 'email' or 'slack'", + "x-looker-nullable": true } }, "x-looker-status": "stable" @@ -30357,6 +30376,38 @@ }, "x-looker-status": "stable" }, + "Certification": { + "properties": { + "certification_status": { + "type": "string", + "x-looker-values": [ + "certified", + "revoked" + ], + "description": "Certification status: \"certified\" or \"revoked\" Valid values are: \"certified\", \"revoked\".", + "x-looker-nullable": false + }, + "user_name": { + "type": "string", + "readOnly": true, + "description": "Display name of user who certified the content, derived from user_id", + "x-looker-nullable": true + }, + "notes": { + "type": "string", + "description": "Certification notes", + "x-looker-nullable": true + }, + "updated_at": { + "type": "string", + "format": "date-time", + "readOnly": true, + "description": "Timestamp of certification", + "x-looker-nullable": false + } + }, + "x-looker-status": "stable" + }, "ColorStop": { "properties": { "color": { @@ -30857,6 +30908,12 @@ "readOnly": true, "description": "The preferred route for viewing this content (ie: dashboards or dashboards-next)", "x-looker-nullable": true + }, + "certification_metadata": { + "$ref": "#/definitions/Certification", + "readOnly": true, + "description": "Certification metadata", + "x-looker-nullable": true } }, "x-looker-status": "alpha" @@ -32364,6 +32421,11 @@ "description": "Id of Dashboard", "x-looker-nullable": true }, + "dashboard_layout_id": { + "type": "string", + "description": "Id of Dashboard Layout", + "x-looker-nullable": true + }, "edit_uri": { "type": "string", "format": "uri-reference", @@ -32998,6 +33060,12 @@ "description": "The preferred route for viewing this dashboard (ie: dashboards or dashboards-next)", "x-looker-nullable": true }, + "certification_metadata": { + "$ref": "#/definitions/Certification", + "readOnly": true, + "description": "Certification metadata", + "x-looker-nullable": true + }, "alert_sync_with_dashboard_filter_enabled": { "type": "boolean", "description": "Enables alerts to keep in sync with dashboard filter changes", @@ -34973,6 +35041,11 @@ "description": "The database dialect for this application.", "x-looker-nullable": true }, + "bi_directional_data_access": { + "type": "boolean", + "description": "Whether this application supports bi-directional data access.", + "x-looker-nullable": true + }, "created_at": { "type": "string", "format": "date-time", @@ -37196,6 +37269,12 @@ "type": "string", "description": "User Id", "x-looker-nullable": true + }, + "certification_metadata": { + "$ref": "#/definitions/Certification", + "readOnly": true, + "description": "Certification metadata", + "x-looker-nullable": true } }, "x-looker-status": "stable" @@ -37233,6 +37312,12 @@ "description": "User Id", "x-looker-nullable": true }, + "certification_metadata": { + "$ref": "#/definitions/Certification", + "readOnly": true, + "description": "Certification metadata", + "x-looker-nullable": true + }, "content_favorite_id": { "type": "string", "readOnly": true, @@ -37426,6 +37511,12 @@ "description": "User Id", "x-looker-nullable": true }, + "certification_metadata": { + "$ref": "#/definitions/Certification", + "readOnly": true, + "description": "Certification metadata", + "x-looker-nullable": true + }, "content_favorite_id": { "type": "string", "readOnly": true, @@ -37631,6 +37722,12 @@ "description": "User Id", "x-looker-nullable": true }, + "certification_metadata": { + "$ref": "#/definitions/Certification", + "readOnly": true, + "description": "Certification metadata", + "x-looker-nullable": true + }, "content_favorite_id": { "type": "string", "readOnly": true, @@ -38735,6 +38832,18 @@ "readOnly": true, "description": "The name of the view this field is defined in. This will be different than \"view\" when the view has been joined via a different name using the \"from\" parameter.", "x-looker-nullable": false + }, + "datatype": { + "type": "string", + "readOnly": true, + "description": "The data_type for a date in lookml", + "x-looker-nullable": true + }, + "convert_tz": { + "type": "boolean", + "readOnly": true, + "description": "Whether time zones should be converted for datetime fields", + "x-looker-nullable": true } }, "x-looker-status": "stable" @@ -40321,7 +40430,7 @@ "x-looker-nullable": true }, "result": { - "$ref": "#/definitions/CIRunResult", + "$ref": "#/definitions/RunResult", "readOnly": true, "description": "Results of the CI run", "x-looker-nullable": true @@ -40496,7 +40605,7 @@ }, "x-looker-status": "beta" }, - "CIRunResult": { + "RunResult": { "properties": { "sql_result": { "$ref": "#/definitions/SqlValidatorResult", diff --git a/spec/Looker.4.0.oas.json b/spec/Looker.4.0.oas.json index 2eee55cea..c8c8d4d0a 100644 --- a/spec/Looker.4.0.oas.json +++ b/spec/Looker.4.0.oas.json @@ -1,8 +1,8 @@ { "openapi": "3.0.0", "info": { - "version": "4.0.25.18", - "x-looker-release-version": "25.18.16", + "version": "4.0.25.20", + "x-looker-release-version": "25.20.0", "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": { @@ -19361,6 +19361,15 @@ "schema": { "type": "boolean" } + }, + { + "name": "include_self_service", + "in": "query", + "description": "Whether or not to include self service models (Defaults to false)", + "required": false, + "schema": { + "type": "boolean" + } } ], "responses": { @@ -40081,6 +40090,9 @@ "readOnly": true, "description": "The preferred route for viewing this dashboard (ie: dashboards or dashboards-next)", "nullable": true + }, + "certification_metadata": { + "$ref": "#/components/schemas/Certification" } }, "x-looker-status": "stable" @@ -40800,6 +40812,12 @@ }, "alert": { "$ref": "#/components/schemas/MobilePayload" + }, + "notification_type": { + "type": "string", + "readOnly": true, + "description": "The type of notification, 'email' or 'slack'", + "nullable": true } }, "x-looker-status": "stable" @@ -41419,6 +41437,38 @@ }, "x-looker-status": "stable" }, + "Certification": { + "properties": { + "certification_status": { + "type": "string", + "enum": [ + "certified", + "revoked" + ], + "description": "Certification status: \"certified\" or \"revoked\" Valid values are: \"certified\", \"revoked\".", + "nullable": false + }, + "user_name": { + "type": "string", + "readOnly": true, + "description": "Display name of user who certified the content, derived from user_id", + "nullable": true + }, + "notes": { + "type": "string", + "description": "Certification notes", + "nullable": true + }, + "updated_at": { + "type": "string", + "format": "date-time", + "readOnly": true, + "description": "Timestamp of certification", + "nullable": false + } + }, + "x-looker-status": "stable" + }, "ColorStop": { "properties": { "color": { @@ -41910,6 +41960,9 @@ "readOnly": true, "description": "The preferred route for viewing this content (ie: dashboards or dashboards-next)", "nullable": true + }, + "certification_metadata": { + "$ref": "#/components/schemas/Certification" } }, "x-looker-status": "alpha" @@ -43395,6 +43448,11 @@ "description": "Id of Dashboard", "nullable": true }, + "dashboard_layout_id": { + "type": "string", + "description": "Id of Dashboard Layout", + "nullable": true + }, "edit_uri": { "type": "string", "format": "uri-reference", @@ -44015,6 +44073,9 @@ "description": "The preferred route for viewing this dashboard (ie: dashboards or dashboards-next)", "nullable": true }, + "certification_metadata": { + "$ref": "#/components/schemas/Certification" + }, "alert_sync_with_dashboard_filter_enabled": { "type": "boolean", "description": "Enables alerts to keep in sync with dashboard filter changes", @@ -45971,6 +46032,11 @@ "description": "The database dialect for this application.", "nullable": true }, + "bi_directional_data_access": { + "type": "boolean", + "description": "Whether this application supports bi-directional data access.", + "nullable": true + }, "created_at": { "type": "string", "format": "date-time", @@ -48182,6 +48248,9 @@ "type": "string", "description": "User Id", "nullable": true + }, + "certification_metadata": { + "$ref": "#/components/schemas/Certification" } }, "x-looker-status": "stable" @@ -48219,6 +48288,9 @@ "description": "User Id", "nullable": true }, + "certification_metadata": { + "$ref": "#/components/schemas/Certification" + }, "content_favorite_id": { "type": "string", "readOnly": true, @@ -48406,6 +48478,9 @@ "description": "User Id", "nullable": true }, + "certification_metadata": { + "$ref": "#/components/schemas/Certification" + }, "content_favorite_id": { "type": "string", "readOnly": true, @@ -48602,6 +48677,9 @@ "description": "User Id", "nullable": true }, + "certification_metadata": { + "$ref": "#/components/schemas/Certification" + }, "content_favorite_id": { "type": "string", "readOnly": true, @@ -49688,6 +49766,18 @@ "readOnly": true, "description": "The name of the view this field is defined in. This will be different than \"view\" when the view has been joined via a different name using the \"from\" parameter.", "nullable": false + }, + "datatype": { + "type": "string", + "readOnly": true, + "description": "The data_type for a date in lookml", + "nullable": true + }, + "convert_tz": { + "type": "boolean", + "readOnly": true, + "description": "Whether time zones should be converted for datetime fields", + "nullable": true } }, "x-looker-status": "stable" @@ -51262,7 +51352,7 @@ "$ref": "#/components/schemas/CIGitState" }, "result": { - "$ref": "#/components/schemas/CIRunResult" + "$ref": "#/components/schemas/RunResult" }, "schedule": { "$ref": "#/components/schemas/CIScheduleTrigger" @@ -51428,7 +51518,7 @@ }, "x-looker-status": "beta" }, - "CIRunResult": { + "RunResult": { "properties": { "sql_result": { "$ref": "#/components/schemas/SqlValidatorResult" diff --git a/swift/looker/rtl/constants.swift b/swift/looker/rtl/constants.swift index 9a7ab4a3e..d113fc91c 100644 --- a/swift/looker/rtl/constants.swift +++ b/swift/looker/rtl/constants.swift @@ -51,7 +51,7 @@ extension String { } public struct Constants { - public static let lookerVersion = "25.18" + public static let lookerVersion = "25.20" 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 39b2b9ead..c2dd19e36 100644 --- a/swift/looker/sdk/methods.swift +++ b/swift/looker/sdk/methods.swift @@ -6985,10 +6985,14 @@ open class LookerSDK: APIMethods { * @param {Bool} include_internal Whether or not to include built-in models such as System Activity (Defaults to false) */ include_internal: Bool? = nil, + /** + * @param {Bool} include_self_service Whether or not to include self service models (Defaults to false) + */ + include_self_service: Bool? = nil, options: ITransportSettings? = nil ) -> SDKResponse<[LookmlModel], SDKError> { let result: SDKResponse<[LookmlModel], SDKError> = self.get("/lookml_models", - ["fields": fields, "limit": limit, "offset": offset, "exclude_empty": exclude_empty as Any?, "exclude_hidden": exclude_hidden as Any?, "include_internal": include_internal as Any?], nil, options) + ["fields": fields, "limit": limit, "offset": offset, "exclude_empty": exclude_empty as Any?, "exclude_hidden": exclude_hidden as Any?, "include_internal": include_internal as Any?, "include_self_service": include_self_service as Any?], nil, options) return result } diff --git a/swift/looker/sdk/models.swift b/swift/looker/sdk/models.swift index 75bc9664a..b63f4dcbd 100644 --- a/swift/looker/sdk/models.swift +++ b/swift/looker/sdk/models.swift @@ -25,7 +25,7 @@ */ /** - * 377 API models: 289 Spec, 0 Request, 64 Write, 24 Enum + * 380 API models: 290 Spec, 0 Request, 65 Write, 25 Enum */ @@ -578,6 +578,7 @@ public struct AlertNotifications: SDKModel { case threshold_value case _ran_at = "ran_at" case alert + case _notification_type = "notification_type" } private var _notification_id: AnyString? /** @@ -632,7 +633,16 @@ public struct AlertNotifications: SDKModel { public var alert: MobilePayload? - public init(notification_id: String? = nil, alert_condition_id: String? = nil, user_id: String? = nil, is_read: Bool? = nil, field_value: Double? = nil, threshold_value: Double? = nil, ran_at: String? = nil, alert: MobilePayload? = nil) { + private var _notification_type: AnyString? + /** + * The type of notification, 'email' or 'slack' (read-only) + */ + public var notification_type: String? { + get { _notification_type?.value } + set { _notification_type = newValue.map(AnyString.init) } + } + + public init(notification_id: String? = nil, alert_condition_id: String? = nil, user_id: String? = nil, is_read: Bool? = nil, field_value: Double? = nil, threshold_value: Double? = nil, ran_at: String? = nil, alert: MobilePayload? = nil, notification_type: String? = nil) { self._notification_id = notification_id.map(AnyString.init) self._alert_condition_id = alert_condition_id.map(AnyString.init) self._user_id = user_id.map(AnyString.init) @@ -641,6 +651,7 @@ public struct AlertNotifications: SDKModel { self.threshold_value = threshold_value self._ran_at = ran_at.map(AnyString.init) self.alert = alert + self._notification_type = notification_type.map(AnyString.init) } } @@ -1873,6 +1884,59 @@ public enum Category: String, Codable { case dimension = "dimension" } +public struct Certification: SDKModel { + + private enum CodingKeys : String, CodingKey { + case certification_status + case _user_name = "user_name" + case _notes = "notes" + case updated_at + } + /** + * Certification status: "certified" or "revoked" Valid values are: "certified", "revoked". + */ + public var certification_status: CertificationStatus? + + private var _user_name: AnyString? + /** + * Display name of user who certified the content, derived from user_id (read-only) + */ + public var user_name: String? { + get { _user_name?.value } + set { _user_name = newValue.map(AnyString.init) } + } + + private var _notes: AnyString? + /** + * Certification notes + */ + public var notes: String? { + get { _notes?.value } + set { _notes = newValue.map(AnyString.init) } + } + + /** + * Timestamp of certification (read-only) + */ + public var updated_at: Date? + + public init(certification_status: CertificationStatus? = nil, user_name: String? = nil, notes: String? = nil, updated_at: Date? = nil) { + self.certification_status = certification_status + self._user_name = user_name.map(AnyString.init) + self._notes = notes.map(AnyString.init) + self.updated_at = updated_at + } + +} + +/** + * Certification status: "certified" or "revoked" Valid values are: "certified", "revoked". (Enum defined in Certification) + */ +public enum CertificationStatus: String, Codable { + case certified = "certified" + case revoked = "revoked" +} + public struct CIChangeRequest: SDKModel { private enum CodingKeys : String, CodingKey { @@ -1979,39 +2043,6 @@ public struct CIGitState: SDKModel { } -public struct CIRunResult: SDKModel { - public var sql_result: SqlValidatorResult? - - public var sql_error: GenericError? - - public var assert_result: AssertValidatorResult? - - public var assert_error: GenericError? - - public var content_result: ContentValidatorResult? - - public var content_error: GenericError? - - public var lookml_result: LookMLValidatorResult? - - public var lookml_error: GenericError? - - public var generic_error: GenericError? - - public init(sql_result: SqlValidatorResult? = nil, sql_error: GenericError? = nil, assert_result: AssertValidatorResult? = nil, assert_error: GenericError? = nil, content_result: ContentValidatorResult? = nil, content_error: GenericError? = nil, lookml_result: LookMLValidatorResult? = nil, lookml_error: GenericError? = nil, generic_error: GenericError? = nil) { - self.sql_result = sql_result - self.sql_error = sql_error - self.assert_result = assert_result - self.assert_error = assert_error - self.content_result = content_result - self.content_error = content_error - self.lookml_result = lookml_result - self.lookml_error = lookml_error - self.generic_error = generic_error - } - -} - public struct CIScheduleTrigger: SDKModel { private enum CodingKeys : String, CodingKey { @@ -2785,6 +2816,7 @@ public struct ContentSummary: SDKModel { case group_weighted_score case suggestion_score case _preferred_viewer = "preferred_viewer" + case certification_metadata } /** * Operations the current user is able to perform on this object (read-only) @@ -2933,7 +2965,9 @@ public struct ContentSummary: SDKModel { set { _preferred_viewer = newValue.map(AnyString.init) } } - public init(can: StringDictionary? = nil, id: String? = nil, content_type: String? = nil, content_id: String? = nil, content_slug: String? = nil, content_url: String? = nil, title: String? = nil, description: String? = nil, last_viewed_at: Date? = nil, user_id: String? = nil, user_full_name: String? = nil, is_scheduled: Bool? = nil, favorite_count: Int64? = nil, view_count: Int64? = nil, favorite_id: String? = nil, weighted_score: Float? = nil, group_weighted_score: Float? = nil, suggestion_score: Float? = nil, preferred_viewer: String? = nil) { + public var certification_metadata: Certification? + + public init(can: StringDictionary? = nil, id: String? = nil, content_type: String? = nil, content_id: String? = nil, content_slug: String? = nil, content_url: String? = nil, title: String? = nil, description: String? = nil, last_viewed_at: Date? = nil, user_id: String? = nil, user_full_name: String? = nil, is_scheduled: Bool? = nil, favorite_count: Int64? = nil, view_count: Int64? = nil, favorite_id: String? = nil, weighted_score: Float? = nil, group_weighted_score: Float? = nil, suggestion_score: Float? = nil, preferred_viewer: String? = nil, certification_metadata: Certification? = nil) { self.can = can self._id = id.map(AnyString.init) self._content_type = content_type.map(AnyString.init) @@ -2953,6 +2987,7 @@ public struct ContentSummary: SDKModel { self.group_weighted_score = group_weighted_score self.suggestion_score = suggestion_score self._preferred_viewer = preferred_viewer.map(AnyString.init) + self.certification_metadata = certification_metadata } } @@ -5991,6 +6026,7 @@ public struct Dashboard: SDKModel { case _user_id = "user_id" case _slug = "slug" case _preferred_viewer = "preferred_viewer" + case certification_metadata case alert_sync_with_dashboard_filter_enabled case _background_color = "background_color" case created_at @@ -6143,6 +6179,8 @@ public struct Dashboard: SDKModel { set { _preferred_viewer = newValue.map(AnyString.init) } } + public var certification_metadata: Certification? + /** * Enables alerts to keep in sync with dashboard filter changes */ @@ -6369,7 +6407,7 @@ public struct Dashboard: SDKModel { set { _url = newValue.map(AnyString.init) } } - public init(can: StringDictionary? = nil, content_favorite_id: String? = nil, content_metadata_id: String? = nil, description: String? = nil, hidden: Bool? = nil, id: String? = nil, model: LookModel? = nil, query_timezone: String? = nil, readonly: Bool? = nil, refresh_interval: String? = nil, refresh_interval_to_i: Int64? = nil, folder: FolderBase? = nil, title: String? = nil, user_id: String? = nil, slug: String? = nil, preferred_viewer: String? = nil, alert_sync_with_dashboard_filter_enabled: Bool? = nil, background_color: String? = nil, created_at: Date? = nil, crossfilter_enabled: Bool? = nil, dashboard_elements: [DashboardElement]? = nil, dashboard_filters: [DashboardFilter]? = nil, dashboard_layouts: [DashboardLayout]? = nil, deleted: Bool? = nil, deleted_at: Date? = nil, deleter_id: String? = nil, edit_uri: String? = nil, enable_viz_full_screen: Bool? = nil, favorite_count: Int64? = nil, filters_bar_collapsed: Bool? = nil, filters_location_top: Bool? = nil, last_accessed_at: Date? = nil, last_viewed_at: Date? = nil, updated_at: Date? = nil, last_updater_id: String? = nil, last_updater_name: String? = nil, user_name: String? = nil, load_configuration: String? = nil, lookml_link_id: String? = nil, show_filters_bar: Bool? = nil, show_title: Bool? = nil, folder_id: String? = nil, text_tile_text_color: String? = nil, tile_background_color: String? = nil, tile_text_color: String? = nil, title_color: String? = nil, view_count: Int64? = nil, appearance: DashboardAppearance? = nil, url: String? = nil) { + public init(can: StringDictionary? = nil, content_favorite_id: String? = nil, content_metadata_id: String? = nil, description: String? = nil, hidden: Bool? = nil, id: String? = nil, model: LookModel? = nil, query_timezone: String? = nil, readonly: Bool? = nil, refresh_interval: String? = nil, refresh_interval_to_i: Int64? = nil, folder: FolderBase? = nil, title: String? = nil, user_id: String? = nil, slug: String? = nil, preferred_viewer: String? = nil, certification_metadata: Certification? = nil, alert_sync_with_dashboard_filter_enabled: Bool? = nil, background_color: String? = nil, created_at: Date? = nil, crossfilter_enabled: Bool? = nil, dashboard_elements: [DashboardElement]? = nil, dashboard_filters: [DashboardFilter]? = nil, dashboard_layouts: [DashboardLayout]? = nil, deleted: Bool? = nil, deleted_at: Date? = nil, deleter_id: String? = nil, edit_uri: String? = nil, enable_viz_full_screen: Bool? = nil, favorite_count: Int64? = nil, filters_bar_collapsed: Bool? = nil, filters_location_top: Bool? = nil, last_accessed_at: Date? = nil, last_viewed_at: Date? = nil, updated_at: Date? = nil, last_updater_id: String? = nil, last_updater_name: String? = nil, user_name: String? = nil, load_configuration: String? = nil, lookml_link_id: String? = nil, show_filters_bar: Bool? = nil, show_title: Bool? = nil, folder_id: String? = nil, text_tile_text_color: String? = nil, tile_background_color: String? = nil, tile_text_color: String? = nil, title_color: String? = nil, view_count: Int64? = nil, appearance: DashboardAppearance? = nil, url: String? = nil) { self.can = can self._content_favorite_id = content_favorite_id.map(AnyString.init) self._content_metadata_id = content_metadata_id.map(AnyString.init) @@ -6386,6 +6424,7 @@ public struct Dashboard: SDKModel { self._user_id = user_id.map(AnyString.init) self._slug = slug.map(AnyString.init) self._preferred_viewer = preferred_viewer.map(AnyString.init) + self.certification_metadata = certification_metadata self.alert_sync_with_dashboard_filter_enabled = alert_sync_with_dashboard_filter_enabled self._background_color = background_color.map(AnyString.init) self.created_at = created_at @@ -6555,6 +6594,7 @@ public struct DashboardBase: SDKModel { case _user_id = "user_id" case _slug = "slug" case _preferred_viewer = "preferred_viewer" + case certification_metadata } /** * Operations the current user is able to perform on this object (read-only) @@ -6674,7 +6714,9 @@ public struct DashboardBase: SDKModel { set { _preferred_viewer = newValue.map(AnyString.init) } } - public init(can: StringDictionary? = nil, content_favorite_id: String? = nil, content_metadata_id: String? = nil, description: String? = nil, hidden: Bool? = nil, id: String? = nil, model: LookModel? = nil, query_timezone: String? = nil, readonly: Bool? = nil, refresh_interval: String? = nil, refresh_interval_to_i: Int64? = nil, folder: FolderBase? = nil, title: String? = nil, user_id: String? = nil, slug: String? = nil, preferred_viewer: String? = nil) { + public var certification_metadata: Certification? + + public init(can: StringDictionary? = nil, content_favorite_id: String? = nil, content_metadata_id: String? = nil, description: String? = nil, hidden: Bool? = nil, id: String? = nil, model: LookModel? = nil, query_timezone: String? = nil, readonly: Bool? = nil, refresh_interval: String? = nil, refresh_interval_to_i: Int64? = nil, folder: FolderBase? = nil, title: String? = nil, user_id: String? = nil, slug: String? = nil, preferred_viewer: String? = nil, certification_metadata: Certification? = nil) { self.can = can self._content_favorite_id = content_favorite_id.map(AnyString.init) self._content_metadata_id = content_metadata_id.map(AnyString.init) @@ -6691,6 +6733,7 @@ public struct DashboardBase: SDKModel { self._user_id = user_id.map(AnyString.init) self._slug = slug.map(AnyString.init) self._preferred_viewer = preferred_viewer.map(AnyString.init) + self.certification_metadata = certification_metadata } } @@ -6702,6 +6745,7 @@ public struct DashboardElement: SDKModel { case _body_text = "body_text" case _body_text_as_html = "body_text_as_html" case _dashboard_id = "dashboard_id" + case _dashboard_layout_id = "dashboard_layout_id" case _edit_uri = "edit_uri" case _id = "id" case look @@ -6762,6 +6806,15 @@ public struct DashboardElement: SDKModel { set { _dashboard_id = newValue.map(AnyString.init) } } + private var _dashboard_layout_id: AnyString? + /** + * Id of Dashboard Layout + */ + public var dashboard_layout_id: String? { + get { _dashboard_layout_id?.value } + set { _dashboard_layout_id = newValue.map(AnyString.init) } + } + private var _edit_uri: AnyString? /** * Relative path of URI of LookML file to edit the dashboard element (LookML dashboard only). (read-only) @@ -6980,11 +7033,12 @@ public struct DashboardElement: SDKModel { set { _aria_description = newValue.map(AnyString.init) } } - public init(can: StringDictionary? = nil, body_text: String? = nil, body_text_as_html: String? = nil, dashboard_id: String? = nil, edit_uri: String? = nil, id: String? = nil, look: LookWithQuery? = nil, look_id: String? = nil, lookml_link_id: String? = nil, merge_result_id: String? = nil, note_display: String? = nil, note_state: String? = nil, note_text: String? = nil, note_text_as_html: String? = nil, query: Query? = nil, query_id: String? = nil, refresh_interval: String? = nil, refresh_interval_to_i: Int64? = nil, result_maker: ResultMakerWithIdVisConfigAndDynamicFields? = nil, result_maker_id: String? = nil, subtitle_text: String? = nil, title: String? = nil, title_hidden: Bool? = nil, title_text: String? = nil, type: String? = nil, alert_count: Int64? = nil, rich_content_json: String? = nil, title_text_as_html: String? = nil, subtitle_text_as_html: String? = nil, extension_id: String? = nil, aria_description: String? = nil) { + public init(can: StringDictionary? = nil, body_text: String? = nil, body_text_as_html: String? = nil, dashboard_id: String? = nil, dashboard_layout_id: String? = nil, edit_uri: String? = nil, id: String? = nil, look: LookWithQuery? = nil, look_id: String? = nil, lookml_link_id: String? = nil, merge_result_id: String? = nil, note_display: String? = nil, note_state: String? = nil, note_text: String? = nil, note_text_as_html: String? = nil, query: Query? = nil, query_id: String? = nil, refresh_interval: String? = nil, refresh_interval_to_i: Int64? = nil, result_maker: ResultMakerWithIdVisConfigAndDynamicFields? = nil, result_maker_id: String? = nil, subtitle_text: String? = nil, title: String? = nil, title_hidden: Bool? = nil, title_text: String? = nil, type: String? = nil, alert_count: Int64? = nil, rich_content_json: String? = nil, title_text_as_html: String? = nil, subtitle_text_as_html: String? = nil, extension_id: String? = nil, aria_description: String? = nil) { self.can = can self._body_text = body_text.map(AnyString.init) self._body_text_as_html = body_text_as_html.map(AnyString.init) self._dashboard_id = dashboard_id.map(AnyString.init) + self._dashboard_layout_id = dashboard_layout_id.map(AnyString.init) self._edit_uri = edit_uri.map(AnyString.init) self._id = id.map(AnyString.init) self.look = look @@ -10231,6 +10285,7 @@ public struct ExternalOauthApplication: SDKModel { case _client_secret = "client_secret" case _tenant_id = "tenant_id" case _dialect_name = "dialect_name" + case bi_directional_data_access case created_at } /** @@ -10292,12 +10347,17 @@ public struct ExternalOauthApplication: SDKModel { set { _dialect_name = newValue.map(AnyString.init) } } + /** + * Whether this application supports bi-directional data access. + */ + public var bi_directional_data_access: Bool? + /** * Creation time for this application (read-only) */ public var created_at: Date? - public init(can: StringDictionary? = nil, id: String? = nil, name: String? = nil, client_id: String? = nil, client_secret: String? = nil, tenant_id: String? = nil, dialect_name: String? = nil, created_at: Date? = nil) { + public init(can: StringDictionary? = nil, id: String? = nil, name: String? = nil, client_id: String? = nil, client_secret: String? = nil, tenant_id: String? = nil, dialect_name: String? = nil, bi_directional_data_access: Bool? = nil, created_at: Date? = nil) { self.can = can self._id = id.map(AnyString.init) self._name = name.map(AnyString.init) @@ -10305,6 +10365,7 @@ public struct ExternalOauthApplication: SDKModel { self._client_secret = client_secret.map(AnyString.init) self._tenant_id = tenant_id.map(AnyString.init) self._dialect_name = dialect_name.map(AnyString.init) + self.bi_directional_data_access = bi_directional_data_access self.created_at = created_at } @@ -13904,6 +13965,7 @@ public struct Look: SDKModel { case _id = "id" case _title = "title" case _user_id = "user_id" + case certification_metadata case _content_favorite_id = "content_favorite_id" case created_at case deleted @@ -13972,6 +14034,8 @@ public struct Look: SDKModel { set { _user_id = newValue.map(AnyString.init) } } + public var certification_metadata: Certification? + private var _content_favorite_id: AnyString? /** * Content Favorite Id (read-only) @@ -14160,12 +14224,13 @@ public struct Look: SDKModel { set { _view_count = newValue.map(AnyInt.init) } } - public init(can: StringDictionary? = nil, content_metadata_id: String? = nil, id: String? = nil, title: String? = nil, user_id: String? = nil, content_favorite_id: String? = nil, created_at: Date? = nil, deleted: Bool? = nil, deleted_at: Date? = nil, deleter_id: String? = nil, description: String? = nil, embed_url: String? = nil, excel_file_url: String? = nil, favorite_count: Int64? = nil, google_spreadsheet_formula: String? = nil, image_embed_url: String? = nil, is_run_on_load: Bool? = nil, last_accessed_at: Date? = nil, last_updater_id: String? = nil, last_viewed_at: Date? = nil, model: LookModel? = nil, `public`: Bool? = nil, public_slug: String? = nil, public_url: String? = nil, query_id: String? = nil, short_url: String? = nil, folder: FolderBase? = nil, folder_id: String? = nil, updated_at: Date? = nil, user_name: String? = nil, view_count: Int64? = nil) { + public init(can: StringDictionary? = nil, content_metadata_id: String? = nil, id: String? = nil, title: String? = nil, user_id: String? = nil, certification_metadata: Certification? = nil, content_favorite_id: String? = nil, created_at: Date? = nil, deleted: Bool? = nil, deleted_at: Date? = nil, deleter_id: String? = nil, description: String? = nil, embed_url: String? = nil, excel_file_url: String? = nil, favorite_count: Int64? = nil, google_spreadsheet_formula: String? = nil, image_embed_url: String? = nil, is_run_on_load: Bool? = nil, last_accessed_at: Date? = nil, last_updater_id: String? = nil, last_viewed_at: Date? = nil, model: LookModel? = nil, `public`: Bool? = nil, public_slug: String? = nil, public_url: String? = nil, query_id: String? = nil, short_url: String? = nil, folder: FolderBase? = nil, folder_id: String? = nil, updated_at: Date? = nil, user_name: String? = nil, view_count: Int64? = nil) { self.can = can self._content_metadata_id = content_metadata_id.map(AnyString.init) self._id = id.map(AnyString.init) self._title = title.map(AnyString.init) self._user_id = user_id.map(AnyString.init) + self.certification_metadata = certification_metadata self._content_favorite_id = content_favorite_id.map(AnyString.init) self.created_at = created_at self.deleted = deleted @@ -14204,6 +14269,7 @@ public struct LookBasic: SDKModel { case _id = "id" case _title = "title" case _user_id = "user_id" + case certification_metadata } /** * Operations the current user is able to perform on this object (read-only) @@ -14246,12 +14312,15 @@ public struct LookBasic: SDKModel { set { _user_id = newValue.map(AnyString.init) } } - public init(can: StringDictionary? = nil, content_metadata_id: String? = nil, id: String? = nil, title: String? = nil, user_id: String? = nil) { + public var certification_metadata: Certification? + + public init(can: StringDictionary? = nil, content_metadata_id: String? = nil, id: String? = nil, title: String? = nil, user_id: String? = nil, certification_metadata: Certification? = nil) { self.can = can self._content_metadata_id = content_metadata_id.map(AnyString.init) self._id = id.map(AnyString.init) self._title = title.map(AnyString.init) self._user_id = user_id.map(AnyString.init) + self.certification_metadata = certification_metadata } } @@ -14970,6 +15039,8 @@ public struct LookmlModelExploreField: SDKModel { case week_start_day case _times_used = "times_used" case _original_view = "original_view" + case _datatype = "datatype" + case convert_tz } /** * The appropriate horizontal text alignment the values of this field should be displayed in. Valid values are: "left", "right". (read-only) @@ -15382,7 +15453,21 @@ public struct LookmlModelExploreField: SDKModel { set { _original_view = newValue.map(AnyString.init) } } - public init(align: Align? = nil, can_filter: Bool? = nil, category: Category? = nil, default_filter_value: String? = nil, description: String? = nil, dimension_group: String? = nil, drill_fields: [String]? = nil, enumerations: [LookmlModelExploreFieldEnumeration]? = nil, error: String? = nil, field_group_label: String? = nil, field_group_variant: String? = nil, fill_style: FillStyle? = nil, fiscal_month_offset: Int64? = nil, has_allowed_values: Bool? = nil, has_drills_metadata: Bool? = nil, hidden: Bool? = nil, is_filter: Bool? = nil, is_fiscal: Bool? = nil, is_numeric: Bool? = nil, is_timeframe: Bool? = nil, can_time_filter: Bool? = nil, time_interval: LookmlModelExploreFieldTimeInterval? = nil, label: String? = nil, label_from_parameter: String? = nil, label_short: String? = nil, lookml_link: String? = nil, links: [LookmlFieldLink]? = nil, map_layer: LookmlModelExploreFieldMapLayer? = nil, measure: Bool? = nil, name: String? = nil, strict_value_format: Bool? = nil, parameter: Bool? = nil, period_over_period_params: LookmlModelExploreFieldPeriodOverPeriodParams? = nil, permanent: Bool? = nil, primary_key: Bool? = nil, project_name: String? = nil, requires_refresh_on_sort: Bool? = nil, scope: String? = nil, sortable: Bool? = nil, source_file: String? = nil, source_file_path: String? = nil, sql: String? = nil, sql_case: [LookmlModelExploreFieldSqlCase]? = nil, filters: [LookmlModelExploreFieldMeasureFilters]? = nil, suggest_dimension: String? = nil, suggest_explore: String? = nil, suggestable: Bool? = nil, suggestions: [String]? = nil, synonyms: [String]? = nil, tags: [String]? = nil, type: String? = nil, user_attribute_filter_types: [UserAttributeFilterTypes]? = nil, value_format: String? = nil, value_format_name: String? = nil, view: String? = nil, view_label: String? = nil, `dynamic`: Bool? = nil, week_start_day: WeekStartDay? = nil, times_used: Int64? = nil, original_view: String? = nil) { + private var _datatype: AnyString? + /** + * The data_type for a date in lookml (read-only) + */ + public var datatype: String? { + get { _datatype?.value } + set { _datatype = newValue.map(AnyString.init) } + } + + /** + * Whether time zones should be converted for datetime fields (read-only) + */ + public var convert_tz: Bool? + + public init(align: Align? = nil, can_filter: Bool? = nil, category: Category? = nil, default_filter_value: String? = nil, description: String? = nil, dimension_group: String? = nil, drill_fields: [String]? = nil, enumerations: [LookmlModelExploreFieldEnumeration]? = nil, error: String? = nil, field_group_label: String? = nil, field_group_variant: String? = nil, fill_style: FillStyle? = nil, fiscal_month_offset: Int64? = nil, has_allowed_values: Bool? = nil, has_drills_metadata: Bool? = nil, hidden: Bool? = nil, is_filter: Bool? = nil, is_fiscal: Bool? = nil, is_numeric: Bool? = nil, is_timeframe: Bool? = nil, can_time_filter: Bool? = nil, time_interval: LookmlModelExploreFieldTimeInterval? = nil, label: String? = nil, label_from_parameter: String? = nil, label_short: String? = nil, lookml_link: String? = nil, links: [LookmlFieldLink]? = nil, map_layer: LookmlModelExploreFieldMapLayer? = nil, measure: Bool? = nil, name: String? = nil, strict_value_format: Bool? = nil, parameter: Bool? = nil, period_over_period_params: LookmlModelExploreFieldPeriodOverPeriodParams? = nil, permanent: Bool? = nil, primary_key: Bool? = nil, project_name: String? = nil, requires_refresh_on_sort: Bool? = nil, scope: String? = nil, sortable: Bool? = nil, source_file: String? = nil, source_file_path: String? = nil, sql: String? = nil, sql_case: [LookmlModelExploreFieldSqlCase]? = nil, filters: [LookmlModelExploreFieldMeasureFilters]? = nil, suggest_dimension: String? = nil, suggest_explore: String? = nil, suggestable: Bool? = nil, suggestions: [String]? = nil, synonyms: [String]? = nil, tags: [String]? = nil, type: String? = nil, user_attribute_filter_types: [UserAttributeFilterTypes]? = nil, value_format: String? = nil, value_format_name: String? = nil, view: String? = nil, view_label: String? = nil, `dynamic`: Bool? = nil, week_start_day: WeekStartDay? = nil, times_used: Int64? = nil, original_view: String? = nil, datatype: String? = nil, convert_tz: Bool? = nil) { self.align = align self.can_filter = can_filter self.category = category @@ -15443,6 +15528,8 @@ public struct LookmlModelExploreField: SDKModel { self.week_start_day = week_start_day self._times_used = times_used.map(AnyInt.init) self._original_view = original_view.map(AnyString.init) + self._datatype = datatype.map(AnyString.init) + self.convert_tz = convert_tz } } @@ -16445,6 +16532,7 @@ public struct LookWithDashboards: SDKModel { case _id = "id" case _title = "title" case _user_id = "user_id" + case certification_metadata case _content_favorite_id = "content_favorite_id" case created_at case deleted @@ -16514,6 +16602,8 @@ public struct LookWithDashboards: SDKModel { set { _user_id = newValue.map(AnyString.init) } } + public var certification_metadata: Certification? + private var _content_favorite_id: AnyString? /** * Content Favorite Id (read-only) @@ -16707,12 +16797,13 @@ public struct LookWithDashboards: SDKModel { */ public var dashboards: [DashboardBase]? - public init(can: StringDictionary? = nil, content_metadata_id: String? = nil, id: String? = nil, title: String? = nil, user_id: String? = nil, content_favorite_id: String? = nil, created_at: Date? = nil, deleted: Bool? = nil, deleted_at: Date? = nil, deleter_id: String? = nil, description: String? = nil, embed_url: String? = nil, excel_file_url: String? = nil, favorite_count: Int64? = nil, google_spreadsheet_formula: String? = nil, image_embed_url: String? = nil, is_run_on_load: Bool? = nil, last_accessed_at: Date? = nil, last_updater_id: String? = nil, last_viewed_at: Date? = nil, model: LookModel? = nil, `public`: Bool? = nil, public_slug: String? = nil, public_url: String? = nil, query_id: String? = nil, short_url: String? = nil, folder: FolderBase? = nil, folder_id: String? = nil, updated_at: Date? = nil, user_name: String? = nil, view_count: Int64? = nil, dashboards: [DashboardBase]? = nil) { + public init(can: StringDictionary? = nil, content_metadata_id: String? = nil, id: String? = nil, title: String? = nil, user_id: String? = nil, certification_metadata: Certification? = nil, content_favorite_id: String? = nil, created_at: Date? = nil, deleted: Bool? = nil, deleted_at: Date? = nil, deleter_id: String? = nil, description: String? = nil, embed_url: String? = nil, excel_file_url: String? = nil, favorite_count: Int64? = nil, google_spreadsheet_formula: String? = nil, image_embed_url: String? = nil, is_run_on_load: Bool? = nil, last_accessed_at: Date? = nil, last_updater_id: String? = nil, last_viewed_at: Date? = nil, model: LookModel? = nil, `public`: Bool? = nil, public_slug: String? = nil, public_url: String? = nil, query_id: String? = nil, short_url: String? = nil, folder: FolderBase? = nil, folder_id: String? = nil, updated_at: Date? = nil, user_name: String? = nil, view_count: Int64? = nil, dashboards: [DashboardBase]? = nil) { self.can = can self._content_metadata_id = content_metadata_id.map(AnyString.init) self._id = id.map(AnyString.init) self._title = title.map(AnyString.init) self._user_id = user_id.map(AnyString.init) + self.certification_metadata = certification_metadata self._content_favorite_id = content_favorite_id.map(AnyString.init) self.created_at = created_at self.deleted = deleted @@ -16752,6 +16843,7 @@ public struct LookWithQuery: SDKModel { case _id = "id" case _title = "title" case _user_id = "user_id" + case certification_metadata case _content_favorite_id = "content_favorite_id" case created_at case deleted @@ -16822,6 +16914,8 @@ public struct LookWithQuery: SDKModel { set { _user_id = newValue.map(AnyString.init) } } + public var certification_metadata: Certification? + private var _content_favorite_id: AnyString? /** * Content Favorite Id (read-only) @@ -17021,12 +17115,13 @@ public struct LookWithQuery: SDKModel { set { _url = newValue.map(AnyString.init) } } - public init(can: StringDictionary? = nil, content_metadata_id: String? = nil, id: String? = nil, title: String? = nil, user_id: String? = nil, content_favorite_id: String? = nil, created_at: Date? = nil, deleted: Bool? = nil, deleted_at: Date? = nil, deleter_id: String? = nil, description: String? = nil, embed_url: String? = nil, excel_file_url: String? = nil, favorite_count: Int64? = nil, google_spreadsheet_formula: String? = nil, image_embed_url: String? = nil, is_run_on_load: Bool? = nil, last_accessed_at: Date? = nil, last_updater_id: String? = nil, last_viewed_at: Date? = nil, model: LookModel? = nil, `public`: Bool? = nil, public_slug: String? = nil, public_url: String? = nil, query_id: String? = nil, short_url: String? = nil, folder: FolderBase? = nil, folder_id: String? = nil, updated_at: Date? = nil, user_name: String? = nil, view_count: Int64? = nil, query: Query? = nil, url: String? = nil) { + public init(can: StringDictionary? = nil, content_metadata_id: String? = nil, id: String? = nil, title: String? = nil, user_id: String? = nil, certification_metadata: Certification? = nil, content_favorite_id: String? = nil, created_at: Date? = nil, deleted: Bool? = nil, deleted_at: Date? = nil, deleter_id: String? = nil, description: String? = nil, embed_url: String? = nil, excel_file_url: String? = nil, favorite_count: Int64? = nil, google_spreadsheet_formula: String? = nil, image_embed_url: String? = nil, is_run_on_load: Bool? = nil, last_accessed_at: Date? = nil, last_updater_id: String? = nil, last_viewed_at: Date? = nil, model: LookModel? = nil, `public`: Bool? = nil, public_slug: String? = nil, public_url: String? = nil, query_id: String? = nil, short_url: String? = nil, folder: FolderBase? = nil, folder_id: String? = nil, updated_at: Date? = nil, user_name: String? = nil, view_count: Int64? = nil, query: Query? = nil, url: String? = nil) { self.can = can self._content_metadata_id = content_metadata_id.map(AnyString.init) self._id = id.map(AnyString.init) self._title = title.map(AnyString.init) self._user_id = user_id.map(AnyString.init) + self.certification_metadata = certification_metadata self._content_favorite_id = content_favorite_id.map(AnyString.init) self.created_at = created_at self.deleted = deleted @@ -20724,7 +20819,7 @@ public struct Run: SDKModel { public var git_state: CIGitState? - public var result: CIRunResult? + public var result: RunResult? public var schedule: CIScheduleTrigger? @@ -20775,7 +20870,7 @@ public struct Run: SDKModel { set { _username = newValue.map(AnyString.init) } } - public init(run_id: String? = nil, created_at: Date? = nil, started_at: Date? = nil, finished_at: Date? = nil, status_url: String? = nil, status: String? = nil, git_service: String? = nil, git_state: CIGitState? = nil, result: CIRunResult? = nil, schedule: CIScheduleTrigger? = nil, target_branch: String? = nil, title: String? = nil, trigger: String? = nil, change_request: CIChangeRequest? = nil, suite_id: String? = nil, username: String? = nil) { + public init(run_id: String? = nil, created_at: Date? = nil, started_at: Date? = nil, finished_at: Date? = nil, status_url: String? = nil, status: String? = nil, git_service: String? = nil, git_state: CIGitState? = nil, result: RunResult? = nil, schedule: CIScheduleTrigger? = nil, target_branch: String? = nil, title: String? = nil, trigger: String? = nil, change_request: CIChangeRequest? = nil, suite_id: String? = nil, username: String? = nil) { self._run_id = run_id.map(AnyString.init) self.created_at = created_at self.started_at = started_at @@ -21011,6 +21106,39 @@ public struct RunningQueries: SDKModel { } +public struct RunResult: SDKModel { + public var sql_result: SqlValidatorResult? + + public var sql_error: GenericError? + + public var assert_result: AssertValidatorResult? + + public var assert_error: GenericError? + + public var content_result: ContentValidatorResult? + + public var content_error: GenericError? + + public var lookml_result: LookMLValidatorResult? + + public var lookml_error: GenericError? + + public var generic_error: GenericError? + + public init(sql_result: SqlValidatorResult? = nil, sql_error: GenericError? = nil, assert_result: AssertValidatorResult? = nil, assert_error: GenericError? = nil, content_result: ContentValidatorResult? = nil, content_error: GenericError? = nil, lookml_result: LookMLValidatorResult? = nil, lookml_error: GenericError? = nil, generic_error: GenericError? = nil) { + self.sql_result = sql_result + self.sql_error = sql_error + self.assert_result = assert_result + self.assert_error = assert_error + self.content_result = content_result + self.content_error = content_error + self.lookml_result = lookml_result + self.lookml_error = lookml_error + self.generic_error = generic_error + } + +} + public struct SamlConfig: SDKModel { private enum CodingKeys : String, CodingKey { @@ -26558,6 +26686,37 @@ public struct WriteBoardSection: SDKModel { } +/** + * Dynamic writeable type for Certification removes: + * user_name, updated_at + */ +public struct WriteCertification: SDKModel { + + private enum CodingKeys : String, CodingKey { + case certification_status + case _notes = "notes" + } + /** + * Certification status: "certified" or "revoked" Valid values are: "certified", "revoked". + */ + public var certification_status: CertificationStatus? + + private var _notes: AnyString? + /** + * Certification notes + */ + public var notes: String? { + get { _notes?.value } + set { _notes = newValue.map(AnyString.init) } + } + + public init(certification_status: CertificationStatus? = nil, notes: String? = nil) { + self.certification_status = certification_status + self._notes = notes.map(AnyString.init) + } + +} + /** * Dynamic writeable type for ColorCollection removes: * id @@ -26971,6 +27130,7 @@ public struct WriteDashboard: SDKModel { case _title = "title" case _slug = "slug" case _preferred_viewer = "preferred_viewer" + case certification_metadata case alert_sync_with_dashboard_filter_enabled case _background_color = "background_color" case crossfilter_enabled @@ -27054,6 +27214,12 @@ public struct WriteDashboard: SDKModel { set { _preferred_viewer = newValue.map(AnyString.init) } } + /** + * Dynamic writeable type for Certification removes: + * user_name, updated_at + */ + public var certification_metadata: WriteCertification? + /** * Enables alerts to keep in sync with dashboard filter changes */ @@ -27168,7 +27334,7 @@ public struct WriteDashboard: SDKModel { public var appearance: DashboardAppearance? - public init(description: String? = nil, hidden: Bool? = nil, query_timezone: String? = nil, refresh_interval: String? = nil, folder: WriteFolderBase? = nil, title: String? = nil, slug: String? = nil, preferred_viewer: String? = nil, alert_sync_with_dashboard_filter_enabled: Bool? = nil, background_color: String? = nil, crossfilter_enabled: Bool? = nil, deleted: Bool? = nil, enable_viz_full_screen: Bool? = nil, filters_bar_collapsed: Bool? = nil, filters_location_top: Bool? = nil, load_configuration: String? = nil, lookml_link_id: String? = nil, show_filters_bar: Bool? = nil, show_title: Bool? = nil, folder_id: String? = nil, text_tile_text_color: String? = nil, tile_background_color: String? = nil, tile_text_color: String? = nil, title_color: String? = nil, appearance: DashboardAppearance? = nil) { + public init(description: String? = nil, hidden: Bool? = nil, query_timezone: String? = nil, refresh_interval: String? = nil, folder: WriteFolderBase? = nil, title: String? = nil, slug: String? = nil, preferred_viewer: String? = nil, certification_metadata: WriteCertification? = nil, alert_sync_with_dashboard_filter_enabled: Bool? = nil, background_color: String? = nil, crossfilter_enabled: Bool? = nil, deleted: Bool? = nil, enable_viz_full_screen: Bool? = nil, filters_bar_collapsed: Bool? = nil, filters_location_top: Bool? = nil, load_configuration: String? = nil, lookml_link_id: String? = nil, show_filters_bar: Bool? = nil, show_title: Bool? = nil, folder_id: String? = nil, text_tile_text_color: String? = nil, tile_background_color: String? = nil, tile_text_color: String? = nil, title_color: String? = nil, appearance: DashboardAppearance? = nil) { self._description = description.map(AnyString.init) self.hidden = hidden self._query_timezone = query_timezone.map(AnyString.init) @@ -27177,6 +27343,7 @@ public struct WriteDashboard: SDKModel { self._title = title.map(AnyString.init) self._slug = slug.map(AnyString.init) self._preferred_viewer = preferred_viewer.map(AnyString.init) + self.certification_metadata = certification_metadata self.alert_sync_with_dashboard_filter_enabled = alert_sync_with_dashboard_filter_enabled self._background_color = background_color.map(AnyString.init) self.crossfilter_enabled = crossfilter_enabled @@ -27209,8 +27376,15 @@ public struct WriteDashboardBase: SDKModel { */ public var folder: WriteFolderBase? - public init(folder: WriteFolderBase? = nil) { + /** + * Dynamic writeable type for Certification removes: + * user_name, updated_at + */ + public var certification_metadata: WriteCertification? + + public init(folder: WriteFolderBase? = nil, certification_metadata: WriteCertification? = nil) { self.folder = folder + self.certification_metadata = certification_metadata } } @@ -27224,6 +27398,7 @@ public struct WriteDashboardElement: SDKModel { private enum CodingKeys : String, CodingKey { case _body_text = "body_text" case _dashboard_id = "dashboard_id" + case _dashboard_layout_id = "dashboard_layout_id" case look case _look_id = "look_id" case _merge_result_id = "merge_result_id" @@ -27262,6 +27437,15 @@ public struct WriteDashboardElement: SDKModel { set { _dashboard_id = newValue.map(AnyString.init) } } + private var _dashboard_layout_id: AnyString? + /** + * Id of Dashboard Layout + */ + public var dashboard_layout_id: String? { + get { _dashboard_layout_id?.value } + set { _dashboard_layout_id = newValue.map(AnyString.init) } + } + /** * Dynamic writeable type for LookWithQuery removes: * can, content_metadata_id, id, content_favorite_id, created_at, deleted_at, deleter_id, embed_url, excel_file_url, favorite_count, google_spreadsheet_formula, image_embed_url, last_accessed_at, last_updater_id, last_viewed_at, model, public_slug, public_url, short_url, updated_at, user_name, view_count, url @@ -27420,9 +27604,10 @@ public struct WriteDashboardElement: SDKModel { set { _aria_description = newValue.map(AnyString.init) } } - public init(body_text: String? = nil, dashboard_id: String? = nil, look: WriteLookWithQuery? = nil, look_id: String? = nil, merge_result_id: String? = nil, note_display: String? = nil, note_state: String? = nil, note_text: String? = nil, query: WriteQuery? = nil, query_id: String? = nil, refresh_interval: String? = nil, result_maker: WriteResultMakerWithIdVisConfigAndDynamicFields? = nil, result_maker_id: String? = nil, subtitle_text: String? = nil, title: String? = nil, title_hidden: Bool? = nil, title_text: String? = nil, type: String? = nil, rich_content_json: String? = nil, extension_id: String? = nil, aria_description: String? = nil) { + public init(body_text: String? = nil, dashboard_id: String? = nil, dashboard_layout_id: String? = nil, look: WriteLookWithQuery? = nil, look_id: String? = nil, merge_result_id: String? = nil, note_display: String? = nil, note_state: String? = nil, note_text: String? = nil, query: WriteQuery? = nil, query_id: String? = nil, refresh_interval: String? = nil, result_maker: WriteResultMakerWithIdVisConfigAndDynamicFields? = nil, result_maker_id: String? = nil, subtitle_text: String? = nil, title: String? = nil, title_hidden: Bool? = nil, title_text: String? = nil, type: String? = nil, rich_content_json: String? = nil, extension_id: String? = nil, aria_description: String? = nil) { self._body_text = body_text.map(AnyString.init) self._dashboard_id = dashboard_id.map(AnyString.init) + self._dashboard_layout_id = dashboard_layout_id.map(AnyString.init) self.look = look self._look_id = look_id.map(AnyString.init) self._merge_result_id = merge_result_id.map(AnyString.init) @@ -28681,6 +28866,7 @@ public struct WriteExternalOauthApplication: SDKModel { case _client_secret = "client_secret" case _tenant_id = "tenant_id" case _dialect_name = "dialect_name" + case bi_directional_data_access } private var _name: AnyString? /** @@ -28727,12 +28913,18 @@ public struct WriteExternalOauthApplication: SDKModel { set { _dialect_name = newValue.map(AnyString.init) } } - public init(name: String? = nil, client_id: String? = nil, client_secret: String? = nil, tenant_id: String? = nil, dialect_name: String? = nil) { + /** + * Whether this application supports bi-directional data access. + */ + public var bi_directional_data_access: Bool? + + public init(name: String? = nil, client_id: String? = nil, client_secret: String? = nil, tenant_id: String? = nil, dialect_name: String? = nil, bi_directional_data_access: Bool? = nil) { self._name = name.map(AnyString.init) self._client_id = client_id.map(AnyString.init) self._client_secret = client_secret.map(AnyString.init) self._tenant_id = tenant_id.map(AnyString.init) self._dialect_name = dialect_name.map(AnyString.init) + self.bi_directional_data_access = bi_directional_data_access } } @@ -29325,6 +29517,7 @@ public struct WriteLookBasic: SDKModel { private enum CodingKeys : String, CodingKey { case _user_id = "user_id" + case certification_metadata } private var _user_id: AnyString? /** @@ -29335,8 +29528,15 @@ public struct WriteLookBasic: SDKModel { set { _user_id = newValue.map(AnyString.init) } } - public init(user_id: String? = nil) { + /** + * Dynamic writeable type for Certification removes: + * user_name, updated_at + */ + public var certification_metadata: WriteCertification? + + public init(user_id: String? = nil, certification_metadata: WriteCertification? = nil) { self._user_id = user_id.map(AnyString.init) + self.certification_metadata = certification_metadata } } @@ -29403,6 +29603,7 @@ public struct WriteLookWithQuery: SDKModel { private enum CodingKeys : String, CodingKey { case _title = "title" case _user_id = "user_id" + case certification_metadata case deleted case _description = "description" case is_run_on_load @@ -29430,6 +29631,12 @@ public struct WriteLookWithQuery: SDKModel { set { _user_id = newValue.map(AnyString.init) } } + /** + * Dynamic writeable type for Certification removes: + * user_name, updated_at + */ + public var certification_metadata: WriteCertification? + /** * Whether or not a look is 'soft' deleted. */ @@ -29484,9 +29691,10 @@ public struct WriteLookWithQuery: SDKModel { */ public var query: WriteQuery? - public init(title: String? = nil, user_id: String? = nil, deleted: Bool? = nil, description: String? = nil, is_run_on_load: Bool? = nil, `public`: Bool? = nil, query_id: String? = nil, folder: WriteFolderBase? = nil, folder_id: String? = nil, query: WriteQuery? = nil) { + public init(title: String? = nil, user_id: String? = nil, certification_metadata: WriteCertification? = nil, deleted: Bool? = nil, description: String? = nil, is_run_on_load: Bool? = nil, `public`: Bool? = nil, query_id: String? = nil, folder: WriteFolderBase? = nil, folder_id: String? = nil, query: WriteQuery? = nil) { self._title = title.map(AnyString.init) self._user_id = user_id.map(AnyString.init) + self.certification_metadata = certification_metadata self.deleted = deleted self._description = description.map(AnyString.init) self.is_run_on_load = is_run_on_load diff --git a/swift/looker/sdk/streams.swift b/swift/looker/sdk/streams.swift index 2c0f3775d..cdddc453d 100644 --- a/swift/looker/sdk/streams.swift +++ b/swift/looker/sdk/streams.swift @@ -6983,10 +6983,14 @@ open class LookerSDKStream: APIMethods { * @param {Bool} include_internal Whether or not to include built-in models such as System Activity (Defaults to false) */ include_internal: Bool? = nil, + /** + * @param {Bool} include_self_service Whether or not to include self service models (Defaults to false) + */ + include_self_service: Bool? = nil, options: ITransportSettings? = nil ) -> SDKResponse { let result: SDKResponse = self.get("/lookml_models", - ["fields": fields, "limit": limit, "offset": offset, "exclude_empty": exclude_empty as Any?, "exclude_hidden": exclude_hidden as Any?, "include_internal": include_internal as Any?], nil, options) + ["fields": fields, "limit": limit, "offset": offset, "exclude_empty": exclude_empty as Any?, "exclude_hidden": exclude_hidden as Any?, "include_internal": include_internal as Any?, "include_self_service": include_self_service as Any?], nil, options) return result }