commit c357ffe63f2e4bfd53902b2790611b4968c81f94
parent 16ecd3fd2c8d38ffc34384749c625502458374ba
Author: Antoine A <>
Date: Sat, 4 Apr 2026 11:59:10 +0200
apns: add API
Diffstat:
3 files changed, 122 insertions(+), 0 deletions(-)
diff --git a/core/api-apns.rst b/core/api-apns.rst
@@ -0,0 +1,117 @@
+..
+ This file is part of GNU TALER.
+
+ Copyright (C) 2026 Taler Systems SA
+
+ TALER is free software; you can redistribute it and/or modify it under the
+ terms of the GNU Affero General Public License as published by the Free Software
+ Foundation; either version 2.1, or (at your option) any later version.
+
+ TALER is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License along with
+ TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
+
+=========================
+Taler ANPs Relay RESTful API
+=========================
+
+.. contents:: Table of Contents
+ :local:
+
+Version History
+---------------
+
+The current protocol version is **v0**.
+
+* Nothing depends on the apns relay API at this point.
+
+**Version history:**
+
+* ``v0``: Initial version.
+
+**Upcoming versions:**
+
+* None anticipated.
+
+**Ideas for future version:**
+
+* ``vXXX``: marker for features not yet targeted for release
+
+
+Introduction
+------------
+
+APNs Relay API.
+
+
+Config
+------
+
+.. http:get:: /config
+
+ Return the protocol version and configuration information about the bank.
+ This specification corresponds to ``current`` protocol being version **v0**.
+
+ **Response:**
+
+ :http:statuscode:`200 OK`:
+ Response is a `ApnsRelayConfig`.
+
+ **Details:**
+
+ .. ts:def:: ApnsRelayConfig
+
+ interface ApnsRelayConfig {
+ // Name of the API.
+ name: "taler-apns-relay";
+
+ // libtool-style representation of the Bank protocol version, see
+ // https://www.gnu.org/software/libtool/manual/html_node/Versioning.html#Versioning
+ // The format is "current:revision:age".
+ version: string;
+
+ // URN of the implementation (needed to interpret 'revision' in version).
+ implementation: string;
+ }
+
+Device Registration
+-------------------
+
+.. http:post:: /devices
+
+ Register an iOS device for recurrent wakeup.
+
+ **Request:**
+
+ .. ts:def:: DeviceRegistrationRequest
+
+ interface DeviceRegistrationRequest {
+ // Device token
+ token: string;
+ }
+
+ **Response:**
+
+ :http:statuscode:`204 No Content`:
+ The device have been registered.
+
+.. http:delete:: /devices
+
+ Register an iOS device.
+
+ **Request:**
+
+ .. ts:def:: DeviceUnregistrationRequest
+
+ interface DeviceUnregistrationRequest {
+ // Device token
+ token: string;
+ }
+
+ **Response:**
+
+ :http:statuscode:`204 No Content`:
+ The device have been registered.
+\ No newline at end of file
diff --git a/core/api-ebisync.rst b/core/api-ebisync.rst
@@ -73,6 +73,9 @@ Config
// https://www.gnu.org/software/libtool/manual/html_node/Versioning.html#Versioning
// The format is "current:revision:age".
version: string;
+
+ // URN of the implementation (needed to interpret 'revision' in version).
+ implementation: string;
// SPA display version to be used in user interfaces.
spa_version: string;
diff --git a/core/index.rst b/core/index.rst
@@ -50,6 +50,7 @@ describe the JSON objects used in our REST APIs.
api-donau
api-observability
api-ebisync
+ api-apns
.. toctree::
:hidden: