@emergentmethods/asknews-typescript-sdk
Version:
Typescript SDK for AskNews API
215 lines (199 loc) • 7.03 kB
text/typescript
/* tslint:disable */
/* eslint-disable */
/**
* AskNews API
* AskNews API [](https://status.asknews.app/status/prod)
*
* The version of the OpenAPI document: 0.24.66
* Contact: contact@emergentmethods.ai
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import { mapValues } from '../runtime';
import type { TriggersInner } from './TriggersInner';
import {
TriggersInnerFromJSON,
TriggersInnerFromJSONTyped,
TriggersInnerToJSON,
TriggersInnerToJSONTyped,
} from './TriggersInner';
import type { SourcesInner } from './SourcesInner';
import {
SourcesInnerFromJSON,
SourcesInnerFromJSONTyped,
SourcesInnerToJSON,
SourcesInnerToJSONTyped,
} from './SourcesInner';
import type { Report1 } from './Report1';
import {
Report1FromJSON,
Report1FromJSONTyped,
Report1ToJSON,
Report1ToJSONTyped,
} from './Report1';
/**
*
* @export
* @interface CreateAlertRequest
*/
export interface CreateAlertRequest {
/**
*
* @type {string}
* @memberof CreateAlertRequest
*/
query?: string | null;
/**
*
* @type {Array<SourcesInner>}
* @memberof CreateAlertRequest
*/
sources?: Array<SourcesInner>;
/**
*
* @type {string}
* @memberof CreateAlertRequest
*/
alertType?: CreateAlertRequestAlertTypeEnum | null;
/**
* The model that is used to check if the alert conditions are satisfied by sources (this is not the same as the model used to write the report.)Defaults to gpt-4o.
* @type {string}
* @memberof CreateAlertRequest
*/
model?: CreateAlertRequestModelEnum;
/**
* How often or when to check sources for this alert, specified as a cron expression. Examples: '0 * * * *' (hourly), '0 9 * * *' (daily at 9am), '0 9 * * 1' (Mondays at 9am). See https://crontab.run/ for more examples.
* @type {string}
* @memberof CreateAlertRequest
*/
cron: string;
/**
*
* @type {Array<TriggersInner>}
* @memberof CreateAlertRequest
*/
triggers: Array<TriggersInner>;
/**
* Whether to always trigger the actions when sources are scanned. This skips the check for if the alert conditions are satisfied and run triggers immediately. Defaults to False.
* @type {boolean}
* @memberof CreateAlertRequest
*/
alwaysTrigger?: boolean;
/**
* Whether to repeat the alert. Default is True. If False, the alert will be disabled after it triggers once.
* @type {boolean}
* @memberof CreateAlertRequest
*/
repeat?: boolean;
/**
* Whether the alert is active or not. Default is True.
* @type {boolean}
* @memberof CreateAlertRequest
*/
active?: boolean;
/**
*
* @type {Date}
* @memberof CreateAlertRequest
*/
expiresAt?: Date | null;
/**
*
* @type {Report1}
* @memberof CreateAlertRequest
*/
report?: Report1 | null;
/**
*
* @type {string}
* @memberof CreateAlertRequest
*/
title?: string | null;
/**
*
* @type {string}
* @memberof CreateAlertRequest
*/
shareLink?: string | null;
}
/**
* @export
*/
export const CreateAlertRequestAlertTypeEnum = {
AlwaysAlertWhen: 'AlwaysAlertWhen',
AlertOnceIf: 'AlertOnceIf',
ReportAbout: 'ReportAbout'
} as const;
export type CreateAlertRequestAlertTypeEnum = typeof CreateAlertRequestAlertTypeEnum[keyof typeof CreateAlertRequestAlertTypeEnum];
/**
* @export
*/
export const CreateAlertRequestModelEnum = {
MetaLlamaMetaLlama318BInstruct: 'meta-llama/Meta-Llama-3.1-8B-Instruct',
Gpt4oMini: 'gpt-4o-mini',
Gpt5Mini: 'gpt-5-mini',
Gpt5Nano: 'gpt-5-nano',
Gpt4o: 'gpt-4o',
O3Mini: 'o3-mini',
MetaLlamaMetaLlama3370BInstruct: 'meta-llama/Meta-Llama-3.3-70B-Instruct',
Gpt4120250414: 'gpt-4.1-2025-04-14',
Gpt41Nano20250414: 'gpt-4.1-nano-2025-04-14',
Gpt41Mini20250414: 'gpt-4.1-mini-2025-04-14'
} as const;
export type CreateAlertRequestModelEnum = typeof CreateAlertRequestModelEnum[keyof typeof CreateAlertRequestModelEnum];
/**
* Check if a given object implements the CreateAlertRequest interface.
*/
export function instanceOfCreateAlertRequest(value: object): value is CreateAlertRequest {
if (!('cron' in value) || value['cron'] === undefined) return false;
if (!('triggers' in value) || value['triggers'] === undefined) return false;
return true;
}
export function CreateAlertRequestFromJSON(json: any): CreateAlertRequest {
return CreateAlertRequestFromJSONTyped(json, false);
}
export function CreateAlertRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): CreateAlertRequest {
if (json == null) {
return json;
}
return {
'query': json['query'] == null ? undefined : json['query'],
'sources': json['sources'] == null ? undefined : ((json['sources'] as Array<any>).map(SourcesInnerFromJSON)),
'alertType': json['alert_type'] == null ? undefined : json['alert_type'],
'model': json['model'] == null ? undefined : json['model'],
'cron': json['cron'],
'triggers': ((json['triggers'] as Array<any>).map(TriggersInnerFromJSON)),
'alwaysTrigger': json['always_trigger'] == null ? undefined : json['always_trigger'],
'repeat': json['repeat'] == null ? undefined : json['repeat'],
'active': json['active'] == null ? undefined : json['active'],
'expiresAt': json['expires_at'] == null ? undefined : (new Date(json['expires_at'])),
'report': json['report'] == null ? undefined : Report1FromJSON(json['report']),
'title': json['title'] == null ? undefined : json['title'],
'shareLink': json['share_link'] == null ? undefined : json['share_link'],
};
}
export function CreateAlertRequestToJSON(json: any): CreateAlertRequest {
return CreateAlertRequestToJSONTyped(json, false);
}
export function CreateAlertRequestToJSONTyped(value?: CreateAlertRequest | null, ignoreDiscriminator: boolean = false): any {
if (value == null) {
return value;
}
return {
'query': value['query'],
'sources': value['sources'] == null ? undefined : ((value['sources'] as Array<any>).map(SourcesInnerToJSON)),
'alert_type': value['alertType'],
'model': value['model'],
'cron': value['cron'],
'triggers': ((value['triggers'] as Array<any>).map(TriggersInnerToJSON)),
'always_trigger': value['alwaysTrigger'],
'repeat': value['repeat'],
'active': value['active'],
'expires_at': value['expiresAt'] == null ? undefined : ((value['expiresAt'] as any).toISOString()),
'report': Report1ToJSON(value['report']),
'title': value['title'],
'share_link': value['shareLink'],
};
}