# sync_gateway

SyncGateway - JavaScript client for sync_gateway
Documentation for the Sync Gateway Public REST API. This page is generated from the Sync Gateway Public Swagger spec, the exact same information is also available at [developer.couchbase.com/mobile/swagger/sync-gateway-public](http://developer.couchbase.com/mobile/swagger/sync-gateway-public/). 
This SDK is automatically generated by the [Swagger Codegen](https://github.com/swagger-api/swagger-codegen) project:

- API version: 1.4
- Package version: 1.4
- Build package: io.swagger.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 sync_gateway --save
```

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

## Getting Started

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

```javascript
var SyncGateway = require('sync_gateway');

var defaultClient = SyncGateway.ApiClient.instance;

// Configure API key authorization: apiKey
var apiKey = defaultClient.authentications['apiKey'];
apiKey.apiKey = "YOUR API KEY"
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//apiKey.apiKeyPrefix['Cookie'] = "Token"

var api = new SyncGateway.AttachmentApi()

var db = "db_example"; // {String} Database name

var doc = "doc_example"; // {String} Document ID

var attachment = "attachment_example"; // {String} Attachment name

var opts = { 
  'rev': "rev_example" // {String} Revision identifier of the parent revision the new one should replace. (Not used when creating a new document.)
};

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

```

## Documentation for API Endpoints

All URIs are relative to *http://localhost:4984/*

Class | Method | HTTP request | Description
------------ | ------------- | ------------- | -------------
*SyncGateway.AttachmentApi* | [**dbDocAttachmentGet**](docs/AttachmentApi.md#dbDocAttachmentGet) | **GET** /{db}/{doc}/{attachment} | Get attachment
*SyncGateway.AttachmentApi* | [**dbDocAttachmentPut**](docs/AttachmentApi.md#dbDocAttachmentPut) | **PUT** /{db}/{doc}/{attachment} | Add or update document
*SyncGateway.AuthApi* | [**dbOidcCallbackGet**](docs/AuthApi.md#dbOidcCallbackGet) | **GET** /{db}/_oidc_callback | OpenID Connect Authentication callback.
*SyncGateway.AuthApi* | [**dbOidcChallengeGet**](docs/AuthApi.md#dbOidcChallengeGet) | **GET** /{db}/_oidc_challenge | OpenID Connect Authentication.
*SyncGateway.AuthApi* | [**dbOidcGet**](docs/AuthApi.md#dbOidcGet) | **GET** /{db}/_oidc | OpenID Connect Authentication.
*SyncGateway.AuthApi* | [**dbOidcRefreshGet**](docs/AuthApi.md#dbOidcRefreshGet) | **GET** /{db}/_oidc_refresh | OpenID Connect refresh.
*SyncGateway.DatabaseApi* | [**dbAllDocsGet**](docs/DatabaseApi.md#dbAllDocsGet) | **GET** /{db}/_all_docs | All docs
*SyncGateway.DatabaseApi* | [**dbAllDocsPost**](docs/DatabaseApi.md#dbAllDocsPost) | **POST** /{db}/_all_docs | All docs
*SyncGateway.DatabaseApi* | [**dbBulkDocsPost**](docs/DatabaseApi.md#dbBulkDocsPost) | **POST** /{db}/_bulk_docs | Bulk docs
*SyncGateway.DatabaseApi* | [**dbBulkGetPost**](docs/DatabaseApi.md#dbBulkGetPost) | **POST** /{db}/_bulk_get | Bulk get
*SyncGateway.DatabaseApi* | [**dbChangesGet**](docs/DatabaseApi.md#dbChangesGet) | **GET** /{db}/_changes | Changes
*SyncGateway.DatabaseApi* | [**dbChangesPost**](docs/DatabaseApi.md#dbChangesPost) | **POST** /{db}/_changes | Changes
*SyncGateway.DatabaseApi* | [**dbGet**](docs/DatabaseApi.md#dbGet) | **GET** /{db}/ | Database info
*SyncGateway.DocumentApi* | [**dbDocDelete**](docs/DocumentApi.md#dbDocDelete) | **DELETE** /{db}/{doc} | Delete document
*SyncGateway.DocumentApi* | [**dbDocGet**](docs/DocumentApi.md#dbDocGet) | **GET** /{db}/{doc} | Get document
*SyncGateway.DocumentApi* | [**dbDocPut**](docs/DocumentApi.md#dbDocPut) | **PUT** /{db}/{doc} | Create or update document
*SyncGateway.DocumentApi* | [**dbLocalLocalDocDelete**](docs/DocumentApi.md#dbLocalLocalDocDelete) | **DELETE** /{db}/_local/{local_doc} | Delete a local document
*SyncGateway.DocumentApi* | [**dbLocalLocalDocGet**](docs/DocumentApi.md#dbLocalLocalDocGet) | **GET** /{db}/_local/{local_doc} | Get local doc
*SyncGateway.DocumentApi* | [**dbLocalLocalDocPut**](docs/DocumentApi.md#dbLocalLocalDocPut) | **PUT** /{db}/_local/{local_doc} | Create or update a local document
*SyncGateway.DocumentApi* | [**post**](docs/DocumentApi.md#post) | **POST** /{db}/ | Create document
*SyncGateway.QueryApi* | [**dbDesignDdocViewViewGet**](docs/QueryApi.md#dbDesignDdocViewViewGet) | **GET** /{db}/_design/{ddoc}/_view/{view} | Query a view
*SyncGateway.ServerApi* | [**rootGet**](docs/ServerApi.md#rootGet) | **GET** / | Server
*SyncGateway.SessionApi* | [**dbSessionDelete**](docs/SessionApi.md#dbSessionDelete) | **DELETE** /{db}/_session | Delete a user session
*SyncGateway.SessionApi* | [**dbSessionPost**](docs/SessionApi.md#dbSessionPost) | **POST** /{db}/_session | Create a user session


## Documentation for Models

 - [SyncGateway.AllDocs](docs/AllDocs.md)
 - [SyncGateway.BulkDocsBody](docs/BulkDocsBody.md)
 - [SyncGateway.BulkGetBody](docs/BulkGetBody.md)
 - [SyncGateway.Changes](docs/Changes.md)
 - [SyncGateway.ChangesBody](docs/ChangesBody.md)
 - [SyncGateway.ChangesFeedRow](docs/ChangesFeedRow.md)
 - [SyncGateway.ChangesFeedRowChanges](docs/ChangesFeedRowChanges.md)
 - [SyncGateway.Database](docs/Database.md)
 - [SyncGateway.DbBulkGetDocs](docs/DbBulkGetDocs.md)
 - [SyncGateway.Design](docs/Design.md)
 - [SyncGateway.DocMetadata](docs/DocMetadata.md)
 - [SyncGateway.DocMetadataSync](docs/DocMetadataSync.md)
 - [SyncGateway.DocMetadataSyncHistory](docs/DocMetadataSyncHistory.md)
 - [SyncGateway.Document](docs/Document.md)
 - [SyncGateway.Error](docs/Error.md)
 - [SyncGateway.ExpVars](docs/ExpVars.md)
 - [SyncGateway.ExpVarsSyncGatewayChangeCache](docs/ExpVarsSyncGatewayChangeCache.md)
 - [SyncGateway.ExpVarsSyncGatewayDb](docs/ExpVarsSyncGatewayDb.md)
 - [SyncGateway.Forbidden](docs/Forbidden.md)
 - [SyncGateway.InlineResponse200](docs/InlineResponse200.md)
 - [SyncGateway.InlineResponse2001](docs/InlineResponse2001.md)
 - [SyncGateway.InlineResponse2002](docs/InlineResponse2002.md)
 - [SyncGateway.InlineResponse301](docs/InlineResponse301.md)
 - [SyncGateway.LogTags](docs/LogTags.md)
 - [SyncGateway.PurgeBody](docs/PurgeBody.md)
 - [SyncGateway.QueryResult](docs/QueryResult.md)
 - [SyncGateway.QueryRow](docs/QueryRow.md)
 - [SyncGateway.Replication](docs/Replication.md)
 - [SyncGateway.Server](docs/Server.md)
 - [SyncGateway.Session](docs/Session.md)
 - [SyncGateway.SessionBody](docs/SessionBody.md)
 - [SyncGateway.Success](docs/Success.md)
 - [SyncGateway.User](docs/User.md)
 - [SyncGateway.UserContext](docs/UserContext.md)
 - [SyncGateway.View](docs/View.md)
 - [SyncGateway.ViewViews](docs/ViewViews.md)
 - [SyncGateway.ViewViewsMyViewName](docs/ViewViewsMyViewName.md)


## Documentation for Authorization


### apiKey

- **Type**: API key
- **API key parameter name**: Cookie
- **Location**: HTTP header

### basicAuth

- **Type**: HTTP basic authentication

