looker-sdk
Version:
The SDK for Looker's Core API for Node.js.
2,246 lines (2,186 loc) • 660 kB
text/typescript
/**
* Looker API 3.0 Reference
* ### Authorization The Looker API uses Looker **API3** credentials for authorization and access control. Looker admins can create API3 credentials on Looker's **Admin/Users** page. Pass API3 credentials to the **_/login** endpoint to obtain a temporary access_token. Include that access_token in the Authorization header of Looker API requests. For details, see [Looker API Authorization](https://looker.com/docs/r/api/authorization) ### Client SDKs The Looker API is a RESTful system that should be usable by any programming language capable of making HTTPS requests. Client SDKs for a variety of programming languages can be generated from the Looker API's Swagger JSON metadata to streamline use of the Looker API in your applications. A client SDK for Ruby is available as an example. For more information, see [Looker API Client SDKs](https://looker.com/docs/r/api/client_sdks) ### Try It Out! The 'api-docs' page served by the Looker instance includes 'Try It Out!' buttons for each API method. After logging in with API3 credentials, you can use the \"Try It Out!\" buttons to call the API directly from the documentation page to interactively explore API features and responses. ### Versioning Future releases of Looker will expand this API release-by-release to securely expose more and more of the core power of Looker to API client applications. API endpoints marked as \"beta\" may receive breaking changes without warning. Stable (non-beta) API endpoints should not receive breaking changes in future releases. For more information, see [Looker API Versioning](https://looker.com/docs/r/api/versioning)
*
* OpenAPI spec version: 3.0.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
* https://github.com/swagger-api/swagger-codegen.git
* Do not edit the class manually.
*/
import request = require('request');
import http = require('http');
import Promise = require('bluebird');
let defaultBasePath = 'https://learnbeta.looker.com:19999/api/3.0';
// ===============================================
// This file is autogenerated - Please do not edit
// ===============================================
/* tslint:disable:no-unused-variable */
export class AccessFilter {
/**
* ID of this AccessFilter
*/
'id': number;
/**
* Model to which this filter applies
*/
'model': string;
/**
* Field to which this filter applies
*/
'field': string;
/**
* Value for this filter
*/
'value': string;
/**
* Link to get this item
*/
'url': string;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class AccessToken {
/**
* Access Token used for API calls
*/
'accessToken': string;
/**
* Type of Token
*/
'tokenType': string;
/**
* Number of seconds before the token expires
*/
'expiresIn': number;
}
export class ApiSession {
/**
* The id of active workspace for this session
*/
'workspaceId': string;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class ApiVersion {
/**
* Current Looker release version number
*/
'lookerReleaseVersion': string;
/**
* Current version for this Looker instance
*/
'currentVersion': ApiVersionElement;
/**
* Array of versions supported by this Looker instance
*/
'supportedVersions': Array<ApiVersionElement>;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class ApiVersionElement {
/**
* Version number as it appears in '/api/xxx/' urls
*/
'version': string;
/**
* Full version number including minor version
*/
'fullVersion': string;
/**
* Status of this version
*/
'status': string;
/**
* Url for swagger.json for this version
*/
'swaggerUrl': string;
}
export class BackupConfiguration {
/**
* Type of backup: looker-s3 or custom-s3
*/
'type': string;
/**
* Name of bucket for custom-s3 backups
*/
'customS3Bucket': string;
/**
* Name of region where the bucket is located
*/
'customS3BucketRegion': string;
/**
* AWS S3 key used for custom-s3 backups
*/
'customS3Key': string;
/**
* AWS S3 secret used for custom-s3 backups
*/
'customS3Secret': string;
/**
* Link to get this item
*/
'url': string;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class ContentFavorite {
/**
* Unique Id
*/
'id': number;
/**
* User Id which owns this ContentFavorite
*/
'userId': number;
/**
* Id of a look
*/
'lookId': number;
/**
* Id of a dashboard
*/
'dashboardId': number;
/**
* Associated Look
*/
'look': LookBasic;
/**
* Associated Dashboard
*/
'dashboard': DashboardBase;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class ContentMeta {
/**
* Unique Id
*/
'id': number;
/**
* Name or title of underlying content
*/
'name': string;
/**
* Id of Parent Content
*/
'parentId': number;
/**
* Id of associated space when content_type is \"space\"
*/
'spaceId': string;
/**
* Id of associated dashboard when content_type is \"dashboard\"
*/
'dashboardId': string;
/**
* Id of associated look when content_type is \"look\"
*/
'lookId': number;
/**
* Content Type (\"dashboard\", \"look\", or \"space\")
*/
'contentType': string;
/**
* Whether content inherits its access levels from parent
*/
'inherits': boolean;
/**
* Id of Inherited Content
*/
'inheritingId': number;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class ContentMetaGroupUser {
/**
* Unique Id
*/
'id': string;
/**
* Id of associated Content Metadata
*/
'contentMetadataId': string;
/**
* Type of permission: \"view\" or \"edit\"
*/
'permissionType': string;
/**
* ID of associated group
*/
'groupId': number;
/**
* ID of associated user
*/
'userId': number;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class ContentView {
/**
* Unique Id
*/
'id': number;
/**
* Content Type (\"dashboard\" or \"look\")
*/
'contentType': string;
/**
* Id of dashboard or look specified by content type
*/
'contentId': string;
/**
* Id of user content was viewed by
*/
'userId': number;
/**
* Id of group content was viewed by
*/
'groupId': number;
/**
* Number of times piece of content was viewed
*/
'viewCount': number;
/**
* Number of times piece of content was favorited
*/
'favoriteCount': number;
/**
* Date the piece of content was last viewed
*/
'lastViewedAt': string;
/**
* Week start date for the view and favorite count during that given week
*/
'startOfWeekDate': string;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class CreateDashboardRenderTask {
/**
* Dashboard layout style: single_column or tiled
*/
'dashboardStyle': string;
/**
* Filter values to apply to the dashboard queries, in URL query format
*/
'dashboardFilters': string;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class CreateQueryTask {
/**
* Id of query to run
*/
'queryId': number;
/**
* Desired result format
*/
'resultFormat': string;
/**
* Source of query task
*/
'source': string;
/**
* Create the task but defer execution
*/
'deferred': boolean;
/**
* Id of look associated with query.
*/
'lookId': number;
/**
* Id of dashboard associated with query.
*/
'dashboardId': string;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class CredentialsApi {
/**
* API key token
*/
'token': string;
/**
* Timestamp for the creation of this credential
*/
'createdAt': string;
/**
* Has this credential been disabled?
*/
'isDisabled': boolean;
/**
* Short name for the type of this kind of credential
*/
'type': string;
/**
* Link to get this item
*/
'url': string;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class CredentialsApi3 {
/**
* Unique Id
*/
'id': number;
/**
* API key client_id
*/
'clientId': string;
/**
* Timestamp for the creation of this credential
*/
'createdAt': string;
/**
* Has this credential been disabled?
*/
'isDisabled': boolean;
/**
* Short name for the type of this kind of credential
*/
'type': string;
/**
* Link to get this item
*/
'url': string;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class CredentialsEmail {
/**
* EMail address used for user login
*/
'email': string;
/**
* Timestamp for the creation of this credential
*/
'createdAt': string;
/**
* Timestamp for most recent login using credential
*/
'loggedInAt': string;
/**
* Has this credential been disabled?
*/
'isDisabled': boolean;
/**
* Short name for the type of this kind of credential
*/
'type': string;
/**
* Url with one-time use secret token that the user can use to reset password
*/
'passwordResetUrl': string;
/**
* Link to get this item
*/
'url': string;
/**
* Link to get this user
*/
'userUrl': string;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class CredentialsEmbed {
/**
* Unique Id
*/
'id': number;
/**
* Embedder's unique id for the user
*/
'externalUserId': string;
/**
* Embedder's id for a group to which this user was added during the most recent login
*/
'externalGroupId': string;
/**
* Timestamp for the creation of this credential
*/
'createdAt': string;
/**
* Timestamp for most recent login using credential
*/
'loggedInAt': string;
/**
* Has this credential been disabled?
*/
'isDisabled': boolean;
/**
* Short name for the type of this kind of credential
*/
'type': string;
/**
* Link to get this item
*/
'url': string;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class CredentialsGoogle {
/**
* EMail address
*/
'email': string;
/**
* Google's Unique ID for this user
*/
'googleUserId': string;
/**
* Google domain
*/
'domain': string;
/**
* Timestamp for the creation of this credential
*/
'createdAt': string;
/**
* Timestamp for most recent login using credential
*/
'loggedInAt': string;
/**
* Has this credential been disabled?
*/
'isDisabled': boolean;
/**
* Short name for the type of this kind of credential
*/
'type': string;
/**
* Link to get this item
*/
'url': string;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class CredentialsLDAP {
/**
* EMail address
*/
'email': string;
/**
* LDAP Unique ID for this user
*/
'ldapId': string;
/**
* LDAP Distinguished name for this user (as-of the last login)
*/
'ldapDn': string;
/**
* Timestamp for the creation of this credential
*/
'createdAt': string;
/**
* Timestamp for most recent login using credential
*/
'loggedInAt': string;
/**
* Has this credential been disabled?
*/
'isDisabled': boolean;
/**
* Short name for the type of this kind of credential
*/
'type': string;
/**
* Link to get this item
*/
'url': string;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class CredentialsLookerOpenid {
/**
* EMail address used for user login
*/
'email': string;
/**
* Timestamp for the creation of this credential
*/
'createdAt': string;
/**
* Timestamp for most recent login using credential
*/
'loggedInAt': string;
/**
* IP address of client for most recent login using credential
*/
'loggedInIp': string;
/**
* Has this credential been disabled?
*/
'isDisabled': boolean;
/**
* Short name for the type of this kind of credential
*/
'type': string;
/**
* Link to get this item
*/
'url': string;
/**
* Link to get this user
*/
'userUrl': string;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class CredentialsSaml {
/**
* EMail address
*/
'email': string;
/**
* Saml IdP's Unique ID for this user
*/
'samlUserId': string;
/**
* Timestamp for the creation of this credential
*/
'createdAt': string;
/**
* Timestamp for most recent login using credential
*/
'loggedInAt': string;
/**
* Has this credential been disabled?
*/
'isDisabled': boolean;
/**
* Short name for the type of this kind of credential
*/
'type': string;
/**
* Link to get this item
*/
'url': string;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class CredentialsTotp {
/**
* User has verified
*/
'verified': boolean;
/**
* Timestamp for the creation of this credential
*/
'createdAt': string;
/**
* Has this credential been disabled?
*/
'isDisabled': boolean;
/**
* Short name for the type of this kind of credential
*/
'type': string;
/**
* Link to get this item
*/
'url': string;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class DBConnection {
/**
* Name of the connection. Also used as the unique identifier
*/
'name': string;
/**
* Host name/address of server
*/
'host': string;
/**
* Port number on server
*/
'port': string;
/**
* Username for server authentication
*/
'username': string;
/**
* (Write-only) Password for server authentication
*/
'password': string;
/**
* (Write-only) Base64 encoded Certificate body for server authentication (when appropriate for dialect).
*/
'certificate': string;
/**
* Database name
*/
'database': string;
/**
* Time zone of database
*/
'dbTimezone': string;
/**
* Timezone to use in queries
*/
'queryTimezone': string;
/**
* Scheme name
*/
'schema': string;
/**
* Maximum number of concurrent connection to use
*/
'maxConnections': number;
/**
* Maximum size of query in GBs (BigQuery only, can be a user_attribute name)
*/
'maxBillingGigabytes': string;
/**
* Use SSL/TLS when connecting to server
*/
'ssl': boolean;
/**
* Verify the SSL
*/
'verifySsl': boolean;
/**
* Name of temporary database (if used)
*/
'tmpDbName': string;
/**
* Additional params to add to JDBC connection string
*/
'jdbcAdditionalParams': string;
/**
* Pool Timeout
*/
'poolTimeout': number;
/**
* (Read-only) SQL Dialect details
*/
'dialect': Dialect;
/**
* (Read/Write) SQL Dialect name
*/
'dialectName': string;
/**
* SQL Runner snippets for this connection
*/
'snippets': Array<Snippet>;
/**
* Creation date for this connection
*/
'createdAt': string;
/**
* Id of user who last modified this connection configuration
*/
'userId': string;
/**
* Is this an example connection
*/
'example': boolean;
/**
* (Limited access feature) Are per user db credentials enabled
*/
'userDbCredentials': boolean;
/**
* Fields whose values map to user attribute names
*/
'userAttributeFields': Array<string>;
/**
* Cron string specifying when maintenance such as PDT trigger checks and drops should be performed
*/
'maintenanceCron': string;
/**
* Unix timestamp at start of last completed PDT trigger check process
*/
'lastRegenAt': string;
/**
* Unix timestamp at start of last completed PDT reap process
*/
'lastReapAt': string;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class DBConnectionBase {
/**
* Name of the connection. Also used as the unique identifier
*/
'name': string;
/**
* (Read-only) SQL Dialect details
*/
'dialect': Dialect;
/**
* SQL Runner snippets for this connection
*/
'snippets': Array<Snippet>;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class DBConnectionTestResult {
/**
* Name of test
*/
'name': string;
/**
* Result code of test
*/
'status': string;
/**
* Result message of test
*/
'message': string;
/**
* JDBC connection string. (only populated in the 'connect' test)
*/
'connectionString': string;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class Dashboard {
/**
* Unique Id
*/
'id': string;
/**
* Id of content metadata
*/
'contentMetadataId': number;
/**
* Content Favorite Id
*/
'contentFavoriteId': number;
/**
* Number of times viewed in the Looker web UI
*/
'viewCount': number;
/**
* Time the dashboard was last accessed
*/
'lastAccessedAt': Date;
/**
* Number of times favorited
*/
'favoriteCount': number;
/**
* Id of User
*/
'userId': number;
/**
* Look Title
*/
'title': string;
/**
* Description
*/
'description': string;
/**
* Is Read-only
*/
'readonly': boolean;
/**
* Is Hidden
*/
'hidden': boolean;
/**
* Refresh Interval
*/
'refreshInterval': string;
/**
* Refresh Interval as Integer
*/
'refreshIntervalToI': number;
/**
* Space
*/
'space': SpaceBase;
/**
* configuration option that governs how dashboard loading will happen.
*/
'loadConfiguration': string;
/**
* Model
*/
'model': LookModel;
/**
* Id of Space
*/
'spaceId': string;
/**
* Elements
*/
'dashboardElements': Array<DashboardElement>;
/**
* Layouts
*/
'dashboardLayouts': Array<DashboardLayout>;
/**
* Filters
*/
'dashboardFilters': Array<DashboardFilter>;
/**
* Time last viewed in the Looker web UI
*/
'lastViewedAt': Date;
/**
* Background color
*/
'backgroundColor': string;
/**
* Show title
*/
'showTitle': boolean;
/**
* Title color
*/
'titleColor': string;
/**
* Show filters bar
*/
'showFiltersBar': boolean;
/**
* Tile background color
*/
'tileBackgroundColor': string;
/**
* Tile text color
*/
'tileTextColor': string;
/**
* Color of text on text tiles
*/
'textTileTextColor': string;
/**
* Id of User that last updated the dashboard.
*/
'lastUpdaterId': number;
/**
* Id of User that deleted the dashboard.
*/
'deleterId': number;
/**
* Whether or not a dashboard is deleted.
*/
'deleted': boolean;
/**
* Time that the Dashboard was created.
*/
'createdAt': Date;
/**
* Time that the Dashboard was deleted.
*/
'deletedAt': Date;
/**
* Timezone in which the Dashboard will run by default.
*/
'queryTimezone': string;
/**
* Relative path of URI of LookML file to edit the dashboard (LookML dashboard only).
*/
'editUri': string;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class DashboardBase {
/**
* Unique Id
*/
'id': string;
/**
* Id of User
*/
'userId': number;
/**
* Look Title
*/
'title': string;
/**
* Description
*/
'description': string;
/**
* Is Read-only
*/
'readonly': boolean;
/**
* Is Hidden
*/
'hidden': boolean;
/**
* Refresh Interval
*/
'refreshInterval': string;
/**
* Refresh Interval as Integer
*/
'refreshIntervalToI': number;
/**
* Space
*/
'space': SpaceBase;
/**
* Model
*/
'model': LookModel;
/**
* Content Favorite Id
*/
'contentFavoriteId': number;
/**
* ScheduledPlan
*/
'scheduledPlan': ScheduledPlan;
/**
* Id of content metadata
*/
'contentMetadataId': number;
/**
* Timezone in which the Dashboard will run by default.
*/
'queryTimezone': string;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class DashboardElement {
/**
* Unique Id
*/
'id': string;
/**
* Id of Dashboard
*/
'dashboardId': string;
/**
* Id Of Look
*/
'lookId': string;
/**
* Id Of Query
*/
'queryId': number;
/**
* Type
*/
'type': string;
/**
* Listen
*/
'listen': { [key: string]: string; };
/**
* Refresh Interval
*/
'refreshInterval': string;
/**
* Refresh Interval as integer
*/
'refreshIntervalToI': number;
/**
* Note Text
*/
'noteText': string;
/**
* Note Text as Html
*/
'noteTextAsHtml': string;
/**
* Note Display
*/
'noteDisplay': string;
/**
* Note State
*/
'noteState': string;
/**
* Title of dashboard element
*/
'titleText': string;
/**
* Text tile subtitle text
*/
'subtitleText': string;
/**
* Text tile body text
*/
'bodyText': string;
/**
* Text tile body text as Html
*/
'bodyTextAsHtml': string;
/**
* Look
*/
'look': LookWithQuery;
/**
* Query
*/
'query': Query;
/**
* Relative path of URI of LookML file to edit the dashboard element (LookML dashboard only).
*/
'editUri': string;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class DashboardFilter {
/**
* Unique Id
*/
'id': string;
/**
* Id of Dashboard
*/
'dashboardId': string;
/**
* Name of filter
*/
'name': string;
/**
* Name of title
*/
'title': string;
/**
* Type of filter: one of date, number, string, or field
*/
'type': string;
/**
* Default value of filter
*/
'defaultValue': string;
/**
* Model of filter (required if type = field)
*/
'model': string;
/**
* Explore of filter (required if type = field)
*/
'explore': string;
/**
* Dimension of filter (required if type = field)
*/
'dimension': string;
/**
* Field information
*/
'field': { [key: string]: string; };
/**
* Position of filter when displaying
*/
'row': number;
/**
* Array of listeners for faceted filters
*/
'listensToFilters': Array<string>;
/**
* Whether the filter allows multiple filter values
*/
'allowMultipleValues': boolean;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class DashboardLayout {
/**
* Unique Id
*/
'id': string;
/**
* Id of Dashboard
*/
'dashboardId': string;
/**
* Type
*/
'type': string;
/**
* Is Active
*/
'active': boolean;
/**
* Column Width
*/
'columnWidth': number;
/**
* Width
*/
'width': number;
/**
* Whether or not the dashboard layout is deleted.
*/
'deleted': boolean;
/**
* Components
*/
'dashboardLayoutComponents': Array<DashboardLayoutComponent>;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class DashboardLayoutComponent {
/**
* Unique Id
*/
'id': string;
/**
* Id of Dashboard Layout
*/
'dashboardLayoutId': string;
/**
* Id Of Dashboard Element
*/
'dashboardElementId': string;
/**
* Row
*/
'row': number;
/**
* Column
*/
'column': number;
/**
* Width
*/
'width': number;
/**
* Height
*/
'height': number;
/**
* Whether or not the dashboard layout component is deleted
*/
'deleted': boolean;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class DataActionForm {
/**
* Array of form fields.
*/
'fields': Array<DataActionFormField>;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class DataActionFormField {
/**
* Name
*/
'name': string;
/**
* Human-readable label
*/
'label': string;
/**
* Description of field
*/
'description': string;
/**
* Type of field.
*/
'type': string;
/**
* Default value of the field.
*/
'default': string;
/**
* Whether or not the field is required. This is a user-interface hint. A user interface displaying this form should not submit it without a value for this field. The action server must also perform this validation.
*/
'required': boolean;
/**
* If the form type is 'select', a list of options to be selected from.
*/
'options': Array<DataActionFormSelectOption>;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class DataActionFormSelectOption {
/**
* Name
*/
'name': string;
/**
* Human-readable label
*/
'label': string;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class DataActionRequest {
/**
* The JSON describing the data action. This JSON should be considered opaque and should be passed through unmodified from the query result it came from.
*/
'action': { [key: string]: string; };
/**
* User input for any form values the data action might use.
*/
'formValues': { [key: string]: string; };
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class DataActionResponse {
/**
* ID of the webhook event that sent this data action. In some error conditions, this may be null.
*/
'webhookId': string;
/**
* Whether the data action was successful.
*/
'success': boolean;
/**
* When true, indicates that the client should refresh (rerun) the source query because the data may have been changed by the action.
*/
'refreshQuery': boolean;
/**
* Validation errors returned by the data action server.
*/
'validationErrors': ValidationError;
/**
* Optional message returned by the data action server describing the state of the action that took place. This can be used to implement custom failure messages. If a failure is related to a particular form field, the server should send back a validation error instead. The Looker web UI does not currently display any message if the action indicates 'success', but may do so in the future.
*/
'message': string;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class Datagroup {
/**
* ID of the datagroup. Also used as the unique identifier.
*/
'id': number;
/**
* Name of the datagroup. Unique when combined with model_name.
*/
'name': string;
/**
* Name of the model containing the datagroup. Unique when combined with name.
*/
'modelName': string;
/**
* The value of the trigger when last checked.
*/
'triggerValue': string;
/**
* The message returned with the error of the last trigger check.
*/
'triggerError': string;
/**
* UNIX timestamp before which cache entries are considered stale.
*/
'staleBefore': number;
/**
* UNIX timestamp at which this entry became triggered.
*/
'triggeredAt': number;
/**
* UNIX timestamp at which this entry trigger was last checked.
*/
'triggerCheckAt': number;
/**
* UNIX timestamp at which this entry was created.
*/
'createdAt': number;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class Dialect {
/**
* The name of the dialect
*/
'name': string;
/**
* The human-readable label of the connection
*/
'label': string;
/**
* Whether the dialect supports query cost estimates
*/
'supportsCostEstimate': boolean;
/**
* Whether the dialect supports uploading tables
*/
'supportsUploadTables': boolean;
/**
* PDT index columns
*/
'persistentTableIndexes': string;
/**
* PDT sortkey columns
*/
'persistentTableSortkeys': string;
/**
* PDT distkey column
*/
'persistentTableDistkey': string;
/**
* Suports streaming results
*/
'supportsStreaming': boolean;
/**
* Should SQL Runner snippets automatically be run
*/
'automaticallyRunSqlRunnerSnippets': boolean;
/**
* Array of names of the tests that can be run on a connection using this dialect
*/
'connectionTests': Array<string>;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class DialectInfo {
/**
* The name of the dialect
*/
'name': string;
/**
* The human-readable label of the connection
*/
'label': string;
/**
* What the dialect calls the equivalent of a normal SQL table
*/
'labelForDatabaseEquivalent': string;
/**
* Default port number
*/
'defaultPort': string;
/**
* Default number max connections
*/
'defaultMaxConnections': string;
/**
* Option support details
*/
'supportedOptions': DialectInfoOptions;
/**
* Is the supporting driver installed
*/
'installed': boolean;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class DialectInfoOptions {
/**
* Has timezone support
*/
'timezone': boolean;
/**
* Has schema support
*/
'schema': boolean;
/**
* Has SSL support
*/
'ssl': boolean;
/**
* Has auth support
*/
'auth': boolean;
/**
* Has host support
*/
'host': boolean;
/**
* Has tmp table support
*/
'tmpTable': boolean;
/**
* Has project name support
*/
'projectName': boolean;
/**
* Has OAuth support
*/
'oauthCredentials': boolean;
/**
* Has additional params support
*/
'additionalParams': boolean;
/**
* Username is required
*/
'usernameRequired': boolean;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class GitStatus {
/**
* Git action: add, delete, etc
*/
'action': string;
/**
* Git description of the action
*/
'text': string;
/**
* When true, the file can be reverted to an earlier state
*/
'revertable': boolean;
/**
* When true, changes to the local file conflict with the remote repository
*/
'conflict': boolean;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class Group {
/**
* Unique Id
*/
'id': number;
/**
* Name of group
*/
'name': string;
/**
* Number of users included in this group
*/
'userCount': number;
/**
* Currently logged in user is group member
*/
'containsCurrentUser': boolean;
/**
* Group membership controlled outside of Looker
*/
'externallyManaged': boolean;
/**
* New users are added to this group by default
*/
'includeByDefault': boolean;
/**
* External Id group if embed group
*/
'externalGroupId': string;
/**
* Group can be used in content access controls
*/
'canAddToContentMetadata': boolean;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class GroupIdForGroupInclusion {
/**
* Id of group
*/
'groupId': number;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class GroupIdForGroupUserInclusion {
/**
* Id of user
*/
'userId': number;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class HomepageItem {
/**
* Unique Id
*/
'id': string;
/**
* Associated Homepage Section
*/
'homepageSectionId': string;
/**
* An arbitrary integer representing the sort order within the section
*/
'order': number;
/**
* The actual title for display
*/
'title': string;
/**
* Whether the title should be shown
*/
'showTitle': boolean;
/**
* Custom title entered by the user, if present
*/
'customTitle': string;
/**
* Whether the custom title should be used instead of the content title, if the item is associated with content
*/
'useCustomTitle': boolean;
/**
* The actual description for display
*/
'description': string;
/**
* Whether the description should be shown
*/
'showDescription': boolean;
/**
* Custom description entered by the user, if present
*/
'customDescription': string;
/**
* Whether the custom description should be used instead of the content description, if the item is associated with content
*/
'useCustomDescription': boolean;
/**
* The actual url for display
*/
'url': string;
/**
* Whether the url should be shown
*/
'showUrl': boolean;
/**
* Custom url entered by the user, if present
*/
'customUrl': string;
/**
* Whether the custom url should be used instead of the content url, if the item is associated with content
*/
'useCustomUrl': boolean;
/**
* The actual image_url for display
*/
'imageUrl': string;
/**
* Whether the image_url should be shown
*/
'showImage': boolean;
/**
* Custom image_url entered by the user, if present
*/
'customImageUrl': string;
/**
* (Write-only) base64 encoded image data
*/
'customImageDataBase64': string;
/**
* Whether the custom image should be used instead of the content image, if the item is associated with content
*/
'useCustomImage': boolean;
/**
* Look to base this item on
*/
'lookId': number;
/**
* Dashboard to base this item on
*/
'dashboardId': number;
/**
* LookML Dashboard to base this item on
*/
'lookmlDashboardId': string;
/**
* Number of seconds it took to fetch the section this item is in
*/
'sectionFetchTime': number;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class HomepageSection {
/**
* Unique Id
*/
'id': string;
/**
* Name of row
*/
'title': string;
/**
* Is this a header section (has no items)
*/
'isHeader': boolean;
/**
* An arbitrary float representing the sort order of sections.
*/
'order': number;
/**
* A URL pointing to a page showing further information about the content in the section.
*/
'detailUrl': string;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class LDAPConfig {
/**
* Enable/Disable LDAP authentication for the server
*/
'enabled': boolean;
/**
* LDAP server hostname
*/
'connectionHost': string;
/**
* LDAP host port
*/
'connectionPort': string;
/**
* Use Transport Layer Security
*/
'connectionTls': boolean;
/**
* Distinguished name of LDAP account used to access the LDAP server
*/
'authUsername': string;
/**
* (Write-only) Password for the LDAP account used to access the LDAP server
*/
'authPassword': string;
/**
* (Read-only) Has the password been set for the LDAP account used to access the LDAP server
*/
'hasAuthPassword': boolean;
/**
* Distinguished name of LDAP node used as the base for user searches
*/
'userBindBaseDn': string;
/**
* Name(s) of user record attributes used for matching user login id (comma separated list)
*/
'userIdAttributeNames': string;
/**
* (Optional) Name of user record objectclass used for finding user during login id
*/
'userObjectclass': string;
/**
* Name of user record attributes used to indicate email address field
*/
'userAttributeMapEmail': string;
/**
* Name of user record attributes used to indicate first name
*/
'userAttributeMapFirstName': string;
/**
* Name of user record attributes used to indicate last name
*/
'userAttributeMapLastName': string;
/**
* Name of user record attributes used to indicate unique record id
*/
'userAttributeMapLdapId': string;
/**
* Merge first-time ldap login to existing user account by email addresses. When a user logs in for the first time via ldap this option will connect this user into their existing account by finding the account with a matching email address. Otherwise a new user account will be created for the user.
*/
'mergeNewUsersByEmail': boolean;
/**
* Allow alternate email-based login via '/login/email' for admins and for specified users with the 'login_special_email' permission. This option is useful as a fallback during ldap setup, if ldap config problems occur later, or if you need to support some users who are not in your ldap directory. Looker email/password logins are always disabled for regular users when ldap is enabled.
*/
'alternateEmailLoginAllowed': boolean;
/**
* When this config was last modified
*/
'modifiedAt': string;
/**
* User id of user who last modified this config
*/
'modifiedBy': string;
/**
* (Read-only) Groups that will be applied to new users the first time they login via LDAP
*/
'defaultNewUserGroups': Array<Group>;
/**
* (Read-only) Roles that will be applied to new users the first time they login via LDAP
*/
'defaultNewUserRoles': Array<Role>;
/**
* (Write-only) Array of ids of roles that will be applied to new users the first time they login via LDAP
*/
'defaultNewUserRoleIds': Array<number>;
/**
* (Write-only) Array of ids of groups that will be applied to new users the first time they login via LDAP
*/
'defaultNewUserGroupIds': Array<number>;
/**
* Set user roles in Looker based on groups from LDAP
*/
'setRolesFromGroups': boolean;
/**
* (Read-only) Array of mappings between LDAP Groups and Looker Roles
*/
'groups': Array<LDAPGroupRead>;
/**
* (Read/Write) Array of mappings between LDAP Groups and arrays of Looker Role ids
*/
'groupsWithRoleIds': Array<LDAPGroupWrite>;
/**
* Users will not be allowed to login at all unless a role for them is found in LDAP if set to true
*/
'authRequiresRole': boolean;
/**
* Identifier for a strategy for how Looker will search for groups in the LDAP server
*/
'groupsFinderType': string;
/**
* Base dn for finding groups in LDAP searches
*/
'groupsBaseDn': string;
/**
* LDAP Group attribute that signifies the members of the groups. Most commonly 'member'
*/
'groupsMemberAttribute': string;
/**
* LDAP Group attribute that signifies the user in a group. Most commonly 'dn'
*/
'groupsUserAttribute': string;
/**
* Optional comma-separated list of supported LDAP objectclass for groups when doing groups searches
*/
'groupsObjectclasses': string;
/**
* Don't attempt to do LDAP search result paging (RFC 2696) even if the LDAP server claims to support it.
*/
'forceNoPage': boolean;
/**
* (Write-only) Test LDAP user login id. For ldap tests only.
*/
'testLdapUser': string;
/**
* (Write-only) Test LDAP user password. For ldap tests only.
*/
'testLdapPassword': string;
/**
* Link to get this item
*/
'url': string;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class LDAPConfigTestResult {
/**
* Test status code: always 'success' or 'error'
*/
'status': string;
/**
* Short human readable test about the result
*/
'message': string;
/**
* Additional details for error cases
*/
'details': string;
/**
* User details from LDAP server for auth tests
*/
'user': LDAPUser;
/**
* A more detailed trace incremental results during auth tests
*/
'trace': string;
/**
* Link to ldap config
*/
'url': string;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class LDAPGroupRead {
/**
* Name of group in LDAP
*/
'name': string;
/**
* Looker Roles
*/
'roles': Array<Role>;
/**
* Link to ldap config
*/
'url': string;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class LDAPGroupWrite {
/**
* Name of group in LDAP
*/
'name': string;
/**
* Looker Role Ids
*/
'roleIds': Array<number>;
/**
* Link to ldap config
*/
'url': string;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class LDAPUser {
/**
* Primary email address
*/
'email': string;
/**
* First name
*/
'firstName': string;
/**
* Last Name
*/
'lastName': string;
/**
* LDAP's Unique ID for the user
*/
'ldapId': string;
/**
* Array of user's email addresses and aliases for use in migration
*/
'allEmails': Array<string>;
/**
* LDAP's distinguished name for the user record
*/
'ldapDn': string;
/**
* Array of user's roles (role names only)
*/
'roles': Array<string>;
/**
* Array of user's groups (group names only)
*/
'groups': Array<string>;
/**
* Link to ldap config
*/
'url': string;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class LegacyFeature {
/**
* Unique Id
*/
'id': string;
/**
* Name
*/
'name': string;
/**
* Description
*/
'description': string;
/**
* Whether this feature has been enabled by a user
*/
'enabledLocally': boolean;
/**
* Whether this feature is currently enabled
*/
'enabled': boolean;
/**
* Looker version where this feature became a legacy feature
*/
'disallowedAsOfVersion': string;
/**
* Future Looker version where this feature will be removed
*/
'endOfLifeVersion': string;
/**
* URL for documentation about this feature
*/
'documentationUrl': string;
/**
* Approximate date that this feature will be automatically disabled.
*/
'approximateDisableDate': Date;
/**
* Approximate date that this feature will be removed.
*/
'approximateEndOfLifeDate': Date;
/**
* Link to get this item
*/
'url': string;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class Look {
/**
* Unique Id
*/
'id': number;
/**
* Id of content metadata
*/
'contentMetadataId': number;
/**
* Number of times viewed in the Looker web UI
*/
'viewCount': number;
/**
* Number of times favorited
*/
'favoriteCount': number;
/**
* Time that the Look was last accessed by any user
*/
'lastAccessedAt': Date;
/**
* Content Favorite Id
*/
'contentFavoriteId': number;
/**
* Look Title
*/
'title': string;
/**
* User
*/
'user': UserIdOnly;
/**
* Query Id
*/
'queryId': number;
/**
* Description
*/
'description': string;
/**
* Short Url
*/
'shortUrl': string;
/**
* Space of this Look
*/
'space': SpaceBase;
/**
* Is Public
*/
'public': boolean;
/**
* Public Slug
*/
'publicSlug': string;
/**
* User Id
*/
'userId': number;
/**
* Space Id
*/
'spaceId': string;
/**
* Model
*/
'model': LookModel;
/**
* Public Url
*/
'publicUrl': string;
/**
* Embed Url
*/
'embedUrl': string;
/**
* Image Embed Url
*/
'imageEmbedUrl': string;
/**
* Google Spreadsheet Formula
*/
'googleSpreadsheetFormula': string;
/**
* Excel File Url
*/
'excelFileUrl': string;
/**
* Time that the Look was created.
*/
'createdAt': Date;
/**
* Time that the Look was deleted.
*/
'deletedAt': Date;
/**
* Time that the Look was updated.
*/
'updatedAt': Date;
/**
* Id of User that last updated the look.
*/
'lastUpdaterId': number;
/**
* Id of User that deleted the look.
*/
'deleterId': number;
/**
* Whether or not a look is deleted.
*/
'deleted': boolean;
/**
* Time last viewed in the Looker web UI
*/
'lastViewedAt': Date;
/**
* auto-run query when Look viewed
*/
'isRunOnLoad': boolean;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class LookBasic {
/**
* Unique Id
*/
'id': number;
/**
* Look Title
*/
'title': string;
/**
* Id of content metadata
*/
'contentMetadataId': number;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class LookModel {
/**
* Model Id
*/
'id': string;
/**
* Model Label
*/
'label': string;
/**
* Operations the current user is able to perform on this object
*/
'can': { [key: string]: boolean; };
}
export class LookWithDashboards {
/**
* Unique Id
*/
'id': number;
/**
* Id of content metadata
*/
'contentMetadataId': number;
/**
* Number of times viewed in the Looker web UI
*/
'viewCount': number;
/**
* Number of times favorited
*/
'favoriteCount': number;
/**
* Content Favorite Id
*/
'contentFavoriteId': number;
/**
* Look Title
*/
'title': string;
/**
* User
*/
'user': UserIdOnly;
/**
* Query Id
*/
'queryId': number;
/**
* Description
*/
'description': string;
/**
* Short Url
*/
'shortUrl': string;
/**
* Space of this Look