# drip-api

# 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`

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`

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 storing PlayBook descriptions that can be used by the planner.

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/{id}`

- `DELETE`
- `POST`
- `GET`
- `GET`
- `DELETE 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.

PlannerController

- `/user/v1.0/planner/all`
- `/user/v1.0/planner/ids`
- `/user/v1.0/planner/plan/`
- `/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`
- `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/provision`
- `/user/v1.0/provisioner/sample`
- `/user/v1.0/provisioner/{id}`

- `DELETE`
- `GET`
- `POST`
- `GET`
- `DELETE GET`

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}`

- `DELETE`
- `GET`
- `POST`
- `POST`
- `DELETE 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.

# Data Types

### JSON

type | description
--- | ---
AnsibleOutput |
AnsibleResult |
BenchmarkResult |
CloudCredentials |
DeployParameter |
DeployRequest |
DeployResponse |
Invocation |
Key |
KeyPair |
KeyType |
KeyValueHolder |
ModuleArgs |
OwnedObject |
PlanRequest |
PlanResponse |
PlaybookRepresentation |
ProvisionRequest |
ProvisionResponse |
Script |
SysbenchCPUBenchmark |
ToscaRepresentation |
User |

### XML

Default Namespace (schema)
type | description
--- | ---
attribute |
confScript |
confUserKey |
configure |
deploy |
execute |
loginKey0 |
plan |
register |
result |
upload |
cloudCredentials |
deployParameter |
deployRequest |
deployResponse |
key |
keyType |
keyPair |
keyValueHolder |
ownedObject |
planRequest |
planResponse |
playbookRepresentation |
provisionRequest |
provisionResponse |
script |
toscaRepresentation |
user |
ansibleOutput |
benchmarkResult |
sysbenchCPUBenchmark |