[![FactSet](https://raw.githubusercontent.com/factset/enterprise-sdk/main/docs/images/factset-logo.svg)](https://www.factset.com)

# Portfolio Reporting Batcher client library for JavaScript

[![API Version](https://img.shields.io/badge/api-v1.0.0-blue)](https://developer.factset.com/api-catalog/portfolio-reporting-batcher-api)
[![npm](https://img.shields.io/badge/npm-v1.0.1-orange)](https://www.npmjs.com/package/@factset/sdk-portfolioreportingbatcher/v/1.0.1)
[![Apache-2 license](https://img.shields.io/badge/license-Apache2-brightgreen.svg)](https://www.apache.org/licenses/LICENSE-2.0)

The Portfolio Reporting Batcher (PRB) API allows clients to systematically leverage functionalities of the PRB application.

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

- API version: 1.0.0
- SDK version: 1.0.1
- Build package: com.factset.sdk.codegen.FactSetJavascriptClientCodegen

For more information, please visit [https://developer.factset.com/contact](https://developer.factset.com/contact)

## Requirements

* Node.js >= 18

## Installation

### npm

```shell
npm install @factset/sdk-utils @factset/sdk-portfolioreportingbatcher@1.0.1
```

### yarn

```shell
yarn add @factset/sdk-utils @factset/sdk-portfolioreportingbatcher@1.0.1
```

## Usage

1. [Generate authentication credentials](../../../../README.md#authentication).
2. Setup Node.js environment
   1. Install and activate Node.js >=18. If you're using [nvm](https://github.com/nvm-sh/nvm):

      ```sh
      nvm install 18
      nvm use 18
      ```

   2. (optional) [Install yarn](https://yarnpkg.com/getting-started/install).
3. [Install dependencies](#installation).
4. Run the following:

> [!IMPORTANT]
> The parameter variables defined below are just examples and may potentially contain non valid values. Please replace them with valid values.

### Example Code


```javascript
const { ApiClient, JobsApi } = require('@factset/sdk-portfolioreportingbatcher');
const { ConfidentialClient } = require('@factset/sdk-utils');

const apiClient = ApiClient.instance;

// Examples for each supported authentication method are below,
// choose one that satisfies your use case.

// (Preferred) OAuth 2.0: FactSetOAuth2
// See https://github.com/FactSet/enterprise-sdk#oauth-20
// for information on how to create the app-config.json file
//
// The confidential client instance should be reused in production environments.
// See https://github.com/FactSet/enterprise-sdk-utils-typescript#authentication
// for more information on using the ConfidentialClient class
apiClient.factsetOauth2Client = new ConfidentialClient('/path/to/app-config.json');

// Basic authentication: FactSetApiKey
// See https://github.com/FactSet/enterprise-sdk#api-key
// for information how to create an API key
// const FactSetApiKey = apiClient.authentications['FactSetApiKey'];
// FactSetApiKey.username = 'USERNAME-SERIAL';
// FactSetApiKey.password = 'API-KEY';

const apiInstance = new JobsApi();
const type = new portfolioreportingbatcher.JobTypes(); // JobTypes | The jobs type
const name = "name_example"; // String | The jobs name
const opts = {
  'attribute': ["null"] // [String] | The attribute parameter accepts a list of the given enums, separated by commas. Each of them returns the respective data associated with the job. Runs returns the run history of the job.
};

// Call api endpoint
apiInstance.v1GetDetailsForJob(type, name, opts).then(
  data => {

    console.log('API called successfully. Returned data:');
    console.log(data);
  },
  error => {
    console.error(error);
  },
);

```


## Using a Proxy

To add a HTTP proxy for the API client, you can set the proxyUrl for the ApiClient instance:

```javascript
const { ApiClient } = require('@factset/sdk-portfolioreportingbatcher');

const apiClient = ApiClient.instance;
apiClient.setProxyUrl('http://username:password@proxy.example.com:8080');
```

## Documentation for API Endpoints

All URIs are relative to *https://api.factset.com/analytics/prb/v1*

Class | Method | HTTP request | Description
------------ | ------------- | ------------- | -------------
*portfolioreportingbatcher.JobsApi* | [**v1GetDetailsForJob**](docs/JobsApi.md#v1GetDetailsForJob) | **GET** /jobs/{type}/{name} | Get details for the given PRB job
*portfolioreportingbatcher.JobsApi* | [**v1GetPrbJobs**](docs/JobsApi.md#v1GetPrbJobs) | **GET** /jobs | Get a list of existing jobs
*portfolioreportingbatcher.RunsApi* | [**v1CancelRunId**](docs/RunsApi.md#v1CancelRunId) | **DELETE** /runs/{id} | cancel runs
*portfolioreportingbatcher.RunsApi* | [**v1CheckRunStatus**](docs/RunsApi.md#v1CheckRunStatus) | **GET** /runs/{id}/status | check the status for a particular run ID
*portfolioreportingbatcher.RunsApi* | [**v1StartJobRun**](docs/RunsApi.md#v1StartJobRun) | **POST** /runs | trigger PRB jobs


## Documentation for Models

 - [portfolioreportingbatcher.AccountsForJobAddProp](docs/AccountsForJobAddProp.md)
 - [portfolioreportingbatcher.Calendar](docs/Calendar.md)
 - [portfolioreportingbatcher.ClientErrorResponse](docs/ClientErrorResponse.md)
 - [portfolioreportingbatcher.Error](docs/Error.md)
 - [portfolioreportingbatcher.ErrorSource](docs/ErrorSource.md)
 - [portfolioreportingbatcher.Frequency](docs/Frequency.md)
 - [portfolioreportingbatcher.IdStatus](docs/IdStatus.md)
 - [portfolioreportingbatcher.IdStatusData](docs/IdStatusData.md)
 - [portfolioreportingbatcher.JobDetailsResponse](docs/JobDetailsResponse.md)
 - [portfolioreportingbatcher.JobDetailsResponseData](docs/JobDetailsResponseData.md)
 - [portfolioreportingbatcher.JobListResponse](docs/JobListResponse.md)
 - [portfolioreportingbatcher.JobListResponseMeta](docs/JobListResponseMeta.md)
 - [portfolioreportingbatcher.JobListResponseMetaPagination](docs/JobListResponseMetaPagination.md)
 - [portfolioreportingbatcher.JobListResponseRoot](docs/JobListResponseRoot.md)
 - [portfolioreportingbatcher.JobOverrides](docs/JobOverrides.md)
 - [portfolioreportingbatcher.JobOverridesCombinationsRoot](docs/JobOverridesCombinationsRoot.md)
 - [portfolioreportingbatcher.JobOverridesCombinationsRootDateRange](docs/JobOverridesCombinationsRootDateRange.md)
 - [portfolioreportingbatcher.JobTypes](docs/JobTypes.md)
 - [portfolioreportingbatcher.PrbStatus](docs/PrbStatus.md)
 - [portfolioreportingbatcher.RunsForJob](docs/RunsForJob.md)
 - [portfolioreportingbatcher.StartJob](docs/StartJob.md)
 - [portfolioreportingbatcher.StartJobRoot](docs/StartJobRoot.md)
 - [portfolioreportingbatcher.StartJobRunResponse](docs/StartJobRunResponse.md)
 - [portfolioreportingbatcher.StartJobRunResponseData](docs/StartJobRunResponseData.md)
 - [portfolioreportingbatcher.Status](docs/Status.md)


## Documentation for Authorization



### FactSetApiKey

- **Type**: HTTP basic authentication



### FactSetOAuth2


- **Type**: OAuth
- **Flow**: application
- **Authorization URL**: 
- **Scopes**: N/A


# Contributing

Please refer to the [contributing guide](../../../../CONTRIBUTING.md).

# Copyright

Copyright 2022 FactSet Research Systems Inc

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
