From 3f8ef708c85c910f23c4e134d69218f294120bf4 Mon Sep 17 00:00:00 2001 From: pipedrive-bot Date: Fri, 29 May 2026 08:30:02 +0000 Subject: [PATCH] Build 331 - version-patch --- CHANGELOG.md | 7 +++ src/versions/v1/api/files-api.ts | 23 ++++++-- .../models/get-files-response-data-inner.ts | 10 ++++ src/versions/v1/models/project-all-of1.ts | 5 ++ src/versions/v2/api/deal-products-api.ts | 2 +- src/versions/v2/api/products-api.ts | 23 ++++++-- src/versions/v2/api/projects-api.ts | 49 +++++++++++++++-- src/versions/v2/models/add-project-request.ts | 5 ++ src/versions/v2/models/base-product-all-of.ts | 22 +++++++- .../v2/models/get-product-response.ts | 6 +-- ...ts => get-products-response-data-inner.ts} | 7 ++- .../v2/models/get-products-response.ts | 6 +-- src/versions/v2/models/index.ts | 3 +- src/versions/v2/models/organization-item.ts | 25 +++++++++ .../v2/models/prices-array-prices-inner.ts | 54 +++++++++++++++++++ src/versions/v2/models/prices-array.ts | 9 ++-- src/versions/v2/models/project.ts | 4 +- .../v2/models/update-product-response.ts | 6 +-- .../v2/models/update-project-request.ts | 5 ++ 19 files changed, 237 insertions(+), 34 deletions(-) rename src/versions/v2/models/{get-product-response-data.ts => get-products-response-data-inner.ts} (72%) create mode 100644 src/versions/v2/models/prices-array-prices-inner.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 428cfc5c..6ce7691b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,13 @@ The file format of it is based on [Keep a Changelog](http://keepachangelog.com/e For public Changelog covering all changes done to Pipedrive’s API, webhooks and app extensions platforms, see [public Changelog](https://pipedrive.readme.io/docs/changelog) with discussion area in [Developers Community](https://devcommunity.pipedrive.com/c/documentation/changelog/19). ## [Unreleased] +### Fixed +- Fixed double-nested response schema in `GET /api/v2/products` — `data` array items were incorrectly typed as a full response wrapper object instead of the product schema +- Added missing fields to v2 product response schema: `add_time`, `update_time`, `description`, and `category` (nullable) +- Added typed properties to `prices` array items in v2 product schema: `product_id`, `price`, `currency`, `cost`, `direct_cost` (nullable), `notes` +- Fixed `BaseProduct.id`, `ProductVariation.id`, and product image `product_id` typed as `number` instead of `integer` +- Documented the `updated_since` query parameter for `GET /api/v2/products` which was supported by the API but absent from the spec +- Fixed `quantity` field type from `integer` to `number` in deal product response schema (`GET /api/v2/deals/{id}/products`) — the API supports decimal values such as `5.5` ## [33.1.1] - 2026-05-28 diff --git a/src/versions/v1/api/files-api.ts b/src/versions/v1/api/files-api.ts index ae450d64..2e3ba381 100644 --- a/src/versions/v1/api/files-api.ts +++ b/src/versions/v1/api/files-api.ts @@ -51,10 +51,11 @@ export const FilesApiAxiosParamCreator = function (configuration?: Configuration * @param {number} [product_id] The ID of the product to associate file(s) with * @param {number} [activity_id] The ID of the activity to associate file(s) with * @param {string} [lead_id] The ID of the lead to associate file(s) with + * @param {number} [project_id] The ID of the project to associate file(s) with * @throws {RequiredError} */ - addFile: async (file: File, deal_id?: number, person_id?: number, org_id?: number, product_id?: number, activity_id?: number, lead_id?: string, ): Promise => { + addFile: async (file: File, deal_id?: number, person_id?: number, org_id?: number, product_id?: number, activity_id?: number, lead_id?: string, project_id?: number, ): Promise => { // verify required parameter 'file' is not null or undefined assertParamExists('addFile', 'file', file) const localVarPath = `/files`; @@ -106,6 +107,10 @@ export const FilesApiAxiosParamCreator = function (configuration?: Configuration localVarFormParams.append('lead_id', lead_id as any); } + if (project_id !== undefined) { + localVarFormParams.append('project_id', project_id as any); + } + localVarHeaderParameter['Content-Type'] = 'multipart/form-data'; @@ -515,11 +520,12 @@ export const FilesApiFp = function(configuration?: Configuration) { * @param {number} [product_id] The ID of the product to associate file(s) with * @param {number} [activity_id] The ID of the activity to associate file(s) with * @param {string} [lead_id] The ID of the lead to associate file(s) with + * @param {number} [project_id] The ID of the project to associate file(s) with * @throws {RequiredError} */ - async addFile(file: File, deal_id?: number, person_id?: number, org_id?: number, product_id?: number, activity_id?: number, lead_id?: string, ): Promise<(axios?: AxiosInstance, basePath?: string) => Promise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.addFile(file, deal_id, person_id, org_id, product_id, activity_id, lead_id, ); + async addFile(file: File, deal_id?: number, person_id?: number, org_id?: number, product_id?: number, activity_id?: number, lead_id?: string, project_id?: number, ): Promise<(axios?: AxiosInstance, basePath?: string) => Promise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.addFile(file, deal_id, person_id, org_id, product_id, activity_id, lead_id, project_id, ); return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); }, /** @@ -628,7 +634,7 @@ export const FilesApiFactory = function (configuration?: Configuration, basePath * @throws {RequiredError} */ addFile(requestParameters: FilesApiAddFileRequest, ): Promise { - return localVarFp.addFile(requestParameters.file, requestParameters.deal_id, requestParameters.person_id, requestParameters.org_id, requestParameters.product_id, requestParameters.activity_id, requestParameters.lead_id, ).then((request) => request(axios, basePath)); + return localVarFp.addFile(requestParameters.file, requestParameters.deal_id, requestParameters.person_id, requestParameters.org_id, requestParameters.product_id, requestParameters.activity_id, requestParameters.lead_id, requestParameters.project_id, ).then((request) => request(axios, basePath)); }, /** * Creates a new empty file in the remote location (`googledrive`) that will be linked to the item you supply. For more information, see the tutorial for adding a remote file. @@ -757,6 +763,13 @@ export interface FilesApiAddFileRequest { * @memberof FilesApiAddFile */ readonly lead_id?: string + + /** + * The ID of the project to associate file(s) with + * @type {number} + * @memberof FilesApiAddFile + */ + readonly project_id?: number } /** @@ -950,7 +963,7 @@ export class FilesApi extends BaseAPI { * @memberof FilesApi */ public addFile(requestParameters: FilesApiAddFileRequest, ) { - return FilesApiFp(this.configuration).addFile(requestParameters.file, requestParameters.deal_id, requestParameters.person_id, requestParameters.org_id, requestParameters.product_id, requestParameters.activity_id, requestParameters.lead_id, ).then((request) => request(this.axios, this.basePath)); + return FilesApiFp(this.configuration).addFile(requestParameters.file, requestParameters.deal_id, requestParameters.person_id, requestParameters.org_id, requestParameters.product_id, requestParameters.activity_id, requestParameters.lead_id, requestParameters.project_id, ).then((request) => request(this.axios, this.basePath)); } /** diff --git a/src/versions/v1/models/get-files-response-data-inner.ts b/src/versions/v1/models/get-files-response-data-inner.ts index 9e127a60..1ce8b6c4 100644 --- a/src/versions/v1/models/get-files-response-data-inner.ts +++ b/src/versions/v1/models/get-files-response-data-inner.ts @@ -61,6 +61,11 @@ export interface GetFilesResponseDataInner { */ 'lead_id'?: string; /** + * The ID of the project to associate the file with + * @type {number} + */ + 'project_id'?: number; + /** * The date and time when the file was added/created. Format: YYYY-MM-DD HH:MM:SS * @type {string} */ @@ -146,6 +151,11 @@ export interface GetFilesResponseDataInner { */ 'lead_name'?: string; /** + * The name of the project associated with the file + * @type {string} + */ + 'project_name'?: string; + /** * The URL of the download file * @type {string} */ diff --git a/src/versions/v1/models/project-all-of1.ts b/src/versions/v1/models/project-all-of1.ts index 9c3384d9..1ec72732 100644 --- a/src/versions/v1/models/project-all-of1.ts +++ b/src/versions/v1/models/project-all-of1.ts @@ -75,5 +75,10 @@ export interface ProjectAllOf1 { * @type {Array} */ 'labels'?: Array; + /** + * The health status of the project + * @type {number} + */ + 'health_status'?: number | null; } diff --git a/src/versions/v2/api/deal-products-api.ts b/src/versions/v2/api/deal-products-api.ts index 32c0bd37..61bdbe04 100644 --- a/src/versions/v2/api/deal-products-api.ts +++ b/src/versions/v2/api/deal-products-api.ts @@ -319,7 +319,7 @@ export const DealProductsApiAxiosParamCreator = function (configuration?: Config await setOAuthToObject(localVarHeaderParameter, "oauth2", ["products:read", "products:full", "deals:read", "deals:full"], configuration) if (deal_ids) { - localVarQueryParameter['deal_ids'] = deal_ids; + localVarQueryParameter['deal_ids'] = deal_ids.join(COLLECTION_FORMATS.csv); } if (cursor !== undefined) { diff --git a/src/versions/v2/api/products-api.ts b/src/versions/v2/api/products-api.ts index dd30a397..dfd63ca7 100644 --- a/src/versions/v2/api/products-api.ts +++ b/src/versions/v2/api/products-api.ts @@ -658,11 +658,12 @@ export const ProductsApiAxiosParamCreator = function (configuration?: Configurat * @param {number} [limit] For pagination, the limit of entries to be returned. If not provided, 100 items will be returned. Please note that a maximum value of 500 is allowed. * @param {'id' | 'name' | 'add_time' | 'update_time'} [sort_by] The field to sort by. Supported fields: `id`, `name`, `add_time`, `update_time`. * @param {'asc' | 'desc'} [sort_direction] The sorting direction. Supported values: `asc`, `desc`. + * @param {string} [updated_since] If set, only products with an `update_time` later than or equal to this time are returned. In RFC3339 format, e.g. 2025-01-01T10:20:00Z. * @param {string} [custom_fields] Comma separated string array of custom fields keys to include. If you are only interested in a particular set of custom fields, please use this parameter for a smaller response.<br/>A maximum of 15 keys is allowed. * @throws {RequiredError} */ - getProducts: async (owner_id?: number, ids?: string, filter_id?: number, cursor?: string, limit?: number, sort_by?: 'id' | 'name' | 'add_time' | 'update_time', sort_direction?: 'asc' | 'desc', custom_fields?: string, ): Promise => { + getProducts: async (owner_id?: number, ids?: string, filter_id?: number, cursor?: string, limit?: number, sort_by?: 'id' | 'name' | 'add_time' | 'update_time', sort_direction?: 'asc' | 'desc', updated_since?: string, custom_fields?: string, ): Promise => { const localVarPath = `/products`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); @@ -710,6 +711,10 @@ export const ProductsApiAxiosParamCreator = function (configuration?: Configurat localVarQueryParameter['sort_direction'] = sort_direction; } + if (updated_since !== undefined) { + localVarQueryParameter['updated_since'] = updated_since; + } + if (custom_fields !== undefined) { localVarQueryParameter['custom_fields'] = custom_fields; } @@ -1166,12 +1171,13 @@ export const ProductsApiFp = function(configuration?: Configuration) { * @param {number} [limit] For pagination, the limit of entries to be returned. If not provided, 100 items will be returned. Please note that a maximum value of 500 is allowed. * @param {'id' | 'name' | 'add_time' | 'update_time'} [sort_by] The field to sort by. Supported fields: `id`, `name`, `add_time`, `update_time`. * @param {'asc' | 'desc'} [sort_direction] The sorting direction. Supported values: `asc`, `desc`. + * @param {string} [updated_since] If set, only products with an `update_time` later than or equal to this time are returned. In RFC3339 format, e.g. 2025-01-01T10:20:00Z. * @param {string} [custom_fields] Comma separated string array of custom fields keys to include. If you are only interested in a particular set of custom fields, please use this parameter for a smaller response.<br/>A maximum of 15 keys is allowed. * @throws {RequiredError} */ - async getProducts(owner_id?: number, ids?: string, filter_id?: number, cursor?: string, limit?: number, sort_by?: 'id' | 'name' | 'add_time' | 'update_time', sort_direction?: 'asc' | 'desc', custom_fields?: string, ): Promise<(axios?: AxiosInstance, basePath?: string) => Promise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getProducts(owner_id, ids, filter_id, cursor, limit, sort_by, sort_direction, custom_fields, ); + async getProducts(owner_id?: number, ids?: string, filter_id?: number, cursor?: string, limit?: number, sort_by?: 'id' | 'name' | 'add_time' | 'update_time', sort_direction?: 'asc' | 'desc', updated_since?: string, custom_fields?: string, ): Promise<(axios?: AxiosInstance, basePath?: string) => Promise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getProducts(owner_id, ids, filter_id, cursor, limit, sort_by, sort_direction, updated_since, custom_fields, ); return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); }, /** @@ -1387,7 +1393,7 @@ export const ProductsApiFactory = function (configuration?: Configuration, baseP * @throws {RequiredError} */ getProducts(requestParameters: ProductsApiGetProductsRequest = {}, ): Promise { - return localVarFp.getProducts(requestParameters.owner_id, requestParameters.ids, requestParameters.filter_id, requestParameters.cursor, requestParameters.limit, requestParameters.sort_by, requestParameters.sort_direction, requestParameters.custom_fields, ).then((request) => request(axios, basePath)); + return localVarFp.getProducts(requestParameters.owner_id, requestParameters.ids, requestParameters.filter_id, requestParameters.cursor, requestParameters.limit, requestParameters.sort_by, requestParameters.sort_direction, requestParameters.updated_since, requestParameters.custom_fields, ).then((request) => request(axios, basePath)); }, /** * Searches all products by name, code and/or custom fields. This endpoint is a wrapper of /v1/itemSearch with a narrower OAuth scope. @@ -1749,6 +1755,13 @@ export interface ProductsApiGetProductsRequest { */ readonly sort_direction?: 'asc' | 'desc' + /** + * If set, only products with an `update_time` later than or equal to this time are returned. In RFC3339 format, e.g. 2025-01-01T10:20:00Z. + * @type {string} + * @memberof ProductsApiGetProducts + */ + readonly updated_since?: string + /** * Comma separated string array of custom fields keys to include. If you are only interested in a particular set of custom fields, please use this parameter for a smaller response.<br/>A maximum of 15 keys is allowed. * @type {string} @@ -2069,7 +2082,7 @@ export class ProductsApi extends BaseAPI { * @memberof ProductsApi */ public getProducts(requestParameters: ProductsApiGetProductsRequest = {}, ) { - return ProductsApiFp(this.configuration).getProducts(requestParameters.owner_id, requestParameters.ids, requestParameters.filter_id, requestParameters.cursor, requestParameters.limit, requestParameters.sort_by, requestParameters.sort_direction, requestParameters.custom_fields, ).then((request) => request(this.axios, this.basePath)); + return ProductsApiFp(this.configuration).getProducts(requestParameters.owner_id, requestParameters.ids, requestParameters.filter_id, requestParameters.cursor, requestParameters.limit, requestParameters.sort_by, requestParameters.sort_direction, requestParameters.updated_since, requestParameters.custom_fields, ).then((request) => request(this.axios, this.basePath)); } /** diff --git a/src/versions/v2/api/projects-api.ts b/src/versions/v2/api/projects-api.ts index b749de86..f837919a 100644 --- a/src/versions/v2/api/projects-api.ts +++ b/src/versions/v2/api/projects-api.ts @@ -369,12 +369,15 @@ export const ProjectsApiAxiosParamCreator = function (configuration?: Configurat * @param {number} [filter_id] If supplied, only projects matching the specified filter are returned * @param {string} [status] If supplied, includes only projects with the specified statuses. Possible values are `open`, `completed`, `canceled` and `deleted`. By default `deleted` projects are not returned. * @param {number} [phase_id] If supplied, only projects in the specified phase are returned + * @param {number} [deal_id] If supplied, only projects associated with the specified deal are returned + * @param {number} [person_id] If supplied, only projects associated with the specified person are returned + * @param {number} [org_id] If supplied, only projects associated with the specified organization are returned * @param {number} [limit] For pagination, the limit of entries to be returned. If not provided, 100 items will be returned. Please note that a maximum value of 500 is allowed. * @param {string} [cursor] For pagination, the marker (an opaque string value) representing the first item on the next page * @throws {RequiredError} */ - getProjects: async (filter_id?: number, status?: string, phase_id?: number, limit?: number, cursor?: string, ): Promise => { + getProjects: async (filter_id?: number, status?: string, phase_id?: number, deal_id?: number, person_id?: number, org_id?: number, limit?: number, cursor?: string, ): Promise => { const localVarPath = `/projects`; // use dummy base URL string because the URL constructor only accepts absolute URLs. const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); @@ -406,6 +409,18 @@ export const ProjectsApiAxiosParamCreator = function (configuration?: Configurat localVarQueryParameter['phase_id'] = phase_id; } + if (deal_id !== undefined) { + localVarQueryParameter['deal_id'] = deal_id; + } + + if (person_id !== undefined) { + localVarQueryParameter['person_id'] = person_id; + } + + if (org_id !== undefined) { + localVarQueryParameter['org_id'] = org_id; + } + if (limit !== undefined) { localVarQueryParameter['limit'] = limit; } @@ -644,13 +659,16 @@ export const ProjectsApiFp = function(configuration?: Configuration) { * @param {number} [filter_id] If supplied, only projects matching the specified filter are returned * @param {string} [status] If supplied, includes only projects with the specified statuses. Possible values are `open`, `completed`, `canceled` and `deleted`. By default `deleted` projects are not returned. * @param {number} [phase_id] If supplied, only projects in the specified phase are returned + * @param {number} [deal_id] If supplied, only projects associated with the specified deal are returned + * @param {number} [person_id] If supplied, only projects associated with the specified person are returned + * @param {number} [org_id] If supplied, only projects associated with the specified organization are returned * @param {number} [limit] For pagination, the limit of entries to be returned. If not provided, 100 items will be returned. Please note that a maximum value of 500 is allowed. * @param {string} [cursor] For pagination, the marker (an opaque string value) representing the first item on the next page * @throws {RequiredError} */ - async getProjects(filter_id?: number, status?: string, phase_id?: number, limit?: number, cursor?: string, ): Promise<(axios?: AxiosInstance, basePath?: string) => Promise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.getProjects(filter_id, status, phase_id, limit, cursor, ); + async getProjects(filter_id?: number, status?: string, phase_id?: number, deal_id?: number, person_id?: number, org_id?: number, limit?: number, cursor?: string, ): Promise<(axios?: AxiosInstance, basePath?: string) => Promise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.getProjects(filter_id, status, phase_id, deal_id, person_id, org_id, limit, cursor, ); return createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration); }, /** @@ -770,7 +788,7 @@ export const ProjectsApiFactory = function (configuration?: Configuration, baseP * @throws {RequiredError} */ getProjects(requestParameters: ProjectsApiGetProjectsRequest = {}, ): Promise { - return localVarFp.getProjects(requestParameters.filter_id, requestParameters.status, requestParameters.phase_id, requestParameters.limit, requestParameters.cursor, ).then((request) => request(axios, basePath)); + return localVarFp.getProjects(requestParameters.filter_id, requestParameters.status, requestParameters.phase_id, requestParameters.deal_id, requestParameters.person_id, requestParameters.org_id, requestParameters.limit, requestParameters.cursor, ).then((request) => request(axios, basePath)); }, /** * Searches all projects by title, description, notes and/or custom fields. This endpoint is a wrapper of /v1/itemSearch with a narrower OAuth scope. Found projects can be filtered by person ID or organization ID. @@ -962,6 +980,27 @@ export interface ProjectsApiGetProjectsRequest { */ readonly phase_id?: number + /** + * If supplied, only projects associated with the specified deal are returned + * @type {number} + * @memberof ProjectsApiGetProjects + */ + readonly deal_id?: number + + /** + * If supplied, only projects associated with the specified person are returned + * @type {number} + * @memberof ProjectsApiGetProjects + */ + readonly person_id?: number + + /** + * If supplied, only projects associated with the specified organization are returned + * @type {number} + * @memberof ProjectsApiGetProjects + */ + readonly org_id?: number + /** * For pagination, the limit of entries to be returned. If not provided, 100 items will be returned. Please note that a maximum value of 500 is allowed. * @type {number} @@ -1154,7 +1193,7 @@ export class ProjectsApi extends BaseAPI { * @memberof ProjectsApi */ public getProjects(requestParameters: ProjectsApiGetProjectsRequest = {}, ) { - return ProjectsApiFp(this.configuration).getProjects(requestParameters.filter_id, requestParameters.status, requestParameters.phase_id, requestParameters.limit, requestParameters.cursor, ).then((request) => request(this.axios, this.basePath)); + return ProjectsApiFp(this.configuration).getProjects(requestParameters.filter_id, requestParameters.status, requestParameters.phase_id, requestParameters.deal_id, requestParameters.person_id, requestParameters.org_id, requestParameters.limit, requestParameters.cursor, ).then((request) => request(this.axios, this.basePath)); } /** diff --git a/src/versions/v2/models/add-project-request.ts b/src/versions/v2/models/add-project-request.ts index 60bb0e9d..b3ef6fb4 100644 --- a/src/versions/v2/models/add-project-request.ts +++ b/src/versions/v2/models/add-project-request.ts @@ -81,6 +81,11 @@ export interface AddProjectRequest { */ 'label_ids'?: Array; /** + * The health status of the project + * @type {number} + */ + 'health_status'?: number; + /** * The ID of the template the project will be based on. Only used when creating a new project. * @type {number} */ diff --git a/src/versions/v2/models/base-product-all-of.ts b/src/versions/v2/models/base-product-all-of.ts index 005d5d2a..40944dc4 100644 --- a/src/versions/v2/models/base-product-all-of.ts +++ b/src/versions/v2/models/base-product-all-of.ts @@ -61,11 +61,31 @@ export interface BaseProductAllOf { */ 'visible_to'?: BaseProductAllOfVisibleToConst; /** - * Information about the Pipedrive user who owns the product + * The ID of the Pipedrive user who owns the product * @type {number} */ 'owner_id'?: number; /** + * The date and time when the product was added + * @type {string} + */ + 'add_time'?: string; + /** + * The date and time when the product was last updated + * @type {string} + */ + 'update_time'?: string; + /** + * The description of the product + * @type {string} + */ + 'description'?: string; + /** + * The category of the product + * @type {string} + */ + 'category'?: string | null; + /** * An object where each key represents a custom field. All custom fields are referenced as randomly generated 40-character hashes. To clear a custom field value, set it to `null`. For multi-option fields (field type `set`), use `null` to clear the selection — sending an empty array `[]` is not supported and will result in a validation error. * @type {{ [key: string]: any | undefined; }} */ diff --git a/src/versions/v2/models/get-product-response.ts b/src/versions/v2/models/get-product-response.ts index 7695b678..63382994 100644 --- a/src/versions/v2/models/get-product-response.ts +++ b/src/versions/v2/models/get-product-response.ts @@ -15,7 +15,7 @@ // May contain unused imports in some cases // @ts-ignore -import { GetProductResponseData } from './get-product-response-data'; +import { GetProductsResponseDataInner } from './get-products-response-data-inner'; /** * @@ -30,8 +30,8 @@ export interface GetProductResponse { 'success'?: boolean; /** * - * @type {GetProductResponseData} + * @type {GetProductsResponseDataInner} */ - 'data'?: GetProductResponseData; + 'data'?: GetProductsResponseDataInner; } diff --git a/src/versions/v2/models/get-product-response-data.ts b/src/versions/v2/models/get-products-response-data-inner.ts similarity index 72% rename from src/versions/v2/models/get-product-response-data.ts rename to src/versions/v2/models/get-products-response-data-inner.ts index b644dce4..27cd2c09 100644 --- a/src/versions/v2/models/get-product-response-data.ts +++ b/src/versions/v2/models/get-products-response-data-inner.ts @@ -19,11 +19,14 @@ import { BaseProduct } from './base-product'; // May contain unused imports in some cases // @ts-ignore import { PricesArray } from './prices-array'; +// May contain unused imports in some cases +// @ts-ignore +import { PricesArrayPricesInner } from './prices-array-prices-inner'; /** - * @type GetProductResponseData + * @type GetProductsResponseDataInner * @export */ -export type GetProductResponseData = BaseProduct & PricesArray; +export type GetProductsResponseDataInner = BaseProduct & PricesArray; diff --git a/src/versions/v2/models/get-products-response.ts b/src/versions/v2/models/get-products-response.ts index 9c6fb04d..9c778f95 100644 --- a/src/versions/v2/models/get-products-response.ts +++ b/src/versions/v2/models/get-products-response.ts @@ -18,7 +18,7 @@ import { GetDealsProductsResponseAdditionalData } from './get-deals-products-response-additional-data'; // May contain unused imports in some cases // @ts-ignore -import { GetProductResponse } from './get-product-response'; +import { GetProductsResponseDataInner } from './get-products-response-data-inner'; /** * @@ -33,9 +33,9 @@ export interface GetProductsResponse { 'success'?: boolean; /** * Array containing data for all products - * @type {Array} + * @type {Array} */ - 'data'?: Array; + 'data'?: Array; /** * * @type {GetDealsProductsResponseAdditionalData} diff --git a/src/versions/v2/models/index.ts b/src/versions/v2/models/index.ts index 6691172d..779c1893 100644 --- a/src/versions/v2/models/index.ts +++ b/src/versions/v2/models/index.ts @@ -205,7 +205,6 @@ export * from './get-pipelines-response-all-of-data-inner'; export * from './get-product-image-response'; export * from './get-product-image-response-data'; export * from './get-product-response'; -export * from './get-product-response-data'; export * from './get-product-search-response'; export * from './get-product-search-response-all-of'; export * from './get-product-search-response-all-of-data'; @@ -216,6 +215,7 @@ export * from './get-product-variation-response'; export * from './get-product-variations-response'; export * from './get-product-variations-response-data-inner'; export * from './get-products-response'; +export * from './get-products-response-data-inner'; export * from './get-project-boards-response'; export * from './get-project-boards-response-data-inner'; export * from './get-project-changelog-response'; @@ -256,6 +256,7 @@ export * from './person'; export * from './person-im-inner'; export * from './person-postal-address'; export * from './prices-array'; +export * from './prices-array-prices-inner'; export * from './product-request'; export * from './project'; export * from './project-template'; diff --git a/src/versions/v2/models/organization-item.ts b/src/versions/v2/models/organization-item.ts index 5d468669..64059c77 100644 --- a/src/versions/v2/models/organization-item.ts +++ b/src/versions/v2/models/organization-item.ts @@ -69,6 +69,31 @@ export interface OrganizationItem { */ 'label_ids'?: Array; /** + * The website of the organization + * @type {string} + */ + 'website'?: string | null; + /** + * The LinkedIn profile URL of the organization + * @type {string} + */ + 'linkedin'?: string | null; + /** + * The industry the organization belongs to + * @type {number} + */ + 'industry'?: number | null; + /** + * The annual revenue of the organization + * @type {number} + */ + 'annual_revenue'?: number | null; + /** + * The number of employees in the organization + * @type {number} + */ + 'employee_count'?: number | null; + /** * An object where each key represents a custom field. All custom fields are referenced as randomly generated 40-character hashes. To clear a custom field value, set it to `null`. For multi-option fields (field type `set`), use `null` to clear the selection — sending an empty array `[]` is not supported and will result in a validation error. * @type {{ [key: string]: any | undefined; }} */ diff --git a/src/versions/v2/models/prices-array-prices-inner.ts b/src/versions/v2/models/prices-array-prices-inner.ts new file mode 100644 index 00000000..517e216e --- /dev/null +++ b/src/versions/v2/models/prices-array-prices-inner.ts @@ -0,0 +1,54 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Pipedrive API v2 + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 2.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + + +/** +* +* @export +* @interface PricesArrayPricesInner +*/ +export interface PricesArrayPricesInner { + /** + * The ID of the product + * @type {number} + */ + 'product_id'?: number; + /** + * The price of the product + * @type {number} + */ + 'price'?: number; + /** + * The currency of the price + * @type {string} + */ + 'currency'?: string; + /** + * The cost of the product + * @type {number} + */ + 'cost'?: number; + /** + * The direct cost of the product + * @type {number} + */ + 'direct_cost'?: number | null; + /** + * The notes about the price + * @type {string} + */ + 'notes'?: string; +} + diff --git a/src/versions/v2/models/prices-array.ts b/src/versions/v2/models/prices-array.ts index b5456a0d..1ff09091 100644 --- a/src/versions/v2/models/prices-array.ts +++ b/src/versions/v2/models/prices-array.ts @@ -13,6 +13,9 @@ */ +// May contain unused imports in some cases +// @ts-ignore +import { PricesArrayPricesInner } from './prices-array-prices-inner'; /** * @@ -21,9 +24,9 @@ */ export interface PricesArray { /** - * Array of objects, each containing: product_id (number), currency (string), price (number), cost (number), direct_cost (number | null), notes (string) - * @type {Array} + * The prices of the product in different currencies + * @type {Array} */ - 'prices'?: Array; + 'prices'?: Array; } diff --git a/src/versions/v2/models/project.ts b/src/versions/v2/models/project.ts index 7ef4ad04..4781b3c5 100644 --- a/src/versions/v2/models/project.ts +++ b/src/versions/v2/models/project.ts @@ -87,9 +87,9 @@ export interface Project { 'label_ids'?: Array; /** * The health status of the project - * @type {string} + * @type {number} */ - 'health_status'?: string | null; + 'health_status'?: number | null; /** * The creation date and time of the project in ISO 8601 format * @type {string} diff --git a/src/versions/v2/models/update-product-response.ts b/src/versions/v2/models/update-product-response.ts index f17b03e5..2ed4ac43 100644 --- a/src/versions/v2/models/update-product-response.ts +++ b/src/versions/v2/models/update-product-response.ts @@ -15,7 +15,7 @@ // May contain unused imports in some cases // @ts-ignore -import { GetProductResponseData } from './get-product-response-data'; +import { GetProductsResponseDataInner } from './get-products-response-data-inner'; /** * @@ -30,8 +30,8 @@ export interface UpdateProductResponse { 'success'?: boolean; /** * - * @type {GetProductResponseData} + * @type {GetProductsResponseDataInner} */ - 'data'?: GetProductResponseData; + 'data'?: GetProductsResponseDataInner; } diff --git a/src/versions/v2/models/update-project-request.ts b/src/versions/v2/models/update-project-request.ts index 8490a53b..7df61ab7 100644 --- a/src/versions/v2/models/update-project-request.ts +++ b/src/versions/v2/models/update-project-request.ts @@ -81,6 +81,11 @@ export interface UpdateProjectRequest { */ 'label_ids'?: Array; /** + * The health status of the project + * @type {number} + */ + 'health_status'?: number; + /** * The ID of the template the project will be based on. Only used when creating a new project. * @type {number} */