# CloudSmlApi.UsersApi

All URIs are relative to *https://localhost/api/v1*

Method | HTTP request | Description
------------- | ------------- | -------------
[**createUser**](UsersApi.md#createUser) | **POST** /users/ | Create a new user
[**getUserById**](UsersApi.md#getUserById) | **GET** /users/{user_id} | Get user details by ID
[**getUserMe**](UsersApi.md#getUserMe) | **GET** /users/me | Get current user details
[**getUserSignupForm**](UsersApi.md#getUserSignupForm) | **GET** /users/signup_form | Get signup form keys
[**getUsers**](UsersApi.md#getUsers) | **GET** /users/ | List of users
[**optionsUserById**](UsersApi.md#optionsUserById) | **OPTIONS** /users/{user_id} | Check which methods are allowed
[**optionsUserMe**](UsersApi.md#optionsUserMe) | **OPTIONS** /users/me | Check which methods are allowed
[**optionsUserSignupForm**](UsersApi.md#optionsUserSignupForm) | **OPTIONS** /users/signup_form | Check which methods are allowed
[**optionsUsers**](UsersApi.md#optionsUsers) | **OPTIONS** /users/ | Check which methods are allowed
[**patchUserById**](UsersApi.md#patchUserById) | **PATCH** /users/{user_id} | Patch user details by ID


<a name="createUser"></a>
# **createUser**
> DetailedUser createUser(email, username, password, opts)

Create a new user

### Example
```javascript
var CloudSmlApi = require('cloud_sml_api');

var apiInstance = new CloudSmlApi.UsersApi();

var email = "email_example"; // String | Example: root@gmail.com

var username = "username_example"; // String | Example: root

var password = "password_example"; // String | No rules yet

var opts = { 
  'middleName': "middleName_example", // String | 
  'recaptchaKey': "recaptchaKey_example", // String | See `/users/signup_form` for details. It is required for everybody, except admins
  'lastName': "lastName_example", // String | 
  'firstName': "firstName_example" // String | 
};

var callback = function(error, data, response) {
  if (error) {
    console.error(error);
  } else {
    console.log('API called successfully. Returned data: ' + data);
  }
};
apiInstance.createUser(email, username, password, opts, callback);
```

### Parameters

Name | Type | Description  | Notes
------------- | ------------- | ------------- | -------------
 **email** | **String**| Example: root@gmail.com | 
 **username** | **String**| Example: root | 
 **password** | **String**| No rules yet | 
 **middleName** | **String**|  | [optional] 
 **recaptchaKey** | **String**| See &#x60;/users/signup_form&#x60; for details. It is required for everybody, except admins | [optional] 
 **lastName** | **String**|  | [optional] 
 **firstName** | **String**|  | [optional] 

### Return type

[**DetailedUser**](DetailedUser.md)

### Authorization

No authorization required

### HTTP request headers

 - **Content-Type**: application/x-www-form-urlencoded, multipart/form-data
 - **Accept**: application/json

<a name="getUserById"></a>
# **getUserById**
> DetailedUser getUserById(userId)

Get user details by ID

**PERMISSIONS: Owner/Supervisor/Admin may execute this action.**

### Example
```javascript
var CloudSmlApi = require('cloud_sml_api');
var defaultClient = CloudSmlApi.ApiClient.default;

// Configure OAuth2 access token for authorization: oauth2_password
var oauth2_password = defaultClient.authentications['oauth2_password'];
oauth2_password.accessToken = 'YOUR ACCESS TOKEN';

var apiInstance = new CloudSmlApi.UsersApi();

var userId = 56; // Number | 


var callback = function(error, data, response) {
  if (error) {
    console.error(error);
  } else {
    console.log('API called successfully. Returned data: ' + data);
  }
};
apiInstance.getUserById(userId, callback);
```

### Parameters

Name | Type | Description  | Notes
------------- | ------------- | ------------- | -------------
 **userId** | **Number**|  | 

### Return type

[**DetailedUser**](DetailedUser.md)

### Authorization

[oauth2_password](../README.md#oauth2_password)

### HTTP request headers

 - **Content-Type**: application/json
 - **Accept**: application/json

<a name="getUserMe"></a>
# **getUserMe**
> DetailedUser getUserMe()

Get current user details

**PERMISSIONS: At least Active user is required.**

### Example
```javascript
var CloudSmlApi = require('cloud_sml_api');
var defaultClient = CloudSmlApi.ApiClient.default;

// Configure OAuth2 access token for authorization: oauth2_password
var oauth2_password = defaultClient.authentications['oauth2_password'];
oauth2_password.accessToken = 'YOUR ACCESS TOKEN';

var apiInstance = new CloudSmlApi.UsersApi();

var callback = function(error, data, response) {
  if (error) {
    console.error(error);
  } else {
    console.log('API called successfully. Returned data: ' + data);
  }
};
apiInstance.getUserMe(callback);
```

### Parameters
This endpoint does not need any parameter.

### Return type

[**DetailedUser**](DetailedUser.md)

### Authorization

[oauth2_password](../README.md#oauth2_password)

### HTTP request headers

 - **Content-Type**: application/json
 - **Accept**: application/json

<a name="getUserSignupForm"></a>
# **getUserSignupForm**
> UserSignupForm getUserSignupForm()

Get signup form keys

This endpoint must be used in order to get a server reCAPTCHA public key which must be used to receive a reCAPTCHA secret key for POST /users/ form.

### Example
```javascript
var CloudSmlApi = require('cloud_sml_api');

var apiInstance = new CloudSmlApi.UsersApi();

var callback = function(error, data, response) {
  if (error) {
    console.error(error);
  } else {
    console.log('API called successfully. Returned data: ' + data);
  }
};
apiInstance.getUserSignupForm(callback);
```

### Parameters
This endpoint does not need any parameter.

### Return type

[**UserSignupForm**](UserSignupForm.md)

### Authorization

No authorization required

### HTTP request headers

 - **Content-Type**: application/json
 - **Accept**: application/json

<a name="getUsers"></a>
# **getUsers**
> [BaseUser] getUsers(opts)

List of users

**PERMISSIONS: Admin role is required.**   Returns a list of users starting from &#x60;&#x60;offset&#x60;&#x60; limited by &#x60;&#x60;limit&#x60;&#x60; parameter.

### Example
```javascript
var CloudSmlApi = require('cloud_sml_api');
var defaultClient = CloudSmlApi.ApiClient.default;

// Configure OAuth2 access token for authorization: oauth2_password
var oauth2_password = defaultClient.authentications['oauth2_password'];
oauth2_password.accessToken = 'YOUR ACCESS TOKEN';

var apiInstance = new CloudSmlApi.UsersApi();

var opts = { 
  'offset': 56, // Number | a number of items to skip, default is 0.
  'limit': 20 // Number | limit a number of items (allowed range is 1-100), default is 20.
};

var callback = function(error, data, response) {
  if (error) {
    console.error(error);
  } else {
    console.log('API called successfully. Returned data: ' + data);
  }
};
apiInstance.getUsers(opts, callback);
```

### Parameters

Name | Type | Description  | Notes
------------- | ------------- | ------------- | -------------
 **offset** | **Number**| a number of items to skip, default is 0. | [optional] 
 **limit** | **Number**| limit a number of items (allowed range is 1-100), default is 20. | [optional] [default to 20]

### Return type

[**[BaseUser]**](BaseUser.md)

### Authorization

[oauth2_password](../README.md#oauth2_password)

### HTTP request headers

 - **Content-Type**: application/json
 - **Accept**: application/json

<a name="optionsUserById"></a>
# **optionsUserById**
> optionsUserById(userId)

Check which methods are allowed

**PERMISSIONS: At least Active user is required.**   Use this method if you need to know what operations are allowed to be performed on this endpoint, e.g. to decide wether to display a button in your UI.  The list of allowed methods is provided in &#x60;Allow&#x60; response header.

### Example
```javascript
var CloudSmlApi = require('cloud_sml_api');
var defaultClient = CloudSmlApi.ApiClient.default;

// Configure OAuth2 access token for authorization: oauth2_password
var oauth2_password = defaultClient.authentications['oauth2_password'];
oauth2_password.accessToken = 'YOUR ACCESS TOKEN';

var apiInstance = new CloudSmlApi.UsersApi();

var userId = 56; // Number | 


var callback = function(error, data, response) {
  if (error) {
    console.error(error);
  } else {
    console.log('API called successfully.');
  }
};
apiInstance.optionsUserById(userId, callback);
```

### Parameters

Name | Type | Description  | Notes
------------- | ------------- | ------------- | -------------
 **userId** | **Number**|  | 

### Return type

null (empty response body)

### Authorization

[oauth2_password](../README.md#oauth2_password)

### HTTP request headers

 - **Content-Type**: application/json
 - **Accept**: application/json

<a name="optionsUserMe"></a>
# **optionsUserMe**
> optionsUserMe()

Check which methods are allowed

**PERMISSIONS: At least Active user is required.**   Use this method if you need to know what operations are allowed to be performed on this endpoint, e.g. to decide wether to display a button in your UI.  The list of allowed methods is provided in &#x60;Allow&#x60; response header.

### Example
```javascript
var CloudSmlApi = require('cloud_sml_api');
var defaultClient = CloudSmlApi.ApiClient.default;

// Configure OAuth2 access token for authorization: oauth2_password
var oauth2_password = defaultClient.authentications['oauth2_password'];
oauth2_password.accessToken = 'YOUR ACCESS TOKEN';

var apiInstance = new CloudSmlApi.UsersApi();

var callback = function(error, data, response) {
  if (error) {
    console.error(error);
  } else {
    console.log('API called successfully.');
  }
};
apiInstance.optionsUserMe(callback);
```

### Parameters
This endpoint does not need any parameter.

### Return type

null (empty response body)

### Authorization

[oauth2_password](../README.md#oauth2_password)

### HTTP request headers

 - **Content-Type**: application/json
 - **Accept**: application/json

<a name="optionsUserSignupForm"></a>
# **optionsUserSignupForm**
> optionsUserSignupForm()

Check which methods are allowed

Use this method if you need to know what operations are allowed to be performed on this endpoint, e.g. to decide wether to display a button in your UI.  The list of allowed methods is provided in &#x60;Allow&#x60; response header.

### Example
```javascript
var CloudSmlApi = require('cloud_sml_api');

var apiInstance = new CloudSmlApi.UsersApi();

var callback = function(error, data, response) {
  if (error) {
    console.error(error);
  } else {
    console.log('API called successfully.');
  }
};
apiInstance.optionsUserSignupForm(callback);
```

### Parameters
This endpoint does not need any parameter.

### Return type

null (empty response body)

### Authorization

No authorization required

### HTTP request headers

 - **Content-Type**: application/json
 - **Accept**: application/json

<a name="optionsUsers"></a>
# **optionsUsers**
> optionsUsers()

Check which methods are allowed

Use this method if you need to know what operations are allowed to be performed on this endpoint, e.g. to decide wether to display a button in your UI.  The list of allowed methods is provided in &#x60;Allow&#x60; response header.

### Example
```javascript
var CloudSmlApi = require('cloud_sml_api');

var apiInstance = new CloudSmlApi.UsersApi();

var callback = function(error, data, response) {
  if (error) {
    console.error(error);
  } else {
    console.log('API called successfully.');
  }
};
apiInstance.optionsUsers(callback);
```

### Parameters
This endpoint does not need any parameter.

### Return type

null (empty response body)

### Authorization

No authorization required

### HTTP request headers

 - **Content-Type**: application/json
 - **Accept**: application/json

<a name="patchUserById"></a>
# **patchUserById**
> DetailedUser patchUserById(userIdbody)

Patch user details by ID

**PERMISSIONS: Owner/Supervisor/Admin may execute this action.**

### Example
```javascript
var CloudSmlApi = require('cloud_sml_api');
var defaultClient = CloudSmlApi.ApiClient.default;

// Configure OAuth2 access token for authorization: oauth2_password
var oauth2_password = defaultClient.authentications['oauth2_password'];
oauth2_password.accessToken = 'YOUR ACCESS TOKEN';

var apiInstance = new CloudSmlApi.UsersApi();

var userId = 56; // Number | 

var body = [new CloudSmlApi.Body5()]; // [Body5] | 


var callback = function(error, data, response) {
  if (error) {
    console.error(error);
  } else {
    console.log('API called successfully. Returned data: ' + data);
  }
};
apiInstance.patchUserById(userIdbody, callback);
```

### Parameters

Name | Type | Description  | Notes
------------- | ------------- | ------------- | -------------
 **userId** | **Number**|  | 
 **body** | [**[Body5]**](Body5.md)|  | 

### Return type

[**DetailedUser**](DetailedUser.md)

### Authorization

[oauth2_password](../README.md#oauth2_password)

### HTTP request headers

 - **Content-Type**: application/json
 - **Accept**: application/json

