import { CustomData, ListArgs, Json } from "./openchannel"; export interface App { appId: string; status: { value: string; lastUpdated: number; modifiedBy: string; reason: string; }; customData: CustomData; } export interface CreateAppOptions { developerId: string; name: string; type?: string; model?: Array; customData?: CustomData; restrict?: Restrictions; allow?: Restrictions; access?: string[]; } export interface UpdateAppOptions { appId: string; version: string; developerId: string; name?: string; type?: string; model?: Array; customData?: CustomData; restrict?: Restrictions; allow?: Restrictions; access?: string[]; approvalRequired?: boolean; } export interface UpdateAppFieldsOptions { appId: string; version: string; developerId: string; approvalRequired?: boolean; } export interface DeleteAppVersionOptions { appId: string; version: number; developerId: string; } export interface DeleteAppOptions { appId: string; developerId: string; } export interface PublishAppVersionOptions { appId: string; version: number; developerId: string; autoApprove?: boolean; } export interface ListAppsOptions extends ListArgs { userId?: string; isOwner?: boolean; } export interface ListAppVersionsOptions extends ListArgs { developerId?: string; } export interface GetAppOptions { appId: string; userId?: string; trackViews?: boolean; } export interface GetAppVersionOptions { appId: string; version: number; developerId?: string; } export interface SearchAppsOptions extends ListArgs { text: string; fields: Array; userId?: number; isOwner?: boolean; } export interface GetAppBySafeNameOptions { safeName: string; userId?: string; trackViews?: boolean; } export interface ChangeLiveVersionOptions { appId: string; developerId: string; version: number; } export interface ChangeAppStatusOptions { appId: string; version: number; status: UpdateStatusValue; developerId?: string; modifiedBy?: UpdateStatusModifiedBy; reason?: string; } export interface AppFieldUpdate { field: string; value: any; } export interface AppVersion { appId: number; name: string; type?: string; safeName: string[]; status: Status; parent?: Parent; developerId: string; groupId?: string; model: Array; lastUpdated: number; attributes?: JSON; rating: number; reviewCount: number; created: number; customData: CustomData; allow?: Restrictions; restrict?: Restrictions; version: number; isLive?: boolean; isLatestVersion?: boolean; } export interface Parent { status: Status; } export interface Status { value: StatusValue; reason?: string; lastUpdated: number; modifiedBy: StatusModifiedBy; } export enum StatusValue { PENDING = "pending", INREVIEW = "inReview", INDEVELOPMENT = "inDevelopment", APPROVED = "approved", SUSPENDED = "suspended", REJECTED = "rejected" } export enum UpdateStatusValue { INREVIEW = "inReview", APPROVED = "approved", SUSPENDED = "suspended", REJECTED = "rejected" } export enum StatusModifiedBy { ADMINISTRATOR = "administrator", DEVELOPER = "developer", SYSTEM = "system" } export enum UpdateStatusModifiedBy { ADMINISTRATOR = "administrator", DEVELOPER = "developer" } export interface Restrictions { own?: Json; view?: Json; } export interface Model { modelId: string; type: ModelTypes; subtype: ModelSubTypes; price: number; license: ModelLicenses; customData?: CustomData; trial: number; currency: ISO4217CurrencyCode; commission: number; feePayer: ModelFeePayer; billingPeriod: ModelBillingPeriod; billingPeriodUnit: number; } export enum ModelTypes { FREE = "free", SINGLE = "single", RECURRING = "recurring" } export enum ModelSubTypes { USAGE = "usage", SEAT = "seat" } export enum ModelLicenses { SINGLE = "single", GROUP = "group" } export enum ModelFeePayer { DEVELOPER = "developer", MARKETPLACE = "marketplace" } export enum ModelBillingPeriod { DAILY = "daily", WEEKLY = "weekly", MONTHLY = "monthly", ANNUALLY = "annually" } export enum ISO4217CurrencyCode { AED = "AED", AFN = "AFN", ALL = "ALL", AMD = "AMD", ANG = "ANG", AOA = "AOA", ARS = "ARS", AUD = "AUD", AWG = "AWG", AZN = "AZN", BAM = "BAM", BBD = "BBD", BDT = "BDT", BGN = "BGN", BHD = "BHD", BIF = "BIF", BMD = "BMD", BND = "BND", BOB = "BOB", BOV = "BOV", BRL = "BRL", BSD = "BSD", BTN = "BTN", BWP = "BWP", BYN = "BYN", BZD = "BZD", CAD = "CAD", CDF = "CDF", CHE = "CHE", CHF = "CHF", CHW = "CHW", CLF = "CLF", CLP = "CLP", CNY = "CNY", COP = "COP", COU = "COU", CRC = "CRC", CUC = "CUC", CUP = "CUP", CVE = "CVE", CZK = "CZK", DJF = "DJF", DKK = "DKK", DOP = "DOP", DZD = "DZD", EGP = "EGP", ERN = "ERN", ETB = "ETB", EUR = "EUR", FJD = "FJD", FKP = "FKP", GBP = "GBP", GEL = "GEL", GHS = "GHS", GIP = "GIP", GMD = "GMD", GNF = "GNF", GTQ = "GTQ", GYD = "GYD", HKD = "HKD", HNL = "HNL", HRK = "HRK", HTG = "HTG", HUF = "HUF", IDR = "IDR", ILS = "ILS", INR = "INR", IQD = "IQD", IRR = "IRR", ISK = "ISK", JMD = "JMD", JOD = "JOD", JPY = "JPY", KES = "KES", KGS = "KGS", KHR = "KHR", KMF = "KMF", KPW = "KPW", KRW = "KRW", KWD = "KWD", KYD = "KYD", KZT = "KZT", LAK = "LAK", LBP = "LBP", LKR = "LKR", LRD = "LRD", LSL = "LSL", LYD = "LYD", MAD = "MAD", MDL = "MDL", MGA = "MGA", MKD = "MKD", MMK = "MMK", MNT = "MNT", MOP = "MOP", MRU = "MRU", MUR = "MUR", MVR = "MVR", MWK = "MWK", MXN = "MXN", MXV = "MXV", MYR = "MYR", MZN = "MZN", NAD = "NAD", NGN = "NGN", NIO = "NIO", NOK = "NOK", NPR = "NPR", NZD = "NZD", OMR = "OMR", PAB = "PAB", PEN = "PEN", PGK = "PGK", PHP = "PHP", PKR = "PKR", PLN = "PLN", PYG = "PYG", QAR = "QAR", RON = "RON", RSD = "RSD", RUB = "RUB", RWF = "RWF", SAR = "SAR", SBD = "SBD", SCR = "SCR", SDG = "SDG", SEK = "SEK", SGD = "SGD", SHP = "SHP", SLL = "SLL", SOS = "SOS", SRD = "SRD", SSP = "SSP", STN = "STN", SVC = "SVC", SYP = "SYP", SZL = "SZL", THB = "THB", TJS = "TJS", TMT = "TMT", TND = "TND", TOP = "TOP", TRY = "TRY", TTD = "TTD", TWD = "TWD", TZS = "TZS", UAH = "UAH", UGX = "UGX", USD = "USD", USN = "USN", UYI = "UYI", UYU = "UYU", UYW = "UYW", UZS = "UZS", VES = "VES", VND = "VND", VUV = "VUV", WST = "WST", XAF = "XAF", XAG = "XAG", XAU = "XAU", XBA = "XBA", XBB = "XBB", XBC = "XBC", XBD = "XBD", XCD = "XCD", XDR = "XDR", XOF = "XOF", XPD = "XPD", XPF = "XPF", XPT = "XPT", XSU = "XSU", XTS = "XTS", XUA = "XUA", XXX = "XXX", YER = "YER", ZAR = "ZAR", ZMW = "ZMW", ZWL = "ZWL" }