@btonasse/suitescript-types
Version:
Typings for SuiteScript 2.1
1,452 lines (1,296 loc) • 55.9 kB
TypeScript
interface RunMethodType {
(): ResultSet;
promise(): Promise<ResultSet>;
}
interface RunPagedMethodType {
(options: { pageSize: number }): PagedData;
promise(options: { pageSize: number }): Promise<PagedData>;
}
interface AutoJoinOptions {
/**
* The relationship field that will be used to determine the query type of the
* newly joined component and also the columns on which the query types will be joined
* together. For example "salesrep".
*/
fieldId: string;
}
interface JoinOptions {
/**
* The column type (field type) that joins the parent component to the new component.
* This value determines the columns on which the components are joined and the type of the newly joined component. For example "salesrep".
*/
fieldId: string;
}
interface JoinToOptions {
/**
* The name of the relationship field on which join with other query type is performed For example "entity".
*/
fieldId: string;
/** The target of the join. It is the specialized query type with which is this component joined. */
target: string;
}
interface JoinFromOptions {
/** The name of the relationship field on which join with other query type is performed For example "salesrep". */
fieldId: string;
/** The query type on which is relationship field used to create the join with this component. */
source: string;
}
interface CreateConditionOptions {
/** Field (column) id. Required if options.operator and options.values are used. */
fieldId?: string;
/** Use the Operator enum. */
operator: Operator;
/**
* Array of values to use for the condition.
* Required if options.fieldId and options.operator are used, and options.operator does not have a value of query.Operator.EMPTY or query.Operator.EMPTY_NOT.
*/
values:
| string
| boolean
| string[]
| readonly string[]
| boolean[]
| readonly boolean[] // You wouldn't have multiple boolean values in an array, obviously. But you might specify it like: [true].
| number[]
| readonly number[]
| Date[]
| readonly Date[]
| RelativeDate[]
| readonly RelativeDate[]
| Period[]
| readonly Period[];
/**
* If you use the options.formula parameter, use this parameter to explicitly define the formula’s return type. This value sets the Condition.type property.
* Use the appropriate query.ReturnType enum value to pass in your argument. This enum holds all the supported values for this parameter.
* Required if options.fieldId is not used.
*/
formula?: string;
/** Required if options.formula is used. */
type?: string;
/** Aggregate function. Use the Aggregate enum. */
aggregate?: string;
}
interface CreateConditionWithFormulaOptions {
/** Formula */
formula: string;
/** Explicitly define value type in case it is not determined correctly from the formula. Use the ReturnType enum. */
type?: string;
/** Aggregate function. Use the Aggregate enum. */
aggregate?: string;
}
interface ColumnContextOptions {
/** The name of the field context. */
name: string | FieldContext;
/** The additional parameters to use with the specified field context. */
params?: {
/** The internal ID of the currency to convert to. */
currencyId?: number;
/** The date to use for the actual exchange rate between the base currency and the currency to convert to. */
date?: RelativeDate | Date;
};
}
interface CreateColumnOptions {
/**
* Field (column) id
*/
fieldId: string;
/**
* Aggregate function. Use the Aggregate enum.
*/
aggregate?: Aggregate;
/**
* Indicates that we want the results grouped by this column; used together with aggregate function defined
* on other columns.
*/
groupBy?: boolean;
/**
* An alias for this column. An alias is an alternate name for a column, and the alias is used in mapped results.
* In general, the alias is an optional property.
*
* To use mapped results, you must specify an alias in the following situations:
* 1. You must specify an alias for a column when the column uses a formula.
* 2. You must specify an alias when two columns in a joined query use the same field ID.
*/
alias?: string;
/** The field context for values in the query result column. This value sets the Column.context property. */
context?: string | FieldContext | ColumnContextOptions;
}
interface CreateColumnWithFormulaOptions {
/**
* Formula
*/
formula: string;
/**
* Explicitly define value type in case it is not determined correctly from the formula. Use the ReturnType enum.
*/
type?: ReturnType;
/**
* Aggregate function. Use the Aggregate enum.
*/
aggregate?: Aggregate;
/**
* Indicates that we want the results grouped by this column; used together with aggregate function defined
* on other columns.
*/
groupBy?: boolean;
/**
* An alias for this column. An alias is an alternate name for a column, and the alias is used in mapped results.
* In general, the alias is an optional property.
*
* To use mapped results, you must specify an alias in the following situations:
* 1. You must specify an alias for a column when the column uses a formula.
* 2. You must specify an alias when two columns in a joined query use the same field ID.
*/
alias?: string;
/** The field context for values in the query result column. This value sets the Column.context property. */
context?: string | FieldContext | ColumnContextOptions;
}
interface CreateSortOptions {
/**
* The Column by which we want to sort.
*/
column: Column;
/**
* The sort direction. True by default.
*/
ascending?: boolean;
/**
* Where to put results with null value. Defaults to value of ascending flag
*/
nullsLast?: boolean;
caseSensitive?: boolean;
locale?: SortLocale;
}
interface CreateQueryOptions {
/** The query type. Use the Type enum. */
type: string;
columns?: Column[] | readonly Column[];
condition?: Condition;
sort?: Sort[] | readonly Sort[];
}
interface LoadQueryOptions {
/** Id of query to be loaded. */
id: string;
}
interface DeleteQueryOptions {
/** The id of query to be deleted. */
id: number;
}
export interface RunSuiteQLOptions {
/**
* String representation of SuiteQL query
*/
query: string;
params?: Array<string | number | boolean> | ReadonlyArray<string | number | boolean>;
customScriptId?: string;
}
export interface RunSuiteQLPagedOptions extends RunSuiteQLOptions {
pageSize?: number;
}
interface SuiteQL {
readonly columns: Column[];
readonly params: (string | number | boolean)[];
readonly query: string;
readonly type: string;
run(): ResultSet;
runPaged(options: { pageSize: number }): PagedData;
}
export interface Query {
/**
* Query type. Returns the query type given upon the creation of the query object.
*/
readonly type: string;
/**
* Query condition.
* @throws {SuiteScriptError} WRONG_PARAMETER_TYPE when setting value of different type than Query.Condition
*/
condition: Condition;
/**
* Columns to be returned from the query.
* @throws {SuiteScriptError} WRONG_PARAMETER_TYPE when setting value of different type than Query.Column array
*/
columns: Column[];
/**
* Specifies how the results will be sorted.
* @throws {SuiteScriptError} WRONG_PARAMETER_TYPE when setting value of different type than Query.Sort array
*/
sort: Sort[];
/**
* Children of the root component of the query. It is an object with key/value pairs where key is the name of the
* child component and value is the corresponding Component object.
* This is a shortcut for the Query.root.child expression.
* @throws {SuiteScriptError} READ_ONLY when setting the property is attempted
*/
readonly child: object;
/**
* Id of this query, null if query is not saved
* @throws {SuiteScriptError} READ_ONLY when setting the property is attempted
*/
readonly id: number;
/**
* Name of this query, null if query is not saved
* @throws {SuiteScriptError} READ_ONLY when setting the property is attempted
*/
readonly name: string;
/**
* Access the root component of the query. It is the component that corresponds to the query type given upon the
* creation of the whole Query object.
* @throws {SuiteScriptError} READ_ONLY when setting the property is attempted
*/
readonly root: Component;
/**
* Execute the query and return results.
* @governance 10 points
*/
readonly run: RunMethodType;
/**
* Execute the query and return paged results.
* @governance 10 points
*/
readonly runPaged: RunPagedMethodType;
/**
* join the root component of the Query with another query type. This is a shortcut for Query.root.autoJoin.
* @see Component.autoJoin
*/
autoJoin(options: AutoJoinOptions): Component;
/**
* join the root component of the Query with another query type. This is a shortcut for Query.root.autoJoin.
* @see Component.join
*/
join(options: JoinOptions): Component;
/**
* join the root component of the Query with another (target) query type. This is a shortcut for Query.root.joinTo.
* @see Component.joinTo
*/
joinTo(options: JoinToOptions): Component;
/**
* join the root component of the Query with another (source) query type. This is a shortcut
* for Query.root.joinFrom.
* @see Component.joinFrom
*/
joinFrom(options: JoinFromOptions): Component;
/**
* Create a Condition object based on the root component of the Query. This is a shortcut
* for Query.root.createCondition.
* @see Component.createCondition
*/
createCondition(options: CreateConditionOptions | CreateConditionWithFormulaOptions): Condition;
/**
* Create a Column object based on the root component of the Query. This is a shortcut for Query.root.createColumn.
* @see Component.createColumn
*/
createColumn(options: CreateColumnOptions | CreateColumnWithFormulaOptions): Column;
/**
* Create a Sort object based on the root component of the Query. This is a shortcut for Query.root.createSort.
* @see Component.createSort
*/
createSort(options: CreateSortOptions): Sort;
/**
* Create a new Condition object that corresponds to a logical conjunction (AND) of the Condition objects given to
* the method as arguments. The arguments must be one or more Condition objects.
*/
and(...conditions: Condition[]): Condition;
/**
* Create a new Condition object that corresponds to a logical disjunction (OR) of the Condition objects given to
* the method as arguments. The arguments must be one or more Condition objects.
*/
or(...conditions: Condition[]): Condition;
/**
* Create a new Condition object that corresponds to a logical negation (NOT) of the Condition object given
* to the method as argument.
*/
not(condition: Condition): Condition;
toSuiteQL(): SuiteQL;
/**
* Returns the object type name.
*/
toString(): string;
/**
* JSON.stringify() implementation.
*/
toJSON(): object;
}
/**
* One component of the query definition. The Query object always contains at least one Component object called
* the root component. Queries with multi-level joins contain multiple Component objects linked together into
* a parent/child hierarchy.
*/
export interface Component {
/**
* Query type. Returns the query type of this component.
* @throws {SuiteScriptError} READ_ONLY when setting the property is attempted
*/
readonly type: string;
/**
* Inverse target. Returns the source query type from which is this component joined.
* @throws {SuiteScriptError} READ_ONLY when setting the property is attempted
*/
readonly source: string;
/**
* Polymorphic target. Returns the target target of this component.
* @throws {SuiteScriptError} READ_ONLY when setting the property is attempted
*/
readonly target: string;
/**
* Returns the Component that corresponds to the ancestor of this component in the query object model.
* @throws {SuiteScriptError} READ_ONLY when setting the property is attempted
*/
readonly parent: string;
/**
* Children of this component. It is an object with key/value pairs where key is the name of the child component
* and value is the corresponding Component object.
* @throws {SuiteScriptError} READ_ONLY when setting the property is attempted
*/
readonly child: object;
/**
* join this component with another query type. A new component corresponding to the given relationship is created
* and joined with this one.
* @throws {SuiteScriptError} MISSING_REQD_ARGUMENT if fieldId is undefined
* @throws {SuiteScriptError} RELATIONSHIP_ALREADY_USED if relationship is already used
*/
autoJoin(options: AutoJoinOptions): Component;
/**
* join this component with another query type. A new component corresponding to the given relationship is created
* and joined with this one.
* @throws {SuiteScriptError} MISSING_REQD_ARGUMENT if name is undefined
* @throws {SuiteScriptError} RELATIONSHIP_ALREADY_USED if relationship is already used
*/
join(options: JoinOptions): Component;
/**
* join this component with another query type. A new component corresponding to the given relationship is created
* and joined with this one.
* @throws {SuiteScriptError} MISSING_REQD_ARGUMENT if relationship is undefined
* @throws {SuiteScriptError} RELATIONSHIP_ALREADY_USED if relationship is already used
*/
joinTo(options: JoinToOptions): Component;
/**
* join this component with another query type. A new component corresponding to the given relationship is created
* and joined with this one.
* @throws {SuiteScriptError} MISSING_REQD_ARGUMENT if relationship is undefined
* @throws {SuiteScriptError} RELATIONSHIP_ALREADY_USED if relationship is already used
*/
joinFrom(options: JoinFromOptions): Component;
/**
* Create a Condition object based on this query component. Use either fieldId + operator + values or
* formula + (optional) type.
* @throws {SuiteScriptError} MISSING_REQD_ARGUMENT if options are undefined
* @throws {SuiteScriptError} WRONG_PARAMETER_TYPE if options isn't object
* @throws {SuiteScriptError} OPERATOR_ARITY_MISMATCH if requested operator cannot work with specified number of
* arguments
* @throws {SuiteScriptError} INVALID_SEARCH_OPERATOR if wrong query operator is used
*/
createCondition(options: CreateConditionOptions | CreateConditionWithFormulaOptions): Condition;
/**
* Create a Column object based on this query component. Use either name or formula + (optional) type.
* @throws {SuiteScriptError} MISSING_REQD_ARGUMENT if options are undefined
* @throws {SuiteScriptError} WRONG_PARAMETER_TYPE if options isn't object
* @throws {SuiteScriptError} MUTUALLY_EXCLUSIVE_ARGUMENTS when two mutually arguments are defined
* @throws {SuiteScriptError} NEITHER_ARGUMENT_DEFINED when neither of two mandatory arguments is defined
*/
createColumn(options: CreateColumnOptions | CreateColumnWithFormulaOptions): Column;
/**
* Create a Sort object based on this query component.
*/
createSort(options: CreateSortOptions): Sort;
}
/**
* Specifies a return column.
*/
export interface Column {
/**
* Id of column field.
* @throws {SuiteScriptError} READ_ONLY when setting the property is attempted
*/
readonly prototype?: string;
/**
* Query component. Returns the Component to which this column belongs.
* @throws {SuiteScriptError} READ_ONLY when setting the property is attempted
*/
readonly component?: Component;
/** Holds the name of the query result column. */
readonly fieldId: string;
/**
* Formula.
* @throws {SuiteScriptError} READ_ONLY when setting the property is attempted
*/
readonly formula?: string;
/**
* Desired value type of the formula (if it was explicitly stated upon Column creation).
* @throws {SuiteScriptError} READ_ONLY when setting the property is attempted
*/
readonly type?: string;
/**
* Aggregate function (value from Aggregate enum).
* @throws {SuiteScriptError} READ_ONLY when setting the property is attempted
*/
readonly aggregate?: string;
/**
* The group-by flag.
* @throws {SuiteScriptError} READ_ONLY when setting the property is attempted
*/
readonly groupBy?: boolean;
readonly label?: string;
readonly alias?: string;
/** The field context for values in the query result column. */
readonly context?: ColumnContextOptions;
}
/**
* Specifies sorting by the values of a given column and the sort direction.
*/
export interface Sort {
/**
* The query column by which we want to sort.
* @throws {SuiteScriptError} READ_ONLY when setting the property is attempted
*/
readonly column: Column;
/**
* Flag indicating if sort is ascending
* @throws {SuiteScriptError} WRONG_PARAMETER_TYPE when setting wrong sort order is attempted
*/
ascending: boolean;
/**
* Sort case sensitivity.
* @throws {SuiteScriptError} WRONG_PARAMETER_TYPE when setting non-boolean parameter
*/
caseSensitive: boolean;
/**
* Flag indicating where results with null value should be sorted
* @throws {SuiteScriptError} WRONG_PARAMETER_TYPE when setting non-boolean parameter
*/
nullsLast: boolean;
/**
* Sort locale
* @throws {SuiteScriptError} WRONG_PARAMETER_TYPE when setting non-boolean parameter
*/
locale: string;
}
/**
* Specifies the condition used to filter the results. It can consist of other Condition objects.
*/
export interface Condition {
/**
* This is only applicable to "non-leaf" conditions that were created by AND-ing, OR-ing or NOT-ing other
* Condition objects. In such case this property holds the child Component objects that are arguments of the
* logical operation.
* @throws {SuiteScriptError} READ_ONLY when setting the property is attempted
*/
readonly children: Condition[];
/**
* Field id. This is only applicable to "leaf" conditions (equivalent to the former Filter).
* @throws {SuiteScriptError} READ_ONLY when setting the property is attempted
*/
readonly fieldId: string;
/**
* Operator. This is only applicable to "leaf" conditions (equivalent to the former Filter).
* @throws {SuiteScriptError} READ_ONLY when setting the property is attempted
*/
readonly operator: Operator;
/**
* Values. This is only applicable to "leaf" conditions (equivalent to the former Filter).
* @throws {SuiteScriptError} READ_ONLY when setting the property is attempted
*/
readonly values: string[];
/**
* Formula. This is only applicable to "leaf" conditions (equivalent to the former Filter).
* @throws {SuiteScriptError} READ_ONLY when setting the property is attempted
*/
readonly formula: string;
/**
* Return type of the formula, if explicitly specified. This is only applicable to "leaf" conditions
* (equivalent to the former Filter). (values from the ReturnType enum)
* @throws {SuiteScriptError} READ_ONLY when setting the property is attempted
*/
readonly type: string;
/**
* Aggregate function. This is only applicable to "leaf" conditions (equivalent to the former Filter).
* (values from the Aggregate enum)
* @throws {SuiteScriptError} READ_ONLY when setting the property is attempted
*/
readonly aggregate: string;
/**
* Query component to which this condition belongs. This is only applicable to "leaf" conditions (equivalent to the
* former Filter).
* @throws {SuiteScriptError} READ_ONLY when setting the property is attempted
*/
readonly component: Component;
}
export type QueryResultValue = string | boolean | number | bigint | null;
export type QueryResultMap = { [fieldId: string]: QueryResultValue };
/**
* Set of results returned by the query.
*/
export interface ResultSet {
/**
* The actual query results.
* @throws {SuiteScriptError} READ_ONLY when setting the property is attempted
*/
readonly results: Result[];
/**
* The types of the return values. Array of values from the ReturnType enum. Number and order of values in the array
* exactly matches the ResultSet.columns property.
* @throws {SuiteScriptError} READ_ONLY when setting the property is attempted
*/
readonly types: string[];
/**
* The return columns.
* @throws {SuiteScriptError} READ_ONLY when setting the property is attempted
*/
readonly columns: Column[];
/**
* Standard object for iterating through results.
* @governance 10 points for each page returned
*/
iterator(): Iterator;
/**
* Returns the query result set as an array of mapped results.
* A mapped result is a JavaScript object with key-value pairs.
* In this object, the key is either the field ID or the alias that was used for the corresponding query.Column object.
*/
asMappedResults(): Array<QueryResultMap>;
asMappedResults<QueryResultMap>(): Array<QueryResultMap>;
}
/** Corresponds to a single row of the ResultSet. */
export interface Result {
/**
* The result values. Value types correspond to the ResultSet.types property. Number and order of values in
* the array exactly matches the ResultSet.types, ResultSet.columns or Result.columns property.
* @throws {SuiteScriptError} READ_ONLY when setting the property is attempted
*/
readonly values: Array<QueryResultValue>;
/**
* The return columns. This is equivalent to ResultSet.columns.
* @throws {SuiteScriptError} READ_ONLY when setting the property is attempted
*/
// readonly columns: Column[]; // As of 2019.2, this is not in the Help documentation.
/**
* Returns the query result as a mapped result.
* A mapped result is a JavaScript object with key-value pairs.
* In this object, the key is either the field ID or the alias that was used for the corresponding query.Column object.
*/
asMap(): QueryResultMap;
asMap<QueryResultMap>(): QueryResultMap;
}
/**
* One page of the paged query results.
* @since 2018.1
*/
export interface Page {
/**
* References the query results contained in this page.
*/
readonly data: ResultSet;
/**
* Indicates whether this page is the first of the paged query results.
*/
readonly isFirst: boolean;
/**
* Indicates whether this page is the last of the paged query results.
*/
readonly isLast: boolean;
/**
* References the set of paged query results that this page is from.
*/
readonly pagedData: PagedData;
/**
* The range of query results for this page.
*/
readonly pageRange: PageRange;
}
/**
* Encapsulates a set of paged query results. This object also contains information about the set of paged results
* it encapsulates.
*/
export interface PagedData {
/**
* Describes the total number of paged query results.
*/
readonly count: number;
/**
* Holds an array of page ranges for the set of paged query results.
*/
readonly pageRanges: PageRange[];
/**
* Describes the number of query result rows per page.
*/
readonly pageSize: number;
/**
* Standard SuiteScript 2.0 object for iterating through results.
*/
iterator(): PageIterator;
fetch: FetchType;
}
interface FetchType {
(options: { index: number }): Page;
promise(options: { index: number }): Promise<Page>;
}
/**
* Encapsulates the range of query results for a page.
*/
export interface PageRange {
/**
* Describes the array index for this page range.
*/
readonly index: number;
/**
* Describes the number of query result rows in this page range.
*/
readonly size: number;
}
/** A period of time to use in query conditions. Use query.createPeriod(options) to create this object. */
interface Period {
/** The adjustment of the period. This property uses values from the query.PeriodAdjustment enum. */
readonly adjustment: string;
/** The code of the period. This property uses values from the query.PeriodCode enum. */
readonly code: string;
/**
* The type of the period. This property uses values from the query.PeriodType enum.
* If you create a period using query.createPeriod(options) and do not specify a value for the options.type
* parameter, the default value of this property is query.PeriodType.START.
*/
readonly type: string;
}
export interface Iterator {
each(f: (result: { value: Result }) => boolean): void;
}
export interface PageIterator {
each(f: (result: { value: Page }) => boolean): void;
}
/**
* Create a Query object with a single query component based on the given query type.
* @throws {SuiteScriptError} INVALID_RCRD_TYPE when query type is invalid
*/
export function create(options: CreateQueryOptions): Query;
/**
* Loads query by id
* @throws {SuiteScriptError} MISSING_REQD_ARGUMENT if options or id are undefined
* @throws {SuiteScriptError} WRONG_PARAMETER_TYPE if options isn't object or id isn't number
* @throws {SuiteScriptError} UNABLE_TO_LOAD_QUERY if query doesn't exist or no permissions to load it
*/
export const load: QueryLoadFunction;
interface QueryLoadFunction {
(options: LoadQueryOptions): Query;
promise: (options: LoadQueryOptions) => Promise<Query>;
}
interface deleteQuery {
(options: DeleteQueryOptions): Query;
promise: (options: DeleteQueryOptions) => Promise<Query>;
}
/**
* Deletes query by id
* @throws {SuiteScriptError} MISSING_REQD_ARGUMENT if options or id are undefined
* @throws {SuiteScriptError} WRONG_PARAMETER_TYPE if options isn't object or id isn't number
* @throws {SuiteScriptError} UNABLE_TO_DELETE_QUERY if query doesn't exist or no permissions to delete it
*/
export { deleteQuery as delete };
interface RunSuiteQL {
(options: RunSuiteQLOptions): ResultSet;
promise: (options: RunSuiteQLOptions) => Promise<ResultSet>;
}
/**
* Runs an arbitrary SuiteQL query.
* SuiteQL is a query language based on the SQL-92 revision of the SQL database query language.
* It provides advanced query capabilities you can use to access your NetSuite records and data.
* @governance 10 units
* @throws {SuiteScriptError} MISSING_REQD_ARGUMENT if options or query are undefined
* @throws {SuiteScriptError} WRONG_PARAMETER_TYPE if options isn't object or id isn't number
* @throws {SuiteScriptError} UNABLE_TO_DELETE_QUERY if query doesn't exist or no permissions to delete it
*/
export const runSuiteQL: RunSuiteQL;
interface RunSuiteQLPaged {
(options: RunSuiteQLPagedOptions): PagedData;
promise: (options: RunSuiteQLPagedOptions) => Promise<PagedData>;
}
/**
* Execute the suiteQL query and return paged results.
* @governance 10 units
* @throws {SuiteScriptError} MISSING_REQD_ARGUMENT if options or query are undefined
* @throws {SuiteScriptError} SSS_INVALID_TYPE_ARG if there's parameter of different type than string/number/boolean in params array
*
* @since 2020.1
*/
export const runSuiteQLPaged: RunSuiteQLPaged;
export const enum DateId {
DAYS_AGO = "dago",
DAYS_FROM_NOW = "dfn",
HOURS_AGO = "hago",
HOURS_FROM_NOW = "hfn",
MINUTES_AGO = "nago",
MINUTES_FROM_NOW = "nfn",
MONTHS_AGO = "mago",
MONTHS_FROM_NOW = "mfn",
QUARTERS_AGO = "qago",
QUARTERS_FROM_NOW = "qfn",
SECONDS_AGO = "sago",
SECONDS_FROM_NOW = "sfn",
WEEKS_AGO = "wago",
WEEKS_FROM_NOW = "wfn",
YEARS_AGO = "yago",
YEARS_FROM_NOW = "yfn",
}
/**
* Special object which can be used as a condition while querying dates.
*
* @since 2019.1
*/
export interface RelativeDate {
/**
* Start of relative date
* @throws {SuiteScriptError} READ_ONLY_PROPERTY when setting the property is attempted
*
* @since 2019.1
*/
readonly start: Object;
/**
* End of relative date
* @throws {SuiteScriptError} READ_ONLY_PROPERTY when setting the property is attempted
*
* @since 2019.1
*/
readonly end: Object;
/**
* Interval of relative date
* @throws {SuiteScriptError} READ_ONLY_PROPERTY when setting the property is attempted
*
* @since 2019.1
*/
readonly interval: Object;
/**
* Value of relative date
* @throws {SuiteScriptError} READ_ONLY_PROPERTY when setting the property is attempted
*
* @since 2019.1
*/
readonly value: Object;
/**
* Flag if this relative date represents range
* @throws {SuiteScriptError} READ_ONLY_PROPERTY when setting the property is attempted
*
* @since 2019.1
*/
readonly isRange: boolean;
/**
* Id of relative date
* @throws {SuiteScriptError} READ_ONLY_PROPERTY when setting the property is attempted
*
* @since 2019.1
*/
readonly dateId: Object;
/**
* Returns the object type name (query.RelativeDate)
*
* @since 2019.1
*/
toString(): string;
/**
* get JSON format of the object
*
* @since 2019.1
*/
toJSON(): any;
}
interface CreatePeriodOptions {
/** The code of the period. This property uses values from the query.PeriodCode enum. */
code: PeriodCode;
/** The adjustment of the period. This property uses values from the query.PeriodAdjustment enum. */
adjustment?: PeriodAdjustment;
/** The type of the period. This property uses values from the query.PeriodType enum. The default value of this property is query.PeriodType.START. */
type?: PeriodType;
}
export function createPeriod(options: CreatePeriodOptions): Period;
interface CreateRelativeDateOptions {
/**
* The ID of the relative date to create.
*/
dateId: DateId;
/**
* The value to use to create the relative date.
*/
value: number;
}
/**
* Creates a query.RelativeDate object that represents a date relative to the current date.
* @throws {SuiteScriptError} MISSING_REQD_ARGUMENT If options or id are undefined.
* @throws {SuiteScriptError} WRONG_PARAMETER_TYPE If options isn't object or id isn't string.
*
* @since 2019.2
*/
export function createRelativeDate(options: CreateRelativeDateOptions): RelativeDate;
export enum Operator {
AFTER = "AFTER",
AFTER_NOT = "AFTER_NOT",
ANY_OF = "ANY_OF",
ANY_OF_NOT = "ANY_OF_NOT",
BEFORE = "BEFORE",
BEFORE_NOT = "BEFORE_NOT",
BETWEEN = "BETWEEN",
BETWEEN_NOT = "BETWEEN_NOT",
CONTAIN = "CONTAIN",
CONTAIN_NOT = "CONTAIN_NOT",
EMPTY = "EMPTY",
EMPTY_NOT = "EMPTY_NOT",
ENDWITH = "ENDWITH",
ENDWITH_NOT = "ENDWITH_NOT",
EQUAL = "EQUAL",
EQUAL_NOT = "EQUAL_NOT",
EXCLUDE_ALL = "MN_EXCLUDE",
EXCLUDE_ANY = "MN_EXCLUDE_ALL",
EXCLUDE_EXACTLY = "MN_EXCLUDE_EXACTLY",
GREATER = "GREATER",
GREATER_NOT = "GREATER_NOT",
GREATER_OR_EQUAL = "GREATER_OR_EQUAL",
GREATER_OR_EQUAL_NOT = "GREATER_OR_EQUAL_NOT",
INCLUDE_ALL = "MN_INCLUDE_ALL",
INCLUDE_ANY = "MN_INCLUDE",
INCLUDE_EXACTLY = "MN_INCLUDE_EXACTLY",
IS = "IS",
IS_NOT = "IS_NOT",
LESS = "LESS",
LESS_NOT = "LESS_NOT",
LESS_OR_EQUAL = "LESS_OR_EQUAL",
LESS_OR_EQUAL_NOT = "LESS_OR_EQUAL_NOT",
ON = "ON",
ON_NOT = "ON_NOT",
ON_OR_AFTER = "ON_OR_AFTER",
ON_OR_AFTER_NOT = "ON_OR_AFTER_NOT",
ON_OR_BEFORE = "ON_OR_BEFORE",
ON_OR_BEFORE_NOT = "ON_OR_BEFORE_NOT",
START_WITH = "START_WITH",
START_WITH_NOT = "START_WITH_NOT",
WITHIN = "WITHIN",
WITHIN_NOT = "WITHIN_NOT",
}
export enum Type {
// As of 15 June 2020
ACCOUNT = "account",
ACCOUNTING_CONTEXT = "accountingcontext",
ACCOUNTING_PERIOD = "accountingperiod",
ALLOCATION_METHOD = "allocationmethod",
AMORTIZATION_SCHEDULE = "amortizationschedule",
AMORTIZATION_TEMPLATE = "amortizationtemplate",
BILLING_SCHEDULE = "billingschedule",
BIN = "bin",
BUDGETCATEGORY = "budgetcategory",
BUDGETS = "budgets",
BUDGET_EXCHANGE_RATE = "budgetexchangerate",
BULK_PROC_SUBMISSION = "bulkprocsubmission",
BUNDLE_INSTALLATION_SCRIPT = "bundleinstallationscript",
BUNDLE_INSTALLATION_SCRIPT_DEPLOYMENT = "bundleinstallationscriptdeployment",
CALENDAR_EVENT = "calendarevent",
CAMPAIGN_AUDIENCE = "campaignaudience",
CAMPAIGN_CATEGORY = "campaigncategory",
CAMPAIGN_CHANNEL = "campaignchannel",
CAMPAIGN_EMAIL_ADDRESS = "campaignemailaddress",
CAMPAIGN_EVENT = "campaignevent",
CAMPAIGN_FAMILY = "campaignfamily",
CAMPAIGN_OFFER = "campaignoffer",
CAMPAIGN_RESPONSE = "campaignresponse",
CAMPAIGN_SEARCH_ENGINE = "campaignsearchengine",
CAMPAIGN_SUBSCRIPTION = "campaignsubscription",
CAMPAIGN_TEMPLATE = "campaigntemplate",
CAMPAIGN_VERTICAL = "campaignvertical",
CARDHOLDER_AUTHENTICATION = "cardholderauthentication",
CARDHOLDER_AUTHENTICATION_EVENT = "cardholderauthenticationevent",
CATEGORY1099MISC = "category1099misc",
CLASSIFICATION = "classification",
CLIENT_SCRIPT = "clientscript",
CLIENT_SCRIPT_DEPLOYMENT = "clientscriptdeployment",
COMPETITOR = "competitor",
CONSOLIDATED_EXCHANGE_RATE = "consolidatedexchangerate",
CONSOLIDATED_RATE_ADJUSTOR_PLUGIN = "consolidatedrateadjustorplugin",
CONTACT = "contact",
CONTACT_CATEGORY = "contactcategory",
CONTACT_ROLE = "contactrole",
CONTACT_SUBSIDIARY_RELATIONSHIP = "contactsubsidiaryrelationship",
COST_CATEGORY = "costcategory",
COUPON_CODE = "couponcode",
CURRENCY = "currency",
CURRENCY_RATE = "currencyrate",
CUSTOMER = "customer",
CUSTOMER_CATEGORY = "customercategory",
CUSTOMER_MESSAGE = "customermessage",
CUSTOMER_SUBSIDIARY_RELATIONSHIP = "customersubsidiaryrelationship",
CUSTOM_FIELD = "customfield",
CUSTOM_GL_PLUGIN = "customglplugin",
CUSTOM_LIST = "customlist",
CUSTOM_RECORD_TYPE = "customrecordtype",
CUSTOM_TRANSACTION_TYPE = "customtransactiontype",
DELETED_RECORD = "deletedrecord",
DEPARTMENT = "department",
DEVICE_ID = "deviceid",
DOMAIN = "domain",
EMAIL_CAPTURE_PLUGIN = "emailcaptureplugin",
EMAIL_TEMPLATE = "emailtemplate",
EMPLOYEE = "employee",
EMPLOYEE_LIST = "employeelist",
EMPLOYEE_STATUS = "employeestatus",
EMPLOYEE_SUBSIDIARY_RELATIONSHIP = "employeesubsidiaryrelationship",
EMPLOYEE_TYPE = "employeetype",
ENTITY = "entity",
ENTITY_GROUP = "entitygroup",
ENTITY_SUBSIDIARY_RELATIONSHIP = "entitysubsidiaryrelationship",
EXPENSE_CATEGORY = "expensecategory",
FAX_TEMPLATE = "faxtemplate",
FILE = "file",
FI_CONNECTIVITY_PLUGIN = "ficonnectivityplugin",
FORECAST = "forecast",
FULFILLMENT_EXCEPTION_REASON = "fulfillmentexceptionreason",
GATEWAY_NOTIFICATION = "gatewaynotification",
GENERAL_ALLOCATION_SCHEDULE = "generalallocationschedule",
GENERAL_TOKEN = "generaltoken",
GENERIC_RESOURCE = "genericresource",
GENERIC_RESOURCE_SUBSIDIARY_RELATIONSHIP = "genericresourcesubsidiaryrelationship",
GIFT_CERTIFICATE = "giftcertificate",
GL_LINES_AUDIT_LOG = "gllinesauditlog",
GL_LINES_PLUGIN_REVISION = "gllinespluginrevision",
INCO_TERM = "incoterm",
INVENTORY_COST_TEMPLATE = "inventorycosttemplate",
INVENTORY_NUMBER = "inventorynumber",
INVT_ITEM_PRICE_HISTORY = "invtitempricehistory",
ITEM = "item",
ITEM_COLLECTION = "itemcollection",
ITEM_DEMAND_PLAN = "itemdemandplan",
ITEM_REVISION = "itemrevision",
ITEM_SUPPLY_PLAN = "itemsupplyplan",
I_P_RESTRICTIONS = "iprestrictions",
JOB = "job",
JOB_RESOURCE_ROLE = "jobresourcerole",
JOB_STATUS = "jobstatus",
JOB_TYPE = "jobtype",
KNOWLEDGE_BASE = "knowledgebase",
LOCATION = "location",
LOGIN_AUDIT = "loginaudit",
MAIL_TEMPLATE = "mailtemplate",
MANUFACTURING_COST_TEMPLATE = "manufacturingcosttemplate",
MANUFACTURING_ROUTING = "manufacturingrouting",
MANUFACTURING_TRANSACTION = "manufacturingtransaction",
MAP_REDUCE_SCRIPT = "mapreducescript",
MAP_REDUCE_SCRIPT_DEPLOYMENT = "mapreducescriptdeployment",
MASS_UPDATE_SCRIPT = "massupdatescript",
MASS_UPDATE_SCRIPT_DEPLOYMENT = "massupdatescriptdeployment",
MEDIA_ITEM_FOLDER = "mediaitemfolder",
MEM_DOC = "memdoc",
MEM_DOC_TRANSACTION_TEMPLATE = "memdoctransactiontemplate",
MESSAGE = "message",
MFG_PLANNED_TIME = "mfgplannedtime",
NEXUS = "nexus",
NOTE = "note",
ONLINE_CASE_FORM = "onlinecaseform",
ONLINE_FORM_TEMPLATE = "onlineformtemplate",
ONLINE_LEAD_FORM = "onlineleadform",
OTHER_NAME = "othername",
OTHER_NAME_CATEGORY = "othernamecategory",
OTHER_NAME_SUBSIDIARY_RELATIONSHIP = "othernamesubsidiaryrelationship",
OUTBOUND_REQUEST = "outboundrequest",
O_AUTH_TOKEN = "oauthtoken",
PARTNER = "partner",
PARTNER_SUBSIDIARY_RELATIONSHIP = "partnersubsidiaryrelationship",
PAYMENT_CARD_TOKEN = "paymentcardtoken",
PAYMENT_EVENT = "paymentevent",
PAYMENT_GATEWAY_PLUGIN = "paymentgatewayplugin",
PAYMENT_INSTRUMENT = "paymentinstrument",
PAYMENT_METHOD = "paymentmethod",
PAYMENT_PROCESSING_PROFILE = "paymentprocessingprofile",
PAYMENT_RESULT_PREVIEW = "paymentresultpreview",
PAYROLL_ITEM = "payrollitem",
PDF_TEMPLATE = "pdftemplate",
PHONE_CALL = "phonecall",
PLANNED_STANDARD_COST = "plannedstandardcost",
PLATFORM_EXTENSION_PLUGIN = "platformextensionplugin",
PLUG_IN_TYPE = "plugintype",
PLUG_IN_TYPE_IMPL = "plugintypeimpl",
PORTLET = "portlet",
PORTLET_DEPLOYMENT = "portletdeployment",
PRICE_LEVEL = "pricelevel",
PRICING = "pricing",
PRICING_GROUP = "pricinggroup",
PROJECT_SUBSIDIARY_RELATIONSHIP = "projectsubsidiaryrelationship",
PROJECT_TASK = "projecttask",
PROJECT_TEMPLATE = "projecttemplate",
PROJECT_TEMPLATE_SUBSIDIARY_RELATIONSHIP = "projecttemplatesubsidiaryrelationship",
PROMOTIONS_PLUGIN = "promotionsplugin",
PROMOTION_CODE = "promotioncode",
PUBLISHED_SAVED_SEARCH = "publishedsavedsearch",
QUANTITY_PRICING_SCHEDULE = "quantitypricingschedule",
QUOTA = "quota",
RECENT_RECORD = "recentrecord",
REDIRECT = "redirect",
RESOURCE_GROUP = "resourcegroup",
RESTLET = "restlet",
RESTLET_DEPLOYMENT = "restletdeployment",
ROLE = "role",
SALES_INVOICED = "salesinvoiced",
SALES_ORDERED = "salesordered",
SALES_TAX_ITEM = "salestaxitem",
SCHEDULED_SCRIPT = "scheduledscript",
SCHEDULED_SCRIPT_DEPLOYMENT = "scheduledscriptdeployment",
SCHEDULED_SCRIPT_INSTANCE = "scheduledscriptinstance",
SCRIPT = "script",
SCRIPT_CUSTOM_RECORD_TYPE = "scriptcustomrecordtype",
SCRIPT_DEPLOYMENT = "scriptdeployment",
SCRIPT_NOTE = "scriptnote",
SCRIPT_RECORD_TYPE = "scriptrecordtype",
SEARCH_CAMPAIGN = "searchcampaign",
SENT_EMAIL = "sentemail",
SHIPPING_PACKAGE = "shippingpackage",
SHIPPING_PARTNERS_PLUGIN = "shippingpartnersplugin",
SHIP_ITEM = "shipitem",
SHOPPING_CART = "shoppingcart",
SITE_CATEGORY = "sitecategory",
SOLUTION = "solution",
STANDARD_COST_VERSION = "standardcostversion",
STORE_TAB = "storetab",
SUBLIST = "sublist",
SUBSIDIARY = "subsidiary",
SUBSIDIARY_SETTINGS = "subsidiarysettings",
SUITELET = "suitelet",
SUITELET_DEPLOYMENT = "suiteletdeployment",
SUITE_SCRIPT_DETAIL = "suitescriptdetail",
SUPPORT_CASE = "supportcase",
SYSTEM_EMAIL_TEMPLATE = "systememailtemplate",
SYSTEM_NOTE = "systemnote",
SYSTEM_NOTE2 = "systemnote2",
SYSTEM_NOTE_FIELD = "systemnotefield",
TASK = "task",
TAX_CALCULATION_PLUGIN = "taxcalculationplugin",
TAX_ITEM_TAX_GROUP = "taxitemtaxgroup",
TAX_TYPE = "taxtype",
TERM = "term",
TEST_PLUGIN = "testplugin",
TIME_BILL = "timebill",
TIME_MODIFICATION_REQUEST = "timemodificationrequest",
TOPIC = "topic",
TRANSACTION = "transaction",
TRANSACTION_DELETION_REASON = "transactiondeletionreason",
TRANSACTION_HISTORY = "transactionhistory",
TRANSACTION_NUMBERING_AUDIT_LOG = "transactionnumberingauditlog",
UMD_FIELD = "umdfield",
UNDELIVERED_EMAIL = "undeliveredemail",
UNITS_TYPE = "unitstype",
USER_EVENT_SCRIPT = "usereventscript",
USER_EVENT_SCRIPT_DEPLOYMENT = "usereventscriptdeployment",
USER_O_AUTH_TOKEN = "useroauthtoken",
USRSAVEDSEARCH = "usrsavedsearch",
USR_AUDIT_LOG = "usrauditlog",
USR_DS_AUDIT_LOG = "usrdsauditlog",
USR_DS_EXECUTION_LOG = "usrdsexecutionlog",
USR_EXECUTION_LOG = "usrexecutionlog",
VENDOR = "vendor",
VENDOR_CATEGORY = "vendorcategory",
VENDOR_SUBSIDIARY_RELATIONSHIP = "vendorsubsidiaryrelationship",
WEBAPP = "webapp",
WEB_SITE = "website",
WORKFLOW_ACTION_SCRIPT = "workflowactionscript",
WORKFLOW_ACTION_SCRIPT_DEPLOYMENT = "workflowactionscriptdeployment",
WORK_CALENDAR = "workcalendar",
}
export enum Aggregate {
AVERAGE = "AVERAGE",
AVERAGE_DISTINCT = "AVERAGE_DISTINCT",
COUNT = "COUNT",
COUNT_DISTINCT = "COUNT_DISTINCT",
MAXIMUM = "MAXIMUM",
MAXIMUM_DISTINCT = "MAXIMUM_DISTINCT",
MEDIAN = "MEDIAN",
MINIMUM = "MINIMUM",
MINIMUM_DISTINCT = "MINIMUM_DISTINCT",
SUM = "SUM",
SUM_DISTINCT = "SUM_DISTINCT",
}
export enum ReturnType {
ANY = "ANY",
BOOLEAN = "BOOLEAN",
CURRENCY = "CURRENCY",
DATE = "DATE",
DATETIME = "DATETIME",
DURATION = "DURATION",
FLOAT = "FLOAT",
INTEGER = "INTEGER",
KEY = "KEY",
RELATIONSHIP = "RELATIONSHIP",
STRING = "STRING",
UNKNOWN = "UNKNOWN",
}
/**
* Holds the string values for the field context to use when creating a column.
* The field context determines how field values are displayed in a column.
*/
export enum FieldContext {
/** Displays consolidated debit / credit amount in the base currency. */
SIGN_CONSOLIDATED = "SIGN_CONSOLIDATED",
/** Displays converted currency amounts using the exchange rate that was in effect on a specific date. */
CONVERTED = "CONVERTED",
/** Displays consolidated currency amounts in the base currency. */
CURRENCY_CONSOLIDATED = "CURRENCY_CONSOLIDATED",
/**
* Displays user-friendly field values.
* For example, for the entity field on Transaction records, using the DISPLAY enum value displays the name of the entity instead of its ID.
*/
DISPLAY = "DISPLAY",
/**
* Displays user-friendly field values for hierarchical fields (for example, “Parent Company : SUB CAD”).
* This value is similar to the DISPLAY enum value but applies to hierarchical fields.
*/
HIERARCHY = "HIERARCHY",
/**
* Displays raw field values for hierarchical fields (for example, “1 : 5”).
* This value is similar to the RAW enum value but applies to hierarchical fields.
*/
HIERARCHY_IDENTIFIER = "HIERARCHY_IDENTIFIER",
/**
* Displays raw field values.
* For example, for the entity field on Transaction records, using the RAW enum value displays the ID of the entity.
*/
RAW = "RAW",
}
export enum PeriodAdjustment {
ALL,
NOT_LAST,
}
export enum PeriodCode {
FIRST_FISCAL_QUARTER_LAST_FY,
FIRST_FISCAL_QUARTER_THIS_FY,
FISCAL_QUARTER_BEFORE_LAST,
FISCAL_YEAR_BEFORE_LAST,
FOURTH_FISCAL_QUARTER_LAST_FY,
FOURTH_FISCAL_QUARTER_THIS_FY,
LAST_FISCAL_QUARTER,
LAST_FISCAL_QUARTER_ONE_FISCAL_YEAR_AGO,
LAST_FISCAL_QUARTER_TO_PERIOD,
LAST_FISCAL_YEAR,
LAST_FISCAL_YEAR_TO_PERIOD,
LAST_PERIOD,
LAST_PERIOD_ONE_FISCAL_QUARTER_AGO,
LAST_PERIOD_ONE_FISCAL_YEAR_AGO,
LAST_ROLLING_18_PERIODS,
LAST_ROLLING_6_FISCAL_QUARTERS,
PERIOD_BEFORE_LAST,
SAME_FISCAL_QUARTER_LAST_FY,
SAME_FISCAL_QUARTER_LAST_FY_TO_PERIOD,
SAME_PERIOD_LAST_FY,
SAME_PERIOD_LAST_FISCAL_QUARTER,
SECOND_FISCAL_QUARTER_LAST_FY,
SECOND_FISCAL_QUARTER_THIS_FY,
THIRD_FISCAL_QUARTER_LAST_FY,
THIRD_FISCAL_QUARTER_THIS_FY,
THIS_FISCAL_QUARTER,
THIS_FISCAL_QUARTER_TO_PERIOD,
THIS_FISCAL_YEAR,
THIS_FISCAL_YEAR_TO_PERIOD,
THIS_PERIOD,
}
export enum PeriodType {
END,
START,
}
export enum SortLocale {
ARABIC = "ARABIC",
ARABIC_ABJ_MATCH = "ARABIC_ABJ_MATCH",
ARABIC_ABJ_MATCH_CI = "ARABIC_ABJ_MATCH_CI",
ARABIC_ABJ_SORT = "ARABIC_ABJ_SORT",
ARABIC_ABJ_SORT_CI = "ARABIC_ABJ_SORT_CI",
ARABIC_CI = "ARABIC_CI",
ARABIC_MATCH = "ARABIC_MATCH",
ARABIC_MATCH_CI = "ARABIC_MATCH_CI",
ASCII7 = "ASCII7",
ASCII7_CI = "ASCII7_CI",
AZERBAIJANI = "AZERBAIJANI",
AZERBAIJANI_CI = "AZERBAIJANI_CI",
BENGALI = "BENGALI",
BENGALI_CI = "BENGALI_CI",
BIG5 = "BIG5",
BIG5_CI = "BIG5_CI",
BINARY = "BINARY",
BINARY_CI = "BINARY_CI",
BULGARIAN = "BULGARIAN",
BULGARIAN_CI = "BULGARIAN_CI",
CANADIAN_M = "CANADIAN_M",
CATALAN = "CATALAN",
CATALAN_CI = "CATALAN_CI",
CROATIAN = "CROATIAN",
CROATIAN_CI = "CROATIAN_CI",
CS_CZ = "CS_CZ",
CZECH = "CZECH",
CZECH_CI = "CZECH_CI",
CZECH_PUNCTUATION = "CZECH_PUNCTUATION",
CZECH_PUNCTUATION_CI = "CZECH_PUNCTUATION_CI",
DANISH = "DANISH",
DANISH_CI = "DANISH_CI",
DANISH_M = "DANISH_M",
DA_DK = "DA_DK",
DE_DE = "DE_DE",
DUTCH = "DUTCH",
DUTCH_CI = "DUTCH_CI",
EBCDIC = "EBCDIC",
EBCDIC_CI = "EBCDIC_CI",
EEC_EURO = "EEC_EURO",
EEC_EUROPA3 = "EEC_EUROPA3",
EEC_EUROPA3_CI = "EEC_EUROPA3_CI",
EEC_EURO_CI = "EEC_EURO_CI",
EN = "EN",
EN_AU = "EN_AU",
EN_CA = "EN_CA",
EN_GB = "EN_GB",
EN_US = "EN_US",
ESTONIAN = "ESTONIAN",
ESTONIAN_CI = "ESTONIAN_CI",
ES_AR = "ES_AR",
ES_ES = "ES_ES",
FINNISH = "FINNISH",
FINNISH_CI = "FINNISH_CI",
FRENCH = "FRENCH",
FRENCH_AI = "FRENCH_AI",
FRENCH_CI = "FRENCH_CI",
FRENCH_M = "FRENCH_M",
FR_CA = "FR_CA",
FR_FR = "FR_FR",
GBK = "GBK",
GBK_AI = "GBK_AI",
GBK_CI = "GBK_CI",
GENERIC_M = "GENERIC_M",
GERMAN = "GERMAN",
GERMAN_AI = "GERMAN_AI",
GERMAN_CI = "GERMAN_CI",
GERMAN_DIN = "GERMAN_DIN",
GERMAN_DIN_AI = "GERMAN_DIN_AI",
GERMAN_DIN_CI = "GERMAN_DIN_CI",
GREEK = "GREEK",
GREEK_AI = "GREEK_AI",
GREEK_CI = "GREEK_CI",
HEBREW = "HEBREW",
HEBREW_AI = "HEBREW_AI",
HEBREW_CI = "HEBREW_CI",
HE_IL = "HE_IL",
HKSCS = "HKSCS",
HKSCS_AI = "HKSCS_AI",
HKSCS_CI = "HKSCS_CI",
HUNGARIAN = "HUNGARIAN",
HUNGARIAN_AI = "HUNGARIAN_AI",
HUNGARIAN_CI = "HUNGARIAN_CI",
ICELANDIC = "ICELANDIC",
ICELANDIC_AI = "ICELANDIC_AI",
ICELANDIC_CI = "ICELANDIC_CI",
INDONESIAN = "INDONESIAN",
INDONESIAN_AI = "INDONESIAN_AI",
INDONESIAN_CI = "INDONESIAN_CI",
ITALIAN = "ITALIAN",
ITALIAN_AI = "ITALIAN_AI",
ITALIAN_CI = "ITALIAN_CI",
IT_IT = "IT_IT",
JAPANESE_M = "JAPANESE_M",
JA_JP = "JA_JP",
KOREAN_M = "KOREAN_M",
KO_KR = "KO_KR",
LATIN = "LATIN",
LATIN_AI = "LATIN_AI",
LATIN_CI = "LATIN_CI",
LATVIAN = "LATVIAN",
LATVIAN_AI = "LATVIAN_AI",
LATVIAN_CI = "LATVIAN_CI",
LITHUANIAN = "LITHUANIAN",
LITHUANIAN_AI = "LITHUANIAN_AI",
LITHUANIAN_CI = "LITHUANIAN_CI",
MALAY = "MALAY",
MALAY_AI = "MALAY_AI",
MALAY_CI = "MALAY_CI",
NL_NL = "NL_NL",
NORWEGIAN = "NORWEGIAN",