diff --git a/csharp/rtl/Constants.cs b/csharp/rtl/Constants.cs index efc0441f9..cee065ba5 100644 --- a/csharp/rtl/Constants.cs +++ b/csharp/rtl/Constants.cs @@ -61,7 +61,7 @@ public struct Constants public const string DefaultApiVersion = "4.0"; public const string AgentPrefix = "CS-SDK"; - public const string LookerVersion = "24.0"; + public const string LookerVersion = "24.2"; 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 477935975..0de9a78b2 100644 --- a/csharp/sdk/4.0/methods.cs +++ b/csharp/sdk/4.0/methods.cs @@ -705,7 +705,7 @@ public async Task> create_sso_embed_url /// "Powered by Looker" (PBL) web application. /// /// This is similar to Private Embedding (https://cloud.google.com/looker/docs/r/admin/embed/private-embed). Instead of - /// of logging into the Web UI to authenticate, the user has already authenticated against the API to be able to + /// logging into the Web UI to authenticate, the user has already authenticated against the API to be able to /// make this call. However, unlike Private Embed where the user has access to any other part of the Looker UI, /// the embed web session created by requesting the EmbedUrlResponse.url in a browser only has access to /// content visible under the `/embed` context. @@ -771,7 +771,7 @@ public async Task> validate_embed_url( /// If the `session_reference_token` is provided but the session has expired, the token will be ignored and a /// new embed session will be created. Note that the embed user definition will be updated in this scenario. /// - /// If the credentials do not match the credentials associated with an exisiting session_reference_token, a + /// If the credentials do not match the credentials associated with an existing session_reference_token, a /// 404 will be returned. /// /// The endpoint returns the following: @@ -1252,7 +1252,7 @@ public async Task> deactivate_app_user( /// /// Configuring OIDC impacts authentication for all users. This configuration should be done carefully. /// - /// Looker maintains a single OIDC configuation. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct). + /// Looker maintains a single OIDC configuration. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct). /// /// OIDC is enabled or disabled for Looker using the **enabled** field. /// @@ -1392,7 +1392,7 @@ public async Task> force_password_reset_at_next_l /// /// Configuring SAML impacts authentication for all users. This configuration should be done carefully. /// - /// Looker maintains a single SAML configuation. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct). + /// Looker maintains a single SAML configuration. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct). /// /// SAML is enabled or disabled for Looker using the **enabled** field. /// @@ -3356,7 +3356,7 @@ public async Task> search_content( /// ### Get an image representing the contents of a dashboard or look. /// - /// The returned thumbnail is an abstract representation of the contents of a dashbord or look and does not + /// The returned thumbnail is an abstract representation of the contents of a dashboard or look and does not /// reflect the actual data displayed in the respective visualizations. /// /// GET /content_thumbnail/{type}/{resource_id} -> string @@ -3489,7 +3489,7 @@ public async Task> search_content_views( /// /// # DEPRECATED: Use [content_thumbnail()](#!/Content/content_thumbnail) /// - /// The returned thumbnail is an abstract representation of the contents of a dashbord or look and does not + /// The returned thumbnail is an abstract representation of the contents of a dashboard or look and does not /// reflect the actual data displayed in the respective visualizations. /// /// GET /vector_thumbnail/{type}/{resource_id} -> string @@ -3794,7 +3794,7 @@ public async Task> delete_dashboard( return await AuthRequest(HttpMethod.Delete, $"/dashboards/{dashboard_id}", null,null,options); } - /// ### Get Aggregate Table LookML for Each Query on a Dahboard + /// ### Get Aggregate Table LookML for Each Query on a Dashboard /// /// Returns a JSON object that contains the dashboard id and Aggregate Table lookml /// @@ -6756,8 +6756,6 @@ public async Task> run_lookml_test( /// ### Creates a tag for the most recent commit, or a specific ref is a SHA is provided /// - /// This is an internal-only, undocumented route. - /// /// POST /projects/{project_id}/tag -> Project /// /// @@ -7920,6 +7918,7 @@ public async Task> permission_set( } /// ### Update information about the permission set with a specific id. + /// Providing save_content permission alone will also provide you the abilities of save_looks and save_dashboards. /// /// PATCH /permission_sets/{permission_set_id} -> PermissionSet /// @@ -7966,6 +7965,7 @@ public async Task> all_permission_sets( } /// ### Create a permission set with the specified information. Permission sets are used by Roles. + /// Providing save_content permission alone will also provide you the abilities of save_looks and save_dashboards. /// /// POST /permission_sets -> PermissionSet /// diff --git a/csharp/sdk/4.0/models.cs b/csharp/sdk/4.0/models.cs index b2152bf86..ce9a92123 100644 --- a/csharp/sdk/4.0/models.cs +++ b/csharp/sdk/4.0/models.cs @@ -3654,6 +3654,8 @@ public class MergeQuerySourceQuery : SdkModel public string? name { get; set; } = null; /// Id of the query to merge public string? query_id { get; set; } = null; + /// Slug of the query to merge + public string? query_slug { get; set; } = null; } public class MobileFeatureFlags : SdkModel diff --git a/go/sdk/v4/methods.go b/go/sdk/v4/methods.go index 19ba1be84..52fa786b2 100644 --- a/go/sdk/v4/methods.go +++ b/go/sdk/v4/methods.go @@ -576,7 +576,7 @@ func (l *LookerSDK) CreateSsoEmbedUrl( // "Powered by Looker" (PBL) web application. // // This is similar to Private Embedding (https://cloud.google.com/looker/docs/r/admin/embed/private-embed). Instead of -// of logging into the Web UI to authenticate, the user has already authenticated against the API to be able to +// logging into the Web UI to authenticate, the user has already authenticated against the API to be able to // make this call. However, unlike Private Embed where the user has access to any other part of the Looker UI, // the embed web session created by requesting the EmbedUrlResponse.url in a browser only has access to // content visible under the `/embed` context. @@ -637,7 +637,7 @@ func (l *LookerSDK) ValidateEmbedUrl( // If the `session_reference_token` is provided but the session has expired, the token will be ignored and a // new embed session will be created. Note that the embed user definition will be updated in this scenario. // -// If the credentials do not match the credentials associated with an exisiting session_reference_token, a +// If the credentials do not match the credentials associated with an existing session_reference_token, a // 404 will be returned. // // The endpoint returns the following: @@ -1074,7 +1074,7 @@ func (l *LookerSDK) DeactivateAppUser( // // Configuring OIDC impacts authentication for all users. This configuration should be done carefully. // -// Looker maintains a single OIDC configuation. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct). +// Looker maintains a single OIDC configuration. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct). // // OIDC is enabled or disabled for Looker using the **enabled** field. // @@ -1204,7 +1204,7 @@ func (l *LookerSDK) ForcePasswordResetAtNextLoginForAllUsers( // // Configuring SAML impacts authentication for all users. This configuration should be done carefully. // -// Looker maintains a single SAML configuation. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct). +// Looker maintains a single SAML configuration. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct). // // SAML is enabled or disabled for Looker using the **enabled** field. // @@ -2802,7 +2802,7 @@ func (l *LookerSDK) SearchContent(request RequestSearchContent, // ### Get an image representing the contents of a dashboard or look. // -// The returned thumbnail is an abstract representation of the contents of a dashbord or look and does not +// The returned thumbnail is an abstract representation of the contents of a dashboard or look and does not // reflect the actual data displayed in the respective visualizations. // // GET /content_thumbnail/{type}/{resource_id} -> string @@ -2869,7 +2869,7 @@ func (l *LookerSDK) SearchContentViews(request RequestSearchContentViews, // // # DEPRECATED: Use [content_thumbnail()](#!/Content/content_thumbnail) // -// The returned thumbnail is an abstract representation of the contents of a dashbord or look and does not +// The returned thumbnail is an abstract representation of the contents of a dashboard or look and does not // reflect the actual data displayed in the respective visualizations. // // GET /vector_thumbnail/{type}/{resource_id} -> string @@ -3087,7 +3087,7 @@ func (l *LookerSDK) DeleteDashboard( } -// ### Get Aggregate Table LookML for Each Query on a Dahboard +// ### Get Aggregate Table LookML for Each Query on a Dashboard // // # Returns a JSON object that contains the dashboard id and Aggregate Table lookml // @@ -3872,7 +3872,7 @@ func (l *LookerSDK) SearchGroups(request RequestSearchGroups, // Boolean search params accept only "true" and "false" as values. // // GET /groups/search/with_roles -> []GroupSearch -func (l *LookerSDK) SearchGroupsWithRoles(request RequestSearchGroups, +func (l *LookerSDK) SearchGroupsWithRoles(request RequestSearchGroupsWithRoles, options *rtl.ApiSettings) ([]GroupSearch, error) { var result []GroupSearch err := l.session.Do(&result, "GET", "/4.0", "/groups/search/with_roles", map[string]interface{}{"fields": request.Fields, "limit": request.Limit, "offset": request.Offset, "sorts": request.Sorts, "filter_or": request.FilterOr, "id": request.Id, "name": request.Name, "external_group_id": request.ExternalGroupId, "externally_managed": request.ExternallyManaged, "externally_orphaned": request.ExternallyOrphaned}, nil, options) @@ -3907,7 +3907,7 @@ func (l *LookerSDK) SearchGroupsWithRoles(request RequestSearchGroups, // Boolean search params accept only "true" and "false" as values. // // GET /groups/search/with_hierarchy -> []GroupHierarchy -func (l *LookerSDK) SearchGroupsWithHierarchy(request RequestSearchGroups, +func (l *LookerSDK) SearchGroupsWithHierarchy(request RequestSearchGroupsWithHierarchy, options *rtl.ApiSettings) ([]GroupHierarchy, error) { var result []GroupHierarchy err := l.session.Do(&result, "GET", "/4.0", "/groups/search/with_hierarchy", map[string]interface{}{"fields": request.Fields, "limit": request.Limit, "offset": request.Offset, "sorts": request.Sorts, "filter_or": request.FilterOr, "id": request.Id, "name": request.Name, "external_group_id": request.ExternalGroupId, "externally_managed": request.ExternallyManaged, "externally_orphaned": request.ExternallyOrphaned}, nil, options) @@ -4467,7 +4467,7 @@ func (l *LookerSDK) MoveLook( // ### Get information about all lookml models. // // GET /lookml_models -> []LookmlModel -func (l *LookerSDK) AllLookmlModels(request RequestArtifactNamespaces, +func (l *LookerSDK) AllLookmlModels(request RequestAllLookmlModels, options *rtl.ApiSettings) ([]LookmlModel, error) { var result []LookmlModel err := l.session.Do(&result, "GET", "/4.0", "/lookml_models", map[string]interface{}{"fields": request.Fields, "limit": request.Limit, "offset": request.Offset}, nil, options) @@ -5214,8 +5214,6 @@ func (l *LookerSDK) RunLookmlTest(request RequestRunLookmlTest, // ### Creates a tag for the most recent commit, or a specific ref is a SHA is provided // -// This is an internal-only, undocumented route. -// // POST /projects/{project_id}/tag -> Project func (l *LookerSDK) TagRef(request RequestTagRef, options *rtl.ApiSettings) (Project, error) { @@ -6016,7 +6014,7 @@ func (l *LookerSDK) AllPermissions( // Boolean search params accept only "true" and "false" as values. // // GET /permission_sets/search -> []PermissionSet -func (l *LookerSDK) SearchPermissionSets(request RequestSearchModelSets, +func (l *LookerSDK) SearchPermissionSets(request RequestSearchPermissionSets, options *rtl.ApiSettings) ([]PermissionSet, error) { var result []PermissionSet err := l.session.Do(&result, "GET", "/4.0", "/permission_sets/search", map[string]interface{}{"fields": request.Fields, "limit": request.Limit, "offset": request.Offset, "sorts": request.Sorts, "id": request.Id, "name": request.Name, "all_access": request.AllAccess, "built_in": request.BuiltIn, "filter_or": request.FilterOr}, nil, options) @@ -6039,6 +6037,7 @@ func (l *LookerSDK) PermissionSet( } // ### Update information about the permission set with a specific id. +// Providing save_content permission alone will also provide you the abilities of save_looks and save_dashboards. // // PATCH /permission_sets/{permission_set_id} -> PermissionSet func (l *LookerSDK) UpdatePermissionSet( @@ -6078,6 +6077,7 @@ func (l *LookerSDK) AllPermissionSets( } // ### Create a permission set with the specified information. Permission sets are used by Roles. +// Providing save_content permission alone will also provide you the abilities of save_looks and save_dashboards. // // POST /permission_sets -> PermissionSet func (l *LookerSDK) CreatePermissionSet( @@ -6173,7 +6173,7 @@ func (l *LookerSDK) SearchRoles(request RequestSearchRoles, // Boolean search params accept only "true" and "false" as values. // // GET /roles/search/with_user_count -> []RoleSearch -func (l *LookerSDK) SearchRolesWithUserCount(request RequestSearchRoles, +func (l *LookerSDK) SearchRolesWithUserCount(request RequestSearchRolesWithUserCount, options *rtl.ApiSettings) ([]RoleSearch, error) { var result []RoleSearch err := l.session.Do(&result, "GET", "/4.0", "/roles/search/with_user_count", map[string]interface{}{"fields": request.Fields, "limit": request.Limit, "offset": request.Offset, "sorts": request.Sorts, "id": request.Id, "name": request.Name, "built_in": request.BuiltIn, "filter_or": request.FilterOr}, nil, options) @@ -7835,7 +7835,7 @@ func (l *LookerSDK) CreateEmbedUser( // ### Get information about all user attributes. // // GET /user_attributes -> []UserAttribute -func (l *LookerSDK) AllUserAttributes(request RequestAllBoardSections, +func (l *LookerSDK) AllUserAttributes(request RequestAllUserAttributes, options *rtl.ApiSettings) ([]UserAttribute, error) { var result []UserAttribute err := l.session.Do(&result, "GET", "/4.0", "/user_attributes", map[string]interface{}{"fields": request.Fields, "sorts": request.Sorts}, nil, options) diff --git a/go/sdk/v4/models.go b/go/sdk/v4/models.go index 4a4d04a9e..806e58692 100644 --- a/go/sdk/v4/models.go +++ b/go/sdk/v4/models.go @@ -26,7 +26,7 @@ SOFTWARE. /* -400 API models: 256 Spec, 61 Request, 61 Write, 22 Enum +405 API models: 256 Spec, 67 Request, 60 Write, 22 Enum */ // NOTE: Do not edit this file generated by Looker SDK Codegen for API v4 @@ -2042,6 +2042,7 @@ type MergeQuerySourceQuery struct { MergeFields *[]MergeFields `json:"merge_fields,omitempty"` // An array defining which fields of the source query are mapped onto fields of the merge query Name *string `json:"name,omitempty"` // Display name QueryId *string `json:"query_id,omitempty"` // Id of the query to merge + QuerySlug *string `json:"query_slug,omitempty"` // Slug of the query to merge } type MobileFeatureFlags struct { @@ -2487,6 +2488,13 @@ type RequestAllIntegrations struct { IntegrationHubId *string `json:"integration_hub_id,omitempty"` // Filter to a specific provider } +// 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) +} + // Dynamically generated request type for all_roles type RequestAllRoles struct { Fields *string `json:"fields,omitempty"` // Requested fields. @@ -2500,6 +2508,12 @@ type RequestAllScheduledPlans struct { AllUsers *bool `json:"all_users,omitempty"` // Return scheduled plans belonging to all users (caller needs see_schedules permission) } +// Dynamically generated request type for all_user_attributes +type RequestAllUserAttributes struct { + Fields *string `json:"fields,omitempty"` // Requested fields. + Sorts *string `json:"sorts,omitempty"` // Fields to order the results by. Sortable fields include: name, label +} + // Dynamically generated request type for all_users type RequestAllUsers struct { Fields *string `json:"fields,omitempty"` // Requested fields. @@ -2949,6 +2963,34 @@ type RequestSearchGroups struct { ExternallyOrphaned *bool `json:"externally_orphaned,omitempty"` // Match group externally_orphaned. } +// Dynamically generated request type for search_groups_with_hierarchy +type RequestSearchGroupsWithHierarchy struct { + Fields *string `json:"fields,omitempty"` // Requested fields. + Limit *int64 `json:"limit,omitempty"` // Number of results to return (used with `offset`). + Offset *int64 `json:"offset,omitempty"` // Number of results to skip before returning any (used with `limit`). + Sorts *string `json:"sorts,omitempty"` // Fields to sort by. + FilterOr *bool `json:"filter_or,omitempty"` // Combine given search criteria in a boolean OR expression + Id *string `json:"id,omitempty"` // Match group id. + Name *string `json:"name,omitempty"` // Match group name. + ExternalGroupId *string `json:"external_group_id,omitempty"` // Match group external_group_id. + ExternallyManaged *bool `json:"externally_managed,omitempty"` // Match group externally_managed. + ExternallyOrphaned *bool `json:"externally_orphaned,omitempty"` // Match group externally_orphaned. +} + +// Dynamically generated request type for search_groups_with_roles +type RequestSearchGroupsWithRoles struct { + Fields *string `json:"fields,omitempty"` // Requested fields. + Limit *int64 `json:"limit,omitempty"` // Number of results to return (used with `offset`). + Offset *int64 `json:"offset,omitempty"` // Number of results to skip before returning any (used with `limit`). + Sorts *string `json:"sorts,omitempty"` // Fields to sort by. + FilterOr *bool `json:"filter_or,omitempty"` // Combine given search criteria in a boolean OR expression + Id *string `json:"id,omitempty"` // Match group id. + Name *string `json:"name,omitempty"` // Match group name. + ExternalGroupId *string `json:"external_group_id,omitempty"` // Match group external_group_id. + ExternallyManaged *bool `json:"externally_managed,omitempty"` // Match group externally_managed. + ExternallyOrphaned *bool `json:"externally_orphaned,omitempty"` // Match group externally_orphaned. +} + // Dynamically generated request type for search_looks type RequestSearchLooks struct { Id *string `json:"id,omitempty"` // Match look id. @@ -2984,6 +3026,19 @@ type RequestSearchModelSets struct { FilterOr *bool `json:"filter_or,omitempty"` // Combine given search criteria in a boolean OR expression. } +// Dynamically generated request type for search_permission_sets +type RequestSearchPermissionSets struct { + Fields *string `json:"fields,omitempty"` // Requested fields. + Limit *int64 `json:"limit,omitempty"` // Number of results to return (used with `offset`). + Offset *int64 `json:"offset,omitempty"` // Number of results to skip before returning any (used with `limit`). + Sorts *string `json:"sorts,omitempty"` // Fields to sort by. + Id *string `json:"id,omitempty"` // Match permission set id. + Name *string `json:"name,omitempty"` // Match permission set name. + AllAccess *bool `json:"all_access,omitempty"` // Match permission sets by all_access status. + BuiltIn *bool `json:"built_in,omitempty"` // Match permission sets by built_in status. + FilterOr *bool `json:"filter_or,omitempty"` // Combine given search criteria in a boolean OR expression. +} + // Dynamically generated request type for search_roles type RequestSearchRoles struct { Fields *string `json:"fields,omitempty"` // Requested fields. @@ -2996,6 +3051,18 @@ type RequestSearchRoles struct { FilterOr *bool `json:"filter_or,omitempty"` // Combine given search criteria in a boolean OR expression. } +// Dynamically generated request type for search_roles_with_user_count +type RequestSearchRolesWithUserCount struct { + Fields *string `json:"fields,omitempty"` // Requested fields. + Limit *int64 `json:"limit,omitempty"` // Number of results to return (used with `offset`). + Offset *int64 `json:"offset,omitempty"` // Number of results to skip before returning any (used with `limit`). + Sorts *string `json:"sorts,omitempty"` // Fields to sort by. + Id *string `json:"id,omitempty"` // Match role id. + Name *string `json:"name,omitempty"` // Match role name. + BuiltIn *bool `json:"built_in,omitempty"` // Match roles by built_in status. + FilterOr *bool `json:"filter_or,omitempty"` // Combine given search criteria in a boolean OR expression. +} + // Dynamically generated request type for search_themes type RequestSearchThemes struct { Id *string `json:"id,omitempty"` // Match theme id. 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 9db7901db..80651e6da 100644 --- a/kotlin/src/main/com/looker/sdk/4.0/methods.kt +++ b/kotlin/src/main/com/looker/sdk/4.0/methods.kt @@ -721,7 +721,7 @@ class LookerSDK(authSession: AuthSession) : APIMethods(authSession) { * "Powered by Looker" (PBL) web application. * * This is similar to Private Embedding (https://cloud.google.com/looker/docs/r/admin/embed/private-embed). Instead of - * of logging into the Web UI to authenticate, the user has already authenticated against the API to be able to + * logging into the Web UI to authenticate, the user has already authenticated against the API to be able to * make this call. However, unlike Private Embed where the user has access to any other part of the Looker UI, * the embed web session created by requesting the EmbedUrlResponse.url in a browser only has access to * content visible under the `/embed` context. @@ -788,7 +788,7 @@ class LookerSDK(authSession: AuthSession) : APIMethods(authSession) { * If the `session_reference_token` is provided but the session has expired, the token will be ignored and a * new embed session will be created. Note that the embed user definition will be updated in this scenario. * - * If the credentials do not match the credentials associated with an exisiting session_reference_token, a + * If the credentials do not match the credentials associated with an existing session_reference_token, a * 404 will be returned. * * The endpoint returns the following: @@ -1268,7 +1268,7 @@ class LookerSDK(authSession: AuthSession) : APIMethods(authSession) { * * Configuring OIDC impacts authentication for all users. This configuration should be done carefully. * - * Looker maintains a single OIDC configuation. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct). + * Looker maintains a single OIDC configuration. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct). * * OIDC is enabled or disabled for Looker using the **enabled** field. * @@ -1397,7 +1397,7 @@ class LookerSDK(authSession: AuthSession) : APIMethods(authSession) { * * Configuring SAML impacts authentication for all users. This configuration should be done carefully. * - * Looker maintains a single SAML configuation. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct). + * Looker maintains a single SAML configuration. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct). * * SAML is enabled or disabled for Looker using the **enabled** field. * @@ -3372,7 +3372,7 @@ class LookerSDK(authSession: AuthSession) : APIMethods(authSession) { /** * ### Get an image representing the contents of a dashboard or look. * - * The returned thumbnail is an abstract representation of the contents of a dashbord or look and does not + * The returned thumbnail is an abstract representation of the contents of a dashboard or look and does not * reflect the actual data displayed in the respective visualizations. * * @param {String} type Either dashboard or look @@ -3509,7 +3509,7 @@ class LookerSDK(authSession: AuthSession) : APIMethods(authSession) { * * # DEPRECATED: Use [content_thumbnail()](#!/Content/content_thumbnail) * - * The returned thumbnail is an abstract representation of the contents of a dashbord or look and does not + * The returned thumbnail is an abstract representation of the contents of a dashboard or look and does not * reflect the actual data displayed in the respective visualizations. * * @param {String} type Either dashboard or look @@ -3826,7 +3826,7 @@ class LookerSDK(authSession: AuthSession) : APIMethods(authSession) { } /** - * ### Get Aggregate Table LookML for Each Query on a Dahboard + * ### Get Aggregate Table LookML for Each Query on a Dashboard * * Returns a JSON object that contains the dashboard id and Aggregate Table lookml * @@ -6899,8 +6899,6 @@ class LookerSDK(authSession: AuthSession) : APIMethods(authSession) { /** * ### Creates a tag for the most recent commit, or a specific ref is a SHA is provided * - * This is an internal-only, undocumented route. - * * @param {String} project_id Project Id * @param {WriteProject} body * @param {String} commit_sha (Optional): Commit Sha to Tag @@ -8073,6 +8071,7 @@ class LookerSDK(authSession: AuthSession) : APIMethods(authSession) { /** * ### Update information about the permission set with a specific id. + * Providing save_content permission alone will also provide you the abilities of save_looks and save_dashboards. * * @param {String} permission_set_id Id of permission set * @param {WritePermissionSet} body @@ -8119,6 +8118,7 @@ class LookerSDK(authSession: AuthSession) : APIMethods(authSession) { /** * ### Create a permission set with the specified information. Permission sets are used by Roles. + * Providing save_content permission alone will also provide you the abilities of save_looks and save_dashboards. * * @param {WritePermissionSet} body * 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 0c835eee5..b7af30bdc 100644 --- a/kotlin/src/main/com/looker/sdk/4.0/models.kt +++ b/kotlin/src/main/com/looker/sdk/4.0/models.kt @@ -3843,11 +3843,13 @@ data class MergeQuery( * @property merge_fields An array defining which fields of the source query are mapped onto fields of the merge query * @property name Display name * @property query_id Id of the query to merge + * @property query_slug Slug of the query to merge */ data class MergeQuerySourceQuery( var merge_fields: Array? = null, var name: String? = null, var query_id: String? = null, + var query_slug: String? = null, ) : Serializable /** 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 940c6b550..2c3c45a74 100644 --- a/kotlin/src/main/com/looker/sdk/4.0/streams.kt +++ b/kotlin/src/main/com/looker/sdk/4.0/streams.kt @@ -719,7 +719,7 @@ class LookerSDKStream(authSession: AuthSession) : APIMethods(authSession) { * "Powered by Looker" (PBL) web application. * * This is similar to Private Embedding (https://cloud.google.com/looker/docs/r/admin/embed/private-embed). Instead of - * of logging into the Web UI to authenticate, the user has already authenticated against the API to be able to + * logging into the Web UI to authenticate, the user has already authenticated against the API to be able to * make this call. However, unlike Private Embed where the user has access to any other part of the Looker UI, * the embed web session created by requesting the EmbedUrlResponse.url in a browser only has access to * content visible under the `/embed` context. @@ -786,7 +786,7 @@ class LookerSDKStream(authSession: AuthSession) : APIMethods(authSession) { * If the `session_reference_token` is provided but the session has expired, the token will be ignored and a * new embed session will be created. Note that the embed user definition will be updated in this scenario. * - * If the credentials do not match the credentials associated with an exisiting session_reference_token, a + * If the credentials do not match the credentials associated with an existing session_reference_token, a * 404 will be returned. * * The endpoint returns the following: @@ -1266,7 +1266,7 @@ class LookerSDKStream(authSession: AuthSession) : APIMethods(authSession) { * * Configuring OIDC impacts authentication for all users. This configuration should be done carefully. * - * Looker maintains a single OIDC configuation. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct). + * Looker maintains a single OIDC configuration. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct). * * OIDC is enabled or disabled for Looker using the **enabled** field. * @@ -1395,7 +1395,7 @@ class LookerSDKStream(authSession: AuthSession) : APIMethods(authSession) { * * Configuring SAML impacts authentication for all users. This configuration should be done carefully. * - * Looker maintains a single SAML configuation. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct). + * Looker maintains a single SAML configuration. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct). * * SAML is enabled or disabled for Looker using the **enabled** field. * @@ -3370,7 +3370,7 @@ class LookerSDKStream(authSession: AuthSession) : APIMethods(authSession) { /** * ### Get an image representing the contents of a dashboard or look. * - * The returned thumbnail is an abstract representation of the contents of a dashbord or look and does not + * The returned thumbnail is an abstract representation of the contents of a dashboard or look and does not * reflect the actual data displayed in the respective visualizations. * * @param {String} type Either dashboard or look @@ -3507,7 +3507,7 @@ class LookerSDKStream(authSession: AuthSession) : APIMethods(authSession) { * * # DEPRECATED: Use [content_thumbnail()](#!/Content/content_thumbnail) * - * The returned thumbnail is an abstract representation of the contents of a dashbord or look and does not + * The returned thumbnail is an abstract representation of the contents of a dashboard or look and does not * reflect the actual data displayed in the respective visualizations. * * @param {String} type Either dashboard or look @@ -3824,7 +3824,7 @@ class LookerSDKStream(authSession: AuthSession) : APIMethods(authSession) { } /** - * ### Get Aggregate Table LookML for Each Query on a Dahboard + * ### Get Aggregate Table LookML for Each Query on a Dashboard * * Returns a JSON object that contains the dashboard id and Aggregate Table lookml * @@ -6897,8 +6897,6 @@ class LookerSDKStream(authSession: AuthSession) : APIMethods(authSession) { /** * ### Creates a tag for the most recent commit, or a specific ref is a SHA is provided * - * This is an internal-only, undocumented route. - * * @param {String} project_id Project Id * @param {WriteProject} body * @param {String} commit_sha (Optional): Commit Sha to Tag @@ -8071,6 +8069,7 @@ class LookerSDKStream(authSession: AuthSession) : APIMethods(authSession) { /** * ### Update information about the permission set with a specific id. + * Providing save_content permission alone will also provide you the abilities of save_looks and save_dashboards. * * @param {String} permission_set_id Id of permission set * @param {WritePermissionSet} body @@ -8117,6 +8116,7 @@ class LookerSDKStream(authSession: AuthSession) : APIMethods(authSession) { /** * ### Create a permission set with the specified information. Permission sets are used by Roles. + * Providing save_content permission alone will also provide you the abilities of save_looks and save_dashboards. * * @param {WritePermissionSet} body * diff --git a/kotlin/src/main/com/looker/sdk/Constants.kt b/kotlin/src/main/com/looker/sdk/Constants.kt index cdf12e1df..8df7a73bc 100644 --- a/kotlin/src/main/com/looker/sdk/Constants.kt +++ b/kotlin/src/main/com/looker/sdk/Constants.kt @@ -28,7 +28,7 @@ package com.looker.sdk const val ENVIRONMENT_PREFIX = "LOOKERSDK" const val SDK_TAG = "KT-SDK" -const val LOOKER_VERSION = "24.0" +const val LOOKER_VERSION = "24.2" 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 6785f9e26..23e1a1038 100644 --- a/packages/sdk/src/4.0/funcs.ts +++ b/packages/sdk/src/4.0/funcs.ts @@ -170,8 +170,10 @@ import type { IRequestAllGroupUsers, IRequestAllGroups, IRequestAllIntegrations, + IRequestAllLookmlModels, IRequestAllRoles, IRequestAllScheduledPlans, + IRequestAllUserAttributes, IRequestAllUsers, IRequestArtifact, IRequestArtifactNamespaces, @@ -212,9 +214,13 @@ import type { IRequestSearchDashboards, IRequestSearchFolders, IRequestSearchGroups, + IRequestSearchGroupsWithHierarchy, + IRequestSearchGroupsWithRoles, IRequestSearchLooks, IRequestSearchModelSets, + IRequestSearchPermissionSets, IRequestSearchRoles, + IRequestSearchRolesWithUserCount, IRequestSearchThemes, IRequestSearchUserLoginLockouts, IRequestSearchUsers, @@ -1152,7 +1158,7 @@ export const create_sso_embed_url = async ( * "Powered by Looker" (PBL) web application. * * This is similar to Private Embedding (https://cloud.google.com/looker/docs/r/admin/embed/private-embed). Instead of - * of logging into the Web UI to authenticate, the user has already authenticated against the API to be able to + * logging into the Web UI to authenticate, the user has already authenticated against the API to be able to * make this call. However, unlike Private Embed where the user has access to any other part of the Looker UI, * the embed web session created by requesting the EmbedUrlResponse.url in a browser only has access to * content visible under the `/embed` context. @@ -1236,7 +1242,7 @@ export const validate_embed_url = async ( * If the `session_reference_token` is provided but the session has expired, the token will be ignored and a * new embed session will be created. Note that the embed user definition will be updated in this scenario. * - * If the credentials do not match the credentials associated with an exisiting session_reference_token, a + * If the credentials do not match the credentials associated with an existing session_reference_token, a * 404 will be returned. * * The endpoint returns the following: @@ -1896,7 +1902,7 @@ export const deactivate_app_user = async ( * * Configuring OIDC impacts authentication for all users. This configuration should be done carefully. * - * Looker maintains a single OIDC configuation. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct). + * Looker maintains a single OIDC configuration. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct). * * OIDC is enabled or disabled for Looker using the **enabled** field. * @@ -2106,7 +2112,7 @@ export const force_password_reset_at_next_login_for_all_users = async ( * * Configuring SAML impacts authentication for all users. This configuration should be done carefully. * - * Looker maintains a single SAML configuation. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct). + * Looker maintains a single SAML configuration. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct). * * SAML is enabled or disabled for Looker using the **enabled** field. * @@ -4931,7 +4937,7 @@ export const search_content = async ( /** * ### Get an image representing the contents of a dashboard or look. * - * The returned thumbnail is an abstract representation of the contents of a dashbord or look and does not + * The returned thumbnail is an abstract representation of the contents of a dashboard or look and does not * reflect the actual data displayed in the respective visualizations. * * GET /content_thumbnail/{type}/{resource_id} -> string @@ -5054,7 +5060,7 @@ export const search_content_views = async ( * * # DEPRECATED: Use [content_thumbnail()](#!/Content/content_thumbnail) * - * The returned thumbnail is an abstract representation of the contents of a dashbord or look and does not + * The returned thumbnail is an abstract representation of the contents of a dashboard or look and does not * reflect the actual data displayed in the respective visualizations. * * GET /vector_thumbnail/{type}/{resource_id} -> string @@ -5403,7 +5409,7 @@ export const delete_dashboard = async ( }; /** - * ### Get Aggregate Table LookML for Each Query on a Dahboard + * ### Get Aggregate Table LookML for Each Query on a Dashboard * * Returns a JSON object that contains the dashboard id and Aggregate Table lookml * @@ -6824,13 +6830,13 @@ export const search_groups = async ( * GET /groups/search/with_roles -> IGroupSearch[] * * @param sdk IAPIMethods implementation - * @param request composed interface "IRequestSearchGroups" for complex method parameters + * @param request composed interface "IRequestSearchGroupsWithRoles" for complex method parameters * @param options one-time API call overrides * */ export const search_groups_with_roles = async ( sdk: IAPIMethods, - request: IRequestSearchGroups, + request: IRequestSearchGroupsWithRoles, options?: Partial ): Promise> => { return sdk.get( @@ -6882,13 +6888,13 @@ export const search_groups_with_roles = async ( * GET /groups/search/with_hierarchy -> IGroupHierarchy[] * * @param sdk IAPIMethods implementation - * @param request composed interface "IRequestSearchGroups" for complex method parameters + * @param request composed interface "IRequestSearchGroupsWithHierarchy" for complex method parameters * @param options one-time API call overrides * */ export const search_groups_with_hierarchy = async ( sdk: IAPIMethods, - request: IRequestSearchGroups, + request: IRequestSearchGroupsWithHierarchy, options?: Partial ): Promise> => { return sdk.get( @@ -7877,13 +7883,13 @@ export const move_look = async ( * GET /lookml_models -> ILookmlModel[] * * @param sdk IAPIMethods implementation - * @param request composed interface "IRequestArtifactNamespaces" for complex method parameters + * @param request composed interface "IRequestAllLookmlModels" for complex method parameters * @param options one-time API call overrides * */ export const all_lookml_models = async ( sdk: IAPIMethods, - request: IRequestArtifactNamespaces, + request: IRequestAllLookmlModels, options?: Partial ): Promise> => { return sdk.get( @@ -9127,8 +9133,6 @@ export const run_lookml_test = async ( /** * ### Creates a tag for the most recent commit, or a specific ref is a SHA is provided * - * This is an internal-only, undocumented route. - * * POST /projects/{project_id}/tag -> IProject * * @param sdk IAPIMethods implementation @@ -10386,13 +10390,13 @@ export const all_permissions = async ( * GET /permission_sets/search -> IPermissionSet[] * * @param sdk IAPIMethods implementation - * @param request composed interface "IRequestSearchModelSets" for complex method parameters + * @param request composed interface "IRequestSearchPermissionSets" for complex method parameters * @param options one-time API call overrides * */ export const search_permission_sets = async ( sdk: IAPIMethods, - request: IRequestSearchModelSets, + request: IRequestSearchPermissionSets, options?: Partial ): Promise> => { return sdk.get( @@ -10441,6 +10445,7 @@ export const permission_set = async ( /** * ### Update information about the permission set with a specific id. + * Providing save_content permission alone will also provide you the abilities of save_looks and save_dashboards. * * PATCH /permission_sets/{permission_set_id} -> IPermissionSet * @@ -10514,6 +10519,7 @@ export const all_permission_sets = async ( /** * ### Create a permission set with the specified information. Permission sets are used by Roles. + * Providing save_content permission alone will also provide you the abilities of save_looks and save_dashboards. * * POST /permission_sets -> IPermissionSet * @@ -10666,13 +10672,13 @@ export const search_roles = async ( * GET /roles/search/with_user_count -> IRoleSearch[] * * @param sdk IAPIMethods implementation - * @param request composed interface "IRequestSearchRoles" for complex method parameters + * @param request composed interface "IRequestSearchRolesWithUserCount" for complex method parameters * @param options one-time API call overrides * */ export const search_roles_with_user_count = async ( sdk: IAPIMethods, - request: IRequestSearchRoles, + request: IRequestSearchRolesWithUserCount, options?: Partial ): Promise> => { return sdk.get( @@ -13351,13 +13357,13 @@ export const create_embed_user = async ( * GET /user_attributes -> IUserAttribute[] * * @param sdk IAPIMethods implementation - * @param request composed interface "IRequestAllBoardSections" for complex method parameters + * @param request composed interface "IRequestAllUserAttributes" for complex method parameters * @param options one-time API call overrides * */ export const all_user_attributes = async ( sdk: IAPIMethods, - request: IRequestAllBoardSections, + request: IRequestAllUserAttributes, options?: Partial ): Promise> => { return sdk.get( diff --git a/packages/sdk/src/4.0/methods.ts b/packages/sdk/src/4.0/methods.ts index 9728c8f5c..7b5528278 100644 --- a/packages/sdk/src/4.0/methods.ts +++ b/packages/sdk/src/4.0/methods.ts @@ -168,8 +168,10 @@ import type { IRequestAllGroupUsers, IRequestAllGroups, IRequestAllIntegrations, + IRequestAllLookmlModels, IRequestAllRoles, IRequestAllScheduledPlans, + IRequestAllUserAttributes, IRequestAllUsers, IRequestArtifact, IRequestArtifactNamespaces, @@ -210,9 +212,13 @@ import type { IRequestSearchDashboards, IRequestSearchFolders, IRequestSearchGroups, + IRequestSearchGroupsWithHierarchy, + IRequestSearchGroupsWithRoles, IRequestSearchLooks, IRequestSearchModelSets, + IRequestSearchPermissionSets, IRequestSearchRoles, + IRequestSearchRolesWithUserCount, IRequestSearchThemes, IRequestSearchUserLoginLockouts, IRequestSearchUsers, @@ -1108,7 +1114,7 @@ export class Looker40SDK extends APIMethods implements ILooker40SDK { * "Powered by Looker" (PBL) web application. * * This is similar to Private Embedding (https://cloud.google.com/looker/docs/r/admin/embed/private-embed). Instead of - * of logging into the Web UI to authenticate, the user has already authenticated against the API to be able to + * logging into the Web UI to authenticate, the user has already authenticated against the API to be able to * make this call. However, unlike Private Embed where the user has access to any other part of the Looker UI, * the embed web session created by requesting the EmbedUrlResponse.url in a browser only has access to * content visible under the `/embed` context. @@ -1188,7 +1194,7 @@ export class Looker40SDK extends APIMethods implements ILooker40SDK { * If the `session_reference_token` is provided but the session has expired, the token will be ignored and a * new embed session will be created. Note that the embed user definition will be updated in this scenario. * - * If the credentials do not match the credentials associated with an exisiting session_reference_token, a + * If the credentials do not match the credentials associated with an existing session_reference_token, a * 404 will be returned. * * The endpoint returns the following: @@ -1811,7 +1817,7 @@ export class Looker40SDK extends APIMethods implements ILooker40SDK { * * Configuring OIDC impacts authentication for all users. This configuration should be done carefully. * - * Looker maintains a single OIDC configuation. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct). + * Looker maintains a single OIDC configuration. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct). * * OIDC is enabled or disabled for Looker using the **enabled** field. * @@ -2005,7 +2011,7 @@ export class Looker40SDK extends APIMethods implements ILooker40SDK { * * Configuring SAML impacts authentication for all users. This configuration should be done carefully. * - * Looker maintains a single SAML configuation. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct). + * Looker maintains a single SAML configuration. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct). * * SAML is enabled or disabled for Looker using the **enabled** field. * @@ -4629,7 +4635,7 @@ export class Looker40SDK extends APIMethods implements ILooker40SDK { /** * ### Get an image representing the contents of a dashboard or look. * - * The returned thumbnail is an abstract representation of the contents of a dashbord or look and does not + * The returned thumbnail is an abstract representation of the contents of a dashboard or look and does not * reflect the actual data displayed in the respective visualizations. * * GET /content_thumbnail/{type}/{resource_id} -> string @@ -4746,7 +4752,7 @@ export class Looker40SDK extends APIMethods implements ILooker40SDK { * * # DEPRECATED: Use [content_thumbnail()](#!/Content/content_thumbnail) * - * The returned thumbnail is an abstract representation of the contents of a dashbord or look and does not + * The returned thumbnail is an abstract representation of the contents of a dashboard or look and does not * reflect the actual data displayed in the respective visualizations. * * GET /vector_thumbnail/{type}/{resource_id} -> string @@ -5077,7 +5083,7 @@ export class Looker40SDK extends APIMethods implements ILooker40SDK { } /** - * ### Get Aggregate Table LookML for Each Query on a Dahboard + * ### Get Aggregate Table LookML for Each Query on a Dashboard * * Returns a JSON object that contains the dashboard id and Aggregate Table lookml * @@ -6397,12 +6403,12 @@ export class Looker40SDK extends APIMethods implements ILooker40SDK { * * GET /groups/search/with_roles -> IGroupSearch[] * - * @param request composed interface "IRequestSearchGroups" for complex method parameters + * @param request composed interface "IRequestSearchGroupsWithRoles" for complex method parameters * @param options one-time API call overrides * */ async search_groups_with_roles( - request: IRequestSearchGroups, + request: IRequestSearchGroupsWithRoles, options?: Partial ): Promise> { return this.get( @@ -6453,12 +6459,12 @@ export class Looker40SDK extends APIMethods implements ILooker40SDK { * * GET /groups/search/with_hierarchy -> IGroupHierarchy[] * - * @param request composed interface "IRequestSearchGroups" for complex method parameters + * @param request composed interface "IRequestSearchGroupsWithHierarchy" for complex method parameters * @param options one-time API call overrides * */ async search_groups_with_hierarchy( - request: IRequestSearchGroups, + request: IRequestSearchGroupsWithHierarchy, options?: Partial ): Promise> { return this.get( @@ -7393,12 +7399,12 @@ export class Looker40SDK extends APIMethods implements ILooker40SDK { * * GET /lookml_models -> ILookmlModel[] * - * @param request composed interface "IRequestArtifactNamespaces" for complex method parameters + * @param request composed interface "IRequestAllLookmlModels" for complex method parameters * @param options one-time API call overrides * */ async all_lookml_models( - request: IRequestArtifactNamespaces, + request: IRequestAllLookmlModels, options?: Partial ): Promise> { return this.get( @@ -8566,8 +8572,6 @@ export class Looker40SDK extends APIMethods implements ILooker40SDK { /** * ### Creates a tag for the most recent commit, or a specific ref is a SHA is provided * - * This is an internal-only, undocumented route. - * * POST /projects/{project_id}/tag -> IProject * * @param request composed interface "IRequestTagRef" for complex method parameters @@ -9761,12 +9765,12 @@ export class Looker40SDK extends APIMethods implements ILooker40SDK { * * GET /permission_sets/search -> IPermissionSet[] * - * @param request composed interface "IRequestSearchModelSets" for complex method parameters + * @param request composed interface "IRequestSearchPermissionSets" for complex method parameters * @param options one-time API call overrides * */ async search_permission_sets( - request: IRequestSearchModelSets, + request: IRequestSearchPermissionSets, options?: Partial ): Promise> { return this.get( @@ -9813,6 +9817,7 @@ export class Looker40SDK extends APIMethods implements ILooker40SDK { /** * ### Update information about the permission set with a specific id. + * Providing save_content permission alone will also provide you the abilities of save_looks and save_dashboards. * * PATCH /permission_sets/{permission_set_id} -> IPermissionSet * @@ -9880,6 +9885,7 @@ export class Looker40SDK extends APIMethods implements ILooker40SDK { /** * ### Create a permission set with the specified information. Permission sets are used by Roles. + * Providing save_content permission alone will also provide you the abilities of save_looks and save_dashboards. * * POST /permission_sets -> IPermissionSet * @@ -10023,12 +10029,12 @@ export class Looker40SDK extends APIMethods implements ILooker40SDK { * * GET /roles/search/with_user_count -> IRoleSearch[] * - * @param request composed interface "IRequestSearchRoles" for complex method parameters + * @param request composed interface "IRequestSearchRolesWithUserCount" for complex method parameters * @param options one-time API call overrides * */ async search_roles_with_user_count( - request: IRequestSearchRoles, + request: IRequestSearchRolesWithUserCount, options?: Partial ): Promise> { return this.get( @@ -12566,12 +12572,12 @@ export class Looker40SDK extends APIMethods implements ILooker40SDK { * * GET /user_attributes -> IUserAttribute[] * - * @param request composed interface "IRequestAllBoardSections" for complex method parameters + * @param request composed interface "IRequestAllUserAttributes" for complex method parameters * @param options one-time API call overrides * */ async all_user_attributes( - request: IRequestAllBoardSections, + request: IRequestAllUserAttributes, options?: Partial ): Promise> { return this.get( diff --git a/packages/sdk/src/4.0/methodsInterface.ts b/packages/sdk/src/4.0/methodsInterface.ts index 20ffc4e4a..ab423c206 100644 --- a/packages/sdk/src/4.0/methodsInterface.ts +++ b/packages/sdk/src/4.0/methodsInterface.ts @@ -165,8 +165,10 @@ import type { IRequestAllGroupUsers, IRequestAllGroups, IRequestAllIntegrations, + IRequestAllLookmlModels, IRequestAllRoles, IRequestAllScheduledPlans, + IRequestAllUserAttributes, IRequestAllUsers, IRequestArtifact, IRequestArtifactNamespaces, @@ -207,9 +209,13 @@ import type { IRequestSearchDashboards, IRequestSearchFolders, IRequestSearchGroups, + IRequestSearchGroupsWithHierarchy, + IRequestSearchGroupsWithRoles, IRequestSearchLooks, IRequestSearchModelSets, + IRequestSearchPermissionSets, IRequestSearchRoles, + IRequestSearchRolesWithUserCount, IRequestSearchThemes, IRequestSearchUserLoginLockouts, IRequestSearchUsers, @@ -890,7 +896,7 @@ export interface ILooker40SDK extends IAPIMethods { * "Powered by Looker" (PBL) web application. * * This is similar to Private Embedding (https://cloud.google.com/looker/docs/r/admin/embed/private-embed). Instead of - * of logging into the Web UI to authenticate, the user has already authenticated against the API to be able to + * logging into the Web UI to authenticate, the user has already authenticated against the API to be able to * make this call. However, unlike Private Embed where the user has access to any other part of the Looker UI, * the embed web session created by requesting the EmbedUrlResponse.url in a browser only has access to * content visible under the `/embed` context. @@ -956,7 +962,7 @@ export interface ILooker40SDK extends IAPIMethods { * If the `session_reference_token` is provided but the session has expired, the token will be ignored and a * new embed session will be created. Note that the embed user definition will be updated in this scenario. * - * If the credentials do not match the credentials associated with an exisiting session_reference_token, a + * If the credentials do not match the credentials associated with an existing session_reference_token, a * 404 will be returned. * * The endpoint returns the following: @@ -1436,7 +1442,7 @@ export interface ILooker40SDK extends IAPIMethods { * * Configuring OIDC impacts authentication for all users. This configuration should be done carefully. * - * Looker maintains a single OIDC configuation. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct). + * Looker maintains a single OIDC configuration. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct). * * OIDC is enabled or disabled for Looker using the **enabled** field. * @@ -1577,7 +1583,7 @@ export interface ILooker40SDK extends IAPIMethods { * * Configuring SAML impacts authentication for all users. This configuration should be done carefully. * - * Looker maintains a single SAML configuation. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct). + * Looker maintains a single SAML configuration. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct). * * SAML is enabled or disabled for Looker using the **enabled** field. * @@ -3379,7 +3385,7 @@ export interface ILooker40SDK extends IAPIMethods { /** * ### Get an image representing the contents of a dashboard or look. * - * The returned thumbnail is an abstract representation of the contents of a dashbord or look and does not + * The returned thumbnail is an abstract representation of the contents of a dashboard or look and does not * reflect the actual data displayed in the respective visualizations. * * GET /content_thumbnail/{type}/{resource_id} -> string @@ -3453,7 +3459,7 @@ export interface ILooker40SDK extends IAPIMethods { * * # DEPRECATED: Use [content_thumbnail()](#!/Content/content_thumbnail) * - * The returned thumbnail is an abstract representation of the contents of a dashbord or look and does not + * The returned thumbnail is an abstract representation of the contents of a dashboard or look and does not * reflect the actual data displayed in the respective visualizations. * * GET /vector_thumbnail/{type}/{resource_id} -> string @@ -3692,7 +3698,7 @@ export interface ILooker40SDK extends IAPIMethods { ): Promise>; /** - * ### Get Aggregate Table LookML for Each Query on a Dahboard + * ### Get Aggregate Table LookML for Each Query on a Dashboard * * Returns a JSON object that contains the dashboard id and Aggregate Table lookml * @@ -4579,12 +4585,12 @@ export interface ILooker40SDK extends IAPIMethods { * * GET /groups/search/with_roles -> IGroupSearch[] * - * @param request composed interface "IRequestSearchGroups" for complex method parameters + * @param request composed interface "IRequestSearchGroupsWithRoles" for complex method parameters * @param options one-time API call overrides * */ search_groups_with_roles( - request: IRequestSearchGroups, + request: IRequestSearchGroupsWithRoles, options?: Partial ): Promise>; @@ -4617,12 +4623,12 @@ export interface ILooker40SDK extends IAPIMethods { * * GET /groups/search/with_hierarchy -> IGroupHierarchy[] * - * @param request composed interface "IRequestSearchGroups" for complex method parameters + * @param request composed interface "IRequestSearchGroupsWithHierarchy" for complex method parameters * @param options one-time API call overrides * */ search_groups_with_hierarchy( - request: IRequestSearchGroups, + request: IRequestSearchGroupsWithHierarchy, options?: Partial ): Promise>; @@ -5248,12 +5254,12 @@ export interface ILooker40SDK extends IAPIMethods { * * GET /lookml_models -> ILookmlModel[] * - * @param request composed interface "IRequestArtifactNamespaces" for complex method parameters + * @param request composed interface "IRequestAllLookmlModels" for complex method parameters * @param options one-time API call overrides * */ all_lookml_models( - request: IRequestArtifactNamespaces, + request: IRequestAllLookmlModels, options?: Partial ): Promise>; @@ -6064,8 +6070,6 @@ export interface ILooker40SDK extends IAPIMethods { /** * ### Creates a tag for the most recent commit, or a specific ref is a SHA is provided * - * This is an internal-only, undocumented route. - * * POST /projects/{project_id}/tag -> IProject * * @param request composed interface "IRequestTagRef" for complex method parameters @@ -6931,12 +6935,12 @@ export interface ILooker40SDK extends IAPIMethods { * * GET /permission_sets/search -> IPermissionSet[] * - * @param request composed interface "IRequestSearchModelSets" for complex method parameters + * @param request composed interface "IRequestSearchPermissionSets" for complex method parameters * @param options one-time API call overrides * */ search_permission_sets( - request: IRequestSearchModelSets, + request: IRequestSearchPermissionSets, options?: Partial ): Promise>; @@ -6958,6 +6962,7 @@ export interface ILooker40SDK extends IAPIMethods { /** * ### Update information about the permission set with a specific id. + * Providing save_content permission alone will also provide you the abilities of save_looks and save_dashboards. * * PATCH /permission_sets/{permission_set_id} -> IPermissionSet * @@ -7002,6 +7007,7 @@ export interface ILooker40SDK extends IAPIMethods { /** * ### Create a permission set with the specified information. Permission sets are used by Roles. + * Providing save_content permission alone will also provide you the abilities of save_looks and save_dashboards. * * POST /permission_sets -> IPermissionSet * @@ -7108,12 +7114,12 @@ export interface ILooker40SDK extends IAPIMethods { * * GET /roles/search/with_user_count -> IRoleSearch[] * - * @param request composed interface "IRequestSearchRoles" for complex method parameters + * @param request composed interface "IRequestSearchRolesWithUserCount" for complex method parameters * @param options one-time API call overrides * */ search_roles_with_user_count( - request: IRequestSearchRoles, + request: IRequestSearchRolesWithUserCount, options?: Partial ): Promise>; @@ -8948,12 +8954,12 @@ export interface ILooker40SDK extends IAPIMethods { * * GET /user_attributes -> IUserAttribute[] * - * @param request composed interface "IRequestAllBoardSections" for complex method parameters + * @param request composed interface "IRequestAllUserAttributes" for complex method parameters * @param options one-time API call overrides * */ all_user_attributes( - request: IRequestAllBoardSections, + request: IRequestAllUserAttributes, options?: Partial ): Promise>; diff --git a/packages/sdk/src/4.0/models.ts b/packages/sdk/src/4.0/models.ts index 93a78f012..78348bf12 100644 --- a/packages/sdk/src/4.0/models.ts +++ b/packages/sdk/src/4.0/models.ts @@ -25,7 +25,7 @@ */ /** - * 400 API models: 256 Spec, 61 Request, 61 Write, 22 Enum + * 406 API models: 256 Spec, 67 Request, 61 Write, 22 Enum */ import type { DelimArray, IDictionary } from '@looker/sdk-rtl'; @@ -6224,6 +6224,10 @@ export interface IMergeQuerySourceQuery { * Id of the query to merge */ query_id?: string | null; + /** + * Slug of the query to merge + */ + query_slug?: string | null; } export interface IMobileFeatureFlags { @@ -7564,6 +7568,24 @@ export interface IRequestAllIntegrations { integration_hub_id?: string | null; } +/** + * Dynamically generated request type for all_lookml_models + */ +export interface IRequestAllLookmlModels { + /** + * Requested fields. + */ + fields?: string | null; + /** + * Number of results to return. (can be used with offset) + */ + limit?: number | null; + /** + * Number of results to skip before returning any. (Defaults to 0 if not set when limit is used) + */ + offset?: number | null; +} + /** * Dynamically generated request type for all_roles */ @@ -7596,6 +7618,20 @@ export interface IRequestAllScheduledPlans { all_users?: boolean | null; } +/** + * Dynamically generated request type for all_user_attributes + */ +export interface IRequestAllUserAttributes { + /** + * Requested fields. + */ + fields?: string | null; + /** + * Fields to order the results by. Sortable fields include: name, label + */ + sorts?: string | null; +} + /** * Dynamically generated request type for all_users */ @@ -8992,6 +9028,98 @@ export interface IRequestSearchGroups { externally_orphaned?: boolean | null; } +/** + * Dynamically generated request type for search_groups_with_hierarchy + */ +export interface IRequestSearchGroupsWithHierarchy { + /** + * Requested fields. + */ + fields?: string | null; + /** + * Number of results to return (used with `offset`). + */ + limit?: number | null; + /** + * Number of results to skip before returning any (used with `limit`). + */ + offset?: number | null; + /** + * Fields to sort by. + */ + sorts?: string | null; + /** + * Combine given search criteria in a boolean OR expression + */ + filter_or?: boolean | null; + /** + * Match group id. + */ + id?: string | null; + /** + * Match group name. + */ + name?: string | null; + /** + * Match group external_group_id. + */ + external_group_id?: string | null; + /** + * Match group externally_managed. + */ + externally_managed?: boolean | null; + /** + * Match group externally_orphaned. + */ + externally_orphaned?: boolean | null; +} + +/** + * Dynamically generated request type for search_groups_with_roles + */ +export interface IRequestSearchGroupsWithRoles { + /** + * Requested fields. + */ + fields?: string | null; + /** + * Number of results to return (used with `offset`). + */ + limit?: number | null; + /** + * Number of results to skip before returning any (used with `limit`). + */ + offset?: number | null; + /** + * Fields to sort by. + */ + sorts?: string | null; + /** + * Combine given search criteria in a boolean OR expression + */ + filter_or?: boolean | null; + /** + * Match group id. + */ + id?: string | null; + /** + * Match group name. + */ + name?: string | null; + /** + * Match group external_group_id. + */ + external_group_id?: string | null; + /** + * Match group externally_managed. + */ + externally_managed?: boolean | null; + /** + * Match group externally_orphaned. + */ + externally_orphaned?: boolean | null; +} + /** * Dynamically generated request type for search_looks */ @@ -9112,6 +9240,48 @@ export interface IRequestSearchModelSets { filter_or?: boolean | null; } +/** + * Dynamically generated request type for search_permission_sets + */ +export interface IRequestSearchPermissionSets { + /** + * Requested fields. + */ + fields?: string | null; + /** + * Number of results to return (used with `offset`). + */ + limit?: number | null; + /** + * Number of results to skip before returning any (used with `limit`). + */ + offset?: number | null; + /** + * Fields to sort by. + */ + sorts?: string | null; + /** + * Match permission set id. + */ + id?: string | null; + /** + * Match permission set name. + */ + name?: string | null; + /** + * Match permission sets by all_access status. + */ + all_access?: boolean | null; + /** + * Match permission sets by built_in status. + */ + built_in?: boolean | null; + /** + * Combine given search criteria in a boolean OR expression. + */ + filter_or?: boolean | null; +} + /** * Dynamically generated request type for search_roles */ @@ -9150,6 +9320,44 @@ export interface IRequestSearchRoles { filter_or?: boolean | null; } +/** + * Dynamically generated request type for search_roles_with_user_count + */ +export interface IRequestSearchRolesWithUserCount { + /** + * Requested fields. + */ + fields?: string | null; + /** + * Number of results to return (used with `offset`). + */ + limit?: number | null; + /** + * Number of results to skip before returning any (used with `limit`). + */ + offset?: number | null; + /** + * Fields to sort by. + */ + sorts?: string | null; + /** + * Match role id. + */ + id?: string | null; + /** + * Match role name. + */ + name?: string | null; + /** + * Match roles by built_in status. + */ + built_in?: boolean | null; + /** + * Combine given search criteria in a boolean OR expression. + */ + filter_or?: boolean | null; +} + /** * Dynamically generated request type for search_themes */ diff --git a/packages/sdk/src/4.0/streams.ts b/packages/sdk/src/4.0/streams.ts index 86e166cde..c5f3a764e 100644 --- a/packages/sdk/src/4.0/streams.ts +++ b/packages/sdk/src/4.0/streams.ts @@ -167,8 +167,10 @@ import type { IRequestAllGroupUsers, IRequestAllGroups, IRequestAllIntegrations, + IRequestAllLookmlModels, IRequestAllRoles, IRequestAllScheduledPlans, + IRequestAllUserAttributes, IRequestAllUsers, IRequestArtifact, IRequestArtifactNamespaces, @@ -209,9 +211,13 @@ import type { IRequestSearchDashboards, IRequestSearchFolders, IRequestSearchGroups, + IRequestSearchGroupsWithHierarchy, + IRequestSearchGroupsWithRoles, IRequestSearchLooks, IRequestSearchModelSets, + IRequestSearchPermissionSets, IRequestSearchRoles, + IRequestSearchRolesWithUserCount, IRequestSearchThemes, IRequestSearchUserLoginLockouts, IRequestSearchUsers, @@ -1217,7 +1223,7 @@ export class Looker40SDKStream extends APIMethods { * "Powered by Looker" (PBL) web application. * * This is similar to Private Embedding (https://cloud.google.com/looker/docs/r/admin/embed/private-embed). Instead of - * of logging into the Web UI to authenticate, the user has already authenticated against the API to be able to + * logging into the Web UI to authenticate, the user has already authenticated against the API to be able to * make this call. However, unlike Private Embed where the user has access to any other part of the Looker UI, * the embed web session created by requesting the EmbedUrlResponse.url in a browser only has access to * content visible under the `/embed` context. @@ -1305,7 +1311,7 @@ export class Looker40SDKStream extends APIMethods { * If the `session_reference_token` is provided but the session has expired, the token will be ignored and a * new embed session will be created. Note that the embed user definition will be updated in this scenario. * - * If the credentials do not match the credentials associated with an exisiting session_reference_token, a + * If the credentials do not match the credentials associated with an existing session_reference_token, a * 404 will be returned. * * The endpoint returns the following: @@ -2011,7 +2017,7 @@ export class Looker40SDKStream extends APIMethods { * * Configuring OIDC impacts authentication for all users. This configuration should be done carefully. * - * Looker maintains a single OIDC configuation. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct). + * Looker maintains a single OIDC configuration. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct). * * OIDC is enabled or disabled for Looker using the **enabled** field. * @@ -2242,7 +2248,7 @@ export class Looker40SDKStream extends APIMethods { * * Configuring SAML impacts authentication for all users. This configuration should be done carefully. * - * Looker maintains a single SAML configuation. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct). + * Looker maintains a single SAML configuration. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct). * * SAML is enabled or disabled for Looker using the **enabled** field. * @@ -5305,7 +5311,7 @@ export class Looker40SDKStream extends APIMethods { /** * ### Get an image representing the contents of a dashboard or look. * - * The returned thumbnail is an abstract representation of the contents of a dashbord or look and does not + * The returned thumbnail is an abstract representation of the contents of a dashboard or look and does not * reflect the actual data displayed in the respective visualizations. * * GET /content_thumbnail/{type}/{resource_id} -> string @@ -5434,7 +5440,7 @@ export class Looker40SDKStream extends APIMethods { * * # DEPRECATED: Use [content_thumbnail()](#!/Content/content_thumbnail) * - * The returned thumbnail is an abstract representation of the contents of a dashbord or look and does not + * The returned thumbnail is an abstract representation of the contents of a dashboard or look and does not * reflect the actual data displayed in the respective visualizations. * * GET /vector_thumbnail/{type}/{resource_id} -> string @@ -5801,7 +5807,7 @@ export class Looker40SDKStream extends APIMethods { } /** - * ### Get Aggregate Table LookML for Each Query on a Dahboard + * ### Get Aggregate Table LookML for Each Query on a Dashboard * * Returns a JSON object that contains the dashboard id and Aggregate Table lookml * @@ -7330,13 +7336,13 @@ export class Looker40SDKStream extends APIMethods { * GET /groups/search/with_roles -> IGroupSearch[] * * @param callback streaming output function - * @param request composed interface "IRequestSearchGroups" for complex method parameters + * @param request composed interface "IRequestSearchGroupsWithRoles" for complex method parameters * @param options one-time API call overrides * */ async search_groups_with_roles( callback: (readable: Readable) => Promise, - request: IRequestSearchGroups, + request: IRequestSearchGroupsWithRoles, options?: Partial ) { return this.authStream( @@ -7390,13 +7396,13 @@ export class Looker40SDKStream extends APIMethods { * GET /groups/search/with_hierarchy -> IGroupHierarchy[] * * @param callback streaming output function - * @param request composed interface "IRequestSearchGroups" for complex method parameters + * @param request composed interface "IRequestSearchGroupsWithHierarchy" for complex method parameters * @param options one-time API call overrides * */ async search_groups_with_hierarchy( callback: (readable: Readable) => Promise, - request: IRequestSearchGroups, + request: IRequestSearchGroupsWithHierarchy, options?: Partial ) { return this.authStream( @@ -8467,13 +8473,13 @@ export class Looker40SDKStream extends APIMethods { * GET /lookml_models -> ILookmlModel[] * * @param callback streaming output function - * @param request composed interface "IRequestArtifactNamespaces" for complex method parameters + * @param request composed interface "IRequestAllLookmlModels" for complex method parameters * @param options one-time API call overrides * */ async all_lookml_models( callback: (readable: Readable) => Promise, - request: IRequestArtifactNamespaces, + request: IRequestAllLookmlModels, options?: Partial ) { return this.authStream( @@ -9812,8 +9818,6 @@ export class Looker40SDKStream extends APIMethods { /** * ### Creates a tag for the most recent commit, or a specific ref is a SHA is provided * - * This is an internal-only, undocumented route. - * * POST /projects/{project_id}/tag -> IProject * * @param callback streaming output function @@ -11149,13 +11153,13 @@ export class Looker40SDKStream extends APIMethods { * GET /permission_sets/search -> IPermissionSet[] * * @param callback streaming output function - * @param request composed interface "IRequestSearchModelSets" for complex method parameters + * @param request composed interface "IRequestSearchPermissionSets" for complex method parameters * @param options one-time API call overrides * */ async search_permission_sets( callback: (readable: Readable) => Promise, - request: IRequestSearchModelSets, + request: IRequestSearchPermissionSets, options?: Partial ) { return this.authStream( @@ -11208,6 +11212,7 @@ export class Looker40SDKStream extends APIMethods { /** * ### Update information about the permission set with a specific id. + * Providing save_content permission alone will also provide you the abilities of save_looks and save_dashboards. * * PATCH /permission_sets/{permission_set_id} -> IPermissionSet * @@ -11287,6 +11292,7 @@ export class Looker40SDKStream extends APIMethods { /** * ### Create a permission set with the specified information. Permission sets are used by Roles. + * Providing save_content permission alone will also provide you the abilities of save_looks and save_dashboards. * * POST /permission_sets -> IPermissionSet * @@ -11447,13 +11453,13 @@ export class Looker40SDKStream extends APIMethods { * GET /roles/search/with_user_count -> IRoleSearch[] * * @param callback streaming output function - * @param request composed interface "IRequestSearchRoles" for complex method parameters + * @param request composed interface "IRequestSearchRolesWithUserCount" for complex method parameters * @param options one-time API call overrides * */ async search_roles_with_user_count( callback: (readable: Readable) => Promise, - request: IRequestSearchRoles, + request: IRequestSearchRolesWithUserCount, options?: Partial ) { return this.authStream( @@ -14339,13 +14345,13 @@ export class Looker40SDKStream extends APIMethods { * GET /user_attributes -> IUserAttribute[] * * @param callback streaming output function - * @param request composed interface "IRequestAllBoardSections" for complex method parameters + * @param request composed interface "IRequestAllUserAttributes" for complex method parameters * @param options one-time API call overrides * */ async all_user_attributes( callback: (readable: Readable) => Promise, - request: IRequestAllBoardSections, + request: IRequestAllUserAttributes, options?: Partial ) { return this.authStream( diff --git a/packages/sdk/src/constants.ts b/packages/sdk/src/constants.ts index 69c36cc97..f4bb6bd3a 100644 --- a/packages/sdk/src/constants.ts +++ b/packages/sdk/src/constants.ts @@ -24,5 +24,5 @@ */ -export const sdkVersion = '24.0'; +export const sdkVersion = '24.2'; export const environmentPrefix = 'LOOKERSDK'; diff --git a/python/looker_sdk/sdk/api40/__init__.py b/python/looker_sdk/sdk/api40/__init__.py index f8cd31c1e..13cbbecc1 100644 --- a/python/looker_sdk/sdk/api40/__init__.py +++ b/python/looker_sdk/sdk/api40/__init__.py @@ -1 +1 @@ -# Generated file. \ No newline at end of file +# Generated file. diff --git a/python/looker_sdk/sdk/api40/methods.py b/python/looker_sdk/sdk/api40/methods.py index 6de2af2b8..5bab03649 100644 --- a/python/looker_sdk/sdk/api40/methods.py +++ b/python/looker_sdk/sdk/api40/methods.py @@ -861,7 +861,7 @@ def create_sso_embed_url( # "Powered by Looker" (PBL) web application. # # This is similar to Private Embedding (https://cloud.google.com/looker/docs/r/admin/embed/private-embed). Instead of - # of logging into the Web UI to authenticate, the user has already authenticated against the API to be able to + # logging into the Web UI to authenticate, the user has already authenticated against the API to be able to # make this call. However, unlike Private Embed where the user has access to any other part of the Looker UI, # the embed web session created by requesting the EmbedUrlResponse.url in a browser only has access to # content visible under the `/embed` context. @@ -940,7 +940,7 @@ def validate_embed_url( # If the `session_reference_token` is provided but the session has expired, the token will be ignored and a # new embed session will be created. Note that the embed user definition will be updated in this scenario. # - # If the credentials do not match the credentials associated with an exisiting session_reference_token, a + # If the credentials do not match the credentials associated with an existing session_reference_token, a # 404 will be returned. # # The endpoint returns the following: @@ -1548,7 +1548,7 @@ def deactivate_app_user( # # Configuring OIDC impacts authentication for all users. This configuration should be done carefully. # - # Looker maintains a single OIDC configuation. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct). + # Looker maintains a single OIDC configuration. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct). # # OIDC is enabled or disabled for Looker using the **enabled** field. # @@ -1739,7 +1739,7 @@ def force_password_reset_at_next_login_for_all_users( # # Configuring SAML impacts authentication for all users. This configuration should be done carefully. # - # Looker maintains a single SAML configuation. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct). + # Looker maintains a single SAML configuration. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct). # # SAML is enabled or disabled for Looker using the **enabled** field. # @@ -4392,7 +4392,7 @@ def search_content( # ### Get an image representing the contents of a dashboard or look. # - # The returned thumbnail is an abstract representation of the contents of a dashbord or look and does not + # The returned thumbnail is an abstract representation of the contents of a dashboard or look and does not # reflect the actual data displayed in the respective visualizations. # # GET /content_thumbnail/{type}/{resource_id} -> Union[str, bytes] @@ -4542,7 +4542,7 @@ def search_content_views( # # # DEPRECATED: Use [content_thumbnail()](#!/Content/content_thumbnail) # - # The returned thumbnail is an abstract representation of the contents of a dashbord or look and does not + # The returned thumbnail is an abstract representation of the contents of a dashboard or look and does not # reflect the actual data displayed in the respective visualizations. # # GET /vector_thumbnail/{type}/{resource_id} -> str @@ -4906,7 +4906,7 @@ def delete_dashboard( ) return response - # ### Get Aggregate Table LookML for Each Query on a Dahboard + # ### Get Aggregate Table LookML for Each Query on a Dashboard # # Returns a JSON object that contains the dashboard id and Aggregate Table lookml # @@ -8656,8 +8656,6 @@ def run_lookml_test( # ### Creates a tag for the most recent commit, or a specific ref is a SHA is provided # - # This is an internal-only, undocumented route. - # # POST /projects/{project_id}/tag -> mdls.Project def tag_ref( self, @@ -10016,6 +10014,7 @@ def permission_set( return response # ### Update information about the permission set with a specific id. + # Providing save_content permission alone will also provide you the abilities of save_looks and save_dashboards. # # PATCH /permission_sets/{permission_set_id} -> mdls.PermissionSet def update_permission_set( @@ -10081,6 +10080,7 @@ def all_permission_sets( return response # ### Create a permission set with the specified information. Permission sets are used by Roles. + # Providing save_content permission alone will also provide you the abilities of save_looks and save_dashboards. # # POST /permission_sets -> mdls.PermissionSet def create_permission_set( @@ -13199,3 +13199,6 @@ def workspace( return response # endregion + + +LookerSDK = Looker40SDK diff --git a/python/looker_sdk/sdk/api40/models.py b/python/looker_sdk/sdk/api40/models.py index f694325fc..b2ea27740 100644 --- a/python/looker_sdk/sdk/api40/models.py +++ b/python/looker_sdk/sdk/api40/models.py @@ -8080,22 +8080,26 @@ class MergeQuerySourceQuery(model.Model): merge_fields: An array defining which fields of the source query are mapped onto fields of the merge query name: Display name query_id: Id of the query to merge + query_slug: Slug of the query to merge """ merge_fields: Optional[Sequence["MergeFields"]] = None name: Optional[str] = None query_id: Optional[str] = None + query_slug: Optional[str] = None def __init__( self, *, merge_fields: Optional[Sequence["MergeFields"]] = None, name: Optional[str] = None, - query_id: Optional[str] = None + query_id: Optional[str] = None, + query_slug: Optional[str] = None ): self.merge_fields = merge_fields self.name = name self.query_id = query_id + self.query_slug = query_slug @attr.s(auto_attribs=True, init=False) diff --git a/python/looker_sdk/sdk/constants.py b/python/looker_sdk/sdk/constants.py index 050420546..b47800cbd 100644 --- a/python/looker_sdk/sdk/constants.py +++ b/python/looker_sdk/sdk/constants.py @@ -20,5 +20,5 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. -sdk_version = "24.0" +sdk_version = "24.2" environment_prefix = "LOOKERSDK" diff --git a/spec/Looker.4.0.json b/spec/Looker.4.0.json index c11d6a863..6d775cb65 100644 --- a/spec/Looker.4.0.json +++ b/spec/Looker.4.0.json @@ -1,8 +1,8 @@ { "swagger": "2.0", "info": { - "version": "4.0.24.0", - "x-looker-release-version": "24.0.17", + "version": "4.0.24.2", + "x-looker-release-version": "24.2.18", "title": "Looker API 4.0 Reference", "description": "\nAPI 4.0 is the current release of the Looker API. API 3.1 is deprecated.\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 version was introduced to make adjustments to API functions, parameters, and response types to\nfix bugs and inconsistencies. These changes fall outside the bounds of non-breaking additive changes we can\nmake to the previous API 3.1.\n\nOne benefit of these type adjustments in API 4.0 is dramatically better support for strongly\ntyped 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": { @@ -3602,7 +3602,7 @@ ], "operationId": "content_thumbnail", "summary": "Get Content Thumbnail", - "description": "### Get an image representing the contents of a dashboard or look.\n\nThe returned thumbnail is an abstract representation of the contents of a dashbord or look and does not\nreflect the actual data displayed in the respective visualizations.\n", + "description": "### Get an image representing the contents of a dashboard or look.\n\nThe returned thumbnail is an abstract representation of the contents of a dashboard or look and does not\nreflect the actual data displayed in the respective visualizations.\n", "produces": [ "image/svg+xml", "image/png" @@ -4742,7 +4742,7 @@ ], "operationId": "dashboard_aggregate_table_lookml", "summary": "Get Aggregate Table LookML for a dashboard", - "description": "### Get Aggregate Table LookML for Each Query on a Dahboard\n\nReturns a JSON object that contains the dashboard id and Aggregate Table lookml\n\n", + "description": "### Get Aggregate Table LookML for Each Query on a Dashboard\n\nReturns a JSON object that contains the dashboard id and Aggregate Table lookml\n\n", "parameters": [ { "name": "dashboard_id", @@ -7602,7 +7602,7 @@ ], "operationId": "create_embed_url_as_me", "summary": "Create Embed URL", - "description": "### Create an Embed URL\n\nCreates an embed URL that runs as the Looker user making this API call. (\"Embed as me\")\nThis embed URL can then be used to instantiate a Looker embed session in a\n\"Powered by Looker\" (PBL) web application.\n\nThis is similar to Private Embedding (https://cloud.google.com/looker/docs/r/admin/embed/private-embed). Instead of\nof logging into the Web UI to authenticate, the user has already authenticated against the API to be able to\nmake this call. However, unlike Private Embed where the user has access to any other part of the Looker UI,\nthe embed web session created by requesting the EmbedUrlResponse.url in a browser only has access to\ncontent visible under the `/embed` context.\n\nAn embed URL can only be used once, and must be used within 5 minutes of being created. After it\nhas been used to request a page from the Looker server, the URL is invalid. Future requests using\nthe same URL will fail. This is to prevent 'replay attacks'.\n\nThe `target_url` property must be a complete URL of a Looker Embedded UI page - scheme, hostname, path starting with \"/embed\" and query params.\nTo load a dashboard with id 56 and with a filter of `Date=1 years`, the looker Embed URL would look like `https://myname.looker.com/embed/dashboards/56?Date=1%20years`.\nThe best way to obtain this target_url is to navigate to the desired Looker page in your web browser,\ncopy the URL shown in the browser address bar, insert \"/embed\" after the host/port, and paste it into the `target_url` property as a quoted string value in this API request.\n\n#### Security Note\nProtect this signed URL as you would an access token or password credentials - do not write\nit to disk, do not pass it to a third party, and only pass it through a secure HTTPS\nencrypted transport.\n\n\nCalls to this endpoint require [Embedding](https://cloud.google.com/looker/docs/r/looker-core-feature-embed) to be enabled\n", + "description": "### Create an Embed URL\n\nCreates an embed URL that runs as the Looker user making this API call. (\"Embed as me\")\nThis embed URL can then be used to instantiate a Looker embed session in a\n\"Powered by Looker\" (PBL) web application.\n\nThis is similar to Private Embedding (https://cloud.google.com/looker/docs/r/admin/embed/private-embed). Instead of\nlogging into the Web UI to authenticate, the user has already authenticated against the API to be able to\nmake this call. However, unlike Private Embed where the user has access to any other part of the Looker UI,\nthe embed web session created by requesting the EmbedUrlResponse.url in a browser only has access to\ncontent visible under the `/embed` context.\n\nAn embed URL can only be used once, and must be used within 5 minutes of being created. After it\nhas been used to request a page from the Looker server, the URL is invalid. Future requests using\nthe same URL will fail. This is to prevent 'replay attacks'.\n\nThe `target_url` property must be a complete URL of a Looker Embedded UI page - scheme, hostname, path starting with \"/embed\" and query params.\nTo load a dashboard with id 56 and with a filter of `Date=1 years`, the looker Embed URL would look like `https://myname.looker.com/embed/dashboards/56?Date=1%20years`.\nThe best way to obtain this target_url is to navigate to the desired Looker page in your web browser,\ncopy the URL shown in the browser address bar, insert \"/embed\" after the host/port, and paste it into the `target_url` property as a quoted string value in this API request.\n\n#### Security Note\nProtect this signed URL as you would an access token or password credentials - do not write\nit to disk, do not pass it to a third party, and only pass it through a secure HTTPS\nencrypted transport.\n\n\nCalls to this endpoint require [Embedding](https://cloud.google.com/looker/docs/r/looker-core-feature-embed) to be enabled\n", "parameters": [ { "name": "body", @@ -7710,7 +7710,7 @@ ], "operationId": "acquire_embed_cookieless_session", "summary": "Create Acquire cookieless embed session", - "description": "### Acquire a cookieless embed session.\n\nThe acquire session endpoint negates the need for signing the embed url and passing it as a parameter\nto the embed login. This endpoint accepts an embed user definition and creates or updates it. This is\nsimilar behavior to the embed SSO login as they both can create and update embed user data.\n\nThe endpoint also accepts an optional `session_reference_token`. If present and the session has not expired\nand the credentials match the credentials for the embed session, a new authentication token will be\ngenerated. This allows the embed session to attach a new embedded IFRAME to the embed session. Note that\nthe session is NOT extended in this scenario. In other words the session_length parameter is ignored.\n\n**IMPORTANT:** If the `session_reference_token` is provided and the session has NOT expired, the embed user\nis NOT updated. This is done for performance reasons and to support the embed SSO usecase where the\nfirst IFRAME created on a page uses a signed url and subsequently created IFRAMEs do not.\n\nIf the `session_reference_token` is provided but the session has expired, the token will be ignored and a\nnew embed session will be created. Note that the embed user definition will be updated in this scenario.\n\nIf the credentials do not match the credentials associated with an exisiting session_reference_token, a\n404 will be returned.\n\nThe endpoint returns the following:\n- Authentication token - a token that is passed to `/embed/login` endpoint that creates or attaches to the\n embed session. This token can be used once and has a lifetime of 30 seconds.\n- Session reference token - a token that lives for the length of the session. This token is used to\n generate new api and navigation tokens OR create new embed IFRAMEs.\n- Api token - lives for 10 minutes. The Looker client will ask for this token once it is loaded into the\n iframe.\n- Navigation token - lives for 10 minutes. The Looker client will ask for this token once it is loaded into\n the iframe.\n\nCalls to this endpoint require [Embedding](https://cloud.google.com/looker/docs/r/looker-core-feature-embed) to be enabled\n", + "description": "### Acquire a cookieless embed session.\n\nThe acquire session endpoint negates the need for signing the embed url and passing it as a parameter\nto the embed login. This endpoint accepts an embed user definition and creates or updates it. This is\nsimilar behavior to the embed SSO login as they both can create and update embed user data.\n\nThe endpoint also accepts an optional `session_reference_token`. If present and the session has not expired\nand the credentials match the credentials for the embed session, a new authentication token will be\ngenerated. This allows the embed session to attach a new embedded IFRAME to the embed session. Note that\nthe session is NOT extended in this scenario. In other words the session_length parameter is ignored.\n\n**IMPORTANT:** If the `session_reference_token` is provided and the session has NOT expired, the embed user\nis NOT updated. This is done for performance reasons and to support the embed SSO usecase where the\nfirst IFRAME created on a page uses a signed url and subsequently created IFRAMEs do not.\n\nIf the `session_reference_token` is provided but the session has expired, the token will be ignored and a\nnew embed session will be created. Note that the embed user definition will be updated in this scenario.\n\nIf the credentials do not match the credentials associated with an existing session_reference_token, a\n404 will be returned.\n\nThe endpoint returns the following:\n- Authentication token - a token that is passed to `/embed/login` endpoint that creates or attaches to the\n embed session. This token can be used once and has a lifetime of 30 seconds.\n- Session reference token - a token that lives for the length of the session. This token is used to\n generate new api and navigation tokens OR create new embed IFRAMEs.\n- Api token - lives for 10 minutes. The Looker client will ask for this token once it is loaded into the\n iframe.\n- Navigation token - lives for 10 minutes. The Looker client will ask for this token once it is loaded into\n the iframe.\n\nCalls to this endpoint require [Embedding](https://cloud.google.com/looker/docs/r/looker-core-feature-embed) to be enabled\n", "parameters": [ { "name": "body", @@ -14593,7 +14593,7 @@ ], "operationId": "oidc_config", "summary": "Get OIDC Configuration", - "description": "### Get the OIDC configuration.\n\nLooker can be optionally configured to authenticate users against an OpenID Connect (OIDC)\nauthentication server. OIDC setup requires coordination with an administrator of that server.\n\nOnly Looker administrators can read and update the OIDC configuration.\n\nConfiguring OIDC impacts authentication for all users. This configuration should be done carefully.\n\nLooker maintains a single OIDC configuation. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct).\n\nOIDC is enabled or disabled for Looker using the **enabled** field.\n\nCalls to this endpoint may be denied by [Looker (Google Cloud core)](https://cloud.google.com/looker/docs/r/looker-core/overview).\n", + "description": "### Get the OIDC configuration.\n\nLooker can be optionally configured to authenticate users against an OpenID Connect (OIDC)\nauthentication server. OIDC setup requires coordination with an administrator of that server.\n\nOnly Looker administrators can read and update the OIDC configuration.\n\nConfiguring OIDC impacts authentication for all users. This configuration should be done carefully.\n\nLooker maintains a single OIDC configuration. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct).\n\nOIDC is enabled or disabled for Looker using the **enabled** field.\n\nCalls to this endpoint may be denied by [Looker (Google Cloud core)](https://cloud.google.com/looker/docs/r/looker-core/overview).\n", "responses": { "200": { "description": "OIDC Configuration.", @@ -15200,7 +15200,7 @@ ], "operationId": "update_permission_set", "summary": "Update Permission Set", - "description": "### Update information about the permission set with a specific id.\n", + "description": "### Update information about the permission set with a specific id.\nProviding save_content permission alone will also provide you the abilities of save_looks and save_dashboards.\n", "parameters": [ { "name": "permission_set_id", @@ -15310,7 +15310,7 @@ ], "operationId": "create_permission_set", "summary": "Create Permission Set", - "description": "### Create a permission set with the specified information. Permission sets are used by Roles.\n", + "description": "### Create a permission set with the specified information. Permission sets are used by Roles.\nProviding save_content permission alone will also provide you the abilities of save_looks and save_dashboards.\n", "parameters": [ { "name": "body", @@ -16500,7 +16500,7 @@ ], "operationId": "tag_ref", "summary": "Tag Ref", - "description": "### Creates a tag for the most recent commit, or a specific ref is a SHA is provided\n\nThis is an internal-only, undocumented route.\n", + "description": "### Creates a tag for the most recent commit, or a specific ref is a SHA is provided\n", "parameters": [ { "name": "project_id", @@ -18050,7 +18050,7 @@ ], "operationId": "saml_config", "summary": "Get SAML Configuration", - "description": "### Get the SAML configuration.\n\nLooker can be optionally configured to authenticate users against a SAML authentication server.\nSAML setup requires coordination with an administrator of that server.\n\nOnly Looker administrators can read and update the SAML configuration.\n\nConfiguring SAML impacts authentication for all users. This configuration should be done carefully.\n\nLooker maintains a single SAML configuation. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct).\n\nSAML is enabled or disabled for Looker using the **enabled** field.\n\nCalls to this endpoint may be denied by [Looker (Google Cloud core)](https://cloud.google.com/looker/docs/r/looker-core/overview).\n", + "description": "### Get the SAML configuration.\n\nLooker can be optionally configured to authenticate users against a SAML authentication server.\nSAML setup requires coordination with an administrator of that server.\n\nOnly Looker administrators can read and update the SAML configuration.\n\nConfiguring SAML impacts authentication for all users. This configuration should be done carefully.\n\nLooker maintains a single SAML configuration. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct).\n\nSAML is enabled or disabled for Looker using the **enabled** field.\n\nCalls to this endpoint may be denied by [Looker (Google Cloud core)](https://cloud.google.com/looker/docs/r/looker-core/overview).\n", "responses": { "200": { "description": "SAML Configuration.", @@ -25545,7 +25545,7 @@ ], "operationId": "vector_thumbnail", "summary": "Get Vector Thumbnail", - "description": "### Get a vector image representing the contents of a dashboard or look.\n\n# DEPRECATED: Use [content_thumbnail()](#!/Content/content_thumbnail)\n\nThe returned thumbnail is an abstract representation of the contents of a dashbord or look and does not\nreflect the actual data displayed in the respective visualizations.\n", + "description": "### Get a vector image representing the contents of a dashboard or look.\n\n# DEPRECATED: Use [content_thumbnail()](#!/Content/content_thumbnail)\n\nThe returned thumbnail is an abstract representation of the contents of a dashboard or look and does not\nreflect the actual data displayed in the respective visualizations.\n", "produces": [ "image/svg+xml" ], @@ -35712,6 +35712,11 @@ "type": "string", "description": "Id of the query to merge", "x-looker-nullable": true + }, + "query_slug": { + "type": "string", + "description": "Slug of the query to merge", + "x-looker-nullable": true } }, "x-looker-status": "stable" diff --git a/spec/Looker.4.0.oas.json b/spec/Looker.4.0.oas.json index 368931a93..3f4044ade 100644 --- a/spec/Looker.4.0.oas.json +++ b/spec/Looker.4.0.oas.json @@ -1,8 +1,8 @@ { "openapi": "3.0.0", "info": { - "version": "4.0.24.0", - "x-looker-release-version": "24.0.17", + "version": "4.0.24.2", + "x-looker-release-version": "24.2.18", "title": "Looker API 4.0 Reference", "description": "\nAPI 4.0 is the current release of the Looker API. API 3.1 is deprecated.\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 version was introduced to make adjustments to API functions, parameters, and response types to\nfix bugs and inconsistencies. These changes fall outside the bounds of non-breaking additive changes we can\nmake to the previous API 3.1.\n\nOne benefit of these type adjustments in API 4.0 is dramatically better support for strongly\ntyped 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": { @@ -5022,7 +5022,7 @@ ], "operationId": "content_thumbnail", "summary": "Get Content Thumbnail", - "description": "### Get an image representing the contents of a dashboard or look.\n\nThe returned thumbnail is an abstract representation of the contents of a dashbord or look and does not\nreflect the actual data displayed in the respective visualizations.\n", + "description": "### Get an image representing the contents of a dashboard or look.\n\nThe returned thumbnail is an abstract representation of the contents of a dashboard or look and does not\nreflect the actual data displayed in the respective visualizations.\n", "parameters": [ { "name": "type", @@ -6574,7 +6574,7 @@ ], "operationId": "dashboard_aggregate_table_lookml", "summary": "Get Aggregate Table LookML for a dashboard", - "description": "### Get Aggregate Table LookML for Each Query on a Dahboard\n\nReturns a JSON object that contains the dashboard id and Aggregate Table lookml\n\n", + "description": "### Get Aggregate Table LookML for Each Query on a Dashboard\n\nReturns a JSON object that contains the dashboard id and Aggregate Table lookml\n\n", "parameters": [ { "name": "dashboard_id", @@ -10490,7 +10490,7 @@ ], "operationId": "create_embed_url_as_me", "summary": "Create Embed URL", - "description": "### Create an Embed URL\n\nCreates an embed URL that runs as the Looker user making this API call. (\"Embed as me\")\nThis embed URL can then be used to instantiate a Looker embed session in a\n\"Powered by Looker\" (PBL) web application.\n\nThis is similar to Private Embedding (https://cloud.google.com/looker/docs/r/admin/embed/private-embed). Instead of\nof logging into the Web UI to authenticate, the user has already authenticated against the API to be able to\nmake this call. However, unlike Private Embed where the user has access to any other part of the Looker UI,\nthe embed web session created by requesting the EmbedUrlResponse.url in a browser only has access to\ncontent visible under the `/embed` context.\n\nAn embed URL can only be used once, and must be used within 5 minutes of being created. After it\nhas been used to request a page from the Looker server, the URL is invalid. Future requests using\nthe same URL will fail. This is to prevent 'replay attacks'.\n\nThe `target_url` property must be a complete URL of a Looker Embedded UI page - scheme, hostname, path starting with \"/embed\" and query params.\nTo load a dashboard with id 56 and with a filter of `Date=1 years`, the looker Embed URL would look like `https://myname.looker.com/embed/dashboards/56?Date=1%20years`.\nThe best way to obtain this target_url is to navigate to the desired Looker page in your web browser,\ncopy the URL shown in the browser address bar, insert \"/embed\" after the host/port, and paste it into the `target_url` property as a quoted string value in this API request.\n\n#### Security Note\nProtect this signed URL as you would an access token or password credentials - do not write\nit to disk, do not pass it to a third party, and only pass it through a secure HTTPS\nencrypted transport.\n\n\nCalls to this endpoint require [Embedding](https://cloud.google.com/looker/docs/r/looker-core-feature-embed) to be enabled\n", + "description": "### Create an Embed URL\n\nCreates an embed URL that runs as the Looker user making this API call. (\"Embed as me\")\nThis embed URL can then be used to instantiate a Looker embed session in a\n\"Powered by Looker\" (PBL) web application.\n\nThis is similar to Private Embedding (https://cloud.google.com/looker/docs/r/admin/embed/private-embed). Instead of\nlogging into the Web UI to authenticate, the user has already authenticated against the API to be able to\nmake this call. However, unlike Private Embed where the user has access to any other part of the Looker UI,\nthe embed web session created by requesting the EmbedUrlResponse.url in a browser only has access to\ncontent visible under the `/embed` context.\n\nAn embed URL can only be used once, and must be used within 5 minutes of being created. After it\nhas been used to request a page from the Looker server, the URL is invalid. Future requests using\nthe same URL will fail. This is to prevent 'replay attacks'.\n\nThe `target_url` property must be a complete URL of a Looker Embedded UI page - scheme, hostname, path starting with \"/embed\" and query params.\nTo load a dashboard with id 56 and with a filter of `Date=1 years`, the looker Embed URL would look like `https://myname.looker.com/embed/dashboards/56?Date=1%20years`.\nThe best way to obtain this target_url is to navigate to the desired Looker page in your web browser,\ncopy the URL shown in the browser address bar, insert \"/embed\" after the host/port, and paste it into the `target_url` property as a quoted string value in this API request.\n\n#### Security Note\nProtect this signed URL as you would an access token or password credentials - do not write\nit to disk, do not pass it to a third party, and only pass it through a secure HTTPS\nencrypted transport.\n\n\nCalls to this endpoint require [Embedding](https://cloud.google.com/looker/docs/r/looker-core-feature-embed) to be enabled\n", "responses": { "200": { "description": "Embed URL", @@ -10640,7 +10640,7 @@ ], "operationId": "acquire_embed_cookieless_session", "summary": "Create Acquire cookieless embed session", - "description": "### Acquire a cookieless embed session.\n\nThe acquire session endpoint negates the need for signing the embed url and passing it as a parameter\nto the embed login. This endpoint accepts an embed user definition and creates or updates it. This is\nsimilar behavior to the embed SSO login as they both can create and update embed user data.\n\nThe endpoint also accepts an optional `session_reference_token`. If present and the session has not expired\nand the credentials match the credentials for the embed session, a new authentication token will be\ngenerated. This allows the embed session to attach a new embedded IFRAME to the embed session. Note that\nthe session is NOT extended in this scenario. In other words the session_length parameter is ignored.\n\n**IMPORTANT:** If the `session_reference_token` is provided and the session has NOT expired, the embed user\nis NOT updated. This is done for performance reasons and to support the embed SSO usecase where the\nfirst IFRAME created on a page uses a signed url and subsequently created IFRAMEs do not.\n\nIf the `session_reference_token` is provided but the session has expired, the token will be ignored and a\nnew embed session will be created. Note that the embed user definition will be updated in this scenario.\n\nIf the credentials do not match the credentials associated with an exisiting session_reference_token, a\n404 will be returned.\n\nThe endpoint returns the following:\n- Authentication token - a token that is passed to `/embed/login` endpoint that creates or attaches to the\n embed session. This token can be used once and has a lifetime of 30 seconds.\n- Session reference token - a token that lives for the length of the session. This token is used to\n generate new api and navigation tokens OR create new embed IFRAMEs.\n- Api token - lives for 10 minutes. The Looker client will ask for this token once it is loaded into the\n iframe.\n- Navigation token - lives for 10 minutes. The Looker client will ask for this token once it is loaded into\n the iframe.\n\nCalls to this endpoint require [Embedding](https://cloud.google.com/looker/docs/r/looker-core-feature-embed) to be enabled\n", + "description": "### Acquire a cookieless embed session.\n\nThe acquire session endpoint negates the need for signing the embed url and passing it as a parameter\nto the embed login. This endpoint accepts an embed user definition and creates or updates it. This is\nsimilar behavior to the embed SSO login as they both can create and update embed user data.\n\nThe endpoint also accepts an optional `session_reference_token`. If present and the session has not expired\nand the credentials match the credentials for the embed session, a new authentication token will be\ngenerated. This allows the embed session to attach a new embedded IFRAME to the embed session. Note that\nthe session is NOT extended in this scenario. In other words the session_length parameter is ignored.\n\n**IMPORTANT:** If the `session_reference_token` is provided and the session has NOT expired, the embed user\nis NOT updated. This is done for performance reasons and to support the embed SSO usecase where the\nfirst IFRAME created on a page uses a signed url and subsequently created IFRAMEs do not.\n\nIf the `session_reference_token` is provided but the session has expired, the token will be ignored and a\nnew embed session will be created. Note that the embed user definition will be updated in this scenario.\n\nIf the credentials do not match the credentials associated with an existing session_reference_token, a\n404 will be returned.\n\nThe endpoint returns the following:\n- Authentication token - a token that is passed to `/embed/login` endpoint that creates or attaches to the\n embed session. This token can be used once and has a lifetime of 30 seconds.\n- Session reference token - a token that lives for the length of the session. This token is used to\n generate new api and navigation tokens OR create new embed IFRAMEs.\n- Api token - lives for 10 minutes. The Looker client will ask for this token once it is loaded into the\n iframe.\n- Navigation token - lives for 10 minutes. The Looker client will ask for this token once it is loaded into\n the iframe.\n\nCalls to this endpoint require [Embedding](https://cloud.google.com/looker/docs/r/looker-core-feature-embed) to be enabled\n", "responses": { "200": { "description": "Embed cookieless acquire session response", @@ -20061,7 +20061,7 @@ ], "operationId": "oidc_config", "summary": "Get OIDC Configuration", - "description": "### Get the OIDC configuration.\n\nLooker can be optionally configured to authenticate users against an OpenID Connect (OIDC)\nauthentication server. OIDC setup requires coordination with an administrator of that server.\n\nOnly Looker administrators can read and update the OIDC configuration.\n\nConfiguring OIDC impacts authentication for all users. This configuration should be done carefully.\n\nLooker maintains a single OIDC configuation. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct).\n\nOIDC is enabled or disabled for Looker using the **enabled** field.\n\nCalls to this endpoint may be denied by [Looker (Google Cloud core)](https://cloud.google.com/looker/docs/r/looker-core/overview).\n", + "description": "### Get the OIDC configuration.\n\nLooker can be optionally configured to authenticate users against an OpenID Connect (OIDC)\nauthentication server. OIDC setup requires coordination with an administrator of that server.\n\nOnly Looker administrators can read and update the OIDC configuration.\n\nConfiguring OIDC impacts authentication for all users. This configuration should be done carefully.\n\nLooker maintains a single OIDC configuration. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct).\n\nOIDC is enabled or disabled for Looker using the **enabled** field.\n\nCalls to this endpoint may be denied by [Looker (Google Cloud core)](https://cloud.google.com/looker/docs/r/looker-core/overview).\n", "responses": { "200": { "description": "OIDC Configuration.", @@ -20896,7 +20896,7 @@ ], "operationId": "update_permission_set", "summary": "Update Permission Set", - "description": "### Update information about the permission set with a specific id.\n", + "description": "### Update information about the permission set with a specific id.\nProviding save_content permission alone will also provide you the abilities of save_looks and save_dashboards.\n", "parameters": [ { "name": "permission_set_id", @@ -21048,7 +21048,7 @@ ], "operationId": "create_permission_set", "summary": "Create Permission Set", - "description": "### Create a permission set with the specified information. Permission sets are used by Roles.\n", + "description": "### Create a permission set with the specified information. Permission sets are used by Roles.\nProviding save_content permission alone will also provide you the abilities of save_looks and save_dashboards.\n", "responses": { "200": { "description": "Permission Set", @@ -22668,7 +22668,7 @@ ], "operationId": "tag_ref", "summary": "Tag Ref", - "description": "### Creates a tag for the most recent commit, or a specific ref is a SHA is provided\n\nThis is an internal-only, undocumented route.\n", + "description": "### Creates a tag for the most recent commit, or a specific ref is a SHA is provided\n", "parameters": [ { "name": "project_id", @@ -24798,7 +24798,7 @@ ], "operationId": "saml_config", "summary": "Get SAML Configuration", - "description": "### Get the SAML configuration.\n\nLooker can be optionally configured to authenticate users against a SAML authentication server.\nSAML setup requires coordination with an administrator of that server.\n\nOnly Looker administrators can read and update the SAML configuration.\n\nConfiguring SAML impacts authentication for all users. This configuration should be done carefully.\n\nLooker maintains a single SAML configuation. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct).\n\nSAML is enabled or disabled for Looker using the **enabled** field.\n\nCalls to this endpoint may be denied by [Looker (Google Cloud core)](https://cloud.google.com/looker/docs/r/looker-core/overview).\n", + "description": "### Get the SAML configuration.\n\nLooker can be optionally configured to authenticate users against a SAML authentication server.\nSAML setup requires coordination with an administrator of that server.\n\nOnly Looker administrators can read and update the SAML configuration.\n\nConfiguring SAML impacts authentication for all users. This configuration should be done carefully.\n\nLooker maintains a single SAML configuration. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct).\n\nSAML is enabled or disabled for Looker using the **enabled** field.\n\nCalls to this endpoint may be denied by [Looker (Google Cloud core)](https://cloud.google.com/looker/docs/r/looker-core/overview).\n", "responses": { "200": { "description": "SAML Configuration.", @@ -35054,7 +35054,7 @@ ], "operationId": "vector_thumbnail", "summary": "Get Vector Thumbnail", - "description": "### Get a vector image representing the contents of a dashboard or look.\n\n# DEPRECATED: Use [content_thumbnail()](#!/Content/content_thumbnail)\n\nThe returned thumbnail is an abstract representation of the contents of a dashbord or look and does not\nreflect the actual data displayed in the respective visualizations.\n", + "description": "### Get a vector image representing the contents of a dashboard or look.\n\n# DEPRECATED: Use [content_thumbnail()](#!/Content/content_thumbnail)\n\nThe returned thumbnail is an abstract representation of the contents of a dashboard or look and does not\nreflect the actual data displayed in the respective visualizations.\n", "parameters": [ { "name": "type", @@ -45216,6 +45216,11 @@ "type": "string", "description": "Id of the query to merge", "nullable": true + }, + "query_slug": { + "type": "string", + "description": "Slug of the query to merge", + "nullable": true } }, "x-looker-status": "stable" diff --git a/swift/looker/rtl/constants.swift b/swift/looker/rtl/constants.swift index a48fae4d3..07e665ca5 100644 --- a/swift/looker/rtl/constants.swift +++ b/swift/looker/rtl/constants.swift @@ -51,7 +51,7 @@ extension String { } public struct Constants { - public static let lookerVersion = "24.0" + public static let lookerVersion = "24.2" 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 f9d763539..ef97ce754 100644 --- a/swift/looker/sdk/methods.swift +++ b/swift/looker/sdk/methods.swift @@ -801,7 +801,7 @@ open class LookerSDK: APIMethods { * "Powered by Looker" (PBL) web application. * * This is similar to Private Embedding (https://cloud.google.com/looker/docs/r/admin/embed/private-embed). Instead of - * of logging into the Web UI to authenticate, the user has already authenticated against the API to be able to + * logging into the Web UI to authenticate, the user has already authenticated against the API to be able to * make this call. However, unlike Private Embed where the user has access to any other part of the Looker UI, * the embed web session created by requesting the EmbedUrlResponse.url in a browser only has access to * content visible under the `/embed` context. @@ -872,7 +872,7 @@ open class LookerSDK: APIMethods { * If the `session_reference_token` is provided but the session has expired, the token will be ignored and a * new embed session will be created. Note that the embed user definition will be updated in this scenario. * - * If the credentials do not match the credentials associated with an exisiting session_reference_token, a + * If the credentials do not match the credentials associated with an existing session_reference_token, a * 404 will be returned. * * The endpoint returns the following: @@ -1416,7 +1416,7 @@ open class LookerSDK: APIMethods { * * Configuring OIDC impacts authentication for all users. This configuration should be done carefully. * - * Looker maintains a single OIDC configuation. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct). + * Looker maintains a single OIDC configuration. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct). * * OIDC is enabled or disabled for Looker using the **enabled** field. * @@ -1569,7 +1569,7 @@ open class LookerSDK: APIMethods { * * Configuring SAML impacts authentication for all users. This configuration should be done carefully. * - * Looker maintains a single SAML configuation. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct). + * Looker maintains a single SAML configuration. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct). * * SAML is enabled or disabled for Looker using the **enabled** field. * @@ -3857,7 +3857,7 @@ open class LookerSDK: APIMethods { /** * ### Get an image representing the contents of a dashboard or look. * - * The returned thumbnail is an abstract representation of the contents of a dashbord or look and does not + * The returned thumbnail is an abstract representation of the contents of a dashboard or look and does not * reflect the actual data displayed in the respective visualizations. * * GET /content_thumbnail/{type}/{resource_id} -> String @@ -4013,7 +4013,7 @@ open class LookerSDK: APIMethods { * * # DEPRECATED: Use [content_thumbnail()](#!/Content/content_thumbnail) * - * The returned thumbnail is an abstract representation of the contents of a dashbord or look and does not + * The returned thumbnail is an abstract representation of the contents of a dashboard or look and does not * reflect the actual data displayed in the respective visualizations. * * GET /vector_thumbnail/{type}/{resource_id} -> String @@ -4377,7 +4377,7 @@ open class LookerSDK: APIMethods { } /** - * ### Get Aggregate Table LookML for Each Query on a Dahboard + * ### Get Aggregate Table LookML for Each Query on a Dashboard * * Returns a JSON object that contains the dashboard id and Aggregate Table lookml * @@ -7914,8 +7914,6 @@ open class LookerSDK: APIMethods { /** * ### Creates a tag for the most recent commit, or a specific ref is a SHA is provided * - * This is an internal-only, undocumented route. - * * POST /projects/{project_id}/tag -> Project */ public func tag_ref( @@ -9256,6 +9254,7 @@ open class LookerSDK: APIMethods { /** * ### Update information about the permission set with a specific id. + * Providing save_content permission alone will also provide you the abilities of save_looks and save_dashboards. * * PATCH /permission_sets/{permission_set_id} -> PermissionSet */ @@ -9311,6 +9310,7 @@ open class LookerSDK: APIMethods { /** * ### Create a permission set with the specified information. Permission sets are used by Roles. + * Providing save_content permission alone will also provide you the abilities of save_looks and save_dashboards. * * POST /permission_sets -> PermissionSet */ diff --git a/swift/looker/sdk/models.swift b/swift/looker/sdk/models.swift index debfb12c7..6d0952ec9 100644 --- a/swift/looker/sdk/models.swift +++ b/swift/looker/sdk/models.swift @@ -15303,6 +15303,7 @@ public struct MergeQuerySourceQuery: SDKModel { case merge_fields case _name = "name" case _query_id = "query_id" + case _query_slug = "query_slug" } /** * An array defining which fields of the source query are mapped onto fields of the merge query @@ -15327,10 +15328,20 @@ public struct MergeQuerySourceQuery: SDKModel { set { _query_id = newValue.map(AnyString.init) } } - public init(merge_fields: [MergeFields]? = nil, name: String? = nil, query_id: String? = nil) { + private var _query_slug: AnyString? + /** + * Slug of the query to merge + */ + public var query_slug: String? { + get { _query_slug?.value } + set { _query_slug = newValue.map(AnyString.init) } + } + + public init(merge_fields: [MergeFields]? = nil, name: String? = nil, query_id: String? = nil, query_slug: String? = nil) { self.merge_fields = merge_fields self._name = name.map(AnyString.init) self._query_id = query_id.map(AnyString.init) + self._query_slug = query_slug.map(AnyString.init) } } diff --git a/swift/looker/sdk/streams.swift b/swift/looker/sdk/streams.swift index 4024ee5f4..ef3d82ed3 100644 --- a/swift/looker/sdk/streams.swift +++ b/swift/looker/sdk/streams.swift @@ -799,7 +799,7 @@ open class LookerSDKStream: APIMethods { * "Powered by Looker" (PBL) web application. * * This is similar to Private Embedding (https://cloud.google.com/looker/docs/r/admin/embed/private-embed). Instead of - * of logging into the Web UI to authenticate, the user has already authenticated against the API to be able to + * logging into the Web UI to authenticate, the user has already authenticated against the API to be able to * make this call. However, unlike Private Embed where the user has access to any other part of the Looker UI, * the embed web session created by requesting the EmbedUrlResponse.url in a browser only has access to * content visible under the `/embed` context. @@ -870,7 +870,7 @@ open class LookerSDKStream: APIMethods { * If the `session_reference_token` is provided but the session has expired, the token will be ignored and a * new embed session will be created. Note that the embed user definition will be updated in this scenario. * - * If the credentials do not match the credentials associated with an exisiting session_reference_token, a + * If the credentials do not match the credentials associated with an existing session_reference_token, a * 404 will be returned. * * The endpoint returns the following: @@ -1414,7 +1414,7 @@ open class LookerSDKStream: APIMethods { * * Configuring OIDC impacts authentication for all users. This configuration should be done carefully. * - * Looker maintains a single OIDC configuation. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct). + * Looker maintains a single OIDC configuration. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct). * * OIDC is enabled or disabled for Looker using the **enabled** field. * @@ -1567,7 +1567,7 @@ open class LookerSDKStream: APIMethods { * * Configuring SAML impacts authentication for all users. This configuration should be done carefully. * - * Looker maintains a single SAML configuation. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct). + * Looker maintains a single SAML configuration. It can be read and updated. Updates only succeed if the new state will be valid (in the sense that all required fields are populated); it is up to you to ensure that the configuration is appropriate and correct). * * SAML is enabled or disabled for Looker using the **enabled** field. * @@ -3855,7 +3855,7 @@ open class LookerSDKStream: APIMethods { /** * ### Get an image representing the contents of a dashboard or look. * - * The returned thumbnail is an abstract representation of the contents of a dashbord or look and does not + * The returned thumbnail is an abstract representation of the contents of a dashboard or look and does not * reflect the actual data displayed in the respective visualizations. * * GET /content_thumbnail/{type}/{resource_id} -> String @@ -4011,7 +4011,7 @@ open class LookerSDKStream: APIMethods { * * # DEPRECATED: Use [content_thumbnail()](#!/Content/content_thumbnail) * - * The returned thumbnail is an abstract representation of the contents of a dashbord or look and does not + * The returned thumbnail is an abstract representation of the contents of a dashboard or look and does not * reflect the actual data displayed in the respective visualizations. * * GET /vector_thumbnail/{type}/{resource_id} -> String @@ -4375,7 +4375,7 @@ open class LookerSDKStream: APIMethods { } /** - * ### Get Aggregate Table LookML for Each Query on a Dahboard + * ### Get Aggregate Table LookML for Each Query on a Dashboard * * Returns a JSON object that contains the dashboard id and Aggregate Table lookml * @@ -7912,8 +7912,6 @@ open class LookerSDKStream: APIMethods { /** * ### Creates a tag for the most recent commit, or a specific ref is a SHA is provided * - * This is an internal-only, undocumented route. - * * POST /projects/{project_id}/tag -> Project */ public func tag_ref( @@ -9254,6 +9252,7 @@ open class LookerSDKStream: APIMethods { /** * ### Update information about the permission set with a specific id. + * Providing save_content permission alone will also provide you the abilities of save_looks and save_dashboards. * * PATCH /permission_sets/{permission_set_id} -> PermissionSet */ @@ -9309,6 +9308,7 @@ open class LookerSDKStream: APIMethods { /** * ### Create a permission set with the specified information. Permission sets are used by Roles. + * Providing save_content permission alone will also provide you the abilities of save_looks and save_dashboards. * * POST /permission_sets -> PermissionSet */