# Resources

The resources use a data model that is supported by a set of client-side libraries that are made available on the files and libraries page.

name | path | methods | description
--- | --- | --- | ---
AnsibleOutputController | `/user/v1.0/deployer/ansible/` `/user/v1.0/deployer/ansible/all` `/user/v1.0/deployer/ansible/commands` `/user/v1.0/deployer/ansible/ids` `/user/v1.0/deployer/ansible/{id}` | `GET` `DELETE` `GET` `GET` `DELETE GET` | This controller is responsible for showing the output from ansible executions
BenchmarkController | `/user/v1.0/benchmark/` `/user/v1.0/benchmark/all` `/user/v1.0/benchmark/ids` `/user/v1.0/benchmark/{id}` | `GET` `DELETE` `GET` `DELETE GET` | This controller is responsible for handling cloud benchmark tests like sysbench
CloudConfigurationController0 | `/user/v0.0/switch/account/configure/ec2` `/user/v0.0/switch/account/configure/geni` | `POST` `POST` | This controller is responsible for handling cloud credentials used by the provisoner to request for resources (VMs).
CloudCredentialsController | `/user/v1.0/credentials/cloud/` `/user/v1.0/credentials/cloud/all` `/user/v1.0/credentials/cloud/ids` `/user/v1.0/credentials/cloud/sample` `/user/v1.0/credentials/cloud/{id}` `/user/v1.0/credentials/cloud/upload/{id}` | `POST` `DELETE` `GET` `GET` `DELETE GET` `POST` | This controller is responsible for handling CloudCredentials. CloudCredentials are a represntation of the credentials that are used by the provisoner to request for resources (VMs)
ConfigurationController | `/user/v1.0/deployer/configuration/all` `/user/v1.0/deployer/configuration/ids` `/user/v1.0/deployer/configuration/post` `/user/v1.0/deployer/configuration/upload` `/user/v1.0/deployer/configuration/{id}` | `DELETE` `GET` `POST` `POST` `DELETE GET` | This controller is responsible for managing deployment configurations used by the deployer. Currently docker-compose.yml and ansible playbooks are supported.
DeployController | `/user/v1.0/deployer/all` `/user/v1.0/deployer/deploy` `/user/v1.0/deployer/ids` `/user/v1.0/deployer/sample` `/user/v1.0/deployer/scale` `/user/v1.0/deployer/{id}` `/user/v1.0/deployer/{id}/container_status` `/user/v1.0/deployer/{id}/service_names` | `DELETE` `POST` `GET` `GET` `POST` `DELETE GET` `GET` `GET` | This controller is responsible for deploying a cluster on provisoned resources.
DeployController0 | `/user/v0.0/switch/deploy/kubernetes` `/user/v0.0/switch/deploy/swarm` | `POST` `POST` | This controller is responsible for deploying a cluster on provisoned resources.
KeyPairController | `/user/v1.0/keys/` `/user/v1.0/keys/all` `/user/v1.0/keys/ids` `/user/v1.0/keys/sample` `/user/v1.0/keys/{id}` | `POST` `DELETE` `GET` `GET` `DELETE GET` | This controller is responsible for handling user public keys. These keys can be used by the provisoner to allow the user to login to the VMs from the machine the keys correspond to.
LogController | `/user/v1.0/logs/` | `GET` | This controller is responsible for storing TOSCA descriptions that can be used by the planner.
MonitorringMessageController | `/user/v1.0/monitoring_message/` `/user/v1.0/monitoring_message/ids` `/user/v1.0/monitoring_message/{id}` | `POST` `GET` `GET` |
PlannerController | `/user/v1.0/planner/all` `/user/v1.0/planner/ids` `/user/v1.0/planner/vereify_plan` `/user/v1.0/planner/{id}` `/user/v1.0/planner/plan/{tosca_id}` `/user/v1.0/planner/post/{name}` `/user/v1.0/planner/tosca/{id}` `/user/v1.0/planner/post/{level}/{name}/{id}` | `DELETE` `GET` `POST` `DELETE GET` `GET` `POST` `GET` `POST` | This controller is responsible for planing the type of resources to be provisopned based on a TOSCA description.
PlannerController0 | `/user/v0.0/switch/plan/planning` | `POST` | This controller is responsible for planing the type of resources to be provisopned based on a TOSCA description.
ProvisionController | `/user/v1.0/provisioner/all` `/user/v1.0/provisioner/ids` `/user/v1.0/provisioner/providers` `/user/v1.0/provisioner/provision` `/user/v1.0/provisioner/sample` `/user/v1.0/provisioner/scale` `/user/v1.0/provisioner/{id}` `/user/v1.0/provisioner/post/provision` | `DELETE` `GET` `GET` `POST` `GET` `POST` `DELETE GET` `POST` | This controller is responsible for obtaining resources from cloud providers based the plan generated by the planner
ProvisionController0 | `/user/v0.0/switch/provision/execute` `/user/v0.0/switch/provision/upload` | `POST` `POST` | This controller is responsible for obtaining resources from cloud providers based the plan generated by the planner and uploaded by the user
ScriptController | `/user/v1.0/script/` `/user/v1.0/script/all` `/user/v1.0/script/ids` `/user/v1.0/script/sample` `/user/v1.0/script/upload` `/user/v1.0/script/{id}` | `POST` `DELETE` `GET` `GET` `POST` `DELETE GET` | This controller is responsible for handling user scripts. These user can be used by the provisoner to run on the created VMs.
ToscaController | `/user/v1.0/tosca/all` `/user/v1.0/tosca/ids` `/user/v1.0/tosca/post` `/user/v1.0/tosca/upload` `/user/v1.0/tosca/{id}` `/user/v1.0/tosca/transform/{id}` | `DELETE` `GET` `POST` `POST` `DELETE GET` `GET` | This controller is responsible for storing TOSCA descriptions that can be used by the planner.
UserController | `/manager/v1.0/user/all` `/manager/v1.0/user/ids` `/manager/v1.0/user/modify` `/manager/v1.0/user/register` `/manager/v1.0/user/{id}` | `GET` `GET` `POST` `POST` `DELETE GET` | This controller is responsible for handling user accounts
UserController0 | `/manager/v0.0/switch/account/register` | `POST` | This controller is responsible for handling user accounts
UserPublicKeysController0 | `/user/v0.0/switch/provision/confuserkey` | `POST` | This controller is responsible for handling user public keys. These keys can be used by the provisoner to allow the user to login to the VMs from the machine the keys correspond to.
UserScriptController0 | `/user/v0.0/switch/provision/confscript` | `POST` | This controller is responsible for handling user scripts. These user can be used by the provisoner to run on the created VMs.