skysync-cli
Version:
SkySync Command Line Interface
139 lines (138 loc) • 3.68 kB
TypeScript
import { IEntityIdentifier, IAuditedEntity, Link, ILinks, IHaveLinks } from './base';
export interface ConnectionFeatures {
[name: string]: any;
}
export interface StoragePlatformLinks extends ILinks {
icon?: Link;
connect?: Link;
}
export interface PromptAttributeOption {
caption?: string;
}
export interface PromptAttributeOptionList {
[key: string]: PromptAttributeOption;
}
export interface PromptAttribute {
type?: string;
id?: string;
caption?: string;
hint?: string;
required?: boolean;
value?: any;
help_text?: string;
more_info?: string;
show_default?: boolean;
options?: PromptAttributeOptionList;
}
export interface PromptAttributes {
[name: string]: PromptAttribute;
}
export interface StoragePlatformPromptDimensions {
width?: number;
height?: number;
}
export interface ConnectionAuthorizePrompt {
method: 'oauth2' | 'oauth' | 'prompt';
target: string;
prompt?: StoragePlatformPromptDimensions;
attributes?: PromptAttributes;
}
export interface IHaveConnectorFeatures extends IEntityIdentifier<string> {
name?: string;
features?: ConnectionFeatures;
path?: {
validation?: any;
};
disabled?: boolean;
}
export interface StoragePlatform extends IHaveConnectorFeatures, IHaveLinks<StoragePlatformLinks> {
group?: string;
authorize?: {
prompt?: StoragePlatformPromptDimensions;
methods?: string[];
};
default?: boolean;
}
export interface PlatformItemHierarchyLinks extends ILinks {
items?: Link;
}
export interface ConnectionLinks extends PlatformItemHierarchyLinks {
edit?: Link;
}
export interface Connection extends IHaveConnectorFeatures, IHaveLinks<ConnectionLinks>, IAuditedEntity {
platform?: StoragePlatform;
account?: Account;
pool?: ConnectionPool;
auth?: any;
}
export interface SecurityIdentifier extends IEntityIdentifier<string> {
external_id?: string;
admin?: boolean;
built_in?: boolean;
disabled?: boolean;
readonly?: boolean;
}
export interface Group extends SecurityIdentifier {
name?: string;
caption?: string;
}
export interface Account extends SecurityIdentifier {
email?: string;
username?: string;
given_name?: string;
surname?: string;
name?: string;
}
export interface ConnectionPool extends IEntityIdentifier<string> {
name?: string;
}
export interface PlatformItemType {
type?: string;
id?: string;
name?: string;
caption?: string;
}
export interface PlatformItem extends IHaveLinks<PlatformItemHierarchyLinks> {
id?: string;
name?: string;
caption?: string;
parent?: PlatformItem;
type?: string;
item_type: PlatformItemType;
bytes?: number;
etag?: string;
mime_type?: string;
version?: string;
hash?: string;
is_hidden?: boolean;
is_system?: boolean;
is_shared?: boolean;
size_estimate?: {
count?: number;
bytes?: number;
};
owner?: Account;
content_created_on?: number;
created_on?: number;
created_by?: Account;
content_modified_on?: number;
modified_on?: number;
modified_by?: Account;
content_accessed_on?: number;
accessed_on?: number;
accessed_by?: Account;
checkout_on?: number;
checkout_by?: Account;
[name: string]: any;
}
export interface ItemStats {
item_stats: {
items: {
count: number;
bytes: number;
};
containers: {
count: number;
};
};
}