Here are Moon API with some examples of posted data and returned data.
-All requests must be prefexied by /v3/OS-MOON.
+All requests must be prefexied by /moon/v3/OS-MOON.
Authz
-----
-**GET /authz/{tenant_id}/{subject_k_id}/{object_name}/{action_name}**
+**GET /moon/authz/{tenant_id}/{subject_k_id}/{object_name}/{action_name}**
Authorization API.
.. code-block:: json
Configuration
~~~~~~~~~~~~~
-**GET /configuration/templates**
+**GET /moon/configuration/templates**
List all policy templates.
}
-**GET /configuration/aggregation_algorithms**
+**GET /moon/configuration/aggregation_algorithms**
List all aggregation algorithms.
}
-**GET /configuration/sub_meta_rule_algorithms**
+**GET /moon/configuration/sub_meta_rule_algorithms**
List all sub meta rule algorithms.
Tenants
~~~~~~~
-**GET /tenants**
+**GET /moon/tenants**
List all tenants.
}
-**POST /tenants**
+**POST /moon/tenants**
Add a tenant.
}
-**POST /tenants/{tenant_id}**
+**POST /moon/tenants/{tenant_id}**
Show information of one tenant.
}
-**POST /tenants/{tenant_id}**
+**POST /moon/tenants/{tenant_id}**
Modify a tenant.
}
-**DELETE /tenants/{tenant_id}**
+**DELETE /moon/tenants/{tenant_id}**
Delete a tenant.
Intra-Extension
~~~~~~~~~~~~~~~
-**GET /intra_extensions/init**
+**GET /moon/intra_extensions/init**
Initialize the root Intra_Extension (if needed).
return = {}
-**GET /intra_extensions**
+**GET /moon/intra_extensions**
List all Intra_Extensions.
}
-**POST /intra_extensions**
+**POST /moon/intra_extensions**
Create a new Intra_Extension.
return = {}
-**GET /intra_extensions/{intra_extension_id}/**
+**GET /moon/intra_extensions/{intra_extension_id}/**
Show details about one Intra_Extension.
}
-**DELETE /intra_extensions/{intra_extension_id}/**
+**DELETE /moon/intra_extensions/{intra_extension_id}/**
Delete an Intra_Extension.
Intra-Extension Subjects
~~~~~~~~~~~~~~~~~~~~~~~~
-**GET /intra_extensions/{intra_extension_id}/subjects**
+**GET /moon/intra_extensions/{intra_extension_id}/subjects**
List all subjects.
}
-**POST /intra_extensions/{intra_extension_id}/subjects**
+**POST /moon/intra_extensions/{intra_extension_id}/subjects**
List all subjects.
}
-**DELETE /intra_extensions/{intra_extension_id}/subjects/{subject_id}**
+**DELETE /moon/intra_extensions/{intra_extension_id}/subjects/{subject_id}**
Delete a subject.
return = {}
-**GET /intra_extensions/{intra_extension_id}/subject_categories**
+**GET /moon/intra_extensions/{intra_extension_id}/subject_categories**
List all subject categories.
}
-**POST /intra_extensions/{intra_extension_id}/subject_categories**
+**POST /moon/intra_extensions/{intra_extension_id}/subject_categories**
Add a new subject category.
}
-**DELETE /intra_extensions/{intra_extension_id}/subject_categories/{subject_category_id}**
+**DELETE /moon/intra_extensions/{intra_extension_id}/subject_categories/{subject_category_id}**
Delete a subject category.
return = {}
-**GET /intra_extensions/{intra_extension_id}/subject_scopes/{subject_category_id}**
+**GET /moon/intra_extensions/{intra_extension_id}/subject_scopes/{subject_category_id}**
List all subject scopes for a specific subject category.
}
-**POST /intra_extensions/{intra_extension_id}/subject_scopes/{subject_category_id}**
+**POST /moon/intra_extensions/{intra_extension_id}/subject_scopes/{subject_category_id}**
Add a new subject scope for a specific subject category.
}
-**DELETE /intra_extensions/{intra_extension_id}/subject_scopes/{subject_category_id}/{subject_scope_id}**
+**DELETE /moon/intra_extensions/{intra_extension_id}/subject_scopes/{subject_category_id}/{subject_scope_id}**
Delete a subject scope.
return = {}
-**GET /intra_extensions/{intra_extension_id}/subject_assignments/{subject_id}/{subject_category_id}**
+**GET /moon/intra_extensions/{intra_extension_id}/subject_assignments/{subject_id}/{subject_category_id}**
List all subject assignments for a subject and for a subject category.
]
-**POST /intra_extensions/{intra_extension_id}/subject_assignments**
+**POST /moon/intra_extensions/{intra_extension_id}/subject_assignments**
Add an assignment.
]
-**DELETE /intra_extensions/{intra_extension_id}/subject_assignments/{subject_id}/{subject_category_id}/{subject_scope_id}**
+**DELETE /moon/intra_extensions/{intra_extension_id}/subject_assignments/{subject_id}/{subject_category_id}/{subject_scope_id}**
Delete a subject assignment.
Intra-Extension Objects
~~~~~~~~~~~~~~~~~~~~~~~
-**GET /intra_extensions/{intra_extension_id}/objects**
+**GET /moon/intra_extensions/{intra_extension_id}/objects**
List all objects.
}
-**POST /intra_extensions/{intra_extension_id}/objects**
+**POST /moon/intra_extensions/{intra_extension_id}/objects**
List all objects.
}
-**DELETE /intra_extensions/{intra_extension_id}/objects/{object_id}**
+**DELETE /moon/intra_extensions/{intra_extension_id}/objects/{object_id}**
Delete a object.
return = {}
-**GET /intra_extensions/{intra_extension_id}/object_categories**
+**GET /moon/intra_extensions/{intra_extension_id}/object_categories**
List all object categories.
}
-**POST /intra_extensions/{intra_extension_id}/object_categories**
+**POST /moon/intra_extensions/{intra_extension_id}/object_categories**
Add a new object category.
}
-**DELETE /intra_extensions/{intra_extension_id}/object_categories/{object_category_id}**
+**DELETE /moon/intra_extensions/{intra_extension_id}/object_categories/{object_category_id}**
Delete a object category.
return = {}
-**GET /intra_extensions/{intra_extension_id}/object_scopes/{object_category_id}**
+**GET /moon/intra_extensions/{intra_extension_id}/object_scopes/{object_category_id}**
List all object scopes for a specific object category.
}
-**POST /intra_extensions/{intra_extension_id}/object_scopes/{object_category_id}**
+**POST /moon/intra_extensions/{intra_extension_id}/object_scopes/{object_category_id}**
Add a new object scope for a specific object category.
}
-**DELETE /intra_extensions/{intra_extension_id}/object_scopes/{object_category_id}/{object_scope_id}**
+**DELETE /moon/intra_extensions/{intra_extension_id}/object_scopes/{object_category_id}/{object_scope_id}**
Delete a object scope.
return = {}
-**GET /intra_extensions/{intra_extension_id}/object_assignments/{object_id}/{object_category_id}**
+**GET /moon/intra_extensions/{intra_extension_id}/object_assignments/{object_id}/{object_category_id}**
List all object assignments for a object and for a object category.
]
-**POST /intra_extensions/{intra_extension_id}/object_assignments**
+**POST /moon/intra_extensions/{intra_extension_id}/object_assignments**
Add an assignment.
]
-**DELETE /intra_extensions/{intra_extension_id}/object_assignments/{object_id}/{object_category_id}/{object_scope_id}**
+**DELETE /moon/intra_extensions/{intra_extension_id}/object_assignments/{object_id}/{object_category_id}/{object_scope_id}**
Delete a object assignment.
Intra-Extension Actions
~~~~~~~~~~~~~~~~~~~~~~~
-**GET /intra_extensions/{intra_extension_id}/actions**
+**GET /moon/intra_extensions/{intra_extension_id}/actions**
List all actions.
}
-**POST /intra_extensions/{intra_extension_id}/actions**
+**POST /moon/intra_extensions/{intra_extension_id}/actions**
List all actions.
}
-**DELETE /intra_extensions/{intra_extension_id}/actions/{action_id}**
+**DELETE /moon/intra_extensions/{intra_extension_id}/actions/{action_id}**
Delete a action.
return = {}
-**GET /intra_extensions/{intra_extension_id}/action_categories**
+**GET /moon/intra_extensions/{intra_extension_id}/action_categories**
List all action categories.
}
-**POST /intra_extensions/{intra_extension_id}/action_categories**
+**POST /moon/intra_extensions/{intra_extension_id}/action_categories**
Add a new action category.
}
-**DELETE /intra_extensions/{intra_extension_id}/action_categories/{action_category_id}**
+**DELETE /moon/intra_extensions/{intra_extension_id}/action_categories/{action_category_id}**
Delete a action category.
return = {}
-**GET /intra_extensions/{intra_extension_id}/action_scopes/{action_category_id}**
+**GET /moon/intra_extensions/{intra_extension_id}/action_scopes/{action_category_id}**
List all action scopes for a specific action category.
}
-**POST /intra_extensions/{intra_extension_id}/action_scopes/{action_category_id}**
+**POST /moon/intra_extensions/{intra_extension_id}/action_scopes/{action_category_id}**
Add a new action scope for a specific action category.
}
-**DELETE /intra_extensions/{intra_extension_id}/action_scopes/{action_category_id}/{action_scope_id}**
+**DELETE /moon/intra_extensions/{intra_extension_id}/action_scopes/{action_category_id}/{action_scope_id}**
Delete a action scope.
return = {}
-**GET /intra_extensions/{intra_extension_id}/action_assignments/{action_id}/{action_category_id}**
+**GET /moon/intra_extensions/{intra_extension_id}/action_assignments/{action_id}/{action_category_id}**
List all action assignments for a action and for a action category.
]
-**POST /intra_extensions/{intra_extension_id}/action_assignments**
+**POST /moon/intra_extensions/{intra_extension_id}/action_assignments**
Add an assignment.
]
-**DELETE /intra_extensions/{intra_extension_id}/action_assignments/{action_id}/{action_category_id}/{action_scope_id}**
+**DELETE /moon/intra_extensions/{intra_extension_id}/action_assignments/{action_id}/{action_category_id}/{action_scope_id}**
Delete a action assignment.
Intra-Extension Rules
~~~~~~~~~~~~~~~~~~~~~
-**GET /intra_extensions/{intra_extension_id}/aggregation_algorithm**
+**GET /moon/intra_extensions/{intra_extension_id}/aggregation_algorithm**
List aggregation algorithm for an intra extension.
}
-**POST /intra_extensions/{intra_extension_id}/aggregation_algorithm**
+**POST /moon/intra_extensions/{intra_extension_id}/aggregation_algorithm**
Set the current aggregation algorithm for an intra extension.
}
-**GET /intra_extensions/{intra_extension_id}/sub_meta_rules**
+**GET /moon/intra_extensions/{intra_extension_id}/sub_meta_rules**
Show the current sub meta rules.
return = {}
-**GET /intra_extensions/{intra_extension_id}/rule/{sub_meta_rule_id}**
+**GET /moon/intra_extensions/{intra_extension_id}/rule/{sub_meta_rule_id}**
Set the current sub meta rule.
return = {}
-**GET /intra_extensions/{intra_extension_id}/rule/{sub_meta_rule_id}**
+**GET /moon/intra_extensions/{intra_extension_id}/rule/{sub_meta_rule_id}**
List all rules.
}
-**POST /intra_extensions/{intra_extension_id}/rule/{sub_meta_rule_id}**
+**POST /moon/intra_extensions/{intra_extension_id}/rule/{sub_meta_rule_id}**
Add a new rule.
return = {}
-**DELETE /intra_extensions/{intra_extension_id}/rule/{sub_meta_rule_id}/{rule_id}**
+**DELETE /moon/intra_extensions/{intra_extension_id}/rule/{sub_meta_rule_id}/{rule_id}**
Delete a rule.
Logs
~~~~
-**GET /logs/{options}**
+**GET /moon/logs/{options}**
List all logs.
Options can be:
"2015-04-15-13:45:23 ..."
]
+Auth
+~~~~
+
+**POST /moon/auth/tokens**
+
+ Add a tenant.
+
+.. code-block:: json
+
+ post = {
+ "username": "name of the user to authenticate",
+ "password": "password of the user to authenticate"
+ }
+ return = {
+ "token": "NEW_TOKEN",
+ "message": "if authentication failed..."
+ }
+
+