223 lines
10 KiB
ReStructuredText
223 lines
10 KiB
ReStructuredText
|
=================================
|
||
|
Orchestra REST API Specification
|
||
|
=================================
|
||
|
|
||
|
:Version: 0.1
|
||
|
|
||
|
Resources
|
||
|
---------
|
||
|
|
||
|
.. contents::
|
||
|
:local:
|
||
|
|
||
|
Panel [application/vnd.orchestra.Panel+json]
|
||
|
============================================
|
||
|
|
||
|
A Panel represents a user's view of all accessible resources.
|
||
|
A "Panel" resource model contains the following fields:
|
||
|
|
||
|
========================== ============ ========== ===========================
|
||
|
**Field name** **Type** **Occurs** **Description**
|
||
|
========================== ============ ========== ===========================
|
||
|
uri URI 1 A GET against this URI refreshes the client representation of the resources accessible to this user.
|
||
|
services Object[] 0..1 {'DNS': {'names': "names_URI", 'zones': "zones_URI}, {'Mail': {'Virtual_user': "virtual_user_URI" ....
|
||
|
accountancy Object[] 0..1
|
||
|
administration Object[] 0..1
|
||
|
========================== ============ ========== ===========================
|
||
|
|
||
|
|
||
|
Contact [application/vnd.orchestra.Contact+json]
|
||
|
================================================
|
||
|
|
||
|
A Contact represents
|
||
|
|
||
|
========================== ============ ========== ===========================
|
||
|
**Field name** **Type** **Occurs** **Description**
|
||
|
========================== ============ ========== ===========================
|
||
|
uri URI 1
|
||
|
name String 1
|
||
|
surname String 0..1
|
||
|
second_surname String 0..1
|
||
|
national_id String 1
|
||
|
type String 1
|
||
|
language String 1
|
||
|
address String 1
|
||
|
city String 1
|
||
|
zipcode Number 1
|
||
|
province String 1
|
||
|
country String 1
|
||
|
fax String 0..1
|
||
|
emails String[] 1
|
||
|
phones String[] 1
|
||
|
billing_contact Contact 0..1
|
||
|
technical_contact Contact 0..1
|
||
|
administrative_contact Contact 0..1
|
||
|
========================== ============ ========== ===========================
|
||
|
|
||
|
TODO: phone and emails for this contacts this contacts should be equal to Contact on Django models
|
||
|
|
||
|
|
||
|
User [application/vnd.orchestra.User+json]
|
||
|
==========================================
|
||
|
|
||
|
A User represents
|
||
|
|
||
|
========================== ============ ========== ===========================
|
||
|
**Field name** **Type** **Occurs** **Description**
|
||
|
========================== ============ ========== ===========================
|
||
|
username String
|
||
|
uri URI 1
|
||
|
contact Contact
|
||
|
password String
|
||
|
first_name String
|
||
|
last_name String
|
||
|
email_address String
|
||
|
active Boolean
|
||
|
staff_status Boolean
|
||
|
superuser_status Boolean
|
||
|
groups Group
|
||
|
user_permissions Permission[]
|
||
|
last_login String
|
||
|
date_joined String
|
||
|
system_user SystemUser
|
||
|
virtual_user VirtualUser
|
||
|
========================== ============ ========== ===========================
|
||
|
|
||
|
|
||
|
SystemUser [application/vnd.orchestra.SystemUser+json]
|
||
|
======================================================
|
||
|
|
||
|
========================== =========== ========== ===========================
|
||
|
**Field name** **Type** **Occurs** **Description**
|
||
|
========================== =========== ========== ===========================
|
||
|
user User
|
||
|
uri URI 1
|
||
|
user_shell String
|
||
|
user_uid Number
|
||
|
primary_group Group
|
||
|
homedir String
|
||
|
only_ftp Boolean
|
||
|
========================== =========== ========== ===========================
|
||
|
|
||
|
|
||
|
VirtualUser [application/vnd.orchestra.VirtualUser+json]
|
||
|
========================================================
|
||
|
|
||
|
========================== ============ ========== ===========================
|
||
|
**Field name** **Type** **Occurs** **Description**
|
||
|
========================== ============ ========== ===========================
|
||
|
user User
|
||
|
uri URI 1
|
||
|
emailname String
|
||
|
domain Name <VirtualDomain?>
|
||
|
home String
|
||
|
========================== ============ ========== ===========================
|
||
|
|
||
|
Zone [application/vnd.orchestra.Zone+json]
|
||
|
==========================================
|
||
|
|
||
|
========================== ============ ========== ===========================
|
||
|
**Field name** **Type** **Occurs** **Description**
|
||
|
========================== ============ ========== ===========================
|
||
|
origin String
|
||
|
uri URI 1
|
||
|
contact Contact
|
||
|
primary_ns String
|
||
|
hostmaster_email String
|
||
|
serial Number
|
||
|
slave_refresh Number
|
||
|
slave_retry Number
|
||
|
slave_expiration Number
|
||
|
min_caching_time Number
|
||
|
records Object[] Domain record i.e. {'name': ('type', 'value') }
|
||
|
========================== ============ ========== ===========================
|
||
|
|
||
|
Name [application/vnd.orchestra.Name+json]
|
||
|
==========================================
|
||
|
========================== ============ ========== ===========================
|
||
|
**Field name** **Type** **Occurs** **Description**
|
||
|
========================== ============ ========== ===========================
|
||
|
name String
|
||
|
extension String
|
||
|
uri URI 1
|
||
|
contact Contact
|
||
|
register_provider String
|
||
|
name_server Object[] Name server key/value i.e. {'ns1.pangea.org': '1.1.1.1'}
|
||
|
virtual_domain Boolean <TODO: is redundant with virtual domain type?>
|
||
|
virtual_domain_type String
|
||
|
zone Zone
|
||
|
========================== ============ ========== ===========================
|
||
|
|
||
|
VirtualHost [application/vnd.orchestra.VirtualHost+json]
|
||
|
========================================================
|
||
|
<TODO: REST and dynamic attributes (resources, contacts)>
|
||
|
A VirtualHost represents an Apache-like virtualhost configuration, which is useful for generating all the configuration files on the web server.
|
||
|
A VirtualHost resource model contains the following fields:
|
||
|
|
||
|
========================== ============ ========== ===========================
|
||
|
**Field name** **Type** **Occurs** **Description**
|
||
|
========================== ============ ========== ===========================
|
||
|
server_name String
|
||
|
uri URI
|
||
|
contact Contact
|
||
|
ip String
|
||
|
port Number
|
||
|
domains Name[]
|
||
|
document_root String
|
||
|
custom_directives String[]
|
||
|
fcgid_user String
|
||
|
fcgid_group string String
|
||
|
fcgid_directives Object Fcgid custom directives represented on a key/value pairs i.e. {'FcgidildeTimeout': 1202}
|
||
|
php_version String
|
||
|
php_directives Object PHP custom directives represented on key/value pairs i.e. {'display errors': 'True'}
|
||
|
resource_swap_current Number PHP custom directives represented on key/value pairs i.e. {'display errors': 'True'}
|
||
|
resource_swap_limit Number PHP custom directives represented on key/value pairs i.e. {'display errors': 'True'}
|
||
|
resource_cpu_current Number
|
||
|
resource_cpu_limit Number
|
||
|
========================== ============ ========== ===========================
|
||
|
|
||
|
Daemon [application/vnd.orchestra.Daemon+json]
|
||
|
==============================================
|
||
|
|
||
|
========================== ============ ========== ===========================
|
||
|
**Field name** **Type** **Occurs** **Description**
|
||
|
========================== ============ ========== ===========================
|
||
|
name String
|
||
|
uri URI 1
|
||
|
content_type String
|
||
|
active Boolean
|
||
|
save_template String
|
||
|
save_method String
|
||
|
delete_template String
|
||
|
delete_method String
|
||
|
daemon_instances Object[] {'host': 'expression'}
|
||
|
========================== ============ ========== ===========================
|
||
|
|
||
|
Monitor [application/vnd.orchestra.Monitor+json]
|
||
|
================================================
|
||
|
|
||
|
========================== ============ ========== ===========================
|
||
|
**Field name** **Type** **Occurs** **Description**
|
||
|
========================== ============ ========== ===========================
|
||
|
uri URI 1
|
||
|
daemon Daemon
|
||
|
resource String
|
||
|
monitoring_template String
|
||
|
monitoring method String
|
||
|
exceed_template String <TODO: rename on monitor django model>
|
||
|
exceed_method String
|
||
|
recover_template String
|
||
|
recover_method String
|
||
|
allow_limit Boolean
|
||
|
allow_unlimit Boolean
|
||
|
default_initial Number
|
||
|
block_size Number
|
||
|
algorithm String
|
||
|
period String
|
||
|
interval String 0..1
|
||
|
crontab String 0..1
|
||
|
========================== ============ ========== ===========================
|
||
|
|
||
|
|
||
|
#Layout inspired from http://kenai.com/projects/suncloudapis/pages/CloudAPISpecificationResourceModels
|