Collection d'API pour les revendeurs

L'API e2 Reseller d'IDrive® est développée sur l'architecture REST.

L'API e2 Reseller d'IDrive® accepte les corps de requête au format 'application/JSON' et renvoie des réponses au format 'application/JSON'.

Notre API utilise le mécanisme d'authentification par clé API. Vous pouvez générer la clé API depuis la section profil du compte e2 d'IDrive®.

Ajoutez la clé API générée depuis la section profil à tous les en-têtes des appels API HTTP avec la clé 'token'.

Codes de réponse HTTP :

  • 200 (Succès)
  • 500 (Erreur serveur)
  • 400 (Paramètres invalides)
  • 401 (Non autorisé)
  • 403 (Requête invalide)

Le corps de la réponse en cas d'erreur aurait la structure suivante :

                        Response (application/JSON) : { 
      error : {
         string type;
         string code;
         string message;
       }
}

Les valeurs possibles pour 'error.type' sont :

  1. api_error
  2. invalid_request_error
  3. server_error

Pour plus de détails, 'error.code' et 'error.message' expliqueraient ce qui s'est mal passé.

Cas d'erreurs courants

Voici les cas d'erreurs courants qui peuvent être retournés par toutes les API détaillées ci-dessous. Les autres cas d'erreurs seront documentés avec les API spécifiques.

  1. Erreur serveur (HTTP 500)
     
                               Response (application/JSON) : {
          error:{
                type: 'api_error',
                code: 'request_processing_failed',
                message: 'Impossible de traiter cette demande, veuillez réessayer plus tard'
                }
    }
  2. Non autorisé (HTTP 401)
     
                                  Response (application/JSON) : {
          error:{
                type: 'invalid_request_error',
                code: 'unauthorized',
                message: 'En-tête d'authentification manquant/invalide'
           }
    }
  3. Paramètres invalides (HTTP 400)
     
                                  Response (application/JSON) : {
          error:{
                type: 'invalid_request_error',
                code: 'invalid_parameters',
                message: 'Valeurs de paramètres invalides, vérifiez les erreurs pour plus de détails',
                errors: [] (tableau contenant les détails de l'erreur)
             }
    }
AUTHORIZATION Header API Key
Clé token
Valeur <VOTRE-CLÉ-API>

Les énumérations utilisées dans les API sont :

Énumérations :

Autorisations de clé d'accès :

                        {
    0: Accès en lecture,
    1: Accès en écriture,
    2: Accès en lecture/écriture
}

Opérations utilisateur

  1. Lister tous les utilisateurs

    GET
    https://api.idrivee2.com/api/reseller/v1/usersCliquer pour copierLien copié Affiche tous les utilisateurs ajoutés sous votre profil.
    Vous pouvez éventuellement filtrer les utilisateurs par e-mail à l'aide d'un paramètre de requête.

    Paramètres de requête (Optionnel) :

    string email;

    Filtre les utilisateurs par correspondance exacte de l'e-mail. Le paramètre e-mail doit être encodé en URL.

    Sortie

    L'API retourne un tableau des utilisateurs ajoutés sous votre profil.
    La structure de la réponse est la suivante :

                               struct response {
            string id;
            List users[];
    }

    struct users{
            string email;
            string first_name;
            string last_name;
            string account_creation_timestamp;
            string invite_url;
            bool is_signed_up;
            bool is_active;
            double storage_used;
            int storage_quota;
    }
  2. Remarque :
    storage_used (octets)
    storage_quota (Go) (0 : illimité sinon > 0)
    invite_url si non nulle, peut être utilisée par l'utilisateur invité pour s'inscrire

    Exemples de requêtes :

    GET /api/reseller/v1/users
    GET /api/reseller/v1/users?email=user%40example.com

    Exemple de requête Curl :

    Obtenir tous les utilisateurs :

    curl --request GET 'https://api.idrivee2.com/api/reseller/v1/users' --header 'token: <your api key>'

    Obtenir un utilisateur par e-mail :

    curl --request GET 'https://api.idrivee2.com/api/reseller/v1/users?email=user%40example.com'' --header 'token: <your api key>'
  3. Inviter un utilisateur
  4. PUT
    https://api.idrivee2.com/api/reseller/v1/inviteCliquer pour copierLien copié Cette API invite un compte utilisateur sur IDrive® e2 qui sera lié à votre compte. Cette API n'enverra pas d'e-mail, vous serez responsable du partage de l'URL avec l'utilisateur

    Entrée

    string email; 
    int quota; //optionnel

    Remarque :

    • Quota (Go) (0 pour illimité sinon >0)

    Paramètres de longueur

    • E-mail [255]

    Sortie
    En cas de succès, la réponse API (application/JSON) serait :

    { email: abc@example.com, invite_url: signup_invite_url_response }

    Cas d'erreur

    • Requête invalide (HTTP-403)
      1. L'utilisateur existe déjà et est lié à votre compte.
                                                        { 
            error:{
               type: 'invalid_request_error',
               code: 'user_signed_up',
               message: 'User already signed up'
               }
        }
      2. E-mail déjà utilisé (un compte indépendant existe et n'est pas lié à votre compte).
                                                        { 
            error:{
               type: 'invalid_request_error',
               code: 'email_already_in_use',
               message: 'Email already in use'
               }
        }
      3. Nombre maximum de sous-comptes déjà invités/inscrits.
                                                        { 
            error:{
               type: 'invalid_request_error',
               code: 'maximum_limit_reached',
               message: 'Maximum limit reached. Please contact support.
               }
        }

    Exemple de requête : Corps (application/JSON)

                                        {
        "email": "e2reseller+1,"
        "quota": 1024
    }

    Exemple de requête Curl :

                                        curl  --request PUT 'https://api.idrivee2.com/api/reseller/v1/invite' 
    --data '{
        "email": "e2reseller+1@idrivee2.com",
        "quota": 1024
    }' --header 'token: <your api key>'
  5. Créer un utilisateur
  6. PUT
    https://api.idrivee2.com/api/reseller/v1/create_userCliquer pour copierLien copié Cette API crée un compte utilisateur sur IDrive® e2 qui sera lié à votre compte.

    Entrée

                                  string email; 
    string password; //chaîne encodée en base64
    string first_name;
    string last_name; //last_name est un paramètre optionnel
    int quota;
    bool email_notification; //email_notification est un paramètre optionnel

    Remarque :

    • Quota (Go) (0 pour illimité, sinon >0)
    • Le mot de passe est une chaîne encodée en base64.
    • email_notification : si fourni et défini sur false, aucune notification par e-mail ne sera envoyée à l'adresse e-mail spécifiée.

    Paramètres de longueur

    • E-mail [255]
    • Mot de passe [100]
    • Prénom [64]
    • Nom [64]

    Sortie
    En cas de succès, la réponse de l'API (application/JSON) sera :

    { user_created: true }

    Cas d'erreur

    • Requête invalide (HTTP-403)
      1. L'utilisateur existe déjà et est lié à votre compte.
                                            { 
            error:{
                  type: 'invalid_request_error',
                  code: 'user_signed_up',
                  message : 'User already signed up'
                 }
        }
      2. E-mail déjà utilisé (un compte indépendant existe et n'est pas lié à votre compte).
                                               { 
            error:{
                  type: 'invalid_request_error',
                  code: 'email_already_in_use',
                  message: 'Email already in use'
                 }
        }

    Exemple de requête : Corps (application/JSON)

                                           {
        "email": "e2reseller+1@idrivee2.com",
        "password":"dGVzdDEyMw==",
        "first_name":"dev",
        "quota": 1024,
        "email_notification": false
    }

    Exemple de requête Curl :

                                           curl  --request PUT 'https://api.idrivee2.com/api/reseller/v1/create_user' 
    --data '{
        "email": "e2reseller+1@idrivee2.com",
        "password":"dGVzdDEyMw==",
        "first_name":"dev",
        "quota": 1024
    }' --header 'token: <your api key>'
  7. Modifier l'utilisateur
  8. POST
    https://api.idrivee2.com/api/reseller/v1/edit_userCliquer pour copierLien copié Cette API vous permet de mettre à jour un compte utilisateur existant lié à votre compte revendeur.

    Entrée

    string email;         // requis
    int quota;        // 0 = illimité, >0 = Go
    bool email_notification; //optionnel

    Paramètres

    • email (string, requis)
      Adresse e-mail de l'utilisateur à mettre à jour
    • quota (int, optionnel)
    • Quota de stockage en Go
      Quota (Go) (0 pour illimité, sinon >0)
    • email_notification (bool, optionnel)
      Si défini sur false, les notifications par e-mail ne seront pas envoyées à l'utilisateur

    Sortie
    En cas de succès, la réponse de l'API (application/JSON) sera :

    { user_updated: true }

    Cas d'erreur

    • Requête invalide (HTTP-403)
                                          { 
          error:{
                type: 'invalid_request_error',
                code: 'account_non_existant',
                message : "Account with this email does not exist'
               }
      }
    • Non autorisé (tentative de mise à jour invalide)
                                             { 
          error:{
                type: 'invalid_request_error',
                code: 'not_allowed',
                message: 'This operation is not allowed. Please contact support.'
               }
      }

    Exemple de requête : Corps (application/JSON)

                                           {
        "email": "shane@idrive.com",
        "quota": 12,
        "email_notification": true
    }

    Exemple de requête Curl :

                                             curl --request POST 
    'https://api.idrivee2.com/api/reseller/v1/edit_user' \
    --header 'Content-Type: application/json' \
    --header 'token: <your_api_key>' \
    --data '{
       "email":"shane@idrive.com",
       "quota":"12",
       "email_notification": true
    }'

    Remarque :

    • email_notification ne peut être modifié que pour les utilisateurs inscrits et les utilisateurs non gérés
    • La mise à jour de email_notification pour les utilisateurs gérés ou non inscrits retournera une erreur not_allowed
    • quota peut être mis à jour pour tous les utilisateurs
  9. Désactiver l'utilisateur
  10. POST
    https://api.idrivee2.com/api/reseller/v1/disable_userCliquer pour copierLien copié Cette API désactive le compte utilisateur. Les utilisateurs ne pourront pas se connecter, accéder aux données ni effectuer d'opérations.

    Entrée

    string email;

    Paramètres de longueur

    • E-mail [255]

    Précondition

    • Utilisateur inscrit.
    • Compte activé.

    Sortie
    En cas de succès, la réponse de l'API (application/JSON) sera :

    { user_disabled : true }

    Cas d'erreur

    • Requête invalide (HTTP 403)
      1. Compte déjà désactivé.
                                                           error:{ 
               type: 'invalid_request_error',
               code: 'user_account_already_disabled',
               message: 'Account already disabled for the user'
               }
        }
      2. Le compte n'existe pas.
                                                        error:{ 
               type: 'invalid_request_error',
               code: 'account_non_existant',
               message: 'Account with this email does not exist'
               }
        }

    Exemple de requête : Corps (application/JSON)

                                           {
        "email":"e2reseller+1"
    }

    Exemple de requête Curl :

                                           curl --request POST 'https://api.idrivee2.com/api/reseller/v1/disable_user' 
    --data '{
        "email":"e2reseller+1@idrivee2.com"
    }'
  11. Activer l'utilisateur
  12. POST
    https://api.idrivee2.com/api/reseller/v1/enable_userCliquer pour copierLien copié Cette API réactive les comptes utilisateurs désactivés. Les utilisateurs peuvent se connecter, accéder aux données et effectuer des opérations normales.

    Entrée

    string email;

    Paramètres de longueur

    • Email [255]

    Précondition

    • L'utilisateur s'est inscrit/créé.
    • Le compte utilisateur a été désactivé précédemment.

    Sortie
    En cas de succès, la réponse API (application/JSON) sera :

    { user_enabled : true }

    Cas d'erreur

    • Requête invalide (HTTP 403)
      1. Le compte n'existe pas.
                                                           error:{ 
               type: 'invalid_request_error',
               code: 'account_non_existant',
               message: 'Account with this email does not exist'
               }
        }
      2. Le compte est déjà activé.
                                                        error:{ 
               type: 'invalid_request_error',
               code: 'user_account_already_enabled',
               message: 'Account already enabled for the user'
               }
        }

    Exemple de requête : Corps (application/JSON)

                                          {
        "email":"e2reseller+1"
    }

    Exemple de requête Curl :

                                           curl  --request POST 'https://api.idrivee2.com/api/reseller/v1/enable_user' 
    --data '{
        "email":"e2reseller+1@idrivee2.com"
    }' --header 'token: <your api key>'
  13. Supprimer l'utilisateur
  14. POST
    https://api.idrivee2.com/api/reseller/v1/remove_userCliquer pour copierLien copié Cette API supprimera définitivement les utilisateurs d'IDrive® e2.

    Remarque : Les données de l'utilisateur seront perdues définitivement lors de cette opération.

    Entrée

    string email;

    Paramètres de longueur

    • Email [255]

    Précondition

    • L'utilisateur doit être désactivé.

    Sortie
    En cas de succès, la réponse API (JSON) sera :

    { user_removed : true }
    Cas d'erreur

    • Requête invalide (HTTP 403)
      1. Le compte n'existe pas.
                                                           {
              error:{
                     type: 'invalid_request_error',
                     code: 'account_non_existant',
                     message:'Account with this email does not exist'
                    }
        }
      2. Le compte n'est pas désactivé.
                                                              {
              error:{
                     type: 'invalid_request_error',
                     code: 'user_account_not_disabled',
                     message: 'User account not disabled'
                    }
        }

    Exemple de requête : Corps (application/JSON)

                                             {
        "email":"e2reseller+1"
    }

    Exemple de requête Curl :

                                              curl  --request POST 'https://api.idrivee2.com/api/reseller/v1/remove_user' 
    --data '{
        "email":"e2reseller+1"
    }' --header 'token: <your api key>'
  15. Annuler l'invitation
  16. POST
    https://api.idrivee2.com/api/reseller/v1/invite/cancelCliquer pour copierLien copié Cette API annulera le compte utilisateur invité sur IDrive® e2 qui sera lié à votre compte.

    Entrée

    string email;

    Paramètres de longueur

    • Email [255]

    Sortie
    En cas de succès, la réponse de l'API (application/JSON) serait :

    { user_removed : true }
    Cas d'erreur

    1. Invitation non supprimée
      Se produit lorsque l'adresse e-mail fournie est invalide, déjà inscrite ou non associée au compte du revendeur.
      Réponse
                                                         {
          "user_removed": false
      }
    2. Échec du traitement de la requête
      Se produit lorsque la requête API est invalide ou ne peut pas être traitée.
      Réponse
                                                           {
          "message": "Request processing failed"
      }

    Exemple de requête Curl :

                                              curl  --request POST 'https://api.idrivee2.com/api/reseller/v1/invite/cancel' 
    --data '{
        "email":"e2reseller+1"
    }' --header 'token: <your api key>'
  17. Réinitialisation du mot de passe
  18. Obtenir le lien de réinitialisation du mot de passe du sous-utilisateur

    POST
    https://api.idrivee2.com/api/reseller/v1/subuser/reset_password_linkClick to copyLink copied This API generates a password reset link for a reseller subuser. The link is returned in the API response with 1-hour token expiry.

    Entrée

    string email;

    Remarque:
    "email" - l'adresse e-mail du sous-utilisateur pour lequel vous souhaitez générer le lien de réinitialisation du mot de passe. Le sous-utilisateur doit appartenir au revendeur demandeur et être inscrit, mais non géré.

    Sortie
    En cas de succès, la réponse de l'API (application/JSON) sera :

                                          { 
        "reset_link": "https://domain.com/change_password?link=&expire_session=true&type=0",
        "email": "subuser@example.com"
    }

    Paramètres de longueur

    • Email [255]
    Cas d'erreur spécifiques

    1. Si le sous-utilisateur n'existe pas
       
                                                         Réponse (application/JSON) : {
            error:{
                  type: 'invalid_request_error',
                  code: 'account_non_existant',
                  message: 'Account with this email does not exist'
               }
      }
    2. Si le sous-utilisateur n'est pas inscrit
       
                                                         Réponse (application/JSON) : {
            error:{
                  type: 'invalid_request_error',
                  code: 'user_not_signed_up',
                  message: 'Subuser is not signed up'
               }
      }
    3. Si le sous-utilisateur est géré
       
                                                         Réponse (application/JSON) : {
            error:{
                  type: 'invalid_request_error',
                  code: 'not_allowed',
                  message: 'This operation is not allowed. Please contact support.',
               }
      }

    Erreur d'authentification pour une clé API invalide

     
                                                       Réponse (application/JSON) : {
          error:{
                type: 'authentication_error',
                code: 'unauthorized',
                message: 'Authentication header missing/invalid',
             }
    }

    Exemple de requête : corps (application/JSON)

                                                {
        "email":"subuser@example.com",
    }

    Exemple de requête Curl :

                                              curl  --request POST 'https://api.idrivee2.com/api/reseller/v1/subuser/reset_password_link' 
    --data '{
        "email":"subuser@example.com"
    }' --header 'token: <your api key>'
  19. Obtenir l'utilisation du stockage
  20. POST
    https://api.idrivee2.com/api/reseller/v1/usage_statsClick to copyLink copied Cette API renvoie le tableau d'utilisation d'IDrive® e2 pour l'utilisateur fourni.

    Entrée

                                              {
        string email;
        string date_from;
        string date_to;
    }

    date_from(ISO8601)(date de début)
    date_to(ISO8601) (date de fin)
    Paramètres de longueur

    • Email [255]

    Préconditions

    • L'utilisateur doit être inscrit.

    Sortie
    Tableau de structures usage_stats

                                                 struct usage_stats{ 
           double downloads;
           double uploads;
           double disk_used;
           string date;
    }

    downloads, uploads, disk_used sont en octets
    Cas d'erreur

    • Requête invalide (HTTP 403)
      1. Le compte n'existe pas.
                                                              {
             error:{
                   type: 'invalid_request_error',
                   code: 'account_non_existant',
                   message: 'Le compte avec cet e-mail n'existe pas'
                  }
        }

    Exemple de requête : corps (application/JSON)

                                                {
        "email":"e2reseller+1",
        "date_to":"2022-08-31",
        "date_from":"2022-08-01"
    }

    Exemple de requête curl :

                                                 curl  --request POST 'https://api.idrivee2.com/api/reseller/v1/usage_stats' 
    --data '{
        "email": "DEV-TEST+1@idrivee2.com",
        "date_to":"2022-08-31",
        "date_from":"2022-08-01"
    }' --header 'token: <your api key>'
  21. Obtenir les journaux d'activité
  22. POST
    https://api.idrivee2.com/api/reseller/v1/user_activity_historyClick to copyLink copied Cette API récupérera les journaux d'activité d'un utilisateur pour une plage de dates.

    Entrée

                                              string email;
    string start_date;
    string end_date;
    int page_no;

    Paramètres de longueur

    • Email [255]

    Note

    start_date (ISO8601) - Date de début
    end_date (ISO8601) - Date de fin
    page_no - L'API est paginée, chaque page contenant 200 enregistrements
    et page_no commence à 1

    Sortie
    En cas de succès, la réponse de l'API (application/JSON) sera :

                                               struct response {
            List[] logs;
            struct pagination;
        }

        struct logs {
            string timestamp;
            string description;
            string ip;
        }

        struct pagination {
            int total_records;
            int page_no;
            int records_per_page;
        }

    Cas d'erreur spécifique

    1. Le compte n'existe pas.
                                                   Response (application/JSON) : { 
          error: {
              type: 'invalid_request_error',
              code: 'account_non_existant',
              message: 'Le compte avec cet e-mail n'existe pas'
          }
      }

    Exemple de requête : corps (application/JSON)

                                                    { 
        "email": "abc1@example.com",
        "start_date": "2025-04-05",
        "end_date": "2025-05-28",
        "page_no": 1
    }

    Exemple de requête curl :

                                              curl --request POST 'https://api.idrivee2.com/api/reseller/v1/user_activity_history'
    --data '{
        "email": "abc1@example.com",
        "start_date": "2025-04-05",
        "end_date": "2025-05-28",
        "page_no": 1
    }' --header 'token: <your api key>'

Opérations de stockage

  1. Lister les régions

    GET
    https://api.idrivee2.com/api/reseller/v1/regionsCliquer pour copierLien copié Cette API renvoie un tableau de régions pour IDrive® e2.

    Sortie

    struct regions{ 
            string region_key;
            string region_name;
            string country;
            string region_code;
            bool active;
            bool hdd_storage;
            string cors;
    }

    Remarque : Seules les régions actives peuvent être activées pour l'utilisateur.

    Exemple de requête : Lister les régions

    curl --request GET 'https://api.idrivee2.com/api/reseller/v1/regions' --header 'token: <your api key>'
                                     
                                  
  2. Activer une région pour l'utilisateur
  3. POST
    https://api.idrivee2.com/api/reseller/v1/enable_user_regionCliquer pour copierLien copié Cette API active les régions pour l'utilisateur.

    Entrée

    {
         string email;
         string region;
    }

    region : region_key provenant de l'API de liste des régions. ex. "TX", "LDN", etc.

    L'API retourne le DN de stockage (nom de domaine) pour la région activée, permettant d'accéder au stockage utilisateur via la clé d'accès et la clé secrète.

    Longueur des paramètres

    • Email [255]
    • Region[5]

    Précondition

    • Compte utilisateur existant.
    • La région ne doit pas déjà être activée pour l'utilisateur.

    Sortie

    En cas de succès, la réponse de l'API (application/JSON) sera :

    { storage_added: true, storage_dn: /*user_storage_dns*/ }

    Cas d'erreur

    • Requête invalide (HTTP 403)
      1. Le compte n'existe pas.
                                               {
            error:{
                  type: 'invalid_request_error',
                  code: 'account_non_existant',
                  message: 'Account with this email does not exist'
            }
        }
      2. La région de stockage est déjà activée pour l'utilisateur.
                                               {
            error:{
                  type: 'invalid_request_error',
                  code: 'region_already_enabled',
                  message: 'Storage region already enabled for user'
            }
        }
      3. Utilisateur désactivé.
                                               {
            error:{
                  type: 'invalid_request_error',
                  code: 'user_disabled',
                  message: 'User Disabled'
            }
        }
      4. Le paiement pour votre compte a échoué.
                                               {
            error:{
                  type: 'invalid_request_error',
                  code: 'payment_failed',
                  message: 'Account expired please update payment info'
            }
        }

    Exemple de requête : Corps (application/JSON)

                               {
        "email":"e2reseller+1",
        "region": "NY"
    }

    Exemple de requête curl :

                                curl  --request POST 'https://api.idrivee2.com/api/reseller/v1/enable_user_region'
    --data '{
      "email":"e2reseller+1",
      "region": "NY"
    }' --header 'token: <your api key>'
  4. Lister les régions activées de l'utilisateur

    POST
    https://api.idrivee2.com/api/reseller/v1/list_user_regionsCliquer pour copierLien copié Cette API liste toutes les régions activées de l'utilisateur.

    Entrée

    {
                                       
    string email;
    }

    Longueur des paramètres

    • Email [255]

    Précondition

    • Compte utilisateur existant.

    Sortie

    En cas de succès, la réponse de l'API (application/JSON) sera :

                                     { 
      user_regions: /*lists user enabled regions*/
    }

    Cas d'erreur

    • Requête invalide (HTTP 403)
      1. Le compte n'existe pas.
                                                  {
            error:{
                  type: 'invalid_request_error',
                  code: 'account_non_existant',
                  message: 'Account with this email does not exist'
            }
        }
      2. Utilisateur désactivé.
                                                  {
            error:{
                  type: 'invalid_request_error',
                  code: 'user_disabled',
                  message: 'User Disabled'
            }
        }

    Exemple de requête : Corps (application/JSON)

                                        {
      "email":""
    }

    Exemple de requête curl :

    curl --request POST 'https://api.idrivee2.com/api/reseller/v1/list_user_regions'
    --data '{
    "email":""
    }' --header 'token: <your api key>'
  5. Supprimer la région assignée à l'utilisateur
  6. POST
    https://api.idrivee2.com/api/reseller/v1/remove_user_regionCliquer pour copierLien copié Cette API supprime une région assignée à l'utilisateur.

    Entrée

    { 
        string email;
        string storage_dn;
    }

    'storage_dn' est le domaine de stockage assigné à l'utilisateur que vous souhaitez supprimer.

    Longueur des paramètres

    • Email [255]
    • Storage_dn[128]

    Précondition

    • Utilisateur inscrit.
    • Le stockage doit être assigné à l'utilisateur.

    Veuillez noter que cette action entraînera la suppression des données de l'utilisateur.

    L'API vous permettra de supprimer la région utilisateur si

    L'utilisateur est dans un état désactivé

    1. Aucun compartiment créé par l'utilisateur

    Sortie

    En cas de succès, l'API retournera la réponse (JSON) :

    {removed : true}

    Cas d'erreur

    • Requête invalide (HTTP 403)
      1. Le compte n'existe pas.
                                                  {
            error:{
                  type: 'invalid_request_error',
                  code: 'account_non_existant',
                  message: 'Account with this email does not exist'
            }
        }
      2. Le stockage n'existe pas.
                                                  {
            error:{
                  type: 'invalid_request_error',
                  code: 'storage_non_existant',
                  message: 'Storage does not exists'
            }
        }
      3. Le stockage n'est pas vide.
                                                  {
            error:{
                  type: 'invalid_request_error',
                  code: 'storage_not_empty',
                  message: 'Storage not empty. To avoid user data loss, this request will not be
                  processed. To remove this storage, please disable the user first and try again'
            }
        }

    Exemple de requête : Corps (application/JSON)

                                  {
        "email":"e2reseller+1",
        "storage_dn": "abcd.test@idrivee2.com"
    }

    Exemple de requête curl :

    							  curl  --request POST 'https://api.idrivee2.com/api/reseller/v1/remove_user_region'
    --data '{
       "email":"e2reseller+1",
       "storage_dn": "abcd.test@idrivee2.com"
    }' --header 'token: <your api key>'
  7. Mettre à jour les paramètres cors pour la région de l'utilisateur
  8. Méthode : POST
    URL :  https://api.idrivee2.com/api/reseller/v1/storage/set_corsCliquer pour copierLien copié Cette API mettra à jour les paramètres cors pour une région.

    Type de contenu : application/json

    Clé API d'en-tête :

    'token': <your token>

    Paramètre requis :

                                        
                                        body : { 
             "email": "test@test.com",
             "storage_dn": "cxan.tx21.edgedrive.com",
             "cors": "test1.com,test2.com,test3.com",
          }

    Paramètres requis : email, storage_dn, cors
    Limites sur la longueur des paramètres : email[255], storage_dn[128], cors (jusqu'à 10 domaines séparés par des virgules)
    REMARQUE : Pour tous les cors, vous pouvez définir cors sur "*" qui est également le cors par défaut sur toutes les régions

    Sortie

    En cas de succès, l'API retournerait la réponse (application/JSON) :

                                        {
    cors_updated: true
    }

    Cas d'erreur

    • Requête invalide (HTTP 403)
      1. Le compte n'existe pas.
                                                     {
            error:{
                  type: 'invalid_request_error',
                  code: 'account_non_existant',
                  message: 'Account with this email does not exist'
            }
        }
      2. Le stockage n'existe pas.
                                                     {
            error:{
                  type: 'invalid_request_error',
                  code: 'storage_non_existant',
                  message: 'Storage does not exists'
            }
        }
      3. Paramètres cors invalides.
                                                     {
            error:{
                  type: 'invalid_request_error',
                  code: 'invalid_cors_policy',
                  message: 'The cors policy is invalid' / 'Maximum 10 cors are allowed'
            }
        }

    Exemple de requête curl :

                                        curl --location --request POST 
    https://api.idrivee2.com/api/reseller/v1/storage/set_cors\
    --header 'token: <your token>' \
    --header 'Content-Type: application/json' \
    --data-raw '{
       "email":"test@test.com",
       "storage_dn":"cxan.tx21.edgedrive.com",
       "cors":"test1.com,test2.com,test3.com",
    }'
  9. Ajouter une clé d'accès
  10. POST
    https://api.idrivee2.com/api/reseller/v1/create_access_keyCliquer pour copierLien copié Cette API crée une clé d'accès pour accéder au stockage et retourne l'identifiant de la clé d'accès et la clé secrète.

    Entrée

    { 
        string email;
        string storage_dn;
        string name;
        int permissions;
        array buckets; //buckets est un paramètre facultatif
    }

    Compartiments : Fournissez une liste de noms de compartiments pour créer une clé d'accès pour des compartiments spécifiques afin d'accéder au stockage. La saisie de 'buckets' n'est pas requise si la clé d'accès est destinée à tous les compartiments.

    Précondition

    • Utilisateur inscrit/créé et activé.
    • DN de stockage assigné à l'utilisateur concerné.
    • Les compartiments ne doivent pas être vides s'ils sont fournis.

    Longueur des paramètres

    • Email [255]
    • storage_dn[128]
    • Name[64]

    Énumération des permissions de la clé d'accès :

    { 
        0: Accès en lecture
        1: Accès en écriture
        2: Accès en lecture/écriture
    }

    Sortie

    En cas de succès, l'API retournerait la réponse (application/JSON) :

                                  {
    created: true,
            data: {
                    access_key: /access key/
                    secret_key: /* secret key*/
            }
    }

    Cas d'erreur

    • Requête invalide (HTTP 403)
      1. Le compte n'existe pas.
                                               {
            error:{
                  type: 'invalid_request_error',
                  code: 'account_non_existant',
                  message: 'Account with this email does not exist'
            }
        }
      2. Le stockage n'existe pas.
                                               {
            error:{
                  type: 'invalid_request_error',
                  code: 'storage_non_existant',
                  message: 'Storage does not exists'
            }
        }
      3. Utilisateur désactivé.
                                               {
            error:{
                  type: 'invalid_request_error',
                  code: 'user_disabled',
                  message: 'User Disabled'
            }
        }

    Exemple de requête : Corps (application/JSON)

                               {
        "email":"e2reseller+1",
        "storage_dn":"abcd.test@idrivee2.com",
        "name":"myaccesskeyname",
        "permissions":0
    }

    Exemple de requête curl :

                                curl  --request POST 'https://api.idrivee2.com/api/reseller/v1/create_access_key'
    --data '{
       "email":"e2reseller+1",
       "storage_dn":"abcd.test@idrivee2.com",
       "name":"myaccesskeyname",
       "permissions":0
    }' --header 'token: <your api key>'
  11. Lister les clés d'accès
  12. POST
    https://api.idrivee2.com/api/reseller/v1/list_access_keysCliquer pour copierLien copié Cette API liste toutes les clés d'accès pour le stockage.

    Entrée

    { 
        string email;
        string storage_dn;
    }

    'storage_dn' est le domaine de stockage assigné à l'utilisateur dont vous souhaitez lister toutes les clés d'accès

    Longueur des paramètres

    • email [255]
    • storage_dn[128]

    Précondition

    • Utilisateur inscrit/créé et activé.
    • Stockage assigné à l'utilisateur.

    Sortie

    En cas de succès, l'API retournerait la réponse (application/JSON) :

                                  {
      'storage_dn' : /*user_storage_dns*/,
      'access_keys' : [
          {
            'key_id' : /*key_id*/,
            'name' : /*key_name*/,
            'creation_date' : /*date_of_key_creation*/,
            'description' : /*description_of_access_key_permissions*/
          },
          {...},
          …
        ]
    }

    Cas d'erreur

    • Requête invalide (HTTP 403)
      1. Le compte n'existe pas.
                                            {
            error:{
                  type: 'invalid_request_error',
                  code: 'account_non_existant',
                  message: 'Account with this email does not exist'
            }
        }
      2. Le stockage n'existe pas.
                                            {
            error:{
                  type: 'invalid_request_error',
                  code: 'storage_non_existant',
                  message: 'Storage does not exist'
            }
        }
      3. Utilisateur désactivé.
                                            {
            error:{
                  type: 'invalid_request_error',
                  code: 'user_disabled',
                  message: 'User Disabled '
            }
        }

    Exemple de requête : Corps (application/JSON)

                               {
        "email" : "e2reseller+1@idrivee2.com",
        "storage_dn" : "abcd.test.idrivee2.com"
    }

    Exemple de requête curl :

                             curl --request POST 'https://api.idrivee2.com/api/reseller/v1/list_access_keys'
    --data '{
        "email":"e2reseller+1",
        "storage_dn":"abcd.test.idrivee2.com",
    }' --header 'token:<your api key>'
  13. Supprimer la clé d'accès
  14. POST
    https://api.idrivee2.com/api/reseller/v1/remove_access_keyClick to copyLink copied Cette API supprime la clé d'accès pour le stockage.

    Entrée

    { 
        string email;
        string storage_dn;
        string access_key;
    }

    Paramètres de longueur

    • Email [255]
    • storage_dn[128]
    • access_key[128]

    Précondition

    • Utilisateur inscrit/créé et activé.
    • Stockage attribué à l'utilisateur.
    • La clé d'accès existe pour le stockage.

    Sortie

    En cas de succès, l'API retourne une réponse (application/JSON) :

    {removed : true}

    Cas d'erreur

    • Requête invalide (HTTP 403)
      1. Le compte n'existe pas.
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'account_non_existant',
                  message: 'Account with this email does not exist'
            }
        }
      2. Le stockage n'existe pas.
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'storage_non_existant',
                  message: 'Storage does not exists'
            }
        }
      3. Utilisateur désactivé.
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'user_disabled',
                  message: 'User Disabled'
            }
        }
      4. La clé d'accès n'existe pas.
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'access_key_non_existant',
                  message: 'Access key does not exist, please provide a valid access key'
            }
        }

    Exemple de requête : Corps (application/JSON)

                         {
        "email":"e2reseller+1",
        "storage_dn":"abcd.test@idrivee2.com",
        "access_key":"<ACCESS-KEY-ID>"
    }

    Exemple de requête Curl :

                          curl --location --request POST 'https://api.idrivee2.com/api/reseller/v1/remove_access_key'
    --data '{
        "email":"e2reseller+1",
        "storage_dn":"abcd.test@idrivee2.com",
        "access_key":"<votre clé d'accès>"
    }' --header 'token: <votre clé API>'

Opérations de Marque Blanche

  1. Ajouter des CNAMEs

    POST
    https://api.idrivee2.com/api/reseller/v1/storage/cname/addCliquer pour copierLien copié Cette API ajoute un CNAME pour le DNS de stockage spécifié.

    Entrée

    { 
        string email;
        string storage_dn;
        string cname;
        string public_key;
        string private_key;
        string file_index;
        string passphrase; // facultatif, doit être envoyé uniquement en cas de clé privée chiffrée
    }

    'storage_dn' est le domaine de stockage attribué à l'utilisateur.

    'CNAME' est le nouveau CNAME à attribuer.

    'file_index' est un paramètre facultatif.

    Paramètres de longueur

    • email[255]
    • storage_dn[128]
    • CNAME[128]
    • public_key[10000]
    • private_key[6000]
    • file_index[64]
    • passphrase[255]

    Précondition

    • Utilisateur inscrit/créé et activé.
    • Stockage attribué à l'utilisateur.
    • Le storage_dn doit être le point de terminaison du locataire obtenu depuis l'API Lister les régions activées de l'utilisateur.

    Sortie

    En cas de succès, l'API retourne une réponse (application/JSON) :

    { 'cname_added' : true }

    Cas d'erreur

    • Requête invalide (HTTP 403)
      1. Le compte n'existe pas.
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'account_non_existant',
                  message: 'Account with this email does not exist'
            }
        }
      2. Le CNAME ne peut pas être utilisé
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'request_processing_failed',
                  message: 'this CNAME cannot be used, please try changing your CNAME'
            }
        }
      3. Le domaine de stockage n'existe pas - Si storage_dns est incorrect
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'request_processing_failed',
                  message: 'Unable to retrieve storage info for given storage_dn'
            }
        }
      4. Si le CNAME est déjà configuré
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'request_processing_failed',
                  message: 'CNAME already configure'
            }
        }
      5. CNAME ou certificats invalides - Si les clés publiques/privées sont incorrectes
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'request_processing_failed',
                  message: 'Could not verify CNAME or certificates. Please try again'
            }
        }
    • Erreur serveur (HTTP 500)
      1. Impossible de traiter cette requête
                                         {
            error:{
                  type: 'api_error',
                  code: 'request_processing_failed',
                  message: 'Unable to process this request, please try again later'
            }
        }
      2. Données introuvables pour le DNS donné
                                         {
            error:{
                  type: 'api_error',
                  code: 'request_processing_failed',
                  message: 'data not found for given dns'
            }
        }

    Exemple de requête : Corps (application/JSON)

    { 
        "email": "e2reseller+1@idrivee2.com",
        "storage_dn": "abcd.test.idrivee2.com",
        "cname" : "example.mycloud.io",
        "public_key" : "...",
        "private_key" : "...",
        "file_index" : "1"
    }

    Exemple de requête Curl :

    curl --request POST 'https://api.idrivee2.com/api/reseller/v1/storage/cname'
    --data'{
        "email": "e2reseller+1@idrivee2.com",
        "storage_dn": "abcd.test.idrivee2.com",
        "cname" : "example.mycloud.io",
        "public_key" : "...",
        "private_key" : "...",
        "file_index" : "1"
    }'--header 'token:<votre clé api>'
  2. Lister les CNAMEs

    POST
    https://api.idrivee2.com/api/reseller/v1/storage/cnameCliquer pour copierLien copié Cette API liste tous les CNAMEs pour le stockage.

    Entrée

    { 
        string email;
        string storage_dn;
    }

    'storage_dn' est le domaine de stockage attribué à l'utilisateur dont vous souhaitez lister tous les CNAMEs

    Paramètres de longueur

    • email[255]
    • storage_dn[128]

    Précondition

    • Utilisateur inscrit/créé et activé.
    • Stockage attribué à l'utilisateur.
    • Le storage_dn doit être le point de terminaison du locataire obtenu depuis l'API Lister les régions activées de l'utilisateur.

    Sortie

    En cas de succès, l'API retourne une réponse (application/JSON) :

    {
        'cname_list' : [
             {
                  file_index: /*file_index*/,
                  cname: /*cname*/,
                  certificate_info: /*isValidSsl.certInfo*/
                  creation_date: /*creation_date*/
             }

             {...},
         ]
    }

    Cas d'erreur

    • Requête invalide (HTTP 403)
      1. Le compte n'existe pas.
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'account_non_existant',
                  message: 'Account with this email does not exist'
            }
        }
      2. Utilisateur désactivé.
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'user_disabled',
                  message: 'User Disabled'
            }
        }
    • Erreur serveur (HTTP 500)
      1. Impossible de traiter cette requête
                                         {
            error:{
                  type: 'api_error',
                  code: 'request_processing_failed',
                  message: 'Unable to process this request, please try again later'
            }
        }
      2. Données introuvables pour le DNS donné
                                         {
            error:{
                  type: 'api_error',
                  code: 'request_processing_failed',
                  message: 'data not found for given dns'
            }
        }

    Exemple de requête : Corps (application/JSON)

    { 
        "email": "e2reseller+1@idrivee2.com",
        "storage_dn": "abcd.test.idrivee2.com",
    }

    Exemple de requête Curl :

    curl --request POST 'https://api.idrivee2.com/api/reseller/v1/storage/cname'
    --data'{
        email: "e2reseller+1@idrivee2.com",
        storage_dn: abcd.test.idrivee2.com,
    }'--header 'token:<votre clé api>'
  3. Mettre à jour les CNAMEs

    POST
    https://api.idrivee2.com/api/reseller/v1/storage/cname/updateCliquer pour copierLien copié Cette API met à jour le CNAME pour le DNS de stockage spécifié.

    Entrée

    { 
        string region_key;
        string email;
        string storage_dn;
        string cname;
        string public_key;
        string private_key;
        string file_index;
        string passphrase; // optionnel, à envoyer uniquement en cas de clé privée chiffrée
    }

    'storage_dn' est le domaine de stockage assigné à l'utilisateur.

    'CNAME' est le nouveau CNAME qui doit remplacer le CNAME existant.

    'file_index est un paramètre optionnel.

    Paramètres de longueur

    • email[255]
    • storage_dn[128]
    • CNAME[128]
    • public_key[10000]
    • private_key[6000]
    • file_index[64]
    • passphrase[255]

    Précondition

    • Utilisateur inscrit/créé et activé.
    • Stockage assigné à l'utilisateur.
    • Le storage_dn doit être le point de terminaison locataire obtenu depuis l'API Lister les régions activées de l'utilisateur.

    Sortie

    En cas de succès, l'API retournera une réponse (application/JSON) :

    { 'cname_updated' : true }

    Cas d'erreur

    • Requête invalide (HTTP 403)
      1. Le compte n'existe pas.
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'account_non_existant',
                  message: 'Account with this email does not exist'
            }
        }
      2. Le CNAME ne peut pas être utilisé si le CNAME est un domaine idrive
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'request_processing_failed',
                  message: 'this CNAME cannot be used, please try changing your CNAME'
            }
        }
      3. Le domaine de stockage n'existe pas si storage_dns est incorrect
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'request_processing_failed',
                  message: 'Unable to retrieve storage info for given storage_dn'
            }
        }
      4. Si storage_dn est incorrect
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'request_processing_failed',
                  message: 'Unable to retrieve storage info for given storage_dn'
            }
        }
      5. Le serveur de stockage est inaccessible, le domaine n'existe pas si storage_dns est indisponible
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'request_processing_failed',
                  message: 'Storage server cannot be reached right now, please try again later'
            }
        }
      6. Si le CNAME est déjà configuré
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'request_processing_failed',
                  message: 'CNAME already configured'
            }
        }
      7. CNAME ou certificats invalides si les clés publiques/privées sont incorrectes
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'request_processing_failed',
                  message: 'Could not verify CNAME or certificates. Please try again'
            }
        }
      8. Utilisateur désactivé
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'user_disabled',
                  message: 'User Disabled'
            }
        }
    • Erreur serveur (HTTP 500)
      1. Impossible de traiter cette requête
                                         {
            error:{
                  type: 'api_error',
                  code: 'request_processing_failed',
                  message: 'Unable to process this request, please try again later'
            }
        }
      2. Données introuvables pour le dns donné
                                         {
            error:{
                  type: 'api_error',
                  code: 'request_processing_failed',
                  message: 'data not found for given dns'
            }
        }

    Exemple de requête : Corps (application/JSON)

    { 
        "email": "e2reseller+1@idrivee2.com",
        "storage_dn": "abcd.test.idrivee2.com",
        "cname" : "example.mycloud.io",
        "public_key" : "...",
        "private_key" : "...",
        "file_index" : "1"
    }

    Exemple de requête Curl :

    curl --request POST 'https://api.idrivee2.com/api/reseller/v1/storage/cname/update
    --data'{
        "email": "e2reseller+1@idrivee2.com",
        "storage_dn": "abcd.test.idrivee2.com",
        "cname" : "example.mycloud.io",
        "public_key" : "...",
        "private_key" : "...",
        "file_index" : "1"
    }'--header 'token:<votre clé api>'
  4. Supprimer des CNAMEs

    POST
    https://api.idrivee2.com/api/reseller/v1/storage/cname/removeCliquer pour copierLien copié Cette API supprime le CNAME pour le dns de stockage.

    Entrée

    { 
        string email;
        string storage_dn;
        string cname;
    }

    'storage_dn' est le domaine de stockage attribué à l'utilisateur.

    CNAME : fournir le CNAME qui doit être supprimé.

    Paramètres de longueur

    • email[255]
    • storage_dn[128]
    • CNAME[128]

    Précondition

    • Utilisateur inscrit/créé et activé.
    • Stockage attribué à l'utilisateur.
    • Le CNAME doit être mappé au domaine de stockage.
    • Le storage_dn doit être le point de terminaison du locataire obtenu depuis l'API Lister les régions activées de l'utilisateur.

    Sortie

    En cas de succès, l'API retourne une réponse (application/JSON) :

    { 'cname_removed' : true }

    Cas d'erreur

    • Requête invalide (HTTP 403)
      1. Le compte n'existe pas.
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'account_non_existant',
                  message: 'Account with this email does not exist'
            }
        }
      2. Utilisateur désactivé
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'user_disabled',
                  message: 'User Disabled'
            }
        }
      3. Le CNAME ne peut pas être utilisé
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'request_processing_failed',
                  message: 'this CNAME cannot be used, please try changing your CNAME'
            }
        }
      4. Le domaine de stockage n'existe pas
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'request_processing_failed',
                  message: 'Unable to retrieve storage info for given storage_dn'
            }
        }
      5. Le serveur de stockage est inaccessible
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'request_processing_failed',
                  message: 'Storage server cannot be reached right now, please try again later'
            }
        }
      6. Le CNAME n'existe pas pour le domaine de stockage
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'request_processing_failed',
                  message: 'cannot get cname details'
            }
        }
      7. Échec de la suppression du CNAME - Impossible de supprimer le CNAME
                                         {
            error:{
                  type: 'api_error',
                  code: 'request_processing_failed',
                  message: 'Unable to process this request, please try again later'
            }
        }
    • Erreur serveur (HTTP 500)
      1. Impossible de traiter cette demande
                                         {
            error:{
                  type: 'api_error',
                  code: 'request_processing_failed',
                  message: 'Unable to process this request, please try again later'
            }
        }
      2. Données introuvables pour le DNS donné
                                         {
            error:{
                  type: 'api_error',
                  code: 'request_processing_failed',
                  message: 'data not found for given dns'
            }
        }

    Exemple de requête : Corps (application/JSON)

    { 
        "email": "e2reseller+1@idrivee2.com",
        "storage_dn": "abcd.test.idrivee2.com",
        "cname" : "example.mycloud.io"
    }

    Exemple de requête Curl :

    curl --request POST 'https://api.idrivee2.com/api/reseller/v1/storage/cname/remove
    --data'{
        "email": "e2reseller+1@idrivee2.com",
        "storage_dn": "abcd.test.idrivee2.com",
        "cname" : "example.mycloud.io"
    }'--header 'token:<votre clé API>'

Opérations sur les sous-utilisateurs

L'API sous-utilisateur IDrive® e2 est prise en charge pour les comptes revendeurs. Un administrateur revendeur peut invoquer ces API au nom de tout utilisateur de son compte. En d'autres termes, l'administrateur revendeur peut utiliser sa clé API pour effectuer des opérations de gestion des sous-utilisateurs pour n'importe lequel de ses utilisateurs associés.

Pour activer cette fonctionnalité, toutes les requêtes API doivent inclure un paramètre obligatoire supplémentaire : admin_email. Sans l'inclusion du paramètre admin_email dans le corps de la requête, les API ne traiteront pas les requêtes effectuées par les comptes revendeurs.

Énumérations :

Permissions des sous-utilisateurs :
{
    0: Accès en lecture,
    1: Accès en écriture,
    2: Accès en lecture/écriture
}
  1. Inviter un sous-utilisateur

    PUT
    https://api.idrivee2.com/api/subusers/v1/inviteCliquer pour copierLien copié Cette API envoie une invitation de création de compte sous-utilisateur à l'adresse e-mail du sous-utilisateur mentionnée dans la requête.

    Entrée

                            string subuser_email;
    boolean disable_delete_object; // optional
    int permissions;
    boolean is_admin;
    boolean sso_login; // optional
    boolean allow_session_timeout_settings;
    int idle_timeout;
    boolean concurrent_sessions;
    boolean allow_concurrent_session_settings;
    Object[] storage_access; // optional
    string admin_email;

    Remarque :

    • "subuser_email" - l'adresse e-mail du sous-utilisateur à qui vous souhaitez envoyer l'invitation
    • "disable_delete_object" - un booléen qui permet au sous-utilisateur d'effectuer la suppression d'objets s'il est envoyé comme faux, la valeur par défaut est vrai
    • "pemissions" - un paramètre enum où 0 = permission en lecture seule, 1 = permission de téléversement uniquement et 2 = permissions de lecture et d'écriture
    • "is_admin" - un booléen utilisé pour définir le sous-utilisateur comme sous-utilisateur administrateur s'il est envoyé comme vrai. Définir cet indicateur sur vrai donnera tous les accès au stockage (lecture et écriture) aux sous-utilisateurs.
    • "sso_login" - un booléen qui définit si la connexion SSO est activée pour le sous-utilisateur ou non
    • "allow_session_timeout_settings" - un booléen qui permet au sous-utilisateur de configurer les paramètres d'expiration de session s'il est envoyé comme vrai
    • "idle_timeout" - si l'administrateur souhaite configurer l'expiration de session (en secondes) pour les sous-utilisateurs. La valeur maximale autorisée est de 3600 secondes (1 heure)
    • "concurrent_sessions" - un booléen qui permet au sous-utilisateur d'avoir plusieurs sessions simultanées s'il est envoyé comme vrai
    • "allow_concurrent_session_settings" - un booléen qui permet au sous-utilisateur de configurer les paramètres de sessions simultanées multiples s'il est envoyé comme vrai
    • "storage_access" - un tableau d'objets de permission, si l'administrateur souhaite que le sous-utilisateur n'ait accès qu'à des compartiments limités. Par exemple, si l'administrateur souhaite que le sous-utilisateur ait accès à « bucket1 » et « bucket2 » dans la région de Chicago et à « bucket3 » et « bucket4 » dans la région d'Irlande, l'administrateur doit définir le tableau storage_access comme suit :
      [
                                          
       {
          "storage_dn": "h4l1.ch.idrivee2-29.com", // Point de terminaison S3 de votre région de Chicago
          "buckets": [
              "bucket1", "bucket2"
          ]
       },
       {
          "storage_dn": "r8l2.ie.idrivee2-44.com", // Point de terminaison S3 de votre région d'Irlande
          "buckets": [
              "bucket3", "bucket4"
          ]
       }
      ]

      Veuillez noter que « storage_access » est un paramètre optionnel et ne doit être envoyé que si l'administrateur souhaite contrôler l'accès au niveau des compartiments pour le sous-utilisateur.

    Sortie
    En cas de succès, la réponse de l'API (application/JSON) sera :

    { 
        result: "invite successful",
        invite_url: "invitation url string"
    }

    Paramètres de longueur

    • email[255]
  2. Cas d'erreur spécifique

    1. Si vous dépassez la limite du nombre de sous-utilisateurs autorisés pour votre compte
      Réponse (application/JSON) :{ 
          error: {
              type: 'invalid_request_error',
              code: 'maximum_limit_reached',
              message: <information about your limit>
          }
      }
    2. Si sso_login est envoyé comme vrai et que SSO n'est pas configuré
      Réponse (application/JSON) : { 
          error: {
              type: 'invalid_request_error',
              code: 'sso_not_configured',
              message: 'SSO is not configured'
          }
      }

      Exemple de requête : Corps (application/JSON)

      { 
          "subuser_email": "abc1@example.com",
          "storage_access": [
              {
                  "storage_dn": "h4l1.ch.idrivee2-29.com",
                  "buckets": [
                    "bucket1",
                    "bucket2"
                  ]
              },
              {
                  "storage_dn": "r8l2.ie.idrivee2-44.com",
                  "buckets": [
                    "bucket3",
                    "bucket4"
                  ]
              }
          ],
          "disable_delete_object": true,
          "permissions": 0,
          "is_admin": false,
          "sso_login": false,
          "allow_session_timeout_settings": false,
          "idle_timeout": 300,
          "concurrent_sessions": true,
          "allow_concurrent_session_settings": false,
          "admin_email": "abc@example.com"
      }

      Curl Example Request:

                                                curl --request PUT 'https://api.idrivee2.com/api/subusers/v1/invite' 
      --data '{
        "subuser_email": "abc1@example.com",
        "storage_access": [
          {
            "storage_dn": "h4l1.ch.idrivee2-29.com",
            "buckets": [
              "bucket1",
              "bucket2"
            ]
          },
          {
            "storage_dn": "r8l2.ie.idrivee2-44.com",
            "buckets": [
              "bucket3",
              "bucket4"
            ]
          }
        ],
        "disable_delete_object": true,
        "permissions": 0,
        "is_admin": false,
        "sso_login": false,
        "allow_session_timeout_settings": false,
        "idle_timeout": 300,
        "concurrent_sessions": true,
        "allow_concurrent_session_settings": false,
        "admin_email": "abc@example.com"
      }' --header 'token: <your api key>'
  3. Lister tous les sous-utilisateurs

    POST
    https://api.idrivee2.com/api/subusers/v1/listCliquer pour copierLien copié Ceci affiche tous les sous-utilisateurs ajoutés sous votre profil.

    Entrée

    string admin_email; 

    Sortie
    L'API retourne un tableau des utilisateurs ajoutés sous votre profil.
    La structure de la réponse est la suivante :

                                     struct response { 
        List users[];
    }

    struct users {
        string email;
        string first_name;
        string last_name;
        Object[] storage_access;
        string account_creation_timestamp;
        string invite_url;
        bool is_admin;
        bool signed_up;
        int permissions;
        bool disable_delete_object;
        bool sso_login;
        int idle_timeout;
        bool concurrent_sessions;
        bool allow_session_timeout_settings;
        bool allow_concurrent_session_settings;
    }

    Remarque
    Les paramètres de l'objet utilisateur correspondent aux paramètres du corps de la requête expliqués dans l'API d'invitation. Veuillez vous référer à l'API d'invitation pour référence.

    Exemple de requête Curl

                                        curl --request POST 'https://api.idrivee2.com/api/subusers/v1/list' 
    --data '{
        "admin_email": "abc@example.com"
    }'
    --header 'token: <your api key>'
  4. Créer un sous-utilisateur

    PUT
    https://api.idrivee2.com/api/subusers/v1/create_accountCliquer pour copierLien copié Ceci crée un compte sous-utilisateur qui sera lié à votre compte.

    Entrée

                                        string subuser_email;
    boolean disable_delete_object; // optionnel
    int permissions;
    boolean is_admin;
    boolean sso_login; // optionnel
    boolean allow_session_timeout_settings;
    int idle_timeout;
    boolean concurrent_sessions;
    boolean allow_concurrent_session_settings;
    Object[] storage_access; // optionnel
    string admin_email;
    string first_name;
    string last_name; // optionnel
    string password; // chaîne encodée en base64

    Remarque
    Vous pouvez vous référer à l'API d'invitation de sous-utilisateur pour les détails des paramètres du corps de la requête.

    Paramètres de longueur

    • E-mail [255]
    • Mot de passe [100]
    • Prénom [64]
    • Nom de famille [64]

    Sortie
    En cas de succès, la réponse API (application/JSON) serait :

    { success: true }

    Cas d'erreur spécifique

    1. Si vous dépassez la limite du nombre de sous-utilisateurs autorisés pour votre compte
      Response (application/JSON) : { 
          error: {
              type: 'invalid_request_error',
              code: 'maximum_limit_reached',
              message: 'information about your limit'
          }
      }
    2. Le stockage n'existe pas.
      Response (application/JSON) : { 
          error: {
              type: 'invalid_request_error',
              code: 'storage_non_existant',
              message: 'Storage does not exist'
          }
      }
    3. L'utilisateur existe déjà
      Response (application/JSON) : { 
          error: {
              type: 'invalid_request_error',
              code: 'user_already_signedup',
              message: 'User signed up'
          }
      }
    4. Si sso_login est envoyé comme vrai et que SSO n'est pas configuré
      Response (application/JSON) : {
          error: {
              type: 'invalid_request_error',
              code: 'sso_not_configured',
              message: 'SSO is not configured'
          }
      }

    Exemple de requête : Corps (application/JSON)

    { 
        "subuser_email": "abc1@example.com",
        "storage_access": [
            {
              "storage_dn": "h4l1.ch.idrivee2-29.com",
              "buckets": [
                "bucket1",
                "bucket2"
              ]
            },
            {
              "storage_dn": "r8l2.ie.idrivee2-44.com",
              "buckets": [
                "bucket3",
                "bucket4"
              ]
            }
        ],
        "disable_delete_object": true,
        "permissions": 0,
        "is_admin": false,
        "sso_login": false,
        "allow_session_timeout_settings": false,
        "idle_timeout": 300,
        "concurrent_sessions": true,
        "allow_concurrent_session_settings": false,
        "first_name": "jack",
        "last_name": "russell",
        "password": "dGVzdDEyMw==",
        "admin_email": “abc@example.com”
    }

    Curl Example Request:

    curl --request PUT 'https://api.idrivee2.com/api/subusers/v1/create_account' 
    --data '{
        "subuser_email": "abc1@example.com",
        "storage_access": [
          {
            "storage_dn": "h4l1.ch.idrivee2-29.com",
            "buckets": [
             "bucket1",
             "bucket2"
            ]
          },
          {
            "storage_dn": "r8l2.ie.idrivee2-44.com",
            "buckets": [
             "bucket3",
             "bucket4"
             ]
          }
        ],
        "disable_delete_object": true,
        "permissions": 0,
        "is_admin": false,
        "sso_login": false,
        "allow_session_timeout_settings": false,
        "idle_timeout": 300,
        "concurrent_sessions": true,
        "allow_concurrent_session_settings": false,
        "first_name": "jack",
        "last_name": "russell",
        "password": "dGVzdDEyMw==",
        "admin_email": “abc@example.com”
    }' --header 'token: <votre clé api>'
  5. Désactiver le sous-utilisateur

    POST
    https://api.idrivee2.com/api/subusers/v1/disableCliquer pour copierLien copié Cette API désactive le compte du sous-utilisateur. Les sous-utilisateurs ne pourront pas se connecter, accéder aux données ni effectuer d'opérations.

    Entrée

                                        string subuser_email;
    string admin_email;
    bool email_notification; // une notification par e-mail sera envoyée au sous-utilisateur uniquement si ce paramètre est défini sur true

    Paramètres de longueur

    • E-mail [255]

    Précondition

    • Utilisateur inscrit.
    • Compte activé.

    Sortie
    En cas de succès, la réponse de l'API (application/JSON) sera :

    { success: true }

    Cas d'erreur spécifique

    1. Si le sous-utilisateur n'est pas inscrit
      Response (application/JSON) : { 
          error: {
              type: 'invalid_request_error',
              code: 'user_not_signed_up',
              message: 'Subuser is not signed up'
          }
      }
    2. Si le compte du sous-utilisateur est déjà désactivé
      Response (application/JSON) : { 
          error: {
              type: 'invalid_request_error',
              code: 'user_account_already_disabled',
              message: 'Account already disabled for the user'
          }
      }
    3. Le compte n'existe pas
      Response (application/JSON) : { 
          error: {
              type: 'invalid_request_error',
              code: 'account_non_existant',
              message: 'Account with this email does not exist'
          }
      }

    Exemple de requête : Corps (application/JSON)

    { 
      "subuser_email": "abc1@example.com",
      "admin_email": "admin1@example.com",
      "email_notification": true
    }

    Exemple de requête Curl :

    curl --request POST 'https://api.idrivee2.com/api/subusers/v1/disable' 
    --data '{
      "subuser_email": "abc1@example.com",
      "admin_email": "admin1@example.com",
      "email_notification": true
    }' --header 'token: <votre clé api>'
  6. Activer le sous-utilisateur

    POST
    https://api.idrivee2.com/api/subusers/v1/enableCliquer pour copierLien copié Cette API réactive les comptes de sous-utilisateurs désactivés. Les sous-utilisateurs peuvent se connecter, accéder aux données et effectuer des opérations normales après avoir été activés.

    Entrée

                                        string subuser_email;
    string admin_email;
    bool email_notification; // une notification par e-mail sera envoyée au sous-utilisateur uniquement si ce paramètre est défini sur true

    Sortie
    En cas de succès, la réponse de l'API (application/JSON) sera :

    { success: true }

    Paramètres de longueur

    • E-mail [255]

    Précondition

    • Utilisateur inscrit/créé.
    • Le compte utilisateur a été désactivé précédemment.

    Cas d'erreur spécifique

    1. Si le sous-utilisateur n'est pas inscrit
      Response (application/JSON) : { 
          error: {
              type: 'invalid_request_error',
              code: 'user_not_signed_up',
              message: 'Subuser is not signed up'
          }
      }
    2. Si le compte du sous-utilisateur est déjà activé
      Response (application/JSON) : { 
          error: {
              type: 'invalid_request_error',
              code: 'user_account_already_enabled',
              message: 'Account already enabled for the user'
          }
      }
    3. Le compte n'existe pas.
      Response (application/JSON) : { 
          error: {
              type: 'invalid_request_error',
              code: 'account_non_existant',
              message: 'Account with this email does not exist'
          }
      }

    Exemple de requête : Corps (application/JSON)

    { 
        "subuser_email": "abc1@example.com",
        "admin_email": "admin1@example.com",
        "email_notification": true
    }

    Exemple de requête Curl :

                                        curl --request POST 'https://api.idrivee2.com/api/subusers/v1/enable'
    --data '{
        "subuser_email": "abc1@example.com",
        "admin_email": "admin1@example.com",
        "email_notification": true
    }' --header 'token: <your api key>'
  7. Supprimer le sous-utilisateur

    POST
    https://api.idrivee2.com/api/subusers/v1/removeCliquer pour copierLien copié Cette API supprimera définitivement les utilisateurs d'IDrive® e2.
    Remarque : Les données utilisateur seront perdues définitivement lors de cette opération.

    Entrée

                                        string subuser_email;
    string admin_email;
    bool email_notification; // une notification par e-mail sera envoyée au sous-utilisateur uniquement si ce paramètre est défini sur true

    Paramètres de longueur

    • E-mail [255]

    Précondition

    • L'utilisateur doit être désactivé.

    Sortie
    En cas de succès, la réponse de l'API (application/JSON) sera :

    { success: true }

    Paramètres de longueur

    • E-mail [255]

    Cas d'erreur spécifique

    1. Si le sous-utilisateur n'est pas inscrit
      Response (application/JSON) : {
          error: {
              type: 'invalid_request_error',
              code: 'user_not_signed_up',
              message: 'Subuser is not signed up'
          } }
    2. Si le compte du sous-utilisateur n'est pas désactivé
      Response (application/JSON) : {
                                           error: {
              type: 'invalid_request_error',
              code: 'user_account_not_disabled',
              message: 'User account not disabled'
          } }
    3. Le compte n'existe pas
      Response (application/JSON) : {
          error: {
              type: 'invalid_request_error',
              code: 'account_non_existant',
              message: 'Account with this email does not exist'
          } }

    Exemple de requête : Corps (application/JSON)

    {
        "subuser_email": "abc1@example.com",
        "admin_email": "admin1@example.com",
        "email_notification": true
    }

    Exemple de requête Curl :

                                     curl --request POST 'https://api.idrivee2.com/api/subusers/v1/remove'
    --data '{
        "subuser_email": "abc1@example.com",
        "admin_email": "admin1@example.com",
        "email_notification": true
    }' --header 'token: <votre clé api>'
  8. Annuler l'invitation

    POST
    https://api.idrivee2.com/api/subusers/v1/invite/cancelCliquer pour copierLien copié Cette API annulera l'invitation envoyée au sous-utilisateur.

    Entrée

                                  string subuser_email;
    string admin_email;

    Paramètres de longueur

    • E-mail [255]

    Précondition

    • L'utilisateur ne doit pas être déjà inscrit.

    Sortie
    En cas de succès, la réponse de l'API (application/JSON) sera :

    { success: true }

    Cas d'erreur spécifique

    1. Si le sous-utilisateur est déjà inscrit
      Response (application/JSON) : {
          error: {
              type: 'invalid_request_error',
              code: 'user_already_signedup',
              message: 'User signed up'
          }
      }

    Exemple de requête : Corps (application/JSON)

    {
        "subuser_email": "abc1@example.com",
        "admin_email": "admin1@example.com"
    }

    Exemple de requête Curl :

                                  curl --request POST 'https://api.idrivee2.com/api/subusers/v1/invite/cancel'
    --data '{
        "subuser_email": "abc1@example.com",
        "admin_email": "admin1@example.com"
    }' --header 'token: <votre clé api>'
  9. Mettre à jour le sous-utilisateur

    POST
    https://api.idrivee2.com/api/subusers/v1/updateCliquer pour copierLien copié Cette API met à jour l'accès, les autorisations, SSO et le contrôle de session des sous-utilisateurs. L'API peut être utilisée pour mettre à jour les sous-utilisateurs invités et inscrits.

    Input

                                  string subuser_email;
    boolean disable_delete_object; // optional
    int permissions; // optional
    boolean is_admin; // optional
    boolean sso_login; // optional
    boolean allow_session_timeout_settings; // optional
    int idle_timeout; // optional
    boolean concurrent_sessions; // optional
    boolean allow_concurrent_session_settings; // optional
    Object[] storage_access; // optional
    string admin_email;
    boolean expire_subuser_sessions; // optional, if true will expire existing user sessions

    Note

    Vous pouvez vous référer à l'API Inviter un sous-utilisateur pour les détails des paramètres du corps de la requête. Seuls les paramètres qui doivent être mis à jour doivent être inclus dans le corps de la requête.

    Sortie
    En cas de succès, la réponse de l'API (application/JSON) serait :

    { success: true }

    Paramètres de longueur

    • Email [255]

    Cas d'erreur spécifique

    1. Le stockage n'existe pas
      Response (application/JSON) : {
          error: {
              type: 'invalid_request_error',
              code: 'storage_non_existant',
              message: 'Storage does not exist'
          }
      }
    2. Le compte n'existe pas
      Response (application/JSON) : {
          error: {
              type: 'invalid_request_error',
              code: 'account_non_existant',
              message: 'Account with this email does not exist'
          }
      }
    3. Si sso_login est envoyé comme vrai et que SSO n'est pas configuré
      Response (application/JSON) : {
          error: {
              type: 'invalid_request_error',
              code: 'sso_not_configured',
              message: 'SSO is not configured'
          }
      }

    Exemple de requête : Corps (application/JSON)

    {
        "subuser_email": "abc1@example.com",
        "storage_access": [
            {
                "storage_dn": "h4l1.ch.idrivee2-29.com",
                "buckets": [
                  "bucket1",
                  "bucket2"
                 ]
            },
            {
                "storage_dn": "r8l2.ie.idrivee2-44.com",
                "buckets": [
                  "bucket3",
                  "bucket4"
                 ]
            }
        ],
        "is_admin": false,
        "sso_login": false,
        "expire_subuser_sessions": false,
        "admin_email": "abc@example.com"
    }

    Exemple de requête Curl :

                                  curl --request POST 'https://api.idrivee2.com/api/subusers/v1/update'
    --data '{
        "subuser_email": "abc1@example.com",
        "storage_access": [
            {
                "storage_dn": "h4l1.ch.idrivee2-29.com",
                "buckets": [
                  "bucket1",
                  "bucket2"
                 ]
            },
            {
                "storage_dn": "r8l2.ie.idrivee2-44.com",
                "buckets": [
                  "bucket3",
                  "bucket4"
                 ]
            }
        ],
        "is_admin": false,
        "sso_login": false,
        "expire_subuser_sessions": false,
        "admin_email": "abc@example.com"
    }' --header 'token: <votre clé API>'
  10. Obtenir les journaux d'activité

    POST
    https://api.idrivee2.com/api/subusers/v1/user_activity_historyCliquer pour copierLien copié Cette API récupère les journaux d'activité d'un sous-utilisateur pour une plage de dates.

    Entrée

                                     string subuser_email;
    string admin_email;
    string start_date;
    string end_date;
    int page_no;

    Paramètres de longueur

    • E-mail [255]

    Remarque

    start_date (ISO8601) - Date de début
    end_date (ISO8601) - Date de fin
    page_no - L'API est paginée avec chaque page contenant 200 enregistrements
    et page_no commence à partir de 1

    Sortie
    En cas de succès, la réponse de l'API (application/JSON) sera :

                                     struct response { 
        List[] logs;
        struct pagination;
    }

    struct logs {
        string timestamp;
        string description;
        string ip;
    }

    struct pagination {
        int total_records;
        int page_no;
        int records_per_page;
    }

    Cas d'erreur spécifique

    1. Si le sous-utilisateur n'est pas inscrit
      Response (application/JSON) : { 
          error:{
              type: 'invalid_request_error',
              code: 'user_not_signed_up',
              message: 'Subuser is not signed up'
          }
      }
    2. Le compte n'existe pas
      Response (application/JSON) : { 
          error:{
              type: 'invalid_request_error',
              code: 'account_non_existant',
              message: 'Account with this email does not exist'
          }
      }

    Exemple de requête : Corps (application/JSON)

                                     { 
        "subuser_email": "abc1@example.com",
        "admin_email": "admin1@example.com",
        "start_date": "2025-04-05",
        "end_date": "2025-05-28",
        "page_no": 1
    }

    Exemple de requête Curl :

                                     curl --request POST 'https://api.idrivee2.com/api/subusers/v1/user_activity_history'
    --data '{
        "subuser_email": "abc1@example.com",
        "admin_email" : "admin1@example.com",
        "start_date" : "2025-04-05",
        "end_date" : "2025-05-28",
        "page_no" : 1
    }' --header 'token: <votre clé API>'