Coleção de APIs do Revendedor

A API de Revendedor do IDrive® e2 é desenvolvida com arquitetura REST.

A API de Revendedor do IDrive® e2 aceita corpos de requisição no tipo de conteúdo 'application/JSON' e retorna respostas em 'application/JSON'.

Nossa API usa o mecanismo de autenticação por chave de API. Você pode gerar a chave de API na seção de perfil da conta IDrive® e2.

Adicione a chave de API gerada na seção de perfil ao cabeçalho de todas as chamadas HTTP da API com a chave 'token'.

Códigos de resposta HTTP:

  • 200 (Sucesso)
  • 500 (Erro de servidor)
  • 400 (Parâmetros inválidos)
  • 401 (Não autorizado)
  • 403 (Requisição inválida)

O corpo da resposta de erro terá a seguinte estrutura:

                        Resposta (application/JSON) : { 
      error : {
         string tipo;
         string code;
         string mensagem;
       }
}

Os valores possíveis para 'error.type' são:

  1. api_error
  2. invalid_request_error
  3. server_error

Para mais detalhes, 'error.code' e 'error.message' explicam o que deu errado.

Casos comuns de erro

A seguir estão os casos comuns de erro que podem ser retornados por todas as APIs detalhadas abaixo. Os demais casos de erro serão documentados nas APIs específicas.

  1. Erro de servidor (HTTP 500)
     
                               Resposta (application/JSON) : {
          error:{
                type: 'api_error',
                code: 'request_processing_failed',
                message: 'Não foi possível processar esta requisição, tente novamente mais tarde'
                }
    }
  2. Não autorizado (HTTP 401)
     
                                  Resposta (application/JSON) : {
          error:{
                type: 'invalid_request_error',
                code: 'unauthorized',
                message: 'Cabeçalho de autenticação ausente/inválido'
           }
    }
  3. Parâmetros inválidos (HTTP 400)
     
                                  Resposta (application/JSON) : {
          error:{
                type: 'invalid_request_error',
                code: 'invalid_parameters',
                message: 'Valores de parâmetros inválidos, verifique os erros para mais detalhes',
                errors: [] (o array contém detalhes do erro)
             }
    }
Chave de API no cabeçalho AUTHORIZATION
Chave token
Valor <YOUR-API-KEY>

As enumerações usadas nas APIs são:

Enums:

Permissões da chave de acesso:

                        {
    0: Acesso de leitura,
    1: Acesso de gravação,
    2: Acesso de leitura/gravação
}

Operações de usuário

  1. Listar todos os usuários

    GET
    https://api.idrivee2.com/api/reseller/v1/usersClick to copyLink copied Isso exibe todos os usuários adicionados ao seu perfil.
    Você pode opcionalmente filtrar usuários por e-mail usando um parâmetro de consulta.

    Parâmetros de consulta (opcional):

    string email;

    Filtra usuários por correspondência exata de e-mail. O parâmetro email deve ser codificado em URL.

    Saída

    A API retorna um array dos usuários adicionados ao seu perfil.
    A estrutura da resposta é a seguinte:

                               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) (0 : ilimitado, senão > 0)
    invite_url se não for nulo pode ser usado pelo usuário convidado para se cadastrar

    Exemplos de requisições:

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

    Exemplo de requisição Curl:

    Obter todos os usuários:

    curl --request GET 'https://api.idrivee2.com/api/reseller/v1/users' --header 'token: <sua chave de api>'

    Obter usuário por e-mail:

    curl --request GET 'https://api.idrivee2.com/api/reseller/v1/users?email=user%40example.com'' --header 'token: <sua chave de api>'
  3. Convidar Usuário
  4. PUT
    https://api.idrivee2.com/api/reseller/v1/inviteClick to copyLink copied Esta API convidará uma conta de usuário no IDrive® e2 que será vinculada à sua conta. Esta API não enviará nenhum e-mail; você será responsável por compartilhar a URL com o usuário

    Entrada

    string email; 
    int quota; //optional

    Observação:

    • Cota (GB) (0 para ilimitado, senão >0)

    Parâmetros de comprimento

    • Email [255]

    Saída
    Em caso de sucesso, a resposta da API (application/JSON) será:

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

    Casos de erro

    • Requisição inválida (HTTP-403)
      1. O usuário já existe e está vinculado à sua conta.
                                                        { 
            error:{
               type: 'invalid_request_error',
               code: 'user_signed_up',
               message: 'Usuário já cadastrado'
               }
        }
      2. E-mail já em uso (existe uma conta independente que não está vinculada à sua conta).
                                                        { 
            error:{
               type: 'invalid_request_error',
               code: 'email_already_in_use',
               message: 'E-mail já em uso'
               }
        }
      3. Número máximo de subcontas já convidadas/cadastradas.
                                                        { 
            error:{
               type: 'invalid_request_error',
               code: 'maximum_limit_reached',
               message: 'Limite máximo atingido. Entre em contato com o suporte.
               }
        }

    Exemplo de requisição: Corpo (application/JSON)

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

    Exemplo de requisição 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. Criar Usuário
  6. PUT
    https://api.idrivee2.com/api/reseller/v1/create_userClick to copyLink copied Esta API criará uma conta de usuário no IDrive® e2 que será vinculada à sua conta.

    Entrada

                                  string email; 
    string password; //string codificada em base64
    string first_name;
    string last_name; //last_name é um parâmetro opcional
    int quota;
    bool email_notification; //email_notification é um parâmetro opcional

    Observação:

    • Cota (GB) (0 para ilimitado, caso contrário >0)
    • A senha é uma string codificada em base64.
    • email_notification: se fornecido e definido como false, nenhuma notificação por e-mail será enviada ao endereço de e-mail especificado.

    Parâmetros de Comprimento

    • E-mail [255]
    • Senha [100]
    • Nome [64]
    • Sobrenome [64]

    Saída
    Em caso de sucesso, a resposta da API (application/JSON) será:

    { user_created: true }

    Casos de Erro

    • Requisição Inválida (HTTP-403)
      1. O usuário já existe e está vinculado à sua conta.
                                            { 
            error:{
                  type: 'invalid_request_error',
                  code: 'user_signed_up',
                  message : 'User already signed up'
                 }
        }
      2. E-mail já em uso (existe uma conta independente que não está vinculada à sua conta).
                                               { 
            error:{
                  type: 'invalid_request_error',
                  code: 'email_already_in_use',
                  message: 'Email already in use'
                 }
        }

    Exemplo de Requisição: Corpo (application/JSON)

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

    Exemplo de Requisição 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. Editar Usuário
  8. POST
    https://api.idrivee2.com/api/reseller/v1/edit_userClique para copiarLink copiado Esta API permite atualizar uma conta de usuário existente vinculada à sua conta de revendedor.

    Entrada

    string email;         // obrigatório
    int quota;        // 0 = ilimitado, >0 = GB
    bool email_notification; //opcional

    Parâmetros

    • email (string, obrigatório)
      Endereço de e-mail do usuário a ser atualizado
    • quota (int, opcional)
    • Cota de armazenamento em GB
      Cota (GB) (0 para ilimitado, caso contrário >0)
    • email_notification (bool, opcional)
      Se definido como false, as notificações por e-mail não serão enviadas ao usuário

    Saída
    Em caso de sucesso, a resposta da API (application/JSON) será:

    { user_updated: true }

    Casos de erro

    • Requisição inválida (HTTP-403)
                                          { 
          error:{
                type: 'invalid_request_error',
                code: 'account_non_existant',
                message : "A conta com este e-mail não existe"
               }
      }
    • Não permitido (tentativa de atualização inválida)
                                             { 
          error:{
                type: 'invalid_request_error',
                code: 'not_allowed',
                message: 'Esta operação não é permitida. Entre em contato com o suporte.'
               }
      }

    Exemplo de requisição: Corpo (application/JSON)

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

    Exemplo de requisição 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
    }'

    Observação:

    • email_notification pode ser alterado apenas para usuários de cadastro e usuários não gerenciados
    • Atualizar email_notification para usuários gerenciados ou sem cadastro retornará um erro not_allowed
    • quota pode ser atualizada para todos os usuários
  9. Desativar usuário
  10. POST
    https://api.idrivee2.com/api/reseller/v1/disable_userClick to copyLink copied Esta API desativa a conta do usuário. Os usuários não poderão fazer login, acessar dados nem realizar operações.

    Entrada

    string email;

    Parâmetros de tamanho

    • E-mail [255]

    Pré-condição

    • Usuário cadastrado.
    • Conta ativada.

    Saída
    Em caso de sucesso, a resposta da API (application/JSON) será:

    { user_disabled : true }

    Casos de erro

    • Requisição inválida (HTTP 403)
      1. Conta já desativada.
                                                           error:{ 
               type: 'invalid_request_error',
               code: 'user_account_already_disabled',
               message: 'Conta já desativada para o usuário'
               }
        }
      2. A conta não existe.
                                                        error:{ 
               type: 'invalid_request_error',
               code: 'account_non_existant',
               message: 'A conta com este e-mail não existe'
               }
        }

    Exemplo de requisição: corpo (application/JSON)

                                           {
        "email":"e2reseller+1"
    }

    Exemplo de requisição Curl:

                                           curl --request POST 'https://api.idrivee2.com/api/reseller/v1/disable_user' 
    --data '{
        "email":"e2reseller+1@idrivee2.com"
    }'
  11. Ativar usuário
  12. POST
    https://api.idrivee2.com/api/reseller/v1/enable_userClick to copyLink copied Esta API reativa contas de usuário desativadas. Os usuários podem fazer login, acessar dados e realizar operações normais.

    Entrada

    string email;

    Parâmetros de tamanho

    • E-mail [255]

    Pré-condição

    • Usuário cadastrado/criado.
    • A conta do usuário foi desativada anteriormente.

    Saída
    Em caso de sucesso, a resposta da API (application/JSON) será:

    { user_enabled : true }

    Casos de erro

    • Requisição inválida (HTTP 403)
      1. A conta não existe.
                                                           error:{ 
               type: 'invalid_request_error',
               code: 'account_non_existant',
               message: 'A conta com este e-mail não existe'
               }
        }
      2. Conta já ativada.
                                                        error:{ 
               type: 'invalid_request_error',
               code: 'user_account_already_enabled',
               message: 'Conta já ativada para o usuário'
               }
        }

    Exemplo de requisição: corpo (application/JSON)

                                          {
        "email":"e2reseller+1"
    }

    Exemplo de requisição 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. Remover usuário
  14. POST
    https://api.idrivee2.com/api/reseller/v1/remove_userClick to copyLink copied Esta API excluirá permanentemente usuários do IDrive® e2.

    Nota: Os dados do usuário serão perdidos permanentemente ao realizar esta operação.

    Entrada

    string email;

    Parâmetros de tamanho

    • Email [255]

    Pré-condição

    • O usuário deve estar desativado.

    Saída
    Em caso de sucesso, a resposta da API (JSON) será:

    { user_removed : true }
    Casos de erro

    • Solicitação inválida (HTTP 403)
      1. A conta não existe.
                                                           {
              error:{
                     type: 'invalid_request_error',
                     code: 'account_non_existant',
                     message:'Conta com este e-mail não existe'
                    }
        }
      2. Conta não desativada.
                                                              {
              error:{
                     type: 'invalid_request_error',
                     code: 'user_account_not_disabled',
                     message: 'Conta de usuário não desativada'
                    }
        }

    Exemplo de requisição: Corpo (application/JSON)

                                             {
        "email":"e2reseller+1"
    }

    Exemplo de requisição Curl:

                                              curl  --request POST 'https://api.idrivee2.com/api/reseller/v1/remove_user' 
    --data '{
        "email":"e2reseller+1"
    }' --header 'token: <your api key>'
  15. Cancelar convite
  16. POST
    https://api.idrivee2.com/api/reseller/v1/invite/cancelClick to copyLink copied Esta API cancelará a conta do usuário convidado no IDrive® e2, que será vinculada à sua conta.

    Entrada

    string email;

    Parâmetros de comprimento

    • Email [255]

    Saída
    Em caso de sucesso, a resposta da API (application/JSON) será:

    { user_removed : true }
    Casos de erro

    1. Convite não removido
      Ocorre quando o email fornecido é inválido, já está cadastrado ou não está associado à conta do revendedor.
      Resposta
                                                         {
          "user_removed": false
      }
    2. Falha no processamento da solicitação
      Ocorre quando a solicitação da API é inválida ou não pode ser processada.
      Resposta
                                                           {
          "message": "Request processing failed"
      }

    Exemplo de requisição Curl:

                                              curl  --request POST 'https://api.idrivee2.com/api/reseller/v1/invite/cancel' 
    --data '{
        "email":"e2reseller+1"
    }' --header 'token: <your api key>'
  17. Redefinição de senha
  18. Obter link de redefinição de senha do subusuário

    POST
    https://api.idrivee2.com/api/reseller/v1/subuser/reset_password_linkClique para copiarLink copiado Esta API gera um link de redefinição de senha para um subusuário do revendedor. O link é retornado na resposta da API com expiração de token de 1 hora.

    Entrada

    string email;

    Observação:
    "email" - o endereço de e-mail do subusuário para o qual você deseja gerar o link de redefinição de senha. O subusuário deve pertencer ao revendedor solicitante e estar cadastrado, mas não gerenciado.

    Saída
    Em caso de sucesso, a resposta da API (application/JSON) será:

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

    Parâmetros de tamanho

    • E-mail [255]
    Casos de erro específicos

    1. Se o subusuário não existir
       
                                                                                             Resposta (application/JSON): {
            error:{
                  type: 'invalid_request_error',
                  code: 'account_non_existant',
                  message: 'A conta com este e-mail não existe'
               }
      }
    2. Se o subusuário não estiver cadastrado
       
                                                                                             Resposta (application/JSON): {
            error:{
                  type: 'invalid_request_error',
                  code: 'user_not_signed_up',
                  message: 'O subusuário não está cadastrado'
               }
      }
    3. Se o subusuário for gerenciado
       
                                                                                             Resposta (application/JSON): {
            error:{
                  type: 'invalid_request_error',
                  code: 'not_allowed',
                  message: 'Esta operação não é permitida. Entre em contato com o suporte.',
               }
      }

    Erro de autenticação para chave de API inválida

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

    Exemplo de requisição: Corpo (application/JSON)

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

    Exemplo de requisição 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. Obter uso de armazenamento
  20. POST
    https://api.idrivee2.com/api/reseller/v1/usage_statsClick to copyLink copied Esta API retorna o array de utilização do IDrive® e2 para o usuário informado.

    Entrada

                                              {
        string email;
        string date_from;
        string date_to;
    }

    date_from(ISO8601)(data inicial)
    date_to(ISO8601) (data final)
    Comprimento dos parâmetros

    • Email [255]

    Pré-condições

    • O usuário deve estar cadastrado.

    Saída
    Array da estrutura usage_stats

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

    downloads, uploads, disk_used estão em bytes
    Casos de erro

    • Requisição inválida (HTTP 403)
      1. A conta não existe.
                                                              {
             error:{
                   type: 'invalid_request_error',
                   code: 'account_non_existant',
                   message: 'A conta com este email não existe'
                  }
        }

    Exemplo de Requisição: Corpo (application/JSON)

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

    Exemplo de Requisição 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. Obter Logs de Atividade
  22. POST
    https://api.idrivee2.com/api/reseller/v1/user_activity_historyClique para copiarLink copiado Esta API buscará os logs de atividade de um usuário para um intervalo de datas.

    Entrada

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

    Parâmetros de Tamanho

    • E-mail [255]

    Observação

    start_date (ISO8601) - Data de início
    end_date (ISO8601) - Data de término
    page_no - A API é paginada, com cada página contendo 200 registros
    e page_no começa a partir de 1

    Saída
    Em caso de sucesso, a resposta da API (application/JSON) será:

                                               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 Erro Específico

    1. A conta não existe.
                                                   Resposta (application/JSON): { 
          error: {
              type: 'invalid_request_error',
              code: 'account_non_existant',
              message: 'A conta com este e-mail não existe'
          }
      }

    Exemplo de Requisição: Corpo (application/JSON)

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

    Exemplo de Requisição 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>'

Operações de Armazenamento

  1. Listar Regiões

    GET
    https://api.idrivee2.com/api/reseller/v1/regionsClick to copyLink copied Esta API retorna uma lista de regiões para o IDrive® e2.

    Saída

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

    Observação: Somente regiões ativas podem ser habilitadas para o usuário.

    Exemplo de Requisição: Listar Regiões

    curl --request GET 'https://api.idrivee2.com/api/reseller/v1/regions' --header 'token: <your api key>'
                                     
                                  
  2. Habilitar Região para o Usuário
  3. POST
    https://api.idrivee2.com/api/reseller/v1/enable_user_regionClick to copyLink copied Esta API habilita as regiões para o usuário.

    Entrada

    {
         string email;
         string region;
    }

    region : region_key da API de listagem de regiões, por exemplo "TX", "LDN" etc.

    A API retorna o DN de armazenamento (nome de domínio) para a região habilitada, por meio do qual o armazenamento do usuário pode ser acessado usando access key e secret key.

    Parâmetros de Tamanho

    • Email [255]
    • Region[5]

    Pré-condição

    • Conta de usuário existente.
    • A região não deve estar habilitada para o usuário.

    Saída

    Em caso de sucesso, a resposta da API (application/JSON) será:

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

    Casos de Erro

    • Solicitação inválida (HTTP 403)
      1. A conta não existe.
                                               {
            error:{
                  type: 'invalid_request_error',
                  code: 'account_non_existant',
                  message: 'A conta com este email não existe'
            }
        }
      2. A região de armazenamento já está habilitada para o usuário.
                                               {
            error:{
                  type: 'invalid_request_error',
                  code: 'region_already_enabled',
                  message: 'A região de armazenamento já está habilitada para o usuário'
            }
        }
      3. Usuário desativado.
                                               {
            error:{
                  type: 'invalid_request_error',
                  code: 'user_disabled',
                  message: 'Usuário desativado'
            }
        }
      4. O pagamento da sua conta falhou.
                                               {
            error:{
                  type: 'invalid_request_error',
                  code: 'payment_failed',
                  message: 'Conta expirada, atualize as informações de pagamento'
            }
        }

    Exemplo de solicitação: corpo (application/JSON)

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

    Exemplo de solicitação 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 regiões habilitadas do usuário

    POST
    https://api.idrivee2.com/api/reseller/v1/list_user_regionsClique para copiarLink copiado Esta API lista todas as regiões habilitadas do usuário.

    Entrada

    {
                                       
    string email;
    }

    Parâmetros de comprimento

    • Email [255]

    Pré-condição

    • Conta de usuário existente.

    Saída

    Em caso de sucesso, a resposta da API (application/JSON) será:

                                     { 
      user_regions: /*lista as regiões habilitadas do usuário*/
    }

    Casos de erro

    • Solicitação inválida (HTTP 403)
      1. A conta não existe.
                                                  {
            error:{
                  type: 'invalid_request_error',
                  code: 'account_non_existant',
                  message: 'Não existe conta com este email'
            }
        }
      2. Usuário desabilitado.
                                                  {
            error:{
                  type: 'invalid_request_error',
                  code: 'user_disabled',
                  message: 'Usuário desabilitado'
            }
        }

    Exemplo de solicitação: corpo (application/JSON)

                                        {
      "email":""
    }

    Exemplo de solicitação Curl:

    curl --request POST 'https://api.idrivee2.com/api/reseller/v1/list_user_regions'
    --data '{
    "email":""
    }' --header 'token: <your api key>'
  5. Remover região atribuída ao usuário
  6. POST
    https://api.idrivee2.com/api/reseller/v1/remove_user_regionClick to copyLink copied Esta API remove uma região atribuída ao usuário.

    Entrada

    { 
        string email;
        string storage_dn;
    }

    'storage_dn' é o domínio de armazenamento atribuído ao usuário que você deseja remover.

    Parâmetros de comprimento

    • Email [255]
    • Storage_dn[128]

    Pré-condição

    • Usuário cadastrado.
    • O armazenamento deve estar atribuído ao usuário.

    Observe que esta ação resultará na exclusão dos dados do usuário.

    A API permitirá remover a região do usuário se

    O usuário estiver em estado desativado

    1. Nenhum bucket criado pelo usuário

    Saída

    Em caso de sucesso, a API retornará a resposta (JSON):

    {removed : true}

    Casos de erro

    • Solicitação inválida (HTTP 403)
      1. A conta não existe.
                                                  {
            error:{
                  type: 'invalid_request_error',
                  code: 'account_non_existant',
                  message: 'A conta com este email não existe'
            }
        }
      2. O armazenamento não existe.
                                                  {
            error:{
                  type: 'invalid_request_error',
                  code: 'storage_non_existant',
                  message: 'O armazenamento não existe'
            }
        }
      3. Armazenamento não vazio.
                                                  {
            error:{
                  type: 'invalid_request_error',
                  code: 'storage_not_empty',
                  message: 'Armazenamento não vazio. Para evitar perda de dados do usuário, esta solicitação não será
                  processada. Para remover este armazenamento, desative o usuário primeiro e tente novamente'
            }
        }

    Exemplo de Requisição: Corpo (application/JSON)

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

    Exemplo de Requisição 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. Atualizar configurações de cors para a região do usuário
  8. Método: POST
    URL:  https://api.idrivee2.com/api/reseller/v1/storage/set_corsClick to copyLink copied Esta API irá atualizar as configurações de cors para uma região.

    Tipo de conteúdo : application/json

    Cabeçalho da chave de API:

    'token': <your token>

    Parâmetro obrigatório:

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

    Parâmetros obrigatórios: email,storage_dn,cors
    Limites de tamanho dos parâmetros: email[255],storage_dn[128], cors (até 10 domínios separados por vírgula)
    OBSERVAÇÃO: Para todos os cors você pode definir cors como "*", que também é o cors padrão em todas as regiões

    Saída

    Em caso de sucesso, a API retornará a resposta (application/JSON):

                                        {
    cors_updated: true
    }

    Casos de erro

    • Requisição inválida (HTTP 403)
      1. A conta não existe.
                                                     {
            error:{
                  type: 'invalid_request_error',
                  code: 'account_non_existant',
                  message: 'A conta com este email não existe'
            }
        }
      2. O armazenamento não existe.
                                                     {
            error:{
                  type: 'invalid_request_error',
                  code: 'storage_non_existant',
                  message: 'O armazenamento não existe'
            }
        }
      3. Parâmetros de cors inválidos.
                                                     {
            error:{
                  type: 'invalid_request_error',
                  code: 'invalid_cors_policy',
                  message: 'A política de cors é inválida' / 'No máximo 10 cors são permitidos'
            }
        }

    Exemplo de requisição 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. Adicionar Chave de Acesso
  10. POST
    https://api.idrivee2.com/api/reseller/v1/create_access_keyClick to copyLink copied Esta API cria uma Chave de Acesso para acesso ao armazenamento e retorna o ID da Chave de Acesso e a Chave Secreta.

    Entrada

    { 
        string email;
        string storage_dn;
        string name;
        int permissions;
        array buckets; //buckets é um parâmetro opcional
    }

    Buckets: Forneça uma lista de nomes de buckets para criar uma chave de acesso para buckets específicos acessarem o armazenamento. A entrada 'buckets' não é obrigatória se a chave de acesso for para todos os buckets.

    Pré-condição

    • Usuário cadastrado/criado e habilitado.
    • Storage DN atribuído ao respectivo usuário.
    • Buckets não devem estar vazios, se fornecidos.

    Parâmetros de comprimento

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

    Enumeração de permissões da Chave de Acesso:

    { 
        0: Acesso de leitura
        1: Acesso de escrita
        2: Acesso de leitura/escrita
    }

    Saída

    Em caso de sucesso, a API retornará a resposta (application/JSON):

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

    Casos de erro

    • Requisição inválida (HTTP 403)
      1. A conta não existe.
                                               {
            error:{
                  type: 'invalid_request_error',
                  code: 'account_non_existant',
                  message: 'Conta com este e-mail não existe'
            }
        }
      2. O armazenamento não existe.
                                               {
            error:{
                  type: 'invalid_request_error',
                  code: 'storage_non_existant',
                  message: 'O armazenamento não existe'
            }
        }
      3. Usuário desabilitado.
                                               {
            error:{
                  type: 'invalid_request_error',
                  code: 'user_disabled',
                  message: 'Usuário desabilitado'
            }
        }

    Exemplo de requisição: Body (application/JSON)

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

    Exemplo de requisição 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. Listar chaves de acesso
  12. POST
    https://api.idrivee2.com/api/reseller/v1/list_access_keysClick to copyLink copied Esta API lista todas as chaves de acesso para o armazenamento.

    Entrada

    { 
        string email;
        string storage_dn;
    }

    'storage_dn' é o domínio de armazenamento atribuído ao usuário para o qual você deseja listar todas as chaves de acesso

    Parâmetros de comprimento

    • email [255]
    • storage_dn[128]

    Pré-condição

    • User signed up/created and enabled.
    • Storage assigned to the user.

    Saída

    Em caso de sucesso, a API retornará a resposta (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*/
          },
          {...},
          …
        ]
    }

    Casos de erro

    • Requisição inválida (HTTP 403)
      1. A conta não existe.
                                            {
            error:{
                  type: 'invalid_request_error',
                  code: 'account_non_existant',
                  message: 'A conta com este e-mail não existe'
            }
        }
      2. O armazenamento não existe.
                                            {
            error:{
                  type: 'invalid_request_error',
                  code: 'storage_non_existant',
                  message: 'O armazenamento não existe'
            }
        }
      3. Usuário desabilitado.
                                            {
            error:{
                  type: 'invalid_request_error',
                  code: 'user_disabled',
                  message: 'Usuário desabilitado'
            }
        }

    Exemplo de requisição: Body (application/JSON)

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

    Exemplo de requisição 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. Remover Access Key
  14. POST
    https://api.idrivee2.com/api/reseller/v1/remove_access_keyClique para copiarLink copiado Esta API remove a Access Key do armazenamento.

    Entrada

    { 
        string email;
        string storage_dn;
        string access_key;
    }

    Parâmetros de Comprimento

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

    Pré-condição

    • Usuário cadastrado/criado e habilitado.
    • Armazenamento atribuído ao usuário.
    • A access key existe para o armazenamento.

    Saída

    Em caso de sucesso, a API retornará uma Resposta (application/JSON):

    {removed : true}

    Casos de Erro

    • Requisição Inválida (HTTP 403)
      1. Conta não existe.
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'account_non_existant',
                  message: 'Account with this email does not exist'
            }
        }
      2. Armazenamento não existe.
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'storage_non_existant',
                  message: 'Storage does not exists'
            }
        }
      3. Usuário desabilitado.
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'user_disabled',
                  message: 'User Disabled'
            }
        }
      4. Access key não existe.
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'access_key_non_existant',
                  message: 'Access key does not exist, please provide a valid access key'
            }
        }

    Exemplo de Requisição: Corpo (application/JSON)

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

    Exemplo de Requisição 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":"<sua chave de acesso>"
    }' --header 'token: <sua chave de API>'

Operações de Whitelabeling

  1. Adicionar CNAMEs

    POST
    https://api.idrivee2.com/api/reseller/v1/storage/cname/addClique para copiarLink copiado Esta API adiciona CNAME para o DNS de armazenamento especificado.

    Entrada

    { 
        string email;
        string storage_dn;
        string cname;
        string public_key;
        string private_key;
        string file_index;
        string passphrase; // opcional, deve ser enviado somente no caso de chave privada criptografada
    }

    'storage_dn' é o domínio de armazenamento atribuído ao usuário.

    'CNAME' é o novo CNAME que precisa ser atribuído.

    'file_index' é um parâmetro opcional.

    Parâmetros de Tamanho

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

    Pré-condições

    • Usuário cadastrado/criado e habilitado.
    • Armazenamento atribuído ao usuário.
    • O storage_dn deve ser o endpoint do tenant obtido da API List User Enabled Regions.

    Saída

    Em caso de sucesso, a API retornará a resposta (application/JSON):

    { 'cname_added' : true }

    Casos de Erro

    • Requisição Inválida (HTTP 403)
      1. Conta não existe.
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'account_non_existant',
                  message: 'Account with this email does not exist'
            }
        }
      2. CNAME não pode ser utilizado
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'request_processing_failed',
                  message: 'this CNAME cannot be used, please try changing your CNAME'
            }
        }
      3. Domínio de armazenamento não existe — se o storage_dns estiver incorreto
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'request_processing_failed',
                  message: 'Unable to retrieve storage info for given storage_dn'
            }
        }
      4. Se o CNAME já estiver configurado
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'request_processing_failed',
                  message: 'CNAME already configure'
            }
        }
      5. CNAME ou Certificados inválidos — se as chaves pública e privada estiverem incorretas
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'request_processing_failed',
                  message: 'Could not verify CNAME or certificates. Please try again'
            }
        }
    • Erro no Servidor (HTTP 500)
      1. Não foi possível processar esta requisição
                                         {
            error:{
                  type: 'api_error',
                  code: 'request_processing_failed',
                  message: 'Unable to process this request, please try again later'
            }
        }
      2. Dados não encontrados para o dns fornecido
                                         {
            error:{
                  type: 'api_error',
                  code: 'request_processing_failed',
                  message: 'data not found for given dns'
            }
        }

    Exemplo de Requisição: Corpo (application/JSON)

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

    Exemplo de Requisição 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/cnameClick to copyLink copied Esta API lista todos os CNAMEs do armazenamento.

    Entrada

    { 
        string email;
        string storage_dn;
    }

    'storage_dn' é o domínio de armazenamento atribuído ao usuário para o qual você deseja listar todos os CNAMEs

    Parâmetros de Tamanho

    • email[255]
    • storage_dn[128]

    Pré-condição

    • Usuário cadastrado/criado e habilitado.
    • Armazenamento atribuído ao usuário.
    • O storage_dn deve ser o endpoint do tenant obtido da API Listar Regiões Habilitadas do Usuário.

    Saída

    Em caso de sucesso, a API retornará a resposta (application/JSON):

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

             {...},
         ]
    }

    Casos de Erro

    • Requisição Inválida (HTTP 403)
      1. A conta não existe.
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'account_non_existant',
                  message: 'Conta com este e-mail não existe'
            }
        }
      2. Usuário desabilitado.
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'user_disabled',
                  message: 'Usuário desabilitado'
            }
        }
    • Erro do Servidor (HTTP 500)
      1. Não foi possível processar esta requisição
                                         {
            error:{
                  type: 'api_error',
                  code: 'request_processing_failed',
                  message: 'Não foi possível processar esta requisição, tente novamente mais tarde'
            }
        }
      2. Dados não encontrados para o dns fornecido
                                         {
            error:{
                  type: 'api_error',
                  code: 'request_processing_failed',
                  message: 'dados não encontrados para o dns fornecido'
            }
        }

    Exemplo de Requisição: Corpo (application/JSON)

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

    Exemplo de Requisição 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:<sua chave de api>'
  3. Atualizar CNAMEs

    POST
    https://api.idrivee2.com/api/reseller/v1/storage/cname/updateClique para copiarLink copiado Esta API atualiza o CNAME para o dns de armazenamento especificado.

    Entrada

    { 
        string region_key;
        string email;
        string storage_dn;
        string cname;
        string public_key;
        string private_key;
        string file_index;
        string passphrase; // opcional, deve ser enviado apenas no caso de chave privada criptografada
    }

    'storage_dn' é o domínio de armazenamento atribuído ao usuário.

    'CNAME' é o novo CNAME que precisa substituir o CNAME já existente.

    'file_index' é um parâmetro opcional.

    Parâmetros de Comprimento

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

    Pré-condição

    • Usuário registrado/criado e habilitado.
    • Armazenamento atribuído ao usuário.
    • O storage_dn deve ser o endpoint do tenant obtido da API Listar Regiões Habilitadas do Usuário.

    Saída

    Em caso de sucesso, a API retornará uma Resposta (application/JSON):

    { 'cname_updated' : true }

    Casos de Erro

    • Invalid Request (HTTP 403)
      1. A conta não existe.
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'account_non_existant',
                  message: 'Account with this email does not exist'
            }
        }
      2. CNAME não pode ser utilizado — Se o CNAME for domínio idrive
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'request_processing_failed',
                  message: 'this CNAME cannot be used, please try changing your CNAME'
            }
        }
      3. Domínio de armazenamento não existe — Se o storage_dns estiver incorreto
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'request_processing_failed',
                  message: 'Unable to retrieve storage info for given storage_dn'
            }
        }
      4. Se o storage_dn estiver incorreto
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'request_processing_failed',
                  message: 'Unable to retrieve storage info for given storage_dn'
            }
        }
      5. Servidor de armazenamento inacessível — Domínio não existe — Se o storage_dns estiver indisponível
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'request_processing_failed',
                  message: 'Storage server cannot be reached right now, please try again later'
            }
        }
      6. Se o CNAME já estiver configurado
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'request_processing_failed',
                  message: 'CNAME already configured'
            }
        }
      7. CNAME ou certificados inválidos — Se as chaves pública/privada estiverem incorretas
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'request_processing_failed',
                  message: 'Could not verify CNAME or certificates. Please try again'
            }
        }
      8. Usuário desabilitado
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'user_disabled',
                  message: 'User Disabled'
            }
        }
    • Erro no Servidor (HTTP 500)
      1. Não foi possível processar esta solicitação
                                         {
            error:{
                  type: 'api_error',
                  code: 'request_processing_failed',
                  message: 'Unable to process this request, please try again later'
            }
        }
      2. Dados não encontrados para o dns informado
                                         {
            error:{
                  type: 'api_error',
                  code: 'request_processing_failed',
                  message: 'data not found for given dns'
            }
        }

    Exemplo de Requisição: Body (application/JSON)

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

    Exemplo de Requisição 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:<sua chave de api>'
  4. Remover CNAMEs

    POST
    https://api.idrivee2.com/api/reseller/v1/storage/cname/removeClique para copiarLink copiado Esta API remove o CNAME para o dns de armazenamento.

    Entrada

    { 
        string email;
        string storage_dn;
        string cname;
    }

    'storage_dn' é o domínio de armazenamento atribuído ao usuário.

    CNAME: informe o CNAME que precisa ser removido.

    Parâmetros de Comprimento

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

    Pré-condição

    • Usuário cadastrado/criado e habilitado.
    • Armazenamento atribuído ao usuário.
    • O CNAME deve estar mapeado para o domínio de armazenamento.
    • O storage_dn deve ser o endpoint do inquilino obtido na API Listar Regiões Habilitadas do Usuário.

    Saída

    Em caso de sucesso, a API retornará uma Resposta (application/JSON):

    { 'cname_removed' : true }

    Casos de Erro

    • Requisição Inválida (HTTP 403)
      1. A conta não existe.
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'account_non_existant',
                  message: 'Conta com este e-mail não existe'
            }
        }
      2. Usuário desativado
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'user_disabled',
                  message: 'Usuário desativado'
            }
        }
      3. O CNAME não pode ser usado
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'request_processing_failed',
                  message: 'este CNAME não pode ser usado, tente alterar seu CNAME'
            }
        }
      4. O domínio de armazenamento não existe
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'request_processing_failed',
                  message: 'Não foi possível recuperar as informações de armazenamento para o storage_dn informado'
            }
        }
      5. Não é possível alcançar o servidor de armazenamento
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'request_processing_failed',
                  message: 'Não é possível alcançar o servidor de armazenamento agora, tente novamente mais tarde'
            }
        }
      6. O CNAME não existe para o domínio de armazenamento
                                         {
            error:{
                  type: 'invalid_request_error',
                  code: 'request_processing_failed',
                  message: 'não foi possível obter os detalhes do cname'
            }
        }
      7. Falha ao remover CNAME. Não foi possível remover o CNAME
                                         {
            error:{
                  type: 'api_error',
                  code: 'request_processing_failed',
                  message: 'Não foi possível processar esta solicitação, tente novamente mais tarde'
            }
        }
    • Erro do Servidor (HTTP 500)
      1. Não foi possível processar esta solicitação
                                         {
            error:{
                  type: 'api_error',
                  code: 'request_processing_failed',
                  message: 'Não foi possível processar esta solicitação, tente novamente mais tarde'
            }
        }
      2. Dados não encontrados para o DNS informado
                                         {
            error:{
                  type: 'api_error',
                  code: 'request_processing_failed',
                  message: 'dados não encontrados para o DNS informado'
            }
        }

    Exemplo de Requisição: Body (application/JSON)

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

    Exemplo de Requisição 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:<sua chave de api>'

Operações de Subusuário

A API de Subusuário do IDrive® e2 é compatível com contas de revendedor. Um administrador revendedor pode invocar essas APIs em nome de qualquer usuário em sua conta. Em outras palavras, o administrador revendedor pode usar sua chave de API para realizar operações de gerenciamento de subusuários para qualquer um de seus usuários associados.

Para habilitar essa funcionalidade, todas as requisições de API devem incluir um parâmetro obrigatório adicional: admin_email. Sem a inclusão do parâmetro admin_email no corpo da requisição, as APIs não processarão requisições feitas por contas de revendedor.

Enums:

Permissões de Subusuário:
{
    0: Acesso de leitura,
    1: Acesso de gravação,
    2: Acesso de leitura/gravação
}
  1. Convidar subusuário

    PUT
    https://api.idrivee2.com/api/subusers/v1/inviteClique para copiarLink copiado Esta API envia um convite de criação de conta de subusuário para o e-mail do subusuário mencionado na requisição.

    Entrada

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

    Nota:

    • "subuser_email" - o endereço de e-mail do subusuário para o qual você deseja enviar o convite
    • "disable_delete_object" - um booleano que permite ao subusuário realizar a exclusão de objetos se enviado como false, o padrão é true
    • "pemissions" - um parâmetro enum onde 0 = permissão somente leitura, 1 = permissão somente upload e 2 = permissões de leitura e gravação
    • "is_admin" - um booleano usado para tornar o subusuário um subusuário administrador se enviado como true. Definir este sinalizador como true concederá acesso total ao armazenamento (leitura e gravação) aos subusuários.
    • "sso_login" - um booleano que define se o login SSO está habilitado para o subusuário ou não
    • "allow_session_timeout_settings" - um booleano que permite ao subusuário configurar as definições de tempo limite de sessão se enviado como true
    • "idle_timeout" - se o usuário administrador quiser configurar o tempo limite de sessão (em segundos) para os subusuários. O valor máximo permitido é 3600 segundos (1 hora)
    • "concurrent_sessions" - um booleano que permite ao subusuário ter múltiplas sessões simultâneas se enviado como true
    • "allow_concurrent_session_settings" - um booleano que permite ao subusuário configurar as definições de múltiplas sessões simultâneas se enviado como true
    • "storage_access" - um array de objetos de permissão, se o administrador quiser que o subusuário tenha acesso apenas a buckets limitados. Por exemplo, se o usuário administrador quiser que o subusuário tenha acesso ao "bucket1" e "bucket2" na Região de Chicago e "bucket3" e "bucket4" na região da Irlanda, o administrador deve definir o array storage_access da seguinte forma:
      [
                                          
       {
          "storage_dn": "h4l1.ch.idrivee2-29.com", // Endpoint S3 da sua Região de Chicago
          "buckets": [
              "bucket1", "bucket2"
          ]
       },
       {
          "storage_dn": "r8l2.ie.idrivee2-44.com", // Endpoint S3 da sua Região da Irlanda
          "buckets": [
              "bucket3", "bucket4"
          ]
       }
      ]

      Observe que "storage_access" é um parâmetro opcional e deve ser enviado apenas se o usuário administrador quiser controlar o acesso a nível de bucket para o subusuário.

    Saída
    Em caso de sucesso, a resposta da API (application/JSON) será:

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

    Parâmetros de Comprimento

    • email[255]
  2. Caso de Erro Específico

    1. Se você exceder o limite de número de subusuários permitidos para sua conta
      Resposta (application/JSON) :{ 
          error: {
              type: 'invalid_request_error',
              code: 'maximum_limit_reached',
              message: <informações sobre seu limite>
          }
      }
    2. Se sso_login for enviado como verdadeiro e SSO não estiver configurado
      Resposta (application/JSON) : { 
          error: {
              type: 'invalid_request_error',
              code: 'sso_not_configured',
              message: 'SSO is not configured'
          }
      }

      Exemplo de Requisição: Corpo (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"
      }

      Exemplo de Requisição 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>'
  3. Listar todos os subusuários

    POST
    https://api.idrivee2.com/api/subusers/v1/listClick to copyLink copied Isso exibe todos os subusuários adicionados ao seu perfil.

    Entrada

    string admin_email; 

    Saída
    A API retorna um array dos usuários adicionados ao seu perfil.
    A estrutura da resposta é a seguinte:

                                     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
    Os parâmetros do objeto de usuário correspondem aos parâmetros do corpo da requisição explicados na API de convite. Consulte a API de convite como referência.

    Exemplo de Requisição Curl

                                        curl --request POST 'https://api.idrivee2.com/api/subusers/v1/list' 
    --data '{
        "admin_email": "abc@example.com"
    }'
    --header 'token: <your api key>'
  4. Criar subusuário

    PUT
    https://api.idrivee2.com/api/subusers/v1/create_accountClick to copyLink copied Isso cria uma conta de subusuário que será vinculada à sua conta.

    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
    Você pode consultar a API de convite de subusuário para obter os detalhes dos parâmetros do corpo da requisição.

    Parâmetros de comprimento

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

    Saída
    A resposta da API em caso de sucesso (application/JSON) será:

    { success: true }

    Caso de erro específico

    1. Se você exceder o limite de número de subusuários permitidos para sua conta
      Response (application/JSON) : { 
          error: {
              type: 'invalid_request_error',
              code: 'maximum_limit_reached',
              message: 'information about your limit'
          }
      }
    2. O armazenamento não existe.
      Response (application/JSON) : { 
          error: {
              type: 'invalid_request_error',
              code: 'storage_non_existant',
              message: 'Storage does not exist'
          }
      }
    3. O usuário já existe
      Response (application/JSON) : { 
          error: {
              type: 'invalid_request_error',
              code: 'user_already_signedup',
              message: 'User signed up'
          }
      }
    4. Se sso_login for enviado como true e SSO não estiver configurado
      Response (application/JSON) : {
          error: {
              type: 'invalid_request_error',
              code: 'sso_not_configured',
              message: 'SSO is not configured'
          }
      }

    Exemplo de requisição: corpo (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”
    }

    Exemplo de requisição 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>'
  5. Desativar subusuário

    POST
    https://api.idrivee2.com/api/subusers/v1/disableClick to copyLink copied Esta API desativa a conta do subusuário. Os subusuários não poderão fazer login, acessar dados e executar quaisquer operações.

    Entrada

                                        string subuser_email;
    string admin_email;
    bool email_notification; // a notificação por e-mail para o subusuário será enviada somente se este parâmetro estiver definido como true

    Parâmetros de tamanho

    • Email [255]

    Pré-condição

    • Usuário cadastrado.
    • Conta habilitada.

    Saída
    Em caso de sucesso, a resposta da API (application/JSON) será:

    { success: true }

    Casos de erro específicos

    1. Se o subusuário não estiver cadastrado
      Response (application/JSON) : { 
          error: {
              type: 'invalid_request_error',
              code: 'user_not_signed_up',
              message: 'O subusuário não está cadastrado'
          }
      }
    2. Se a conta do subusuário já estiver desativada
      Response (application/JSON) : { 
          error: {
              type: 'invalid_request_error',
              code: 'user_account_already_disabled',
              message: 'A conta do usuário já está desativada'
          }
      }
    3. A conta não existe
      Response (application/JSON) : { 
          error: {
              type: 'invalid_request_error',
              code: 'account_non_existant',
              message: 'Não existe conta com este e-mail'
          }
      }

    Exemplo de requisição: Corpo (application/JSON)

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

    Exemplo de requisição 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: <sua chave de API>'
  6. Habilitar subusuário

    POST
    https://api.idrivee2.com/api/subusers/v1/enableClick to copyLink copied Esta API reativa contas de subusuário desativadas. Os subusuários podem fazer login, acessar dados e executar operações normais após serem habilitados.

    Entrada

                                        string subuser_email;
    string admin_email;
    bool email_notification; // a notificação por e-mail para o subusuário será enviada apenas se este parâmetro for definido como true

    Saída
    Em caso de sucesso, a resposta da API (application/JSON) será:

    { success: true }

    Parâmetros de tamanho

    • Email [255]

    Pré-condição

    • Usuário cadastrado/criado.
    • A conta do usuário foi desativada anteriormente.

    Caso específico de erro

    1. Se o subusuário não estiver cadastrado
      Resposta (application/JSON) : { 
          error: {
              type: 'invalid_request_error',
              code: 'user_not_signed_up',
              message: 'Subusuário não está cadastrado'
          }
      }
    2. Se a conta do subusuário já estiver habilitada
      Resposta (application/JSON) : { 
          error: {
              type: 'invalid_request_error',
              code: 'user_account_already_enabled',
              message: 'Conta já habilitada para o usuário'
          }
      }
    3. A conta não existe.
      Resposta (application/JSON) : { 
          error: {
              type: 'invalid_request_error',
              code: 'account_non_existant',
              message: 'A conta com este e-mail não existe'
          }
      }

    Exemplo de requisição: Corpo (application/JSON)

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

    Exemplo de requisição 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: <sua chave de API>'
  7. Remover subusuário

    POST
    https://api.idrivee2.com/api/subusers/v1/removeClick to copyLink copied Esta API excluirá permanentemente usuários do IDrive® e2.
    Nota: Os dados do usuário serão perdidos permanentemente ao realizar esta operação.

    Entrada

                                        string subuser_email;
    string admin_email;
    bool email_notification; // a notificação por e-mail para o subusuário será enviada somente se este parâmetro estiver definido como true

    Parâmetros de comprimento

    • Email [255]

    Pré-condição

    • O usuário deve estar desativado.

    Saída
    Em caso de sucesso, a resposta da API (application/JSON) será:

    { success: true }

    Parâmetros de comprimento

    • Email [255]

    Caso de erro específico

    1. Se o subusuário não estiver cadastrado
      Response (application/JSON) : {
          error: {
              type: 'invalid_request_error',
              code: 'user_not_signed_up',
              message: 'Subusuário não está cadastrado'
          } }
    2. Se a conta do subusuário não estiver desativada
      Response (application/JSON) : {
                                           error: {
              type: 'invalid_request_error',
              code: 'user_account_not_disabled',
              message: 'Conta de usuário não desativada'
          } }
    3. A conta não existe
      Response (application/JSON) : {
          error: {
              type: 'invalid_request_error',
              code: 'account_non_existant',
              message: 'Conta com este e-mail não existe'
          } }

    Exemplo de requisição: Corpo (application/JSON)

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

    Exemplo de requisição 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: <sua chave de API>'
  8. Cancelar convite

    POST
    https://api.idrivee2.com/api/subusers/v1/invite/cancelClique para copiarLink copiado Esta API cancelará o convite enviado ao subusuário.

    Entrada

                                  string subuser_email;
    string admin_email;

    Parâmetros de comprimento

    • Email [255]

    Pré-condição

    • O usuário não deve já estar cadastrado.

    Saída
    Em caso de sucesso, a resposta da API (application/JSON) será:

    { success: true }

    Caso de erro específico

    1. Se o subusuário já estiver cadastrado
      Response (application/JSON) : {
          error: {
              type: 'invalid_request_error',
              code: 'user_already_signedup',
              message: 'Usuário cadastrado'
          }
      }

    Exemplo de requisição: Corpo (application/JSON)

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

    Exemplo de requisição 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: <sua chave de API>'
  9. Atualizar subusuário

    POST
    https://api.idrivee2.com/api/subusers/v1/updateClique para copiarLink copiado Esta API atualiza o acesso, as permissões, SSO e o controle de sessão dos subusuários. A API pode ser usada para atualizar tanto subusuários convidados quanto cadastrados.

    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; // opcional, se true expirará as sessões de usuário existentes

    Nota

    Você pode consultar a API de convite de subusuário para os detalhes dos parâmetros do corpo da requisição. Somente os parâmetros que precisam ser atualizados devem ser incluídos no corpo da requisição.

    Saída
    Em caso de sucesso, a resposta da API (application/JSON) será:

    { success: true }

    Parâmetros de comprimento

    • Email [255]

    Caso de Erro Específico

    1. O armazenamento não existe
      Response (application/JSON) : {
          error: {
              type: 'invalid_request_error',
              code: 'storage_non_existant',
              message: 'Storage does not exist'
          }
      }
    2. A conta não existe
      Response (application/JSON) : {
          error: {
              type: 'invalid_request_error',
              code: 'account_non_existant',
              message: 'Account with this email does not exist'
          }
      }
    3. Se sso_login for enviado como true e SSO não estiver configurado
      Response (application/JSON) : {
          error: {
              type: 'invalid_request_error',
              code: 'sso_not_configured',
              message: 'SSO is not configured'
          }
      }

    Exemplo de Requisição: Corpo (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"
    }

    Exemplo de Requisição 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>'
  10. Obter Logs de Atividade

    POST
    https://api.idrivee2.com/api/subusers/v1/user_activity_historyClique para copiarLink copiado Esta API buscará os logs de atividade de um subusuário para um intervalo de datas.

    Entrada

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

    Parâmetros de Comprimento

    • Email [255]

    Nota

    start_date (ISO8601) - Data de início
    end_date (ISO8601) - Data de término
    page_no - A API é paginada, com cada página contendo 200 registros
    e page_no começa a partir de 1

    Saída
    Em caso de sucesso, a resposta da API (application/JSON) será:

                                     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 Erro Específico

    1. Se o subusuário não estiver cadastrado
      Response (application/JSON) : { 
          error:{
              type: 'invalid_request_error',
              code: 'user_not_signed_up',
              message: 'Subuser is not signed up'
          }
      }
    2. A conta não existe
      Response (application/JSON) : { 
          error:{
              type: 'invalid_request_error',
              code: 'account_non_existant',
              message: 'Account with this email does not exist'
          }
      }

    Exemplo de Requisição: Corpo (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
    }

    Exemplo de Requisição 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>'