summaryrefslogtreecommitdiffstats
path: root/third_party/rust/remote_settings/src/remote_settings.udl
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
commit26a029d407be480d791972afb5975cf62c9360a6 (patch)
treef435a8308119effd964b339f76abb83a57c29483 /third_party/rust/remote_settings/src/remote_settings.udl
parentInitial commit. (diff)
downloadfirefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz
firefox-26a029d407be480d791972afb5975cf62c9360a6.zip
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'third_party/rust/remote_settings/src/remote_settings.udl')
-rw-r--r--third_party/rust/remote_settings/src/remote_settings.udl65
1 files changed, 65 insertions, 0 deletions
diff --git a/third_party/rust/remote_settings/src/remote_settings.udl b/third_party/rust/remote_settings/src/remote_settings.udl
new file mode 100644
index 0000000000..d830b6778f
--- /dev/null
+++ b/third_party/rust/remote_settings/src/remote_settings.udl
@@ -0,0 +1,65 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+[Custom]
+typedef string RsJsonObject;
+
+namespace remote_settings {};
+
+dictionary RemoteSettingsConfig {
+ string collection_name;
+ string? bucket_name = null;
+ string? server_url = null;
+};
+
+dictionary RemoteSettingsResponse {
+ sequence<RemoteSettingsRecord> records;
+ u64 last_modified;
+};
+
+dictionary RemoteSettingsRecord {
+ string id;
+ u64 last_modified;
+ boolean deleted;
+ Attachment? attachment;
+ RsJsonObject fields;
+};
+
+dictionary Attachment {
+ string filename;
+ string mimetype;
+ string location;
+ string hash;
+ u64 size;
+};
+
+[Error]
+enum RemoteSettingsError {
+ "JSONError",
+ "FileError",
+ "RequestError",
+ "UrlParsingError",
+ "BackoffError",
+ "ResponseError",
+ "AttachmentsUnsupportedError",
+};
+
+interface RemoteSettings {
+ // Construct a new Remote Settings client with the given configuration.
+ [Throws=RemoteSettingsError]
+ constructor(RemoteSettingsConfig remote_settings_config);
+
+ // Fetch all records for the configuration this client was initialized with.
+ [Throws=RemoteSettingsError]
+ RemoteSettingsResponse get_records();
+
+ // Fetch all records added to the server since the provided timestamp,
+ // using the configuration this client was initialized with.
+ [Throws=RemoteSettingsError]
+ RemoteSettingsResponse get_records_since(u64 timestamp);
+
+ // Download an attachment with the provided id to the provided path.
+ [Throws=RemoteSettingsError]
+ void download_attachment_to_path(string attachment_id, string path);
+};