stoney mail: Mail Resource - REST API
From stoney cloud
stoney mail
https://api.example.com/v1/services/mail https://api.example.com/v1/services/mail/domains https://api.example.com/v1/services/mail/domains/5000000 https://api.example.com/v1/services/mail/domains/5000000/accounts https://api.example.com/v1/services/mail/domains/5000000/accounts/5000001 https://api.example.com/v1/services/mail/domains/5000000/aliases/5000002 https://api.example.com/v1/services/mail/domainaliases https://api.example.com/v1/services/mail/domainaliases/5000003 https://api.example.com/v1/services/mail/accounts https://api.example.com/v1/services/mail/accounts/5000001 https://api.example.com/v1/services/mail/aliases https://api.example.com/v1/services/mail/aliases/5000002
Permission & Ownership object
We need a generic permission & ownership object which can be added to all service creation and modification requests. The following points needs to be clarified:
- Shall the roles be set during the service creation / modification or on the users resource?
- Is this object always mandatory, or can the roles be defined via some clever inherited default values if missing.
- Which roles are available and can be set on which level
- Which informations apart from the user (people) and the role name are necessary?
- Do we want to reference the location URI or the UID of a role
- Does anyone have a better name for the
roles
object? :)
"roles": { [ { /* The user 3000000 has the Admin role for this service */ "location": "https://api.example.com/v1/users/3000000", "role": "Admin" }, { /* The user 3000001 has the Admin role for this service */ "location": "https://api.example.com/v1/users/3000001", "role": "Admin" }, { /* The user 3000002 has the User role for this service */ "location": "https://api.example.com/v1/users/3000002", "role": "User" }, { /* ... */ } ] }
The opposite while querying a users resource, for example https://api.example.com/v1/users/3000000
"roles": { [ { /* MailAccountAdmin role for the mail account 5000001 */ "location": "https://api.example.com/v1/services/mail/domains/5000000/accounts/5000001", "role": "Admin" }, { /* BackupAdmin role for all backup products of the customer 1000001 */ "location": "https://api.example.com/v1/services/backups/accounts/?customerUid=1000001", "role": "Admin" }, { /* VirtualizationUser role for the VM 6000001 */ "location": "https://api.example.com/v1/services/virtualization/vms/6000001", "role": "User" }, { /* ... */ } ] }
Notes
- We need to be able to query the size of the mailbox and the used space. Do we also return the percentage of used space or do we let the client calculate this value?