Skip to content

Instantly share code, notes, and snippets.

@joyblanks
Created October 22, 2021 18:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save joyblanks/5cd8c26c2efb806032b71bc1f0b5bef4 to your computer and use it in GitHub Desktop.
Save joyblanks/5cd8c26c2efb806032b71bc1f0b5bef4 to your computer and use it in GitHub Desktop.
Smartsheet declarations WIP
interface SmartsheetPaged {
pageNumber: number;
pageSize: number;
totalPages: number;
totalCount: number;
}
export interface SmartsheetClientOptions {
accessToken?: string;
logLevel?: string;
}
export interface CurrentUser {
id: number;
firstName: string;
lastName: string;
email: string;
locale: string;
timeZone: string;
account: {
name: string;
id: number;
},
admin: boolean;
licensedSheetCreator: boolean;
groupAdmin: boolean;
resourceViewer: boolean;
jiraAdmin: boolean;
salesforceAdmin: boolean;
salesforceUser: boolean;
alternateEmails: {
id: number;
email: string;
confirmed: boolean;
}[];
title: string;
department: string;
company: string;
workPhone: string;
mobilePhone: string;
role: string;
profileImage: {
imageId: string;
height: number;
width: number;
};
sheetCount: number;
lastLogin: string;
customWelcomeScreenViewed: string;
}
export interface SmartsheetToken {
access_token: string;
token_type: string;
expires_in: number;
refresh_token: string;
}
export interface SmartsheetResponse {
message: string;
resultCode: number;
}
export interface SmartsheetWebhook {
id: number;
name: string;
scope: string;
scopeObjectId: number;
events: string[];
callbackUrl: string;
sharedSecret?: string;
enabled: boolean;
status: string;
version: number;
subscope: {
columnIds: number[];
}
createdAt: Date;
modifiedAt: Date;
}
export interface SmartsheetWebhooks extends SmartsheetPaged {
data: SmartsheetWebhook[];
}
export interface SmartsheetWebookCreated extends SmartsheetResponse {
result: SmartsheetWebhook;
}
export interface SmartsheetWebhookCallbackEvent {
objectType: string;
eventType: string;
id: number;
columnId?: number;
rowId?: number;
changeAgent?: string;
userId: number;
Date: Date;
}
export interface SmartsheetWebhookCallback {
nonce: string;
Date: Date;
webhookId: number;
scope: string;
scopeObjectId: number;
newWebhookStatus?: string;
events: SmartsheetWebhookCallbackEvent[];
}
export interface SmartsheetCreated extends SmartsheetResponse {
result: {
accessLevel: string;
id: number;
name: string;
permalink: string;
}
}
export interface SmartsheetFolderCreated extends SmartsheetResponse {
result: {
id: number;
name: string;
}
}
export interface SmartsheetFolder {
id: number;
name: string;
permalink: string;
}
export interface SmartsheetFolderList extends SmartsheetPaged {
data: SmartsheetFolder[];
}
export interface SmartsheetItem {
id: number;
name: string;
accessLevel?: string;
permalink: string;
createdAt?: Date
modifiedAt?: Date;
}
export interface SmartsheetFolderResponse {
id: number;
name: string;
permalink: string;
sheets: SmartsheetItem[];
reports: SmartsheetItem[];
sights: SmartsheetItem[];
}
export interface SmartsheetUser {
id: number;
admin: boolean;
customWelcomeScreenViewed: Date;
email: string;
firstName: string;
groupAdmin: boolean;
lastLogin: Date;
lastName: string;
licensedSheetCreator: boolean;
name: string;
profileImage: {
id: string;
altText: string;
height: number;
width: number;
};
resourceViewer: boolean;
sheetCount: number;
status: string;
}
export interface SmartsheetAttachment {
id: number;
parentId: number;
attachmentType: string;
attachmentSubType: string;
mimeType: string;
parentType: string;
createdAt: Date;
createdBy: SmartsheetUser;
name: string;
sizeInKb: number;
url: string;
urlExpiresInMillis: number;
}
export interface SmartsheetDiscussion {
id: number;
parentId: number;
parentType: string;
accessLevel: string;
commentAttachments: SmartsheetAttachment[];
commentCount: number;
comments: Comment[];
createdBy: SmartsheetUser;
lastCommentedAt: Date;
lastCommentedUser: SmartsheetUser;
readOnly: boolean;
title: string;
}
interface SmartsheetCellLink {
columnId: number;
rowId: number;
sheetId: number;
sheetName: string;
status: string;
}
export interface SmartsheetCell {
columnId: number;
columnType: string;
conditionalFormat: string;
displayValue: string;
format: string;
formula: string;
hyperlink: {
reportId: number;
sheetId: number;
sightId: number;
url: string;
};
image: {
id: string;
altText: string;
height: number;
width: number;
};
linkInFromCell: SmartsheetCellLink;
linksOutToCells: SmartsheetCellLink[];
objectValue: {
objectType: string;
value?: string | number | boolean;
values?: (string | number | boolean)[];
};
overrideValidation: boolean;
strict: boolean;
value: string | number | boolean;
}
export interface SmartsheetColumn {
id: number;
systemColumnType: string;
type: string;
contactOptions: {
name: string;
email: string;
}[];
description: string;
format: string;
formula: string;
hidden: boolean;
index: number;
locked: boolean;
lockedForUser: boolean;
options: string[];
primary: boolean;
symbol: string;
tags: string[];
title: string;
validation: boolean;
version: number;
width: number;
}
export interface SmartsheetRow {
id: number;
sheetId: number;
accessLevel: string;
attachments: SmartsheetAttachment[];
cells: SmartsheetCell[];
columns: SmartsheetColumn[];
conditionalFormat: string;
createdAt: Date;
createdBy: SmartsheetUser;
discussions: SmartsheetDiscussion[];
expanded: boolean;
filteredOut: boolean;
format: string;
inCriticalPath: boolean;
locked: boolean;
lockedForUser: boolean;
modifiedAt: Date;
modifiedBy: SmartsheetUser;
permalink: string;
rowNumber: number;
version: number;
}
export interface Smartsheet {
id: number;
fromId: number;
ownerId: number;
accessLevel: string;
attachments: SmartsheetAttachment[];
columns: SmartsheetColumn[];
createdAt: Date;
crossSheetReferences: {
id: number;
endColumnId: number;
endRowId: number;
sourceSheetId: number;
startColumnId: number;
startRowId: number;
name: string;
status: string;
}[];
dependenciesEnabled: boolean;
discussions: SmartsheetDiscussion[];
effectiveAttachmentOptions: string[];
favorite: boolean;
ganttEnabled: boolean;
hasSummaryFields: boolean;
modifiedAt: Date;
name: string;
owner: string;
permalink: string;
projectSettings: {
lengthOfDay: number;
nonWorkingDays: Date[];
workingDays: String[];
};
proofs: {}[];
readOnly: boolean;
resourceManagementEnabled: boolean;
rows: SmartsheetRow[];
showParentRowsForFilters: boolean;
source: {
id: number;
type: string;
};
summary: {};
totalRowCount: number;
userPermissions: { summaryPermissions: string; };
userSettings: {
criticalPathEnabled: boolean;
displaySummaryTasks: boolean;
};
version: number;
workspace: {
id: number;
name: string;
};
}
export interface SmartsheetWorkspaceResponse {
sheets: SmartsheetItem[];
reports: SmartsheetItem[];
sights: SmartsheetItem[];
templates: SmartsheetItem[];
accessLevel: string;
id: number;
name: string;
permalink: string;
}
export interface SmartsheetSheetShare {
id: string;
type: string;
userId: number;
email: string;
name: string;
accessLevel: string;
scope: string;
createdAt?: Date;
modifiedAt?: Date;
}
export interface SmartsheetSheetShareResponse extends SmartsheetPaged {
data: SmartsheetSheetShare[];
}
export interface SmartsheetSheetShareCreatedResponse extends SmartsheetResponse {
result: SmartsheetSheetShare[];
}
export interface SmartsheetSheetShareUpdatedResponse extends SmartsheetResponse {
result: SmartsheetSheetShare;
}
export interface SmartsheetRowsResponse extends SmartsheetResponse {
result: SmartsheetRow[];
}
export interface SmartsheetRowsDeleteResponse extends SmartsheetResponse {
result: number[];
}
export interface SmartsheetColumns extends SmartsheetPaged {
data: SmartsheetColumn[];
}
export interface SmartsheetColumnsResult extends SmartsheetResponse {
result: SmartsheetColumn;
}
export interface SmartsheetAttachmentResult extends SmartsheetResponse {
result: SmartsheetAttachment;
version: number;
}
export interface SmartsheetAttachmentResponse extends SmartsheetPaged {
data: SmartsheetAttachment[];
}
export interface SmartsheetClient {
contacts: {
getContact: (getOptions: any, callback: any) => any;
listContacts: (getOptions: any, callback: any) => any;
};
events: {
getEvents: (getOptions: any, callback: any) => any;
};
favorites: {
listFavorites: (getOptions: any, callback: any) => any;
addItemsToFavorites: (postOptions: any, callback: any) => any;
addSheetToFavorites: (postOptions: any, callback: any) => any;
addFolderToFavorites: (postOptions: any, callback: any) => any;
addReportToFavorites: (postOptions: any, callback: any) => any;
addTemplateToFavorites: (postOptions: any, callback: any) => any;
addSightToFavorites: (postOptions: any, callback: any) => any;
addWorkspaceToFavorites: (postOptions: any, callback: any) => any;
addMultipleToFavorites: (postOptions: any, callback: any) => any;
removeSheetFromFavorites: (deleteOptions: any, callback: any) => any;
removeFolderFromFavorites: (deleteOptions: any, callback: any) => any;
removeReportFromFavorites: (deleteOptions: any, callback: any) => any;
removeTemplateFromFavorites: (deleteOptions: any, callback: any) => any;
removeSightFromFavorites: (deleteOptions: any, callback: any) => any;
removeWorkspaceFromFavorites: (deleteOptions: any, callback: any) => any;
removeSheetsFromFavorites: (deleteOptions: any, callback: any) => any;
removeFoldersFromFavorites: (deleteOptions: any, callback: any) => any;
removeReportsFromFavorites: (deleteOptions: any, callback: any) => any;
removeTemplatesFromFavorites: (deleteOptions: any, callback: any) => any;
removeSightsFromFavorites: (deleteOptions: any, callback: any) => any;
removeWorkspacesFromFavorites: (deleteOptions: any, callback: any) => any;
};
folders: {
getFolder: (getOptions?: any, callback?: (_: SmartsheetFolderResponse) => void) => Promise<SmartsheetFolderResponse>;
listChildFolders: (getOptions?: any, callback?: (_: SmartsheetFolderList) => void) => Promise<SmartsheetFolderList>;
createChildFolder: (postOptions?: any, callback?: (_: SmartsheetFolderCreated) => void) => Promise<SmartsheetFolderCreated>;
updateFolder: (putOptions: any, callback: any) => any;
deleteFolder: (deleteOptions: any, callback: any) => any;
moveFolder: (postOptions: any, callback: any) => any;
copyFolder: (postOptions: any, callback: any) => any;
};
groups: {
listGroups: (getOptions: any, callback: any) => any;
getGroup: (getOptions: any, callback: any) => any;
createGroup: (postOptions: any, callback: any) => any;
addGroupMembers: (postOptions: any, callback: any) => any;
updateGroup: (putOptions: any, callback: any) => any;
deleteGroup: (deleteOptions: any, callback: any) => any;
removeGroupMember: (deleteOptions: any, callback: any) => any;
};
home: {
listContents: (getOptions: any, callback: any) => any;
listFolders: (getOptions: any, callback: any) => any;
createFolder: (postOptions: any, callback: any) => any;
};
images: {
listImageUrls: (postOptions: any, callback: any) => any;
};
reports: any;
request: {
get: <T>(getOptions?: any, callback?: (_: T) => void) => Promise<T>;
post: <T>(postOptions?: any, callback?: (_: T) => void) => Promise<T>;
put: <T>(putOptions?: any, callback?: (_: T) => void) => Promise<T>;
postFile: <T>(postOptions?: any, callback?: (_: T) => void) => Promise<T>;
delete: <T>(deleteOptions?: any, callback?: (_: T) => void) => Promise<T>;
};
search: {
searchAll: (getOptions: any, callback: any) => any;
searchSheet: (getOptions: any, callback: any) => any;
};
server: {
getInfo: (getOptions: any, callback: any) => any;
};
sheets: {
getSheet: (getOptions?: any, callback?: (_: Smartsheet) => void) => Promise<Smartsheet>;
sendSheetViaEmail: (postOptions: any, callback: any) => any;
getPublishStatus: (getOptions: any, callback: any) => any;
setPublishStatus: (putOptions: any, callback: any) => any;
updateSheet: (putOptions: any, callback: any) => any;
deleteSheet: (deleteOptions: any, callback?: (_: SmartsheetResponse) => void) => Promise<SmartsheetResponse>;
moveSheet: (postOptions: any, callback: any) => any;
sortRowsInSheet: (postOptions: any, callback: any) => any;
createSheetFromExisting: (postOptions?: any, callback?: (_: SmartsheetCreated) => void) => Promise<SmartsheetCreated>;
share: (postOptions?: any, callback?: (_: SmartsheetSheetShareCreatedResponse) => void) => Promise<SmartsheetSheetShareCreatedResponse>;
updateShare: (putOptions?: any, callback?: (_: SmartsheetSheetShareUpdatedResponse) => void) => Promise<SmartsheetSheetShareUpdatedResponse>;
deleteShare: (deleteOptions?: any, callback?: (_: SmartsheetResponse) => void) => Promise<SmartsheetResponse>;
listShares: (getOptions?: any, callback?: (_: SmartsheetSheetShareResponse) => void) => Promise<SmartsheetSheetShareResponse>;
updateRow: (postOptions?: any, callback?: (_: SmartsheetRowsResponse) => void) => Promise<SmartsheetRowsResponse>;
getColumns: (getOptions?: any, callback?: (_: SmartsheetColumns) => void) => Promise<SmartsheetColumns>;
updateColumn: (postOptions?: any, callback?: (_: SmartsheetColumnsResult) => void) => Promise<SmartsheetColumnsResult>;
addFileAttachment: (postOptions?: any, callback?: (_: SmartsheetAttachmentResult) => void) => Promise<SmartsheetAttachmentResult>;
addRowFileAttachment: (postOptions?: any, callback?: (_: SmartsheetAttachmentResult) => void) => Promise<SmartsheetAttachmentResult>;
deleteAttachment: (deleteOptions?: any, callback?: (_: SmartsheetResponse) => void) => Promise<SmartsheetResponse>;
getRowAttachments: (getOptions?: any, callback?: (_: SmartsheetAttachmentResponse) => void) => Promise<SmartsheetAttachmentResponse>;
getAttachment: (getOptions?: any, callback?: (_: SmartsheetAttachment) => void) => Promise<SmartsheetAttachment>;
};
sights: {
listSights: (getOptions: any, callback: any) => any;
getSight: (getOptions: any, callback: any) => any;
deleteSight: (deleteOptions: any, callback: any) => any;
updateSight: (putOptions: any, callback: any) => any;
copySight: (postOptions: any, callback: any) => any;
moveSight: (postOptions: any, callback: any) => any;
getSightPublishStatus: (getOptions: any, callback: any) => any;
setSightPublishStatus: (putOptions: any, callback: any) => any;
};
templates: {
listUserCreatedTemplates: (getOptions: any, callback: any) => any;
listPublicTemplates: (getOptions: any, callback: any) => any;
};
tokens: {
getAccessToken: (postOptions?: any, callback?: (_: SmartsheetToken) => void) => Promise<SmartsheetToken>;
refreshAccessToken: (postOptions?: any, callback?: (_: SmartsheetToken) => void) => Promise<SmartsheetToken>;
revokeAccessToken: (deleteOptions: any, callback: any) => any;
};
users: {
getUser: (getOptions: any, callback: any) => any;
listAllUsers: (getOptions: any, callback: any) => any;
getCurrentUser: (getOptions?: any, callback?: (_: CurrentUser) => void) => Promise<CurrentUser>;
addUser: (postOptions: any, callback: any) => any;
addUserAndSendEmail: (postOptions: any, callback: any) => any;
updateUser: (putOptions: any, callback: any) => any;
removeUser: (deleteOptions: any, callback: any) => any;
addProfileImage: (postOptions: any, callback: any) => any;
};
webhooks: {
createWebhook: (postOptions?: any, callback?: (_: SmartsheetWebookCreated) => void) => Promise<SmartsheetWebookCreated>;
getWebhook: (getOptions: any, callback: any) => any;
listWebhooks: (getOptions?: any, callback?: (_: SmartsheetWebhooks) => void) => Promise<SmartsheetWebhooks>;
deleteWebhook: (deleteOptions?: any, callback?: (_: SmartsheetResponse) => void) => Promise<SmartsheetResponse>;
updateWebhook: (putOptions?: any, callback?: (_: SmartsheetWebookCreated) => void) => Promise<SmartsheetWebookCreated>;
resetSharedSecret: (postOptions: any, callback: any) => any;
};
workspaces: {
listWorkspaces: (getOptions: any, callback: any) => any;
getWorkspace: (getOptions?: any, callback?: (_: SmartsheetWorkspaceResponse) => void) => Promise<SmartsheetWorkspaceResponse>;
listWorkspaceFolders: (getOptions?: any, callback?: (_: SmartsheetFolderList) => void) => Promise<SmartsheetFolderList>;
createWorkspace: (postOptions: any, callback: any) => any;
createFolder: (postOptions?: any, callback?: (_: SmartsheetFolderCreated) => void) => Promise<SmartsheetFolderCreated>;
deleteWorkspace: (deleteOptions: any, callback: any) => any;
updateWorkspace: (putOptions: any, callback: any) => any;
copyWorkspace: (postOptions: any, callback: any) => any;
};
}
export function createClient(clientOptions: SmartsheetClientOptions): SmartsheetClient;
export namespace smartSheetURIs {
const defaultBaseURI: string;
const govBaseURI: string;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment