Colección de API de Distribuidores

La API de Distribuidores de IDrive® e2 está desarrollada sobre arquitectura REST.

La API de Distribuidores de IDrive® e2 acepta cuerpos de solicitud en formato 'application/JSON' y devuelve respuestas en 'application/JSON'.

Nuestra API utiliza un mecanismo de autenticación mediante clave API. Puedes generar la clave API desde la sección de perfil de la cuenta de IDrive® e2.

Agrega la clave API generada desde la sección de perfil en todas las llamadas HTTP API en el encabezado con la clave 'token'.

Códigos de respuesta HTTP:

  • 200 (Éxito)
  • 500 (Error del servidor)
  • 400 (Parámetros inválidos)
  • 401 (No autorizado)
  • 403 (Solicitud inválida)

El cuerpo de respuesta de error tendrá la siguiente estructura:

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

Los valores posibles para 'error.type' son :

  1. api_error
  2. invalid_request_error
  3. server_error

Para más detalles, 'error.code' y 'error.message' explicarán qué salió mal.

Casos Comunes de Error

A continuación se muestran los casos de error comunes que pueden ser devueltos por todas las API detalladas a continuación. El resto de los casos de error se documentarán con las API específicas.

  1. Error del servidor (HTTP 500)
     
                               Response (application/JSON) : {
          error:{
                type: 'api_error',
                code: 'request_processing_failed',
                message: 'Unable to process this request, please try again later'
                }
    }
  2. No autorizado (HTTP 401)
     
                                  Response (application/JSON) : {
          error:{
                type: 'invalid_request_error',
                code: 'unauthorized',
                message: 'Authentication header missing/invalid'
           }
    }
  3. Parámetros inválidos (HTTP 400)
     
                                  Response (application/JSON) : {
          error:{
                type: 'invalid_request_error',
                code: 'invalid_parameters',
                message: 'Invalid parameter values, check errors for details',
                errors: [] (array contain details of error)
             }
    }
Encabezado de AUTORIZACIÓN Clave API
Clave token
Valor <YOUR-API-KEY>

Enumeraciones utilizadas en toda la API son:

Enums:

Permisos de clave de acceso:

                        {
    0: Read access,
    1: Write access,
    2: Read/Write access
}

Operaciones de Usuario

  1. Listar todos los usuarios

    GET
    https://api.idrivee2.com/api/reseller/v1/usersHaz clic para copiarEnlace copiado Esto muestra todos los usuarios añadidos bajo tu perfil.

    Salida

    La API devuelve un arreglo de los usuarios añadidos bajo tu perfil.
    La estructura de la respuesta es la siguiente:

                               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. Nota:
    storage_used (bytes)
    storage_quota (GB's) (0 : ilimitado, si no > 0)
    invite_url si no es nulo puede ser usado por el usuario invitado para registrarse

    Ejemplo de solicitud Curl:

    curl --request GET 'https://api.idrivee2.com/api/reseller/v1/users' --header 'token: <your api key>'
  3. Crear Usuario
  4. PUT
    https://api.idrivee2.com/api/reseller/v1/create_userHaga clic para copiarLink copiado Esta API creará una cuenta de usuario en IDrive® e2 que estará vinculada a tu cuenta.

    Entrada

                                  string email; 
    string password; //base64 encoded string
    string first_name;
    string last_name; //last_name is an optional parameter
    int quota;
    bool email_notification; //email_notification is an optional parameter

    Nota:

    • Cuota (GB) (0 para ilimitado, de lo contrario >0)
    • La contraseña es una cadena codificada en base64.
    • email_notification: Si se proporciona y se establece en false, no se enviará notificación por correo electrónico a la dirección de correo especificada.

    Parámetros de longitud

    • Email [255]
    • Password [100]
    • First Name [64]
    • Last Name [64]

    Producción
    Sobre la respuesta exitosa de la API (solicitud/JSON) sería:

    { user_created: true }

    Casos de error

    • Solicitud inválida (HTTP-403)
      1. El usuario ya existe y está vinculado a su cuenta.
                                            { 
            error:{
                  type: 'invalid_request_error',
                  code: 'user_signed_up',
                  message : 'User already signed up'
                 }
        }
      2. Correo electrónico ya en uso (existe una cuenta independiente que no está vinculada a su cuenta).
                                               { 
            error:{
                  type: 'invalid_request_error',
                  code: 'email_already_in_use',
                  message: 'Email already in use'
                 }
        }

    Ejemplo de solicitud :Cuerpo (application/JSON)

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

    Ejemplo de solicitud 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>'
  5. Deshabilitar usuario
  6. POST
    https://api.idrivee2.com/api/reseller/v1/disable_userHaga clic para copiarLink copiado Esta API deshabilita la cuenta de usuario. Los usuarios no podrán iniciar sesión, acceder a datos ni realizar ninguna operación.

    Entrada

    string email;

    Parámetros de longitud

    • Email [255]

    Precondición

    • User signed up.
    • Account enabled.

    Producción
    Sobre la respuesta exitosa de la API (solicitud/JSON) sería:

    { user_disabled : true }

    Casos de error

    • Solicitud inválida (HTTP 403)
      1. Cuenta ya discapacitada.
                                                           error:{ 
               type: 'invalid_request_error',
               code: 'user_account_already_disabled',
               message: 'Account already disabled for the user'
               }
        }
      2. La cuenta no existe.
                                                        error:{ 
               type: 'invalid_request_error',
               code: 'account_non_existant',
               message: 'Account with this email does not exist'
               }
        }

    Ejemplo de solicitud :Cuerpo (application/JSON)

                                           {
        "email":"e2reseller+1"
    }

    Ejemplo de solicitud Curl:

                                           curl --request POST 'https://api.idrivee2.com/api/reseller/v1/disable_user' 
    --data '{
        "email":"e2reseller+1@idrivee2.com"
    }'
  7. Habilitar usuario
  8. POST
    https://api.idrivee2.com/api/reseller/v1/enable_userHaga clic para copiarLink copiado Esta API vuelve a habilitar las cuentas de usuario deshabilitadas. Los usuarios pueden iniciar sesión, acceder a datos y realizar operaciones normales.

    Entrada

    string email;

    Parámetros de longitud

    • Email [255]

    Precondición

    • Usuario registrado/creado.
    • La cuenta de usuario fue deshabilitada previamente.

    Producción
    En caso de éxito, la respuesta de la API (aplicación/JSON) sería:

    { user_enabled : true }

    Casos de error

    • Solicitud inválida (HTTP 403)
      1. La cuenta no existe.
                                                           error:{ 
               type: 'invalid_request_error',
               code: 'account_non_existant',
               message: 'Account with this email does not exist'
               }
        }
      2. La cuenta ya está habilitada.
                                                        error:{ 
               type: 'invalid_request_error',
               code: 'user_account_already_enabled',
               message: 'Account already enabled for the user'
               }
        }

    Ejemplo de solicitud :Cuerpo (application/JSON)

                                          {
        "email":"e2reseller+1"
    }

    Ejemplo de solicitud Curl:

                                           curl  --request POST 'https://api.idrivee2.com/api/reseller/v1/enable_user' 
    --data '{
        "email":"e2reseller+1@idrivee2.com"
    }' --header 'token: <your api key>'
  9. Eliminar usuario
  10. POST
    https://api.idrivee2.com/api/reseller/v1/remove_userHaga clic para copiarLink copiado Esta API eliminará permanentemente a los usuarios de IDrive® e2.

    Nota: Los datos del usuario se perderán de forma permanente al realizar esta operación.

    Entrada

    string email;

    Parámetros de longitud

    • Email [255]

    Precondición

    • El usuario debe estar deshabilitado.

    Producción
    En caso de éxito, la respuesta de la API (JSON) sería :

    { user_removed : true }
    Casos de error

    • Solicitud inválida (HTTP 403)
      1. La cuenta no existe.
                                                           {
              error:{
                     type: 'invalid_request_error',
                     code: 'account_non_existant',
                     message:'Account with this email does not exist'
                    }
        }
      2. La cuenta no está deshabilitada.
                                                              {
              error:{
                     type: 'invalid_request_error',
                     code: 'user_account_not_disabled',
                     message: 'User account not disabled'
                    }
        }

    Ejemplo de solicitud :Cuerpo (application/JSON)

                                             {
        "email":"e2reseller+1"
    }

    Ejemplo de solicitud Curl:

                                              curl  --request POST 'https://api.idrivee2.com/api/reseller/v1/remove_user' 
    --data '{
        "email":"e2reseller+1"
    }' --header 'token: <your api key>'
  11. Obtener uso de almacenamiento
  12. POST
    https://api.idrivee2.com/api/reseller/v1/usage_statsHaga clic para copiarLink copiado Esta API devuelve la matriz de utilización de IDrive® e2 para el usuario proporcionado.

    Entrada

                                              {
        string email;
        string date_from;
        string date_to;
    }

    date_from (ISO8601) (fecha de inicio)
    date_to (ISO8601) (fecha de fin)
    Parámetros de longitud

    • Email [255]

    Precondiciones

    • La usuario debe estar registrada.

    Producción
    Array of usage_stats structure

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

    downloads, uploads, disk_used están en bytes
    Casos de error

    • Solicitud inválida (HTTP 403)
      1. La cuenta no existe.
                                                              {
             error:{
                   type: 'invalid_request_error',
                   code: 'account_non_existant',
                   message: 'Account with this email does not exist'
                  }
        }

    Ejemplo de solicitud :Cuerpo (application/JSON)

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

    Ejemplo de solicitud 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>'
  13. Obtener registros de actividad
  14. POST
    https://api.idrivee2.com/api/reseller/v1/user_activity_historyHaga clic para copiarLink copiado Esta API obtendrá los registros de actividad de un usuario para un rango de fechas.

    Entrada

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

    Parámetros de longitud

    • Email [255]

    Nota

    start_date (ISO8601) - Fecha de inicio
    end_date (ISO8601) - Fecha de fin
    page_no - La API está paginada con cada página que consta de 200 registros
    y page_no comienza desde 1 en adelante

    Producción
    Sobre la respuesta exitosa de la API (solicitud/JSON) sería:

                                               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;
        }

    Caso de error específico

    1. La cuenta no existe.
                                                   Response (application/JSON) : { 
          error: {
              type: 'invalid_request_error',
              code: 'account_non_existant',
              message: 'Account with this email does not exist'
          }
      }

    Ejemplo de solicitud :Cuerpo (application/JSON)

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

    Ejemplo de solicitud 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>'

Operaciones de almacenamiento

  1. Listar regiones

    GET
    https://api.idrivee2.com/api/reseller/v1/regionsHaga clic para copiarLink copiado Esta API devuelve una matriz de regiones para IDrive® e2.

    Producción

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

    Nota: Solo las regiones activas pueden habilitarse para el usuario.

    Ejemplo de solicitud: Listar regiones

    curl --request GET 'https://api.idrivee2.com/api/reseller/v1/regions' --header 'token: <your api key>'
                                     
                                  
  2. Habilitar región para el usuario
  3. POST
    https://api.idrivee2.com/api/reseller/v1/enable_user_regionHaga clic para copiarLink copiado Esta API habilita las regiones para el usuario.

    Entrada

    {
         string email;
         string region;
    }

    region : clave de región de la API de listar regiones. por ejemplo "TX", "LDN", etc.

    La API devuelve el DN de almacenamiento (nombre de dominio) para la región habilitada a través de la cual se puede acceder al almacenamiento del usuario utilizando la clave de acceso y la clave secreta.

    Parámetros de longitud

    • Email [255]
    • Region[5]

    Precondición

    • Cuenta de usuario existente.
    • La región no debe estar habilitada para el usuario.

    Producción

    En caso de éxito, la respuesta de la API (application/JSON) sería :

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

    Casos de error

    • Solicitud inválida (HTTP 403)
      1. La cuenta no existe.
                                               {
            error:{
                  type: 'invalid_request_error',
                  code: 'account_non_existant',
                  message: 'Account with this email does not exist'
            }
        }
      2. La región de almacenamiento ya está habilitada para el usuario.
                                               {
            error:{
                  type: 'invalid_request_error',
                  code: 'region_already_enabled',
                  message: 'Storage region already enabled for user'
            }
        }
      3. Usuario deshabilitado.
                                               {
            error:{
                  type: 'invalid_request_error',
                  code: 'user_disabled',
                  message: 'User Disabled'
            }
        }
      4. El pago de su cuenta falló.
                                               {
            error:{
                  type: 'invalid_request_error',
                  code: 'payment_failed',
                  message: 'Account expired please update payment info'
            }
        }

    Ejemplo de solicitud :Cuerpo (application/JSON)

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

    Ejemplo de solicitud 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. Listar regiones habilitadas del usuario

    POST
    https://api.idrivee2.com/api/reseller/v1/list_user_regionsHaga clic para copiarLink copiado Esta API lista todas las regiones habilitadas del usuario.

    Entrada

    {
                                       
    string email;
    }

    Parámetros de longitud

    • Email [255]

    Precondición

    • Cuenta de usuario existente.

    Producción

    En caso de éxito, la respuesta de la API (application/JSON) sería :

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

    Casos de error

    • Solicitud inválida (HTTP 403)
      1. La cuenta no existe.
                                                  {
            error:{
                  type: 'invalid_request_error',
                  code: 'account_non_existant',
                  message: 'Account with this email does not exist'
            }
        }
      2. Usuario deshabilitado..
                                                  {
            error:{
                  type: 'invalid_request_error',
                  code: 'user_disabled',
                  message: 'User Disabled'
            }
        }

    Ejemplo de solicitud :Cuerpo (application/JSON)

                                        {
      "email":""
    }

    Ejemplo de solicitud Curl:

    curl --request POST 'https://api.idrivee2.com/api/reseller/v1/list_user_regions'
    --data '{
    "email":""
    }' --header 'token: <your api key>'
  5. Eliminar región asignada al usuario
  6. POST
    https://api.idrivee2.com/api/reseller/v1/remove_user_regionHaga clic para copiarLink copiado Esta API elimina una región asignada al usuario.

    Entrada

    { 
        string email;
        string storage_dn;
    }

    'storage_dn' es el dominio de almacenamiento asignado al usuario que desea eliminar.

    Parámetros de longitud

    • Email [255]
    • Storage_dn[128]

    Precondición

    • Usuario registrado.
    • El almacenamiento debe estar asignado al usuario.

    Tenga en cuenta que esta acción resultará en la eliminación de los datos del usuario.

    La API permitirá eliminar la región del usuario si

    El usuario está en estado deshabilitado

    1. No se ha creado ningún bucket por el usuario

    Producción

    En caso de éxito, la API devolverá la respuesta (JSON) :

    {removed : true}

    Casos de error

    • Solicitud inválida (HTTP 403)
      1. La cuenta no existe.
                                                  {
            error:{
                  type: 'invalid_request_error',
                  code: 'account_non_existant',
                  message: 'Account with this email does not exist'
            }
        }
      2. El almacenamiento no existe.
                                                  {
            error:{
                  type: 'invalid_request_error',
                  code: 'storage_non_existant',
                  message: 'Storage does not exists'
            }
        }
      3. El almacenamiento no está vacío.
                                                  {
            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'
            }
        }

    Ejemplo de solicitud :Cuerpo (application/JSON)

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

    Ejemplo de solicitud 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. Actualizar configuración CORS para la región del usuario
  8. Método: POST
    URL:  https://api.idrivee2.com/api/reseller/v1/storage/set_corsHaga clic para copiarLink copiado Esta API actualizará la configuración CORS para una región.

    Tipo de contenido : application/json

    Clave API en encabezado:

    'token': <your token>

    Parámetro requerido:

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

    Parámetros requeridos: email,storage_dn,cors
    ímites de longitud de los parámetros: email[255],storage_dn[128], cors (hasta 10 dominios separados por comas)
    Nota: Para todos los cors, puede establecer cors en "*" que también es el cors predeterminado en todas las regiones

    Producción

    En caso de éxito, la API devolvería una respuesta (aplicación/JSON):

                                        {
    cors_updated: true
    }

    Casos de error

    • Solicitud inválida (HTTP 403)
      1. La cuenta no existe.
                                                     {
            error:{
                  type: 'invalid_request_error',
                  code: 'account_non_existant',
                  message: 'Account with this email does not exist'
            }
        }
      2. El almacenamiento no existe.
                                                     {
            error:{
                  type: 'invalid_request_error',
                  code: 'storage_non_existant',
                  message: 'Storage does not exists'
            }
        }
      3. Invalid cors parameters.
                                                     {
            error:{
                  type: 'invalid_request_error',
                  code: 'invalid_cors_policy',
                  message: 'The cors policy is invalid' / 'Maximum 10 cors are allowed'
            }
        }

    Ejemplo de solicitud 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. Agregar clave de acceso
  10. POST
    https://api.idrivee2.com/api/reseller/v1/create_access_keyHaga clic para copiarLink copiado Esta API crea una clave de acceso para el acceso al almacenamiento y devuelve el ID de la clave de acceso y la clave secreta.

    Entrada

    { 
        string email;
        string storage_dn;
        string name;
        int permissions;
        array buckets; //buckets is an optional parameter
    }

    Buckets: Proporcione una lista de nombres de buckets para crear una clave de acceso para los buckets especificados para acceder al almacenamiento. La entrada 'buckets' no es necesaria si la clave de acceso es para todos los buckets.

    Precondición

    • Usuario registrado/creado y habilitado.
    • Storage DN asignado al usuario respectivo.
    • Los buckets no deben estar vacíos si se proporcionan.

    Parámetros de longitud

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

    Enumeración de permisos de clave de acceso:

    { 
        0: Read access
        1: Write access
        2: Read/Write access
    }

    Producción

    En caso de éxito, la API devolvería una respuesta (aplicación/JSON):

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

    Casos de error

    • Solicitud inválida (HTTP 403)
      1. La cuenta no existe.
                                               {
            error:{
                  type: 'invalid_request_error',
                  code: 'account_non_existant',
                  message: 'Account with this email does not exist'
            }
        }
      2. El almacenamiento no existe.
                                               {
            error:{
                  type: 'invalid_request_error',
                  code: 'storage_non_existant',
                  message: 'Storage does not exists'
            }
        }
      3. Usuario deshabilitado.
                                               {
            error:{
                  type: 'invalid_request_error',
                  code: 'user_disabled',
                  message: 'User Disabled'
            }
        }

    Ejemplo de solicitud :Cuerpo (application/JSON)

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

    Ejemplo de solicitud 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. Lista de claves de acceso
  12. POST
    https://api.idrivee2.com/api/reseller/v1/list_access_keysHaga clic para copiarLink copiado Esta API lista todas las claves de acceso para el almacenamiento.

    Entrada

    { 
        string email;
        string storage_dn;
    }

    'storage_dn' es el dominio de almacenamiento asignado al usuario del cual desea listar todas las claves de acceso

    Parámetros de longitud

    • email [255]
    • storage_dn[128]

    Precondición

    • Usuario registrado/creado y habilitado.
    • Almacenamiento asignado al usuario.

    Producción

    En caso de éxito, la API devolvería Respuesta (aplicación/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*/
          },
          {...},
          …
        ]
    }

    Casos de error

    • Solicitud inválida (HTTP 403)
      1. La cuenta no existe.
                                            {
            error:{
                  type: 'invalid_request_error',
                  code: 'account_non_existant',
                  message: 'Account with this email does not exist'
            }
        }
      2. El almacenamiento no existe.
                                            {
            error:{
                  type: 'invalid_request_error',
                  code: 'storage_non_existant',
                  message: 'Storage does not exist'
            }
        }
      3. Usuario deshabilitado.
                                            {
            error:{
                  type: 'invalid_request_error',
                  code: 'user_disabled',
                  message: 'User Disabled '
            }
        }

    Ejemplo de solicitud: Cuerpo (aplicación/JSON)

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

    Ejemplo de solicitud 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. Eliminar clave de acceso
  14. POST
    https://api.idrivee2.com/api/reseller/v1/remove_access_keyHaga clic para copiarLink copiado Esta API elimina la clave de acceso para el almacenamiento.

    Entrada

    { 
        string email;
        string storage_dn;
        string access_key;
    }

    Parámetros de longitud

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

    Precondición

    • Usuario registrado/creado y habilitado.
    • Almacenamiento asignado al usuario.
    • La clave de acceso existe para el almacenamiento.

    Producción

    En caso de éxito, la API devolvería Respuesta (aplicación/JSON):

    {removed : true}

    Casos de error

    • Solicitud inválida (HTTP 403)
      1. La cuenta no existe.
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'account_non_existant',
                  message: 'Account with this email does not exist'
            }
        }
      2. El almacenamiento no existe.
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'storage_non_existant',
                  message: 'Storage does not exists'
            }
        }
      3. Usuario deshabilitado.
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'user_disabled',
                  message: 'User Disabled'
            }
        }
      4. La clave de acceso no existe.
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'access_key_non_existant',
                  message: 'Access key does not exist, please provide a valid access key'
            }
        }

    Ejemplo de solicitud :Cuerpo (application/JSON)

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

    Ejemplo de solicitud 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":"<your access key>"
    }' --header 'token: <your api key>'

Operaciones de marca blanca

  1. Agregar CNAMEs

    POST
    https://api.idrivee2.com/api/reseller/v1/storage/cname/addHaga clic para copiarLink copiado Esta API agrega CNAME para el DNS de almacenamiento especificado.

    Entrada

    { 
        string email;
        string storage_dn;
        string cname;
        string public_key;
        string private_key;
        string file_index;
        string passphrase; // optional, need to be sent only in case of encrypted private key
    }

    'storage_dn' es el dominio de almacenamiento asignado al usuario.

    'CNAME' es el nuevo CNAME que se debe asignar.

    'file_index' es un parámetro opcional.

    Parámetros de longitud

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

    Precondición

    • Usuario registrado/creado y habilitado.
    • Almacenamiento asignado al usuario.
    • El storage_dn debe ser el endpoint del inquilino obtenido de la API List User Enabled Regions.

    Producción

    En caso de éxito, la API devolvería Respuesta (aplicación/JSON):

    { 'cname_added' : true }

    Casos de error

    • Solicitud inválida (HTTP 403)
      1. La cuenta no existe.
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'account_non_existant',
                  message: 'Account with this email does not exist'
            }
        }
      2. El CNAME no se puede usar
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'request_processing_failed',
                  message: 'this CNAME cannot be used, please try changing your CNAME'
            }
        }
      3. El dominio de almacenamiento no existe si el DNS de almacenamiento es incorrecto
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'request_processing_failed',
                  message: 'Unable to retrieve storage info for given storage_dn'
            }
        }
      4. Si CNAME ya está configurado
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'request_processing_failed',
                  message: 'CNAME already configure'
            }
        }
      5. CNAME o certificados inválidosSi las claves públicas privadas son incorrectas
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'request_processing_failed',
                  message: 'Could not verify CNAME or certificates. Please try again'
            }
        }
    • Error del servidor (HTTP 500)
      1. No se puede procesar esta solicitud
                                         {
            error:{
                  type: 'api_error',
                  code: 'request_processing_failed',
                  message: 'Unable to process this request, please try again later'
            }
        }
      2. No se encontraron datos para el dns indicado
                                         {
            error:{
                  type: 'api_error',
                  code: 'request_processing_failed',
                  message: 'data not found for given dns'
            }
        }

    Ejemplo de solicitud: Cuerpo (aplicación/JSON)

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

    Ejemplo de solicitud 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:<your api key>'
  2. Listar CNAMEs

    POST
    https://api.idrivee2.com/api/reseller/v1/storage/cnameHaga clic para copiarLink copiado Esta API lista todos los CNAMEs para el almacenamiento.

    Entrada

    { 
        string email;
        string storage_dn;
    }

    'storage_dn' es el dominio de almacenamiento asignado al usuario del cual desea enumerar todos los CNAMEs

    Parámetros de longitud

    • email[255]
    • storage_dn[128]

    Precondición

    • Usuario registrado/creado y habilitado.
    • Almacenamiento asignado al usuario.
    • El storage_dn debe ser el punto final del inquilino obtenido de la API Listar regiones habilitadas para el usuario.

    Producción

    En caso de éxito, la API devolvería Respuesta (aplicación/JSON):

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

             {...},
         ]
    }

    Casos de error

    • Solicitud inválida (HTTP 403)
      1. La cuenta no existe.
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'account_non_existant',
                  message: 'Account with this email does not exist'
            }
        }
      2. Usuario deshabilitado.
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'user_disabled',
                  message: 'User Disabled'
            }
        }
    • Error del servidor (HTTP 500)
      1. No se puede procesar esta solicitud
                                         {
            error:{
                  type: 'api_error',
                  code: 'request_processing_failed',
                  message: 'Unable to process this request, please try again later'
            }
        }
      2. No se encontraron datos para el dns indicado
                                         {
            error:{
                  type: 'api_error',
                  code: 'request_processing_failed',
                  message: 'data not found for given dns'
            }
        }

    Ejemplo de solicitud: Cuerpo (aplicación/JSON)

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

    Ejemplo de solicitud 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:<your api key>'
  3. Actualizar CNAMEs

    POST
    https://api.idrivee2.com/api/reseller/v1/storage/cname/updateHaga clic para copiarLink copiado Esta API actualiza el CNAME para el DNS de almacenamiento especificado.

    Entrada

    { 
        string region_key;
        string email;
        string storage_dn;
        string cname;
        string public_key;
        string private_key;
        string file_index;
        string passphrase; // optional, need to be sent only in case of encrypted private key
    }

    'storage_dn' es el dominio de almacenamiento asignado al usuario.

    'CNAME' es el nuevo CNAME que debe reemplazar al CNAME ya existente.

    'file_index' es un parámetro opcional.

    Parámetros de longitud

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

    Precondición

    • Usuario registrado/creado y habilitado.
    • Almacenamiento asignado al usuario.
    • El storage_dn debe ser el punto final del inquilino obtenido de la API Listar regiones habilitadas para el usuario.

    Producción

    En caso de éxito, la API devolvería Respuesta (aplicación/JSON):

    { 'cname_updated' : true }

    Casos de error

    • Solicitud inválida (HTTP 403)
      1. La cuenta no existe.
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'account_non_existant',
                  message: 'Account with this email does not exist'
            }
        }
      2. El CNAME no se puede usar si el CNAME es un dominio de idrive
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'request_processing_failed',
                  message: 'this CNAME cannot be used, please try changing your CNAME'
            }
        }
      3. El dominio de almacenamiento no existe si storage_dns es incorrecto
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'request_processing_failed',
                  message: 'Unable to retrieve storage info for given storage_dn'
            }
        }
      4. Si storage_dn es incorrecto
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'request_processing_failed',
                  message: 'Unable to retrieve storage info for given storage_dn'
            }
        }
      5. No se puede acceder al servidor de almacenamiento. El dominio no existe. Si el almacenamiento _dns no está disponible.
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'request_processing_failed',
                  message: 'Storage server cannot be reached right now, please try again later'
            }
        }
      6. Si CNAME ya está configurado
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'request_processing_failed',
                  message: 'CNAME already configured'
            }
        }
      7. CNAME o certificados no válidosSi las claves públicas o privadas son incorrectas
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'request_processing_failed',
                  message: 'Could not verify CNAME or certificates. Please try again'
            }
        }
      8. Usuario deshabilitado
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'user_disabled',
                  message: 'User Disabled'
            }
        }
    • Error del servidor (HTTP 500)
      1. No se puede procesar esta solicitud
                                         {
            error:{
                  type: 'api_error',
                  code: 'request_processing_failed',
                  message: 'Unable to process this request, please try again later'
            }
        }
      2. No se encontraron datos para el dns indicado
                                         {
            error:{
                  type: 'api_error',
                  code: 'request_processing_failed',
                  message: 'data not found for given dns'
            }
        }

    Ejemplo de solicitud: Cuerpo (aplicación/JSON)

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

    Ejemplo de solicitud 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:<your api key>'
  4. Eliminar CNAMEs

    POST
    https://api.idrivee2.com/api/reseller/v1/storage/cname/removeHaga clic para copiarLink copiado Esta API elimina CNAME para el DNS de almacenamiento.

    Entrada

    { 
        string email;
        string storage_dn;
        string cname;
    }

    'storage_dn' es el dominio de almacenamiento asignado al usuario.

    CNAME: proporcione el CNAME que se debe eliminar.

    Parámetros de longitud

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

    Precondición

    • Usuario registrado/creado y habilitado.
    • Almacenamiento asignado al usuario.
    • CNAME debe estar mapeado al dominio de almacenamiento.
    • El storage_dn debe ser el endpoint del inquilino obtenido de la API Listar regiones habilitadas del usuario.

    Producción

    En caso de éxito, la API devolvería Respuesta (aplicación/JSON):

    { 'cname_removed' : true }

    Casos de error

    • Solicitud inválida (HTTP 403)
      1. La cuenta no existe.
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'account_non_existant',
                  message: 'Account with this email does not exist'
            }
        }
      2. Usuario deshabilitado
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'user_disabled',
                  message: 'User Disabled'
            }
        }
      3. No se puede usar CNAME
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'request_processing_failed',
                  message: 'this CNAME cannot be used, please try changing your CNAME'
            }
        }
      4. No existe el dominio de almacenamiento
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'request_processing_failed',
                  message: 'Unable to retrieve storage info for given storage_dn'
            }
        }
      5. No se puede alcanzar el servidor de almacenamiento
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'request_processing_failed',
                  message: 'Storage server cannot be reached right now, please try again later'
            }
        }
      6. No existe CNAME para el dominio de almacenamiento
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'request_processing_failed',
                  message: 'cannot get cname details'
            }
        }
      7. No se pudo eliminar CNAMENo se puede eliminar CNAME
                                         {
            error:{
                  type: 'api_error',
                  code: 'request_processing_failed',
                  message: 'Unable to process this request, please try again later'
            }
        }
    • Error del servidor (HTTP 500)
      1. No se puede procesar esta solicitud
                                         {
            error:{
                  type: 'api_error',
                  code: 'request_processing_failed',
                  message: 'Unable to process this request, please try again later'
            }
        }
      2. No se encontraron datos para el dns indicado
                                         {
            error:{
                  type: 'api_error',
                  code: 'request_processing_failed',
                  message: 'data not found for given dns'
            }
        }

    Ejemplo de solicitud: Cuerpo (aplicación/JSON)

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

    Ejemplo de solicitud 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:<your api key>'

Operaciones de Subusuario

La API de Subusuario de IDrive® e2 está disponible para cuentas de distribuidor. Un administrador de distribuidor puede invocar estas APIs en nombre de cualquier usuario bajo su cuenta. Es decir, el administrador de distribuidor puede usar su clave API para realizar operaciones de gestión de subusuarios para cualquiera de sus usuarios asociados.

Para habilitar esta funcionalidad, todas las solicitudes de API deben incluir un parámetro adicional obligatorio: admin_email. Sin la inclusión del parámetro admin_email en el cuerpo de la solicitud, las APIs no procesarán solicitudes realizadas por cuentas de distribuidor.

Enumeraciones:

Permisos de Subusuario:
{
    0: Read access,
    1: Write access,
    2: Read/Write access
}
  1. Invitar subusuario

    PUT
    https://api.idrivee2.com/api/subusers/v1/inviteHaz clic para copiarEnlace copiado Esta API envía una invitación para crear una cuenta de subusuario al correo electrónico del subusuario mencionado en la solicitud.

    Entrada

                            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;

    Nota:

  2. "subuser_email" - la dirección de correo electrónico del subusuario al que desea enviar la invitación
  3. "disable_delete_object" - un booleano que permite al subusuario realizar la eliminación de objetos si se envía como false, el valor predeterminado es true
  4. "pemissions" - un parámetro enum donde 0 = permiso solo de lectura, 1 = permiso solo de carga y 2 = permisos de lectura y escritura
  5. "is_admin" - un booleano que se utiliza para convertir al subusuario en un subusuario administrador si se envía como true. Establecer esta bandera en true otorgará todos los permisos de acceso al almacenamiento (Lectura y Escritura) a los subusuarios.
  6. "sso_login" - un booleano que establece si el inicio de sesión SSO está habilitado para el subusuario o no
  7. "allow_session_timeout_settings" - un booleano que permite al subusuario configurar los ajustes de tiempo de espera de sesión si se envía como true
  8. "idle_timeout" - si el usuario administrador desea configurar el tiempo de espera de la sesión (en segundos) para los subusuarios. El valor máximo permitido es 3600 segundos (1 hora)
  9. "concurrent_sessions" - un booleano que permite al subusuario tener múltiples sesiones concurrentes si se envía como true
  10. "allow_concurrent_session_settings" - un booleano que permite al subusuario configurar los ajustes de sesiones concurrentes si se envía como true
  11. "storage_access" - un arreglo de objetos de permisos, si el administrador desea que el subusuario tenga acceso solo a ciertos buckets. Por ejemplo, si el usuario administrador quiere que el subusuario tenga acceso a "bucket1" y "bucket2" en la Región de Chicago y "bucket3" y "bucket4" en la región de Irlanda, el administrador debe establecer el arreglo storage_access de la siguiente manera:
    [
                                        
     {
        "storage_dn": "h4l1.ch.idrivee2-29.com", // Punto final S3 de su región de Chicago
        "buckets": [
            "bucket1", "bucket2"
        ]
     },
     {
        "storage_dn": "r8l2.ie.idrivee2-44.com", // Punto final S3 de su región de Irlanda
        "buckets": [
            "bucket3", "bucket4"
        ]
     }
    ]

    Tenga en cuenta que "storage_access" es un parámetro opcional y solo debe enviarse si el usuario administrador desea controlar el acceso a nivel de bucket para el subusuario.

  12. Producción
    Sobre la respuesta exitosa de la API (solicitud/JSON) sería:

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

    Parámetros de longitud

    • email[255]

    Caso de error específico

    1. Si supera el límite de número de subusuarios permitidos para su cuenta
      Response (application/JSON) :{ 
          error: {
              type: 'invalid_request_error',
              code: 'maximum_limit_reached',
              message: <information about your limit>
          }
      }
    2. Si sso_login se envía como true y SSO no está configurado
      Response (application/JSON) : { 
          error: {
              type: 'invalid_request_error',
              code: 'sso_not_configured',
              message: 'SSO is not configured'
          }
      }

      Ejemplo de solicitud :Cuerpo (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"
      }

      Ejemplo de solicitud Curl:

                                                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>'
  13. Listar todos los subusuarios

    POST
    https://api.idrivee2.com/api/subusers/v1/listHaga clic para copiarLink copiado Esto muestra todos los subusuarios agregados bajo su perfil.

    Entrada

    string admin_email; 

    Producción
    La API devuelve un array de los usuarios agregados bajo su perfil.
    La estructura de la respuesta es la siguiente:

                                     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;
    }

    Nota
    Los parámetros del objeto de usuario corresponden a los parámetros del cuerpo de la solicitud, explicados en la API de invitación. Consulte la API de invitación para obtener más información.

    Ejemplo de solicitud Curl

                                        curl --request POST 'https://api.idrivee2.com/api/subusers/v1/list' 
    --data '{
        "admin_email": "abc@example.com"
    }'
    --header 'token: <your api key>'
  14. Crear subusuario

    PUT
    https://api.idrivee2.com/api/subusers/v1/create_accountHaga clic para copiarLink copiado Esto crea una cuenta de subusuario que estará vinculada a su cuenta.

    Entrada

                                        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;
    string first_name;
    string last_name; // optional
    string password; // base64 encoded string

    Nota
    Puede referirse a la API de Invitar subusuario para obtener detalles de los parámetros del cuerpo de la solicitud.

    Parámetros de longitud

    • Email [255]
    • Password [100]
    • First Name [64]
    • Last Name [64]

    Producción
    Sobre la respuesta exitosa de la API (solicitud/JSON) sería:

    { success: true }

    Caso de error específico

    1. Si excede el límite de número de subusuarios permitidos para su cuenta
      Response (application/JSON) : { 
          error: {
              type: 'invalid_request_error',
              code: 'maximum_limit_reached',
              message: 'information about your limit'
          }
      }
    2. El almacenamiento no existe.
      Response (application/JSON) : { 
          error: {
              type: 'invalid_request_error',
              code: 'storage_non_existant',
              message: 'Storage does not exist'
          }
      }
    3. El usuario ya existe
      Response (application/JSON) : { 
          error: {
              type: 'invalid_request_error',
              code: 'user_already_signedup',
              message: 'User signed up'
          }
      }
    4. Si sso_login se envía como true y SSO no está configurado
      Response (application/JSON) : {
          error: {
              type: 'invalid_request_error',
              code: 'sso_not_configured',
              message: 'SSO is not configured'
          }
      }

    Ejemplo de solicitud :Cuerpo (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”
    }

    Ejemplo de solicitud Curl:

    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: <your api key>'
  15. Desactivar subusuario

    POST
    https://api.idrivee2.com/api/subusers/v1/disableHaga clic para copiarLink copiado Esta API desactiva la cuenta del subusuario. Los subusuarios no podrán iniciar sesión, acceder a datos ni realizar ninguna operación.

    Entrada

                                        string subuser_email;
    string admin_email;
    bool email_notification; // La notificación por correo electrónico al subusuario se enviará solo si este parámetro se establece en verdadero

    Parámetros de longitud

    • Email [255]

    Precondición

    • Usuario registrado.
    • Cuenta habilitada.

    Producción
    Sobre la respuesta exitosa de la API (solicitud/JSON) sería:

    { success: true }

    Caso de error específico

    1. Si el subusuario no está registrado
      Response (application/JSON) : { 
          error: {
              type: 'invalid_request_error',
              code: 'user_not_signed_up',
              message: 'Subuser is not signed up'
          }
      }
    2. Si la cuenta del subusuario ya está deshabilitada
      Response (application/JSON) : { 
          error: {
              type: 'invalid_request_error',
              code: 'user_account_already_disabled',
              message: 'Account already disabled for the user'
          }
      }
    3. La cuenta no existe
      Response (application/JSON) : { 
          error: {
              type: 'invalid_request_error',
              code: 'account_non_existant',
              message: 'Account with this email does not exist'
          }
      }

    Ejemplo de solicitud :Cuerpo (application/JSON)

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

    Ejemplo de solicitud 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: <your api key>'
  16. Habilitar subusuario

    POST
    https://api.idrivee2.com/api/subusers/v1/enableHaga clic para copiarLink copiado Esta API vuelve a habilitar las cuentas de subusuario deshabilitadas. Los subusuarios pueden iniciar sesión, acceder a datos y realizar operaciones normales después de ser habilitados.

    Entrada

                                        string subuser_email;
    string admin_email;
    bool email_notification; // La notificación por correo electrónico al subusuario se enviará solo si este parámetro se establece en verdadero

    Producción
    Sobre la respuesta exitosa de la API (solicitud/JSON) sería:

    { success: true }

    Parámetros de longitud

    • Email [255]

    Precondición

    • Usuario registrado/creado.
    • La cuenta de usuario fue deshabilitada previamente.

    Caso de error específico

    1. Si el subusuario no está registrado
      Response (application/JSON) : { 
          error: {
              type: 'invalid_request_error',
              code: 'user_not_signed_up',
              message: 'Subuser is not signed up'
          }
      }
    2. Si la cuenta del subusuario ya está habilitada
      Response (application/JSON) : { 
          error: {
              type: 'invalid_request_error',
              code: 'user_account_already_enabled',
              message: 'Account already enabled for the user'
          }
      }
    3. La cuenta no existe.
      Response (application/JSON) : { 
          error: {
              type: 'invalid_request_error',
              code: 'account_non_existant',
              message: 'Account with this email does not exist'
          }
      }

    Ejemplo de solicitud :Cuerpo (application/JSON)

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

    Ejemplo de solicitud 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>'
  17. Eliminar subusuario

    POST
    https://api.idrivee2.com/api/subusers/v1/removeHaga clic para copiarLink copiado Esta API eliminará permanentemente a los usuarios de IDrive® e2.
    Nota: Los datos del usuario se perderán permanentemente al realizar esta operación.

    Entrada

                                        string subuser_email;
    string admin_email;
    bool email_notification; // La notificación por correo electrónico al subusuario se enviará solo si este parámetro se establece en verdadero

    Parámetros de longitud

    • Email [255]

    Precondición

    • El usuario debe estar deshabilitado.

    Producción
    Sobre la respuesta exitosa de la API (solicitud/JSON) sería:

    { success: true }

    Parámetros de longitud

    • Email [255]

    Caso de error específico

    1. Si el subusuario no está registrado
      Response (application/JSON) : {
          error: {
              type: 'invalid_request_error',
              code: 'user_not_signed_up',
              message: 'Subuser is not signed up'
          } }
    2. Si la cuenta del subusuario no está deshabilitada
      Response (application/JSON) : {
                                           error: {
              type: 'invalid_request_error',
              code: 'user_account_not_disabled',
              message: 'User account not disabled'
          } }
    3. La cuenta no existe
      Response (application/JSON) : {
          error: {
              type: 'invalid_request_error',
              code: 'account_non_existant',
              message: 'Account with this email does not exist'
          } }

    Ejemplo de solicitud :Cuerpo (application/JSON)

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

    Ejemplo de solicitud 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: <your api key>'
  18. Cancelar invitación

    POST
    https://api.idrivee2.com/api/subusers/v1/invite/cancelHaga clic para copiarLink copiado Esta API cancelará la invitación enviada al subusuario.

    Entrada

                                  string subuser_email;
    string admin_email;

    Parámetros de longitud

    • Email [255]

    Precondición

    • El usuario no debe estar ya registrado.

    Producción
    Sobre la respuesta exitosa de la API (solicitud/JSON) sería:

    { success: true }

    Caso de error específico

    1. Si el subusuario ya está registrado
      Response (application/JSON) : {
          error: {
              type: 'invalid_request_error',
              code: 'user_already_signedup',
              message: 'User signed up'
          }
      }

    Ejemplo de solicitud :Cuerpo (application/JSON)

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

    Ejemplo de solicitud 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: <your api key>'
  19. Actualizar subusuario

    POST
    https://api.idrivee2.com/api/subusers/v1/updateHaga clic para copiarLink copiado Esta API actualiza el acceso, los permisos, SSO y el control de sesión de los subusuarios. La API se puede usar para actualizar tanto a los subusuarios invitados como a los registrados.

    Entrada

                                  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

    Nota

    Puede consultar la API Invitar subusuario para obtener detalles sobre los parámetros del cuerpo de la solicitud. Solo se deben incluir en el cuerpo de la solicitud los parámetros que necesiten ser actualizados.

    Producción
    Sobre la respuesta exitosa de la API (solicitud/JSON) sería:

    { success: true }

    Parámetros de longitud

    • Email [255]

    Caso de error específico

    1. El almacenamiento no existe
      Response (application/JSON) : {
          error: {
              type: 'invalid_request_error',
              code: 'storage_non_existant',
              message: 'Storage does not exist'
          }
      }
    2. La cuenta no existe
      Response (application/JSON) : {
          error: {
              type: 'invalid_request_error',
              code: 'account_non_existant',
              message: 'Account with this email does not exist'
          }
      }
    3. Si sso_login se envía como true y SSO no está configurado
      Response (application/JSON) : {
          error: {
              type: 'invalid_request_error',
              code: 'sso_not_configured',
              message: 'SSO is not configured'
          }
      }

    Ejemplo de solicitud :Cuerpo (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"
    }

    Ejemplo de solicitud 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: <your api key>'
  20. Obtener registros de actividad

    POST
    https://api.idrivee2.com/api/subusers/v1/user_activity_historyHaga clic para copiarLink copiado Esta API obtendrá los registros de actividad de un subusuario para un rango de fechas.

    Entrada

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

    Parámetros de longitud

    • Email [255]

    Nota

    start_date (ISO8601) - Fecha de inicio
    end_date (ISO8601) - Fecha de fin
    page_no - La API está paginada con cada página que consta de 200 registros
    y page_no comienza desde 1 en adelante

    Producción
    En caso de éxito, la respuesta de la API (aplicación/JSON) sería:

                                     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;
    }

    Caso de error específico

    1. Si el subusuario no está registrado
      Response (application/JSON) : { 
          error:{
              type: 'invalid_request_error',
              code: 'user_not_signed_up',
              message: 'Subuser is not signed up'
          }
      }
    2. La cuenta no existe
      Response (application/JSON) : { 
          error:{
              type: 'invalid_request_error',
              code: 'account_non_existant',
              message: 'Account with this email does not exist'
          }
      }

    Ejemplo de solicitud: Cuerpo (aplicación/JSON)

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

    Ejemplo de solicitud 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: <your api key>'