Metadata-Version: 2.1
Name: cloudshare
Version: 0.1.3
Summary: A python wrapper for the CloudShare REST API.
Home-page: https://github.com/cloudshare/cloudshare-py-sdk
Author: Jonathan Sadan
Author-email: Jonathan Sadan <jonathan@cloudshare.com>
Project-URL: Homepage, https://github.com/cloudshare/cloudshare-py-sdk
Project-URL: Bug Tracker, https://github.com/cloudshare/cloudshare-py-sdk/issues
Keywords: cloudshare,cloud,SDK,REST,API
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE.txt

CloudShare API v3 SDK
=====================
Quickstart
----------
`pip install cloudshare`


Then just `import cloudshare` and use the function `cloudshare.req()` described below.


Interface
---------
This library is written for python 3.

```
def req(hostname, method, apiId, apiKey, path="", queryParams=None, content=None)
```
Required parameters are the `hostname`, `method`, `apiId` and `apiKey`.

`hostname` is usually `use.cloudshare.com` unless your using some mock or proxy.

`method` is one of "GET", "POST", "PUT", "DELETE", depends on the context of the call.

`apiId` and `apiKey` are valid CloudShare credentials.

`path` is what comes after the `'/api/v3'` part of the request url (e.g `'envs'`, `'vms/actions/executePath'`)

`queryParams` are a dict of values that translate to a query string and concatenated to the request url

`content` is a dict that's encoded to JSON and sent in the body section of the request, in POST and PUT requests.

Examples
--------
#### example.py
Enter your credentials in the two global variables `API_ID` and `API_KEY` and run it with `python example.py`. The script tries to run the command `echo hello world` on the first machine on the first environment it finds (visible to the user's credentials).

#### List your environments
```
import cloudshare
res = cloudshare.req(hostname='use.cloudshare.com',
				method='GET',
				path='envs',
				apiId='Your API ID',
				apiKey='You API Key')
if (res.status / 100 != 2):
	raise Exception(res.status, res.content)
print 'hi! these are my environments:'
print [e['name'] for e in res.content]
```

#### Get one environment
```
import cloudshare
res = cloudshare.req(hostname='use.cloudshare.com',
				method='GET',
				path='envs/' + envId,
				apiId='Your API ID',
				apiKey='You API Key')
if (res.status / 100 != 2):
	raise Exception(res.status, res.content)
print 'look at my environment details:'
print res.content
```

#### Suspend an environment
```
import cloudshare
res = cloudshare.req(hostname='use.cloudshare.com',
				method='PUT',
				path='envs/actions/suspend',
				queryParams={'envId': envId},
				apiId='Your API ID',
				apiKey='Your API Key')
if (res.status / 100 != 2):
	raise Exception(res.content)
print res.content
```

## Building from source

```
make setup
make build test
```


## Let's Encrypt Certificates
You might need to install these root certificates if they were not updated by the OS

https://letsencrypt.org/certs/isrgrootx1.der

https://letsencrypt.org/certs/isrg-root-x2.der

https://letsencrypt.org/certs/lets-encrypt-r3.der


More info here:

https://letsencrypt.org/certificates/
