Difference between revisions of "stoney mail: Mail Resource - REST API"
From stoney cloud
[unchecked revision] | [unchecked revision] |
(→Permission & Ownership object) |
(→Permission & Ownership object) |
||
Line 17: | Line 17: | ||
== Permission & Ownership object == | == 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: | 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. | * 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 roles are available and can be set on which level | ||
Line 22: | Line 23: | ||
* Do we want to reference the location URI or the UID of a role | * Do we want to reference the location URI or the UID of a role | ||
* Does anyone have a better name for the <code>roles</code> object? :) | * Does anyone have a better name for the <code>roles</code> object? :) | ||
+ | |||
<source lang="javascript"> | <source lang="javascript"> | ||
"roles": | "roles": | ||
Line 27: | Line 29: | ||
[ | [ | ||
{ | { | ||
+ | /* The user 3000000 has the Admin role for this service */ | ||
"location": "https://api.example.com/v1/users/3000000", | "location": "https://api.example.com/v1/users/3000000", | ||
"role": "Admin" | "role": "Admin" | ||
}, | }, | ||
{ | { | ||
+ | /* The user 3000001 has the Admin role for this service */ | ||
"location": "https://api.example.com/v1/users/3000001", | "location": "https://api.example.com/v1/users/3000001", | ||
"role": "Admin" | "role": "Admin" | ||
}, | }, | ||
{ | { | ||
+ | /* The user 3000002 has the User role for this service */ | ||
"location": "https://api.example.com/v1/users/3000002", | "location": "https://api.example.com/v1/users/3000002", | ||
"role": "User" | "role": "User" | ||
Line 47: | Line 52: | ||
The opposite while querying a users resource, for example https://api.example.com/v1/users/3000000 | The opposite while querying a users resource, for example https://api.example.com/v1/users/3000000 | ||
<source lang="javascript"> | <source lang="javascript"> | ||
+ | "roles": | ||
{ | { | ||
[ | [ |
Revision as of 15:26, 30 January 2014
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" }, { /* ... */ } ] }