59 lines
1.5 KiB
TypeScript
59 lines
1.5 KiB
TypeScript
import * as plugins from '../plugins.js';
|
|
import type { ICloudlySettings, ICloudlySettingsMasked } from '../data/settings.js';
|
|
|
|
// Get Settings
|
|
export interface IRequest_GetSettings extends plugins.typedrequestInterfaces.ITypedRequest {
|
|
method: 'getSettings';
|
|
request: {};
|
|
response: {
|
|
settings: ICloudlySettingsMasked;
|
|
};
|
|
}
|
|
|
|
// Update Settings
|
|
export interface IRequest_UpdateSettings extends plugins.typedrequestInterfaces.ITypedRequest {
|
|
method: 'updateSettings';
|
|
request: {
|
|
updates: Partial<ICloudlySettings>;
|
|
};
|
|
response: {
|
|
success: boolean;
|
|
message: string;
|
|
};
|
|
}
|
|
|
|
// Clear Specific Setting
|
|
export interface IRequest_ClearSetting extends plugins.typedrequestInterfaces.ITypedRequest {
|
|
method: 'clearSetting';
|
|
request: {
|
|
key: keyof ICloudlySettings;
|
|
};
|
|
response: {
|
|
success: boolean;
|
|
message: string;
|
|
};
|
|
}
|
|
|
|
// Test Provider Connection
|
|
export interface IRequest_TestProviderConnection extends plugins.typedrequestInterfaces.ITypedRequest {
|
|
method: 'testProviderConnection';
|
|
request: {
|
|
provider: 'hetzner' | 'cloudflare' | 'aws' | 'digitalocean' | 'azure' | 'google' | 'vultr' | 'linode' | 'ovh' | 'scaleway';
|
|
};
|
|
response: {
|
|
success: boolean;
|
|
message: string;
|
|
connectionValid: boolean;
|
|
};
|
|
}
|
|
|
|
// Get Single Setting (for internal use, not exposed to frontend)
|
|
export interface IRequest_GetSetting extends plugins.typedrequestInterfaces.ITypedRequest {
|
|
method: 'getSetting';
|
|
request: {
|
|
key: keyof ICloudlySettings;
|
|
};
|
|
response: {
|
|
value: string | undefined;
|
|
};
|
|
} |