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:
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.
- 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'
}
} - Não autorizado (HTTP 401)
Resposta (application/JSON) : {
error:{
type: 'invalid_request_error',
code: 'unauthorized',
message: 'Cabeçalho de autenticação ausente/inválido'
}
} - 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
- Listar todos os usuários
GET
https://api.idrivee2.com/api/reseller/v1/users
Click 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;
} - Convidar Usuário
- Cota (GB) (0 para ilimitado, senão >0)
- Email [255]
- Requisição inválida (HTTP-403)
- O usuário já existe e está vinculado à sua conta.
{
error:{
type: 'invalid_request_error',
code: 'user_signed_up',
message: 'Usuário já cadastrado'
}
} - 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'
}
}
- 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.
}
}
- O usuário já existe e está vinculado à sua conta.
- Criar Usuário
- 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.
- E-mail [255]
- Senha [100]
- Nome [64]
- Sobrenome [64]
- Requisição Inválida (HTTP-403)
- O usuário já existe e está vinculado à sua conta.
{
error:{
type: 'invalid_request_error',
code: 'user_signed_up',
message : 'User already signed up'
}
} -
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'
}
}
- O usuário já existe e está vinculado à sua conta.
- Editar Usuário
- 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 - 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.'
}
} - 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
- Desativar usuário
- E-mail [255]
- Usuário cadastrado.
- Conta ativada.
- Requisição inválida (HTTP 403)
- Conta já desativada.
error:{
type: 'invalid_request_error',
code: 'user_account_already_disabled',
message: 'Conta já desativada para o usuário'
}
} - A conta não existe.
error:{
type: 'invalid_request_error',
code: 'account_non_existant',
message: 'A conta com este e-mail não existe'
}
}
- Conta já desativada.
- Ativar usuário
- E-mail [255]
- Usuário cadastrado/criado.
- A conta do usuário foi desativada anteriormente.
- Requisição inválida (HTTP 403)
- A conta não existe.
error:{
type: 'invalid_request_error',
code: 'account_non_existant',
message: 'A conta com este e-mail não existe'
}
} - Conta já ativada.
error:{
type: 'invalid_request_error',
code: 'user_account_already_enabled',
message: 'Conta já ativada para o usuário'
}
}
- A conta não existe.
- Remover usuário
- Email [255]
- O usuário deve estar desativado.
- Solicitação inválida (HTTP 403)
- A conta não existe.
{
error:{
type: 'invalid_request_error',
code: 'account_non_existant',
message:'Conta com este e-mail não existe'
}
} - Conta não desativada.
{
error:{
type: 'invalid_request_error',
code: 'user_account_not_disabled',
message: 'Conta de usuário não desativada'
}
}
- A conta não existe.
- Cancelar convite
- Email [255]
- 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
} - 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"
} - Redefinição de senha
- E-mail [255]
- 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'
}
} - 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'
}
} - 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.',
}
} - Obter uso de armazenamento
- Email [255]
- O usuário deve estar cadastrado.
- Requisição inválida (HTTP 403)
- A conta não existe.
{
error:{
type: 'invalid_request_error',
code: 'account_non_existant',
message: 'A conta com este email não existe'
}
}
- A conta não existe.
- Obter Logs de Atividade
- E-mail [255]
- 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'
}
}
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>'
PUT
https://api.idrivee2.com/api/reseller/v1/invite
Click 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:
Parâmetros de comprimento
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
Exemplo de requisição: Corpo (application/JSON)
{
"email": "e2reseller+1@idrivee2.com,"
"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>'
PUT
https://api.idrivee2.com/api/reseller/v1/create_user
Click 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:
Parâmetros de Comprimento
Saída
Em caso de sucesso, a resposta da API (application/JSON) será:
{ user_created: true }
Casos de Erro
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>'
POST
https://api.idrivee2.com/api/reseller/v1/edit_user
Clique 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
Saída
Em caso de sucesso, a resposta da API (application/JSON) será:
{ user_updated: true }
Casos de erro
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:
POST
https://api.idrivee2.com/api/reseller/v1/disable_user
Click 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
Pré-condição
Saída
Em caso de sucesso, a resposta da API (application/JSON) será:
{ user_disabled : true }
Casos de erro
Exemplo de requisição: corpo (application/JSON)
{
"email":"e2reseller+1@idrivee2.com"
}
Exemplo de requisição Curl:
curl --request POST 'https://api.idrivee2.com/api/reseller/v1/disable_user'
--data '{
"email":"e2reseller+1@idrivee2.com"
}'
POST
https://api.idrivee2.com/api/reseller/v1/enable_user
Click 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
Pré-condição
Saída
Em caso de sucesso, a resposta da API (application/JSON) será:
{ user_enabled : true }
Casos de erro
Exemplo de requisição: corpo (application/JSON)
{
"email":"e2reseller+1@idrivee2.com"
}
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>'
POST
https://api.idrivee2.com/api/reseller/v1/remove_user
Click 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
Pré-condição
Saída
Em caso de sucesso, a resposta da API (JSON) será:
{ user_removed : true }
Casos de erro
Exemplo de requisição: Corpo (application/JSON)
{
"email":"e2reseller+1@idrivee2.com"
}
Exemplo de requisição Curl:
curl --request POST 'https://api.idrivee2.com/api/reseller/v1/remove_user'
--data '{
"email":"e2reseller+1@idrivee2.com"
}' --header 'token: <your api key>'
POST
https://api.idrivee2.com/api/reseller/v1/invite/cancel
Click 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
Saída
Em caso de sucesso, a resposta da API (application/JSON) será:
{ user_removed : true }
Casos de erro
Exemplo de requisição Curl:
curl --request POST 'https://api.idrivee2.com/api/reseller/v1/invite/cancel'
--data '{
"email":"e2reseller+1@idrivee2.com"
}' --header 'token: <your api key>'
Obter link de redefinição de senha do subusuário
POST
https://api.idrivee2.com/api/reseller/v1/subuser/reset_password_link
Clique 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
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>'
POST
https://api.idrivee2.com/api/reseller/v1/usage_stats
Click 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
Pré-condições
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
Exemplo de Requisição: Corpo (application/JSON)
{
"email":"e2reseller+1@idrivee2.com",
"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>'
POST
https://api.idrivee2.com/api/reseller/v1/user_activity_history
Clique 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
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
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
- Listar Regiões
GET
https://api.idrivee2.com/api/reseller/v1/regions
Click 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>' - Habilitar Região para o Usuário
- Email [255]
- Region[5]
- Conta de usuário existente.
- A região não deve estar habilitada para o usuário.
- Solicitação inválida (HTTP 403)
- A conta não existe.
{
error:{
type: 'invalid_request_error',
code: 'account_non_existant',
message: 'A conta com este email não existe'
}
} - 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'
}
} - Usuário desativado.
{
error:{
type: 'invalid_request_error',
code: 'user_disabled',
message: 'Usuário desativado'
}
} - O pagamento da sua conta falhou.
{
error:{
type: 'invalid_request_error',
code: 'payment_failed',
message: 'Conta expirada, atualize as informações de pagamento'
}
}
- A conta não existe.
- Listar regiões habilitadas do usuário
POST
https://api.idrivee2.com/api/reseller/v1/list_user_regions
Clique 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)
- A conta não existe.
{
error:{
type: 'invalid_request_error',
code: 'account_non_existant',
message: 'Não existe conta com este email'
}
} - Usuário desabilitado.
{
error:{
type: 'invalid_request_error',
code: 'user_disabled',
message: 'Usuário desabilitado'
}
}
- A conta não existe.
Exemplo de solicitação: corpo (application/JSON)
{
"email":"e2reseller+1@idrivee2.com"
}Exemplo de solicitação Curl:
curl --request POST 'https://api.idrivee2.com/api/reseller/v1/list_user_regions'
--data '{
"email":"e2reseller+1@idrivee2.com"
}' --header 'token: <your api key>' - Remover região atribuída ao usuário
- Email [255]
- Storage_dn[128]
- Usuário cadastrado.
- O armazenamento deve estar atribuído ao usuário.
- Nenhum bucket criado pelo usuário
- Solicitação inválida (HTTP 403)
- A conta não existe.
{
error:{
type: 'invalid_request_error',
code: 'account_non_existant',
message: 'A conta com este email não existe'
}
} - O armazenamento não existe.
{
error:{
type: 'invalid_request_error',
code: 'storage_non_existant',
message: 'O armazenamento não existe'
}
} - 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'
}
}
- A conta não existe.
- Atualizar configurações de cors para a região do usuário
- Requisição inválida (HTTP 403)
- A conta não existe.
{
error:{
type: 'invalid_request_error',
code: 'account_non_existant',
message: 'A conta com este email não existe'
}
} - O armazenamento não existe.
{
error:{
type: 'invalid_request_error',
code: 'storage_non_existant',
message: 'O armazenamento não existe'
}
} - 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'
}
}
- A conta não existe.
- Adicionar Chave de Acesso
- Usuário cadastrado/criado e habilitado.
- Storage DN atribuído ao respectivo usuário.
- Buckets não devem estar vazios, se fornecidos.
- Email [255]
- storage_dn[128]
- Name[64]
- Requisição inválida (HTTP 403)
- A conta não existe.
{
error:{
type: 'invalid_request_error',
code: 'account_non_existant',
message: 'Conta com este e-mail não existe'
}
} - O armazenamento não existe.
{
error:{
type: 'invalid_request_error',
code: 'storage_non_existant',
message: 'O armazenamento não existe'
}
} - Usuário desabilitado.
{
error:{
type: 'invalid_request_error',
code: 'user_disabled',
message: 'Usuário desabilitado'
}
}
- A conta não existe.
- Listar chaves de acesso
- email [255]
- storage_dn[128]
- User signed up/created and enabled.
- Storage assigned to the user.
- Requisição inválida (HTTP 403)
- A conta não existe.
{
error:{
type: 'invalid_request_error',
code: 'account_non_existant',
message: 'A conta com este e-mail não existe'
}
} - O armazenamento não existe.
{
error:{
type: 'invalid_request_error',
code: 'storage_non_existant',
message: 'O armazenamento não existe'
}
} - Usuário desabilitado.
{
error:{
type: 'invalid_request_error',
code: 'user_disabled',
message: 'Usuário desabilitado'
}
}
- A conta não existe.
POST
https://api.idrivee2.com/api/reseller/v1/enable_user_region
Click 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
Pré-condição
Saída
Em caso de sucesso, a resposta da API (application/JSON) será:
{ storage_added: true, storage_dn: /*user_storage_dns*/ }
Casos de Erro
Exemplo de solicitação: corpo (application/JSON)
{
"email":"e2reseller+1@idrivee2.com",
"region": "NY"
}
Exemplo de solicitação Curl:
curl --request POST 'https://api.idrivee2.com/api/reseller/v1/enable_user_region'
--data '{
"email":"e2reseller+1@idrivee2.com",
"region": "NY"
}' --header 'token: <your api key>'
POST
https://api.idrivee2.com/api/reseller/v1/remove_user_region
Click 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
Pré-condição
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
Saída
Em caso de sucesso, a API retornará a resposta (JSON):
{removed : true}
Casos de erro
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/remove_user_region'
--data '{
"email":"e2reseller+1@idrivee2.com",
"storage_dn": "abcd.test@idrivee2.com"
}' --header 'token: <your api key>'
Método: POST
URL: https://api.idrivee2.com/api/reseller/v1/storage/set_cors
Click 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
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",
}'
POST
https://api.idrivee2.com/api/reseller/v1/create_access_key
Click 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
Parâmetros de comprimento
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
Exemplo de requisição: Body (application/JSON)
{
"email":"e2reseller+1@idrivee2.com",
"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@idrivee2.com",
"storage_dn":"abcd.test@idrivee2.com",
"name":"myaccesskeyname",
"permissions":0
}' --header 'token: <your api key>'
POST
https://api.idrivee2.com/api/reseller/v1/list_access_keys
Click 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
Pré-condição
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
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@idrivee2.com",
"storage_dn":"abcd.test.idrivee2.com",
}' --header 'token:<your api key>'
POST
https://api.idrivee2.com/api/reseller/v1/remove_access_key
Clique 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)
- Conta não existe.
{
error:{
type: 'invalid_request_error',
code: 'account_non_existant',
message: 'Account with this email does not exist'
}
} - Armazenamento não existe.
{
error:{
type: 'invalid_request_error',
code: 'storage_non_existant',
message: 'Storage does not exists'
}
} - Usuário desabilitado.
{
error:{
type: 'invalid_request_error',
code: 'user_disabled',
message: 'User Disabled'
}
} - 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'
}
}
- Conta não existe.
Exemplo de Requisição: Corpo (application/JSON)
{
"email":"e2reseller+1@idrivee2.com",
"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@idrivee2.com",
"storage_dn":"abcd.test@idrivee2.com",
"access_key":"<sua chave de acesso>"
}' --header 'token: <sua chave de API>'
Operações de Whitelabeling
- Adicionar CNAMEs
POST
https://api.idrivee2.com/api/reseller/v1/storage/cname/add
Clique 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)
- Conta não existe.
{
error:{
type: 'invalid_request_error',
code: 'account_non_existant',
message: 'Account with this email does not exist'
}
} - 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'
}
} - 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'
}
} - Se o CNAME já estiver configurado
{
error:{
type: 'invalid_request_error',
code: 'request_processing_failed',
message: 'CNAME already configure'
}
} - 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'
}
}
- Conta não existe.
- Erro no Servidor (HTTP 500)
- 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'
}
} - Dados não encontrados para o dns fornecido
{
error:{
type: 'api_error',
code: 'request_processing_failed',
message: 'data not found for given dns'
}
}
- Não foi possível processar esta requisição
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>' - Listar CNAMEs
POST
https://api.idrivee2.com/api/reseller/v1/storage/cname
Click 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)
- A conta não existe.
{
error:{
type: 'invalid_request_error',
code: 'account_non_existant',
message: 'Conta com este e-mail não existe'
}
} - Usuário desabilitado.
{
error:{
type: 'invalid_request_error',
code: 'user_disabled',
message: 'Usuário desabilitado'
}
}
- A conta não existe.
- Erro do Servidor (HTTP 500)
- 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'
}
} - 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'
}
}
- Não foi possível processar esta requisição
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>' - Atualizar CNAMEs
POST
https://api.idrivee2.com/api/reseller/v1/storage/cname/update
Clique 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)
- A conta não existe.
{
error:{
type: 'invalid_request_error',
code: 'account_non_existant',
message: 'Account with this email does not exist'
}
} - 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'
}
} - 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'
}
} - 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'
}
} - 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'
}
} - Se o CNAME já estiver configurado
{
error:{
type: 'invalid_request_error',
code: 'request_processing_failed',
message: 'CNAME already configured'
}
} - 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'
}
} - Usuário desabilitado
{
error:{
type: 'invalid_request_error',
code: 'user_disabled',
message: 'User Disabled'
}
}
- A conta não existe.
- Erro no Servidor (HTTP 500)
- 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'
}
} - Dados não encontrados para o dns informado
{
error:{
type: 'api_error',
code: 'request_processing_failed',
message: 'data not found for given dns'
}
}
- Não foi possível processar esta solicitação
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>' - Remover CNAMEs
POST
https://api.idrivee2.com/api/reseller/v1/storage/cname/remove
Clique 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)
- A conta não existe.
{
error:{
type: 'invalid_request_error',
code: 'account_non_existant',
message: 'Conta com este e-mail não existe'
}
} - Usuário desativado
{
error:{
type: 'invalid_request_error',
code: 'user_disabled',
message: 'Usuário desativado'
}
} - 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'
}
} - 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'
}
} - 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'
}
} - 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'
}
} - 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'
}
}
- A conta não existe.
- Erro do Servidor (HTTP 500)
- 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'
}
} - 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'
}
}
- Não foi possível processar esta solicitação
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
}
- Convidar subusuário
PUT
https://api.idrivee2.com/api/subusers/v1/invite
Clique 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]
- 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>
}
} -
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>' -
Listar todos os subusuários
POST
https://api.idrivee2.com/api/subusers/v1/list
Click 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>' -
Criar subusuário
PUT
https://api.idrivee2.com/api/subusers/v1/create_account
Click 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
- 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'
}
} - O armazenamento não existe.
Response (application/JSON) : {
error: {
type: 'invalid_request_error',
code: 'storage_non_existant',
message: 'Storage does not exist'
}
} - O usuário já existe
Response (application/JSON) : {
error: {
type: 'invalid_request_error',
code: 'user_already_signedup',
message: 'User signed up'
}
} -
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>' - Desativar subusuário
POST
https://api.idrivee2.com/api/subusers/v1/disable
Click 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
- 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'
}
} - 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'
}
} - 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>' - Habilitar subusuário
POST
https://api.idrivee2.com/api/subusers/v1/enable
Click 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
- 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'
}
} - 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'
}
} - 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>' - Remover subusuário
POST
https://api.idrivee2.com/api/subusers/v1/remove
Click 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
- 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'
} } - 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'
} } - 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>' - Cancelar convite
POST
https://api.idrivee2.com/api/subusers/v1/invite/cancel
Clique 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
- 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>' - Atualizar subusuário
POST
https://api.idrivee2.com/api/subusers/v1/update
Clique 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
- O armazenamento não existe
Response (application/JSON) : {
error: {
type: 'invalid_request_error',
code: 'storage_non_existant',
message: 'Storage does not exist'
}
} - 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'
}
} - 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>' - Obter Logs de Atividade
POST
https://api.idrivee2.com/api/subusers/v1/user_activity_history
Clique 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 1Saí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
- 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'
}
} - 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>'
Caso de Erro Específico