npm package: @netsoc/iam
Description: API_for_managing_and_authenticating_Netsoc_users_
Latest version: 1.0.11

# @netsoc/iam

@NetsocIam - JavaScript client for @netsoc/iam
API for managing and authenticating Netsoc users.

This SDK is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:

- API version: 1.0.11
- Package version: 1.0.11
- Build package: org.openapitools.codegen.languages.JavascriptClientCodegen

## Installation

### For [Node.js](https://nodejs.org/)

#### npm

To publish the library as a [npm](https://www.npmjs.com/), please follow the procedure in ["Publishing npm packages"](https://docs.npmjs.com/getting-started/publishing-npm-packages).

Then install it via:

```shell
npm install @netsoc/iam --save
```

Finally, you need to build the module:

```shell
npm run build
```

##### Local development

To use the library locally without publishing to a remote npm registry, first install the dependencies by changing into the directory containing `package.json` (and this README). Let's call this `JAVASCRIPT_CLIENT_DIR`. Then run:

```shell
npm install
```

Next, [link](https://docs.npmjs.com/cli/link) it globally in npm with the following, also from `JAVASCRIPT_CLIENT_DIR`:

```shell
npm link
```

To use the link you just defined in your project, switch to the directory you want to use your @netsoc/iam from, and run:

```shell
npm link /path/to/<JAVASCRIPT_CLIENT_DIR>
```

Finally, you need to build the module:

```shell
npm run build
```

#### git

If the library is hosted at a git repository, e.g.https://github.com/GIT_USER_ID/GIT_REPO_ID
then install it via:

```shell
    npm install GIT_USER_ID/GIT_REPO_ID --save
```

### For browser

The library also works in the browser environment via npm and [browserify](http://browserify.org/). After following
the above steps with Node.js and installing browserify with `npm install -g browserify`,
perform the following (assuming *main.js* is your entry file):

```shell
browserify main.js > bundle.js
```

Then include *bundle.js* in the HTML pages.

### Webpack Configuration

Using Webpack you may encounter the following error: "Module not found: Error:
Cannot resolve module", most certainly you should disable AMD loader. Add/merge
the following section to your webpack config:

```javascript
module: {
  rules: [
    {
      parser: {
        amd: false
      }
    }
  ]
}
```

## Getting Started

Please follow the [installation](#installation) instruction and execute the following JS code:

```javascript
var @NetsocIam = require('@netsoc/iam');

var defaultClient = @NetsocIam.ApiClient.instance;
// Configure Bearer (jwt) access token for authorization: jwt_admin
var jwt_admin = defaultClient.authentications['jwt_admin'];
jwt_admin.accessToken = "YOUR ACCESS TOKEN"

var api = new @NetsocIam.UsersApi()
var user = {"username":"bro","email":"bro@tcd.ie","password":"hunter22","first_name":"Bro","last_name":"Dude"}; // {User} User to create
var callback = function(error, data, response) {
  if (error) {
    console.error(error);
  } else {
    console.log('API called successfully. Returned data: ' + data);
  }
};
api.createUser(user, callback);

```

## Documentation for API Endpoints

All URIs are relative to *https://iam.netsoc.ie/v1*

Class | Method | HTTP request | Description
------------ | ------------- | ------------- | -------------
*@NetsocIam.UsersApi* | [**createUser**](docs/UsersApi.md#createUser) | **POST** /users | Create a new user
*@NetsocIam.UsersApi* | [**deleteUser**](docs/UsersApi.md#deleteUser) | **DELETE** /users/{username} | Delete a user by their username
*@NetsocIam.UsersApi* | [**getUser**](docs/UsersApi.md#getUser) | **GET** /users/{username} | Get a user by their username
*@NetsocIam.UsersApi* | [**getUserByID**](docs/UsersApi.md#getUserByID) | **GET** /users/id:{uid} | Get a user by their ID
*@NetsocIam.UsersApi* | [**getUsers**](docs/UsersApi.md#getUsers) | **GET** /users | List users
*@NetsocIam.UsersApi* | [**issueToken**](docs/UsersApi.md#issueToken) | **POST** /users/{username}/token | Issue a token
*@NetsocIam.UsersApi* | [**login**](docs/UsersApi.md#login) | **POST** /users/{username}/login | Log into a user account (obtain JWT)
*@NetsocIam.UsersApi* | [**logout**](docs/UsersApi.md#logout) | **DELETE** /users/{username}/login | Log out of a user account (invalidate existing JWT&#39;s) 
*@NetsocIam.UsersApi* | [**resetPassword**](docs/UsersApi.md#resetPassword) | **PUT** /users/{username}/login | Reset password
*@NetsocIam.UsersApi* | [**updateUser**](docs/UsersApi.md#updateUser) | **PATCH** /users/{username} | Update a user by their username
*@NetsocIam.UsersApi* | [**validateToken**](docs/UsersApi.md#validateToken) | **GET** /users/self/token | Validate a token
*@NetsocIam.UsersApi* | [**verify**](docs/UsersApi.md#verify) | **PATCH** /users/{username}/login | Verify email address


## Documentation for Models

 - [@NetsocIam.Error](docs/Error.md)
 - [@NetsocIam.IssueTokenRequest](docs/IssueTokenRequest.md)
 - [@NetsocIam.LoginRequest](docs/LoginRequest.md)
 - [@NetsocIam.ResetPasswordRequest](docs/ResetPasswordRequest.md)
 - [@NetsocIam.TokenResponse](docs/TokenResponse.md)
 - [@NetsocIam.User](docs/User.md)
 - [@NetsocIam.UserMeta](docs/UserMeta.md)


## Documentation for Authorization



### jwt

- **Type**: Bearer authentication (jwt)



### jwt_admin

- **Type**: Bearer authentication (jwt)



### jwt_reset

- **Type**: Bearer authentication (jwt)



### jwt_verify

- **Type**: Bearer authentication (jwt)