From b96e1fee052521e6f4a167640af56d9bdbb8410d Mon Sep 17 00:00:00 2001 From: pipedrive-bot Date: Mon, 14 Sep 2026 08:19:42 +0000 Subject: [PATCH 1/2] Build 345 - version-minor --- CHANGELOG.md | 10 + .../DealNonStrictModeFieldsCreatorUserId.md | 2 +- docs/versions/v2/Api/PersonsApi.md | 4 +- docs/versions/v2/Model/ActivityRequestBody.md | 5 +- .../v2/Model/ActivityRequestBodyLocation.md | 18 + docs/versions/v2/Model/DealSearchItemItem.md | 2 +- .../v2/Model/PostPersonRequestBody.md | 10 +- .../v2/Model/ProductSearchItemItem.md | 2 +- .../v2/Model/UpdatePersonRequestBody.md | 8 +- docs/versions/v2/README.md | 1 + lib/versions/v1/Api/LegacyTeamsApi.php | 40 -- .../DealNonStrictModeFieldsCreatorUserId.php | 6 +- lib/versions/v2/Model/ActivityRequestBody.php | 38 +- .../v2/Model/ActivityRequestBodyLocation.php | 616 ++++++++++++++++++ lib/versions/v2/Model/DealSearchItemItem.php | 6 +- .../v2/Model/PostPersonRequestBody.php | 15 +- .../v2/Model/ProductSearchItemItem.php | 6 +- .../v2/Model/UpdatePersonRequestBody.php | 8 +- 18 files changed, 687 insertions(+), 110 deletions(-) create mode 100644 docs/versions/v2/Model/ActivityRequestBodyLocation.md create mode 100644 lib/versions/v2/Model/ActivityRequestBodyLocation.php diff --git a/CHANGELOG.md b/CHANGELOG.md index be4f7668..44b83b2f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,16 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). ## [Unreleased] +### Fixed +- Fixed `has_pic` field type in v1 deal creator schema (`DealNonStrictModeFields`, used by `GET`/`POST /v1/deals` and related endpoints) — changed from `boolean` to `integer` since the API returns `0`/`1`, not `true`/`false` +- Fixed `code` field type in v2 product search results (`GET /api/v2/products/search`) — changed from `integer` to `string` and made nullable to match actual API responses +- Fixed `value` field type in v2 deal search results (`DealSearchItem`, used by `GET /api/v2/deals/search`) — changed from `integer` to `number` and made nullable to match actual API responses +- Marked `data` nullable in `ListProductFilesResponse` (`GET /v1/products/{id}/files`) +- Marked `update_time` nullable in v2 deal, organization, person, and stage schemas (`DealItem`, `OrganizationItem`, `PersonItem`, `StageItem`) +- Marked `next_cursor` nullable in v2 cursor pagination schema, used across all v2 cursor-paginated list endpoints +- Marked several v2 activity fields nullable (`ActivityItem`): `deal_id`, `lead_id`, `person_id`, `org_id`, `project_id`, `due_time`, `duration`, `marked_as_done_time`, `location`, and all `location` address subfields (`country`, `admin_area_level_1`, `admin_area_level_2`, `locality`, `sublocality`, `route`, `street_number`, `subpremise`, `postal_code`) +- Marked v2 `OrganizationItemAddress` and `PersonItemAddress` objects and all their subfields nullable, and marked `PersonItem.picture_id` nullable +- Marked `person` nullable in v2 lead search results (`LeadSearchItem`) and `address` nullable in v2 organization search results (`OrganizationSearchItem`) ## [17.6.0](https://github.com/pipedrive/client-php/compare17.5.2...17.6.0) (2026-09-08) ### Added diff --git a/docs/versions/v1/Model/DealNonStrictModeFieldsCreatorUserId.md b/docs/versions/v1/Model/DealNonStrictModeFieldsCreatorUserId.md index 85682685..68c2af41 100644 --- a/docs/versions/v1/Model/DealNonStrictModeFieldsCreatorUserId.md +++ b/docs/versions/v1/Model/DealNonStrictModeFieldsCreatorUserId.md @@ -7,7 +7,7 @@ Name | Type | Description | Notes **id** | **int** | The ID of the deal creator | [optional] **name** | **string** | The name of the deal creator | [optional] **email** | **string** | The email of the deal creator | [optional] -**has_pic** | **bool** | If the creator has a picture or not | [optional] +**has_pic** | **int** | If the creator has a picture or not | [optional] **pic_hash** | **string** | The creator picture hash | [optional] **active_flag** | **bool** | Whether the creator is active or not | [optional] **value** | **int** | The ID of the deal creator | [optional] diff --git a/docs/versions/v2/Api/PersonsApi.md b/docs/versions/v2/Api/PersonsApi.md index 914eb662..a98de521 100644 --- a/docs/versions/v2/Api/PersonsApi.md +++ b/docs/versions/v2/Api/PersonsApi.md @@ -25,7 +25,7 @@ addPerson($post_person_request_body): \Pipedrive\versions\v2\Model\PostPatchGetP Add a new person -Adds a new person.
If the company uses the [Campaigns product](https://pipedrive.readme.io/docs/campaigns-in-pipedrive-api), then this endpoint will also accept and return the `marketing_status` field.
The `im`, `postal_address`, `notes`, `birthday` and `job_title` fields don’t exist by default in Pipedrive and are only created when you set up your contact sync. +Adds a new person.
If the company uses the [Campaigns product](https://pipedrive.readme.io/docs/campaigns-in-pipedrive-api), then this endpoint will also accept and return the `marketing_status` field.
The `im`, `postal_address`, `notes`, `birthday` and `job_title` fields don't exist by default in Pipedrive and are only created when you set up your contact sync — attempting to set any of them without contact sync enabled returns a 403. ### Example @@ -735,7 +735,7 @@ updatePerson($id, $update_person_request_body): \Pipedrive\versions\v2\Model\Pos Update a person -Updates the properties of a person.
If the company uses the [Campaigns product](https://pipedrive.readme.io/docs/campaigns-in-pipedrive-api), then this endpoint will also accept and return the `marketing_status` field.
The `im`, `postal_address`, `notes`, `birthday` and `job_title` fields don’t exist by default in Pipedrive and are only created when you set up your contact sync. +Updates the properties of a person.
If the company uses the [Campaigns product](https://pipedrive.readme.io/docs/campaigns-in-pipedrive-api), then this endpoint will also accept and return the `marketing_status` field.
The `im`, `postal_address`, `notes`, `birthday` and `job_title` fields don't exist by default in Pipedrive and are only created when you set up your contact sync — attempting to set any of them without contact sync enabled returns a 403. ### Example diff --git a/docs/versions/v2/Model/ActivityRequestBody.md b/docs/versions/v2/Model/ActivityRequestBody.md index fa31e0ff..071aa31d 100644 --- a/docs/versions/v2/Model/ActivityRequestBody.md +++ b/docs/versions/v2/Model/ActivityRequestBody.md @@ -9,7 +9,6 @@ Name | Type | Description | Notes **owner_id** | **int** | The ID of the user who owns the activity | [optional] **deal_id** | **int** | The ID of the deal linked to the activity | [optional] **lead_id** | **string** | The ID of the lead linked to the activity | [optional] -**person_id** | **int** | The ID of the person linked to the activity | [optional] **org_id** | **int** | The ID of the organization linked to the activity | [optional] **project_id** | **int** | The ID of the project linked to the activity | [optional] **due_date** | **string** | The due date of the activity | [optional] @@ -17,8 +16,8 @@ Name | Type | Description | Notes **duration** | **string** | The duration of the activity | [optional] **busy** | **bool** | Whether the activity marks the assignee as busy or not in their calendar | [optional] **done** | **bool** | Whether the activity is marked as done or not | [optional] -**location** | [**\Pipedrive\versions\v2\Model\ActivityItemLocation**](ActivityItemLocation.md) | | [optional] -**participants** | [**\Pipedrive\versions\v2\Model\ActivityItemParticipants[]**](ActivityItemParticipants.md) | The participants of the activity | [optional] +**location** | [**\Pipedrive\versions\v2\Model\ActivityRequestBodyLocation**](ActivityRequestBodyLocation.md) | | [optional] +**participants** | [**\Pipedrive\versions\v2\Model\ActivityItemParticipants[]**](ActivityItemParticipants.md) | The participants of the activity. Use this to set the activity's person — a primary participant (`primary: true`) sets `person_id` on the activity. | [optional] **attendees** | [**\Pipedrive\versions\v2\Model\ActivityItemAttendees[]**](ActivityItemAttendees.md) | The attendees of the activity | [optional] **public_description** | **string** | The public description of the activity | [optional] **priority** | **int** | The priority of the activity. Mappable to a specific string using activityFields API. | [optional] diff --git a/docs/versions/v2/Model/ActivityRequestBodyLocation.md b/docs/versions/v2/Model/ActivityRequestBodyLocation.md new file mode 100644 index 00000000..34b898d7 --- /dev/null +++ b/docs/versions/v2/Model/ActivityRequestBodyLocation.md @@ -0,0 +1,18 @@ +# # ActivityRequestBodyLocation + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**value** | **string** | The full address of the activity | [optional] +**country** | **string** | Country of the activity | [optional] +**admin_area_level_1** | **string** | Admin area level 1 (e.g. state) of the activity | [optional] +**admin_area_level_2** | **string** | Admin area level 2 (e.g. county) of the activity | [optional] +**locality** | **string** | Locality (e.g. city) of the activity | [optional] +**sublocality** | **string** | Sublocality (e.g. neighborhood) of the activity | [optional] +**route** | **string** | Route (e.g. street) of the activity | [optional] +**street_number** | **string** | Street number of the activity | [optional] +**subpremise** | **string** | Subpremise (e.g. apartment/suite number) of the activity | [optional] +**postal_code** | **string** | Postal code of the activity | [optional] + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/versions/v2/Model/DealSearchItemItem.md b/docs/versions/v2/Model/DealSearchItemItem.md index 1e26713a..0258d15f 100644 --- a/docs/versions/v2/Model/DealSearchItemItem.md +++ b/docs/versions/v2/Model/DealSearchItemItem.md @@ -7,7 +7,7 @@ Name | Type | Description | Notes **id** | **int** | The ID of the deal | [optional] **type** | **string** | The type of the item | [optional] **title** | **string** | The title of the deal | [optional] -**value** | **int** | The value of the deal | [optional] +**value** | **float** | The value of the deal | [optional] **currency** | **string** | The currency of the deal | [optional] **status** | **string** | The status of the deal | [optional] **visible_to** | **int** | The visibility of the deal | [optional] diff --git a/docs/versions/v2/Model/PostPersonRequestBody.md b/docs/versions/v2/Model/PostPersonRequestBody.md index b47dbdfc..81068ee5 100644 --- a/docs/versions/v2/Model/PostPersonRequestBody.md +++ b/docs/versions/v2/Model/PostPersonRequestBody.md @@ -4,7 +4,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**name** | **string** | The name of the person | [optional] +**name** | **string** | The name of the person | **owner_id** | **int** | The ID of the user who owns the person | [optional] **org_id** | **int** | The ID of the organization linked to the person | [optional] **add_time** | **string** | The creation date and time of the person | [optional] @@ -13,10 +13,10 @@ Name | Type | Description | Notes **visible_to** | **int** | The visibility of the person | [optional] **label_ids** | **int[]** | The IDs of labels assigned to the person | [optional] **postal_address** | [**\Pipedrive\versions\v2\Model\PersonItemAddress**](PersonItemAddress.md) | | [optional] -**notes** | **string** | Contact sync notes of the person, maximum 10 000 characters, included if contact sync is enabled for the company | [optional] -**im** | [**\Pipedrive\versions\v2\Model\PersonItemIm[]**](PersonItemIm.md) | The instant messaging accounts of the person, included if contact sync is enabled for the company | [optional] -**birthday** | **string** | The birthday of the person, included if contact sync is enabled for the company | [optional] -**job_title** | **string** | The job title of the person, included if contact sync is enabled for the company | [optional] +**notes** | **string** | Contact sync notes of the person, maximum 10 000 characters. Only accepted when contact sync is enabled for the company; otherwise the request returns 403. | [optional] +**im** | [**\Pipedrive\versions\v2\Model\PersonItemIm[]**](PersonItemIm.md) | The instant messaging accounts of the person. Only accepted when contact sync is enabled for the company; otherwise the request returns 403. | [optional] +**birthday** | **string** | The birthday of the person. Only accepted when contact sync is enabled for the company; otherwise the request returns 403. | [optional] +**job_title** | **string** | The job title of the person. Only accepted when contact sync is enabled for the company; otherwise the request returns 403. | [optional] **marketing_status** | **string** | If the person does not have a valid email address, then the marketing status is **not set** and `no_consent` is returned for the `marketing_status` value when the new person is created. If the change is forbidden, the status will remain unchanged for every call that tries to modify the marketing status. Please be aware that it is only allowed **once** to change the marketing status from an old status to a new one.<table><tr><th>Value</th><th>Description</th></tr><tr><td>`no_consent`</td><td>The customer has not given consent to receive any marketing communications</td></tr><tr><td>`unsubscribed`</td><td>The customers have unsubscribed from ALL marketing communications</td></tr><tr><td>`subscribed`</td><td>The customers are subscribed and are counted towards marketing caps</td></tr><tr><td>`archived`</td><td>The customers with `subscribed` status can be moved to `archived` to save consent, but they are not paid for</td></tr></table> | [optional] **custom_fields** | **array** | 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. | [optional] diff --git a/docs/versions/v2/Model/ProductSearchItemItem.md b/docs/versions/v2/Model/ProductSearchItemItem.md index 791f20f6..ca524a95 100644 --- a/docs/versions/v2/Model/ProductSearchItemItem.md +++ b/docs/versions/v2/Model/ProductSearchItemItem.md @@ -7,7 +7,7 @@ Name | Type | Description | Notes **id** | **int** | The ID of the product | [optional] **type** | **string** | The type of the item | [optional] **name** | **string** | The name of the product | [optional] -**code** | **int** | The code of the product | [optional] +**code** | **string** | The code of the product | [optional] **visible_to** | **int** | The visibility of the product | [optional] **owner** | [**\Pipedrive\versions\v2\Model\ProductSearchItemItemOwner**](ProductSearchItemItemOwner.md) | | [optional] **custom_fields** | **string[]** | The custom fields | [optional] diff --git a/docs/versions/v2/Model/UpdatePersonRequestBody.md b/docs/versions/v2/Model/UpdatePersonRequestBody.md index 078f986b..ef0a3e37 100644 --- a/docs/versions/v2/Model/UpdatePersonRequestBody.md +++ b/docs/versions/v2/Model/UpdatePersonRequestBody.md @@ -12,10 +12,10 @@ Name | Type | Description | Notes **visible_to** | **int** | The visibility of the person | [optional] **label_ids** | **int[]** | The IDs of labels assigned to the person | [optional] **postal_address** | [**\Pipedrive\versions\v2\Model\PersonItemAddress**](PersonItemAddress.md) | | [optional] -**notes** | **string** | Contact sync notes of the person, maximum 10 000 characters, included if contact sync is enabled for the company | [optional] -**im** | [**\Pipedrive\versions\v2\Model\PersonItemIm[]**](PersonItemIm.md) | The instant messaging accounts of the person, included if contact sync is enabled for the company | [optional] -**birthday** | **string** | The birthday of the person, included if contact sync is enabled for the company | [optional] -**job_title** | **string** | The job title of the person, included if contact sync is enabled for the company | [optional] +**notes** | **string** | Contact sync notes of the person, maximum 10 000 characters. Only accepted when contact sync is enabled for the company; otherwise the request returns 403. | [optional] +**im** | [**\Pipedrive\versions\v2\Model\PersonItemIm[]**](PersonItemIm.md) | The instant messaging accounts of the person. Only accepted when contact sync is enabled for the company; otherwise the request returns 403. | [optional] +**birthday** | **string** | The birthday of the person. Only accepted when contact sync is enabled for the company; otherwise the request returns 403. | [optional] +**job_title** | **string** | The job title of the person. Only accepted when contact sync is enabled for the company; otherwise the request returns 403. | [optional] **marketing_status** | **string** | If the person does not have a valid email address, then the marketing status is **not set** and `no_consent` is returned for the `marketing_status` value when the new person is created. If the change is forbidden, the status will remain unchanged for every call that tries to modify the marketing status. Please be aware that it is only allowed **once** to change the marketing status from an old status to a new one.<table><tr><th>Value</th><th>Description</th></tr><tr><td>`no_consent`</td><td>The customer has not given consent to receive any marketing communications</td></tr><tr><td>`unsubscribed`</td><td>The customers have unsubscribed from ALL marketing communications</td></tr><tr><td>`subscribed`</td><td>The customers are subscribed and are counted towards marketing caps</td></tr><tr><td>`archived`</td><td>The customers with `subscribed` status can be moved to `archived` to save consent, but they are not paid for</td></tr></table> | [optional] **custom_fields** | **array** | 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. | [optional] diff --git a/docs/versions/v2/README.md b/docs/versions/v2/README.md index 67476073..b5d3da10 100644 --- a/docs/versions/v2/README.md +++ b/docs/versions/v2/README.md @@ -460,6 +460,7 @@ Class | Method | HTTP request | Description - [ActivityItemLocation](Model/ActivityItemLocation.md) - [ActivityItemParticipants](Model/ActivityItemParticipants.md) - [ActivityRequestBody](Model/ActivityRequestBody.md) + - [ActivityRequestBodyLocation](Model/ActivityRequestBodyLocation.md) - [AddAdditionalDiscountResponse](Model/AddAdditionalDiscountResponse.md) - [AddConvertDealToLeadResponse](Model/AddConvertDealToLeadResponse.md) - [AddConvertLeadToDealResponse](Model/AddConvertLeadToDealResponse.md) diff --git a/lib/versions/v1/Api/LegacyTeamsApi.php b/lib/versions/v1/Api/LegacyTeamsApi.php index 1f2082bf..43b128d1 100644 --- a/lib/versions/v1/Api/LegacyTeamsApi.php +++ b/lib/versions/v1/Api/LegacyTeamsApi.php @@ -132,7 +132,6 @@ public function getConfig(): Configuration * @throws ApiException on non-2xx response * @throws InvalidArgumentException|GuzzleException * @return \Pipedrive\versions\v1\Model\Team|\Pipedrive\versions\v1\Model\FailResponse - * @deprecated */ public function addTeam($create_team = null) { @@ -150,7 +149,6 @@ public function addTeam($create_team = null) * @throws ApiException on non-2xx response * @throws InvalidArgumentException|GuzzleException * @return array of \Pipedrive\versions\v1\Model\Team|\Pipedrive\versions\v1\Model\FailResponse, HTTP status code, HTTP response headers (array of strings) - * @deprecated */ public function addTeamWithHttpInfo($create_team = null) { @@ -272,7 +270,6 @@ public function addTeamWithHttpInfo($create_team = null) * * @throws InvalidArgumentException|OAuthProviderException * @return PromiseInterface - * @deprecated */ public function addTeamAsync($create_team = null): PromiseInterface { @@ -293,7 +290,6 @@ function ($response) { * * @throws InvalidArgumentException|OAuthProviderException * @return PromiseInterface - * @deprecated */ public function addTeamAsyncWithHttpInfo($create_team = null): PromiseInterface { @@ -341,7 +337,6 @@ function ($exception) { * * @throws InvalidArgumentException|OAuthProviderException * @return Request - * @deprecated */ public function addTeamRequest($create_team = null): Request { @@ -446,7 +441,6 @@ public function addTeamRequest($create_team = null): Request * @throws ApiException on non-2xx response * @throws InvalidArgumentException|GuzzleException * @return \Pipedrive\versions\v1\Model\UserIDs|\Pipedrive\versions\v1\Model\FailResponse|\Pipedrive\versions\v1\Model\FailResponse - * @deprecated */ public function addTeamUser($id, $add_team_user_request = null) { @@ -465,7 +459,6 @@ public function addTeamUser($id, $add_team_user_request = null) * @throws ApiException on non-2xx response * @throws InvalidArgumentException|GuzzleException * @return array of \Pipedrive\versions\v1\Model\UserIDs|\Pipedrive\versions\v1\Model\FailResponse|\Pipedrive\versions\v1\Model\FailResponse, HTTP status code, HTTP response headers (array of strings) - * @deprecated */ public function addTeamUserWithHttpInfo($id, $add_team_user_request = null) { @@ -609,7 +602,6 @@ public function addTeamUserWithHttpInfo($id, $add_team_user_request = null) * * @throws InvalidArgumentException|OAuthProviderException * @return PromiseInterface - * @deprecated */ public function addTeamUserAsync($id, $add_team_user_request = null): PromiseInterface { @@ -631,7 +623,6 @@ function ($response) { * * @throws InvalidArgumentException|OAuthProviderException * @return PromiseInterface - * @deprecated */ public function addTeamUserAsyncWithHttpInfo($id, $add_team_user_request = null): PromiseInterface { @@ -680,7 +671,6 @@ function ($exception) { * * @throws InvalidArgumentException|OAuthProviderException * @return Request - * @deprecated */ public function addTeamUserRequest($id, $add_team_user_request = null): Request { @@ -800,7 +790,6 @@ public function addTeamUserRequest($id, $add_team_user_request = null): Request * @throws ApiException on non-2xx response * @throws InvalidArgumentException|GuzzleException * @return \Pipedrive\versions\v1\Model\UserIDs|\Pipedrive\versions\v1\Model\FailResponse|\Pipedrive\versions\v1\Model\FailResponse - * @deprecated */ public function deleteTeamUser($id, $delete_team_user_request = null) { @@ -819,7 +808,6 @@ public function deleteTeamUser($id, $delete_team_user_request = null) * @throws ApiException on non-2xx response * @throws InvalidArgumentException|GuzzleException * @return array of \Pipedrive\versions\v1\Model\UserIDs|\Pipedrive\versions\v1\Model\FailResponse|\Pipedrive\versions\v1\Model\FailResponse, HTTP status code, HTTP response headers (array of strings) - * @deprecated */ public function deleteTeamUserWithHttpInfo($id, $delete_team_user_request = null) { @@ -963,7 +951,6 @@ public function deleteTeamUserWithHttpInfo($id, $delete_team_user_request = null * * @throws InvalidArgumentException|OAuthProviderException * @return PromiseInterface - * @deprecated */ public function deleteTeamUserAsync($id, $delete_team_user_request = null): PromiseInterface { @@ -985,7 +972,6 @@ function ($response) { * * @throws InvalidArgumentException|OAuthProviderException * @return PromiseInterface - * @deprecated */ public function deleteTeamUserAsyncWithHttpInfo($id, $delete_team_user_request = null): PromiseInterface { @@ -1034,7 +1020,6 @@ function ($exception) { * * @throws InvalidArgumentException|OAuthProviderException * @return Request - * @deprecated */ public function deleteTeamUserRequest($id, $delete_team_user_request = null): Request { @@ -1154,7 +1139,6 @@ public function deleteTeamUserRequest($id, $delete_team_user_request = null): Re * @throws ApiException on non-2xx response * @throws InvalidArgumentException|GuzzleException * @return \Pipedrive\versions\v1\Model\Team|\Pipedrive\versions\v1\Model\FailResponse - * @deprecated */ public function getTeam($id, $skip_users = null) { @@ -1173,7 +1157,6 @@ public function getTeam($id, $skip_users = null) * @throws ApiException on non-2xx response * @throws InvalidArgumentException|GuzzleException * @return array of \Pipedrive\versions\v1\Model\Team|\Pipedrive\versions\v1\Model\FailResponse, HTTP status code, HTTP response headers (array of strings) - * @deprecated */ public function getTeamWithHttpInfo($id, $skip_users = null) { @@ -1296,7 +1279,6 @@ public function getTeamWithHttpInfo($id, $skip_users = null) * * @throws InvalidArgumentException|OAuthProviderException * @return PromiseInterface - * @deprecated */ public function getTeamAsync($id, $skip_users = null): PromiseInterface { @@ -1318,7 +1300,6 @@ function ($response) { * * @throws InvalidArgumentException|OAuthProviderException * @return PromiseInterface - * @deprecated */ public function getTeamAsyncWithHttpInfo($id, $skip_users = null): PromiseInterface { @@ -1367,7 +1348,6 @@ function ($exception) { * * @throws InvalidArgumentException|OAuthProviderException * @return Request - * @deprecated */ public function getTeamRequest($id, $skip_users = null): Request { @@ -1488,7 +1468,6 @@ public function getTeamRequest($id, $skip_users = null): Request * @throws ApiException on non-2xx response * @throws InvalidArgumentException|GuzzleException * @return \Pipedrive\versions\v1\Model\UserIDs|\Pipedrive\versions\v1\Model\FailResponse - * @deprecated */ public function getTeamUsers($id) { @@ -1506,7 +1485,6 @@ public function getTeamUsers($id) * @throws ApiException on non-2xx response * @throws InvalidArgumentException|GuzzleException * @return array of \Pipedrive\versions\v1\Model\UserIDs|\Pipedrive\versions\v1\Model\FailResponse, HTTP status code, HTTP response headers (array of strings) - * @deprecated */ public function getTeamUsersWithHttpInfo($id) { @@ -1628,7 +1606,6 @@ public function getTeamUsersWithHttpInfo($id) * * @throws InvalidArgumentException|OAuthProviderException * @return PromiseInterface - * @deprecated */ public function getTeamUsersAsync($id): PromiseInterface { @@ -1649,7 +1626,6 @@ function ($response) { * * @throws InvalidArgumentException|OAuthProviderException * @return PromiseInterface - * @deprecated */ public function getTeamUsersAsyncWithHttpInfo($id): PromiseInterface { @@ -1697,7 +1673,6 @@ function ($exception) { * * @throws InvalidArgumentException|OAuthProviderException * @return Request - * @deprecated */ public function getTeamUsersRequest($id): Request { @@ -1811,7 +1786,6 @@ public function getTeamUsersRequest($id): Request * @throws ApiException on non-2xx response * @throws InvalidArgumentException|GuzzleException * @return \Pipedrive\versions\v1\Model\Teams - * @deprecated */ public function getTeams($order_by = 'id', $skip_users = null) { @@ -1830,7 +1804,6 @@ public function getTeams($order_by = 'id', $skip_users = null) * @throws ApiException on non-2xx response * @throws InvalidArgumentException|GuzzleException * @return array of \Pipedrive\versions\v1\Model\Teams, HTTP status code, HTTP response headers (array of strings) - * @deprecated */ public function getTeamsWithHttpInfo($order_by = 'id', $skip_users = null) { @@ -1932,7 +1905,6 @@ public function getTeamsWithHttpInfo($order_by = 'id', $skip_users = null) * * @throws InvalidArgumentException|OAuthProviderException * @return PromiseInterface - * @deprecated */ public function getTeamsAsync($order_by = 'id', $skip_users = null): PromiseInterface { @@ -1954,7 +1926,6 @@ function ($response) { * * @throws InvalidArgumentException|OAuthProviderException * @return PromiseInterface - * @deprecated */ public function getTeamsAsyncWithHttpInfo($order_by = 'id', $skip_users = null): PromiseInterface { @@ -2003,7 +1974,6 @@ function ($exception) { * * @throws InvalidArgumentException|OAuthProviderException * @return Request - * @deprecated */ public function getTeamsRequest($order_by = 'id', $skip_users = null): Request { @@ -2119,7 +2089,6 @@ public function getTeamsRequest($order_by = 'id', $skip_users = null): Request * @throws ApiException on non-2xx response * @throws InvalidArgumentException|GuzzleException * @return \Pipedrive\versions\v1\Model\Teams - * @deprecated */ public function getUserTeams($id, $order_by = 'id', $skip_users = null) { @@ -2139,7 +2108,6 @@ public function getUserTeams($id, $order_by = 'id', $skip_users = null) * @throws ApiException on non-2xx response * @throws InvalidArgumentException|GuzzleException * @return array of \Pipedrive\versions\v1\Model\Teams, HTTP status code, HTTP response headers (array of strings) - * @deprecated */ public function getUserTeamsWithHttpInfo($id, $order_by = 'id', $skip_users = null) { @@ -2242,7 +2210,6 @@ public function getUserTeamsWithHttpInfo($id, $order_by = 'id', $skip_users = nu * * @throws InvalidArgumentException|OAuthProviderException * @return PromiseInterface - * @deprecated */ public function getUserTeamsAsync($id, $order_by = 'id', $skip_users = null): PromiseInterface { @@ -2265,7 +2232,6 @@ function ($response) { * * @throws InvalidArgumentException|OAuthProviderException * @return PromiseInterface - * @deprecated */ public function getUserTeamsAsyncWithHttpInfo($id, $order_by = 'id', $skip_users = null): PromiseInterface { @@ -2315,7 +2281,6 @@ function ($exception) { * * @throws InvalidArgumentException|OAuthProviderException * @return Request - * @deprecated */ public function getUserTeamsRequest($id, $order_by = 'id', $skip_users = null): Request { @@ -2445,7 +2410,6 @@ public function getUserTeamsRequest($id, $order_by = 'id', $skip_users = null): * @throws ApiException on non-2xx response * @throws InvalidArgumentException|GuzzleException * @return \Pipedrive\versions\v1\Model\Team|\Pipedrive\versions\v1\Model\FailResponse|\Pipedrive\versions\v1\Model\FailResponse - * @deprecated */ public function updateTeam($id, $update_team = null) { @@ -2464,7 +2428,6 @@ public function updateTeam($id, $update_team = null) * @throws ApiException on non-2xx response * @throws InvalidArgumentException|GuzzleException * @return array of \Pipedrive\versions\v1\Model\Team|\Pipedrive\versions\v1\Model\FailResponse|\Pipedrive\versions\v1\Model\FailResponse, HTTP status code, HTTP response headers (array of strings) - * @deprecated */ public function updateTeamWithHttpInfo($id, $update_team = null) { @@ -2608,7 +2571,6 @@ public function updateTeamWithHttpInfo($id, $update_team = null) * * @throws InvalidArgumentException|OAuthProviderException * @return PromiseInterface - * @deprecated */ public function updateTeamAsync($id, $update_team = null): PromiseInterface { @@ -2630,7 +2592,6 @@ function ($response) { * * @throws InvalidArgumentException|OAuthProviderException * @return PromiseInterface - * @deprecated */ public function updateTeamAsyncWithHttpInfo($id, $update_team = null): PromiseInterface { @@ -2679,7 +2640,6 @@ function ($exception) { * * @throws InvalidArgumentException|OAuthProviderException * @return Request - * @deprecated */ public function updateTeamRequest($id, $update_team = null): Request { diff --git a/lib/versions/v1/Model/DealNonStrictModeFieldsCreatorUserId.php b/lib/versions/v1/Model/DealNonStrictModeFieldsCreatorUserId.php index 8b2e955f..dfa5b5f4 100644 --- a/lib/versions/v1/Model/DealNonStrictModeFieldsCreatorUserId.php +++ b/lib/versions/v1/Model/DealNonStrictModeFieldsCreatorUserId.php @@ -70,7 +70,7 @@ class DealNonStrictModeFieldsCreatorUserId implements ModelInterface, ArrayAcces 'id' => 'int', 'name' => 'string', 'email' => 'string', - 'has_pic' => 'bool', + 'has_pic' => 'int', 'pic_hash' => 'string', 'active_flag' => 'bool', 'value' => 'int' @@ -340,7 +340,7 @@ public function setEmail($email): self /** * Gets has_pic * - * @return bool|null + * @return int|null */ public function getHasPic() { @@ -350,7 +350,7 @@ public function getHasPic() /** * Sets has_pic * - * @param bool|null $has_pic If the creator has a picture or not + * @param int|null $has_pic If the creator has a picture or not * * @return self */ diff --git a/lib/versions/v2/Model/ActivityRequestBody.php b/lib/versions/v2/Model/ActivityRequestBody.php index 339b5dcf..f35a4775 100644 --- a/lib/versions/v2/Model/ActivityRequestBody.php +++ b/lib/versions/v2/Model/ActivityRequestBody.php @@ -71,7 +71,6 @@ class ActivityRequestBody implements ModelInterface, ArrayAccess, JsonSerializab 'owner_id' => 'int', 'deal_id' => 'int', 'lead_id' => 'string', - 'person_id' => 'int', 'org_id' => 'int', 'project_id' => 'int', 'due_date' => 'string', @@ -79,7 +78,7 @@ class ActivityRequestBody implements ModelInterface, ArrayAccess, JsonSerializab 'duration' => 'string', 'busy' => 'bool', 'done' => 'bool', - 'location' => '\Pipedrive\versions\v2\Model\ActivityItemLocation', + 'location' => '\Pipedrive\versions\v2\Model\ActivityRequestBodyLocation', 'participants' => '\Pipedrive\versions\v2\Model\ActivityItemParticipants[]', 'attendees' => '\Pipedrive\versions\v2\Model\ActivityItemAttendees[]', 'public_description' => 'string', @@ -101,7 +100,6 @@ class ActivityRequestBody implements ModelInterface, ArrayAccess, JsonSerializab 'owner_id' => null, 'deal_id' => null, 'lead_id' => null, - 'person_id' => null, 'org_id' => null, 'project_id' => null, 'due_date' => null, @@ -154,7 +152,6 @@ public static function openAPIFormats(): array 'owner_id' => 'owner_id', 'deal_id' => 'deal_id', 'lead_id' => 'lead_id', - 'person_id' => 'person_id', 'org_id' => 'org_id', 'project_id' => 'project_id', 'due_date' => 'due_date', @@ -182,7 +179,6 @@ public static function openAPIFormats(): array 'owner_id' => 'setOwnerId', 'deal_id' => 'setDealId', 'lead_id' => 'setLeadId', - 'person_id' => 'setPersonId', 'org_id' => 'setOrgId', 'project_id' => 'setProjectId', 'due_date' => 'setDueDate', @@ -210,7 +206,6 @@ public static function openAPIFormats(): array 'owner_id' => 'getOwnerId', 'deal_id' => 'getDealId', 'lead_id' => 'getLeadId', - 'person_id' => 'getPersonId', 'org_id' => 'getOrgId', 'project_id' => 'getProjectId', 'due_date' => 'getDueDate', @@ -299,7 +294,6 @@ public function __construct(?array $data = null) $this->container['owner_id'] = $data['owner_id'] ?? null; $this->container['deal_id'] = $data['deal_id'] ?? null; $this->container['lead_id'] = $data['lead_id'] ?? null; - $this->container['person_id'] = $data['person_id'] ?? null; $this->container['org_id'] = $data['org_id'] ?? null; $this->container['project_id'] = $data['project_id'] ?? null; $this->container['due_date'] = $data['due_date'] ?? null; @@ -462,30 +456,6 @@ public function setLeadId($lead_id): self return $this; } - /** - * Gets person_id - * - * @return int|null - */ - public function getPersonId() - { - return $this->container['person_id']; - } - - /** - * Sets person_id - * - * @param int|null $person_id The ID of the person linked to the activity - * - * @return self - */ - public function setPersonId($person_id): self - { - $this->container['person_id'] = $person_id; - - return $this; - } - /** * Gets org_id * @@ -657,7 +627,7 @@ public function setDone($done): self /** * Gets location * - * @return \Pipedrive\versions\v2\Model\ActivityItemLocation|null + * @return \Pipedrive\versions\v2\Model\ActivityRequestBodyLocation|null */ public function getLocation() { @@ -667,7 +637,7 @@ public function getLocation() /** * Sets location * - * @param \Pipedrive\versions\v2\Model\ActivityItemLocation|null $location location + * @param \Pipedrive\versions\v2\Model\ActivityRequestBodyLocation|null $location location * * @return self */ @@ -691,7 +661,7 @@ public function getParticipants() /** * Sets participants * - * @param \Pipedrive\versions\v2\Model\ActivityItemParticipants[]|null $participants The participants of the activity + * @param \Pipedrive\versions\v2\Model\ActivityItemParticipants[]|null $participants The participants of the activity. Use this to set the activity's person — a primary participant (`primary: true`) sets `person_id` on the activity. * * @return self */ diff --git a/lib/versions/v2/Model/ActivityRequestBodyLocation.php b/lib/versions/v2/Model/ActivityRequestBodyLocation.php new file mode 100644 index 00000000..93c4a7bb --- /dev/null +++ b/lib/versions/v2/Model/ActivityRequestBodyLocation.php @@ -0,0 +1,616 @@ + + * @template TKey int|null + * @template TValue mixed|null + */ +class ActivityRequestBodyLocation implements ModelInterface, ArrayAccess, JsonSerializable +{ + use RawData; + + public const DISCRIMINATOR = null; + + /** + * The original name of the model. + * + * @var string + */ + protected static string $openAPIModelName = 'ActivityRequestBody_location'; + + /** + * Array of property to type mappings. Used for (de)serialization + * + * @var string[] + * @phpstan-var array + * @phpsalm-var array + */ + protected static array $openAPITypes = [ + 'value' => 'string', + 'country' => 'string', + 'admin_area_level_1' => 'string', + 'admin_area_level_2' => 'string', + 'locality' => 'string', + 'sublocality' => 'string', + 'route' => 'string', + 'street_number' => 'string', + 'subpremise' => 'string', + 'postal_code' => 'string' + ]; + + /** + * Array of property to format mappings. Used for (de)serialization + * + * @var string[] + * @phpstan-var array + * @psalm-var array + */ + protected static $openAPIFormats = [ + 'value' => null, + 'country' => null, + 'admin_area_level_1' => null, + 'admin_area_level_2' => null, + 'locality' => null, + 'sublocality' => null, + 'route' => null, + 'street_number' => null, + 'subpremise' => null, + 'postal_code' => null + ]; + + /** + * Array of property to type mappings. Used for (de)serialization + * + * @phpstan-return array + * @psalm-return array + * @return array + */ + public static function openAPITypes(): array + { + return self::$openAPITypes; + } + + /** + * Array of property to format mappings. Used for (de)serialization + * + * @phpstan-return array + * @psalm-return array + * @return array + */ + public static function openAPIFormats(): array + { + return self::$openAPIFormats; + } + + /** + * Array of attributes where the key is the local name, + * and the value is the original name + * + * @var string[] + */ + protected static $attributeMap = [ + 'value' => 'value', + 'country' => 'country', + 'admin_area_level_1' => 'admin_area_level_1', + 'admin_area_level_2' => 'admin_area_level_2', + 'locality' => 'locality', + 'sublocality' => 'sublocality', + 'route' => 'route', + 'street_number' => 'street_number', + 'subpremise' => 'subpremise', + 'postal_code' => 'postal_code' + ]; + + /** + * Array of attributes to setter functions (for deserialization of responses) + * + * @var string[] + */ + protected static $setters = [ + 'value' => 'setValue', + 'country' => 'setCountry', + 'admin_area_level_1' => 'setAdminAreaLevel1', + 'admin_area_level_2' => 'setAdminAreaLevel2', + 'locality' => 'setLocality', + 'sublocality' => 'setSublocality', + 'route' => 'setRoute', + 'street_number' => 'setStreetNumber', + 'subpremise' => 'setSubpremise', + 'postal_code' => 'setPostalCode' + ]; + + /** + * Array of attributes to getter functions (for serialization of requests) + * + * @var string[] + */ + protected static $getters = [ + 'value' => 'getValue', + 'country' => 'getCountry', + 'admin_area_level_1' => 'getAdminAreaLevel1', + 'admin_area_level_2' => 'getAdminAreaLevel2', + 'locality' => 'getLocality', + 'sublocality' => 'getSublocality', + 'route' => 'getRoute', + 'street_number' => 'getStreetNumber', + 'subpremise' => 'getSubpremise', + 'postal_code' => 'getPostalCode' + ]; + + /** + * Array of attributes where the key is the local name, + * and the value is the original name + * + * @phpstan-return array + * @psalm-return array + * @return array + */ + public static function attributeMap(): array + { + return self::$attributeMap; + } + + /** + * Array of attributes to setter functions (for deserialization of responses) + * + * @phpstan-return array + * @psalm-return array + * @return array + */ + public static function setters(): array + { + return self::$setters; + } + + /** + * Array of attributes to getter functions (for serialization of requests) + * + * @phpstan-return array + * @psalm-return array + * @return array + */ + public static function getters(): array + { + return self::$getters; + } + + /** + * The original name of the model. + * + * @return string + */ + public function getModelName(): string + { + return self::$openAPIModelName; + } + + + /** + * Associative array for storing property values + * + * @var array + * @phpstan-var array + * @psalm-var array + */ + protected array $container = []; + + /** + * Constructor + * + * @phpstan-param array|null $data + * @psalm-param array|null $data + * @param array|null $data Associated array of property values + * initializing the model + */ + public function __construct(?array $data = null) + { + $this->container['value'] = $data['value'] ?? null; + $this->container['country'] = $data['country'] ?? null; + $this->container['admin_area_level_1'] = $data['admin_area_level_1'] ?? null; + $this->container['admin_area_level_2'] = $data['admin_area_level_2'] ?? null; + $this->container['locality'] = $data['locality'] ?? null; + $this->container['sublocality'] = $data['sublocality'] ?? null; + $this->container['route'] = $data['route'] ?? null; + $this->container['street_number'] = $data['street_number'] ?? null; + $this->container['subpremise'] = $data['subpremise'] ?? null; + $this->container['postal_code'] = $data['postal_code'] ?? null; + } + + /** + * Show all the invalid properties with reasons. + * + * @return array invalid properties with reasons + * @phpstan-return array + * @psalm-return array + */ + public function listInvalidProperties(): array + { + $invalidProperties = []; + + return $invalidProperties; + } + + /** + * Validate all the properties in the model + * return true if all passed + * + * @return bool True if all properties are valid + */ + public function valid(): bool + { + return count($this->listInvalidProperties()) === 0; + } + + + /** + * Gets value + * + * @return string|null + */ + public function getValue() + { + return $this->container['value']; + } + + /** + * Sets value + * + * @param string|null $value The full address of the activity + * + * @return self + */ + public function setValue($value): self + { + $this->container['value'] = $value; + + return $this; + } + + /** + * Gets country + * + * @return string|null + */ + public function getCountry() + { + return $this->container['country']; + } + + /** + * Sets country + * + * @param string|null $country Country of the activity + * + * @return self + */ + public function setCountry($country): self + { + $this->container['country'] = $country; + + return $this; + } + + /** + * Gets admin_area_level_1 + * + * @return string|null + */ + public function getAdminAreaLevel1() + { + return $this->container['admin_area_level_1']; + } + + /** + * Sets admin_area_level_1 + * + * @param string|null $admin_area_level_1 Admin area level 1 (e.g. state) of the activity + * + * @return self + */ + public function setAdminAreaLevel1($admin_area_level_1): self + { + $this->container['admin_area_level_1'] = $admin_area_level_1; + + return $this; + } + + /** + * Gets admin_area_level_2 + * + * @return string|null + */ + public function getAdminAreaLevel2() + { + return $this->container['admin_area_level_2']; + } + + /** + * Sets admin_area_level_2 + * + * @param string|null $admin_area_level_2 Admin area level 2 (e.g. county) of the activity + * + * @return self + */ + public function setAdminAreaLevel2($admin_area_level_2): self + { + $this->container['admin_area_level_2'] = $admin_area_level_2; + + return $this; + } + + /** + * Gets locality + * + * @return string|null + */ + public function getLocality() + { + return $this->container['locality']; + } + + /** + * Sets locality + * + * @param string|null $locality Locality (e.g. city) of the activity + * + * @return self + */ + public function setLocality($locality): self + { + $this->container['locality'] = $locality; + + return $this; + } + + /** + * Gets sublocality + * + * @return string|null + */ + public function getSublocality() + { + return $this->container['sublocality']; + } + + /** + * Sets sublocality + * + * @param string|null $sublocality Sublocality (e.g. neighborhood) of the activity + * + * @return self + */ + public function setSublocality($sublocality): self + { + $this->container['sublocality'] = $sublocality; + + return $this; + } + + /** + * Gets route + * + * @return string|null + */ + public function getRoute() + { + return $this->container['route']; + } + + /** + * Sets route + * + * @param string|null $route Route (e.g. street) of the activity + * + * @return self + */ + public function setRoute($route): self + { + $this->container['route'] = $route; + + return $this; + } + + /** + * Gets street_number + * + * @return string|null + */ + public function getStreetNumber() + { + return $this->container['street_number']; + } + + /** + * Sets street_number + * + * @param string|null $street_number Street number of the activity + * + * @return self + */ + public function setStreetNumber($street_number): self + { + $this->container['street_number'] = $street_number; + + return $this; + } + + /** + * Gets subpremise + * + * @return string|null + */ + public function getSubpremise() + { + return $this->container['subpremise']; + } + + /** + * Sets subpremise + * + * @param string|null $subpremise Subpremise (e.g. apartment/suite number) of the activity + * + * @return self + */ + public function setSubpremise($subpremise): self + { + $this->container['subpremise'] = $subpremise; + + return $this; + } + + /** + * Gets postal_code + * + * @return string|null + */ + public function getPostalCode() + { + return $this->container['postal_code']; + } + + /** + * Sets postal_code + * + * @param string|null $postal_code Postal code of the activity + * + * @return self + */ + public function setPostalCode($postal_code): self + { + $this->container['postal_code'] = $postal_code; + + return $this; + } + /** + * Returns true if offset exists. False otherwise. + * + * @param integer $offset Offset + * + * @return boolean + */ + public function offsetExists($offset): bool + { + return isset($this->container[$offset]); + } + + /** + * Gets offset. + * + * @param integer $offset Offset + * + * @return mixed + */ + public function offsetGet($offset): mixed + { + return $this->container[$offset] ?? null; + } + + /** + * Sets value based on offset. + * + * @param int|null $offset Offset + * @param mixed $value Value to be set + * + * @return void + */ + public function offsetSet($offset, $value): void + { + if (is_null($offset)) { + $this->container[] = $value; + } else { + $this->container[$offset] = $value; + } + } + + /** + * Unsets offset. + * + * @param integer $offset Offset + * + * @return void + */ + public function offsetUnset($offset): void + { + unset($this->container[$offset]); + } + + /** + * Serializes the object to a value that can be serialized natively by json_encode(). + * @link https://www.php.net/manual/en/jsonserializable.jsonserialize.php + * + * @return mixed Returns data which can be serialized by json_encode(), which is a value + * of any type other than a resource. + */ + public function jsonSerialize(): mixed + { + return ObjectSerializer::sanitizeForSerialization($this); + } + + /** + * Gets the string presentation of the object + * + * @throws JsonException + * @return string + */ + public function __toString() + { + return json_encode( + ObjectSerializer::sanitizeForSerialization($this), + JSON_PRETTY_PRINT | JSON_THROW_ON_ERROR + ); + } + + /** + * Gets a header-safe presentation of the object + * + * @throws JsonException + * @return string + */ + public function toHeaderValue(): string + { + return json_encode(ObjectSerializer::sanitizeForSerialization($this), JSON_THROW_ON_ERROR); + } +} + + diff --git a/lib/versions/v2/Model/DealSearchItemItem.php b/lib/versions/v2/Model/DealSearchItemItem.php index 3b4a069f..9d3a4837 100644 --- a/lib/versions/v2/Model/DealSearchItemItem.php +++ b/lib/versions/v2/Model/DealSearchItemItem.php @@ -69,7 +69,7 @@ class DealSearchItemItem implements ModelInterface, ArrayAccess, JsonSerializabl 'id' => 'int', 'type' => 'string', 'title' => 'string', - 'value' => 'int', + 'value' => 'float', 'currency' => 'string', 'status' => 'string', 'visible_to' => 'int', @@ -381,7 +381,7 @@ public function setTitle($title): self /** * Gets value * - * @return int|null + * @return float|null */ public function getValue() { @@ -391,7 +391,7 @@ public function getValue() /** * Sets value * - * @param int|null $value The value of the deal + * @param float|null $value The value of the deal * * @return self */ diff --git a/lib/versions/v2/Model/PostPersonRequestBody.php b/lib/versions/v2/Model/PostPersonRequestBody.php index 94228fbf..557e87dd 100644 --- a/lib/versions/v2/Model/PostPersonRequestBody.php +++ b/lib/versions/v2/Model/PostPersonRequestBody.php @@ -318,6 +318,9 @@ public function listInvalidProperties(): array { $invalidProperties = []; + if ($this->container['name'] === null) { + $invalidProperties[] = "'name' can't be null"; + } $allowedValues = $this->getMarketingStatusAllowableValues(); if (!is_null($this->container['marketing_status']) && !in_array($this->container['marketing_status'], $allowedValues, true)) { $invalidProperties[] = sprintf( @@ -345,7 +348,7 @@ public function valid(): bool /** * Gets name * - * @return string|null + * @return string */ public function getName() { @@ -355,7 +358,7 @@ public function getName() /** * Sets name * - * @param string|null $name The name of the person + * @param string $name The name of the person * * @return self */ @@ -571,7 +574,7 @@ public function getNotes() /** * Sets notes * - * @param string|null $notes Contact sync notes of the person, maximum 10 000 characters, included if contact sync is enabled for the company + * @param string|null $notes Contact sync notes of the person, maximum 10 000 characters. Only accepted when contact sync is enabled for the company; otherwise the request returns 403. * * @return self */ @@ -595,7 +598,7 @@ public function getIm() /** * Sets im * - * @param \Pipedrive\versions\v2\Model\PersonItemIm[]|null $im The instant messaging accounts of the person, included if contact sync is enabled for the company + * @param \Pipedrive\versions\v2\Model\PersonItemIm[]|null $im The instant messaging accounts of the person. Only accepted when contact sync is enabled for the company; otherwise the request returns 403. * * @return self */ @@ -619,7 +622,7 @@ public function getBirthday() /** * Sets birthday * - * @param string|null $birthday The birthday of the person, included if contact sync is enabled for the company + * @param string|null $birthday The birthday of the person. Only accepted when contact sync is enabled for the company; otherwise the request returns 403. * * @return self */ @@ -643,7 +646,7 @@ public function getJobTitle() /** * Sets job_title * - * @param string|null $job_title The job title of the person, included if contact sync is enabled for the company + * @param string|null $job_title The job title of the person. Only accepted when contact sync is enabled for the company; otherwise the request returns 403. * * @return self */ diff --git a/lib/versions/v2/Model/ProductSearchItemItem.php b/lib/versions/v2/Model/ProductSearchItemItem.php index 866eb35e..064ac99f 100644 --- a/lib/versions/v2/Model/ProductSearchItemItem.php +++ b/lib/versions/v2/Model/ProductSearchItemItem.php @@ -69,7 +69,7 @@ class ProductSearchItemItem implements ModelInterface, ArrayAccess, JsonSerializ 'id' => 'int', 'type' => 'string', 'name' => 'string', - 'code' => 'int', + 'code' => 'string', 'visible_to' => 'int', 'owner' => '\Pipedrive\versions\v2\Model\ProductSearchItemItemOwner', 'custom_fields' => 'string[]' @@ -339,7 +339,7 @@ public function setName($name): self /** * Gets code * - * @return int|null + * @return string|null */ public function getCode() { @@ -349,7 +349,7 @@ public function getCode() /** * Sets code * - * @param int|null $code The code of the product + * @param string|null $code The code of the product * * @return self */ diff --git a/lib/versions/v2/Model/UpdatePersonRequestBody.php b/lib/versions/v2/Model/UpdatePersonRequestBody.php index 31b96db8..a1e02dc1 100644 --- a/lib/versions/v2/Model/UpdatePersonRequestBody.php +++ b/lib/versions/v2/Model/UpdatePersonRequestBody.php @@ -541,7 +541,7 @@ public function getNotes() /** * Sets notes * - * @param string|null $notes Contact sync notes of the person, maximum 10 000 characters, included if contact sync is enabled for the company + * @param string|null $notes Contact sync notes of the person, maximum 10 000 characters. Only accepted when contact sync is enabled for the company; otherwise the request returns 403. * * @return self */ @@ -565,7 +565,7 @@ public function getIm() /** * Sets im * - * @param \Pipedrive\versions\v2\Model\PersonItemIm[]|null $im The instant messaging accounts of the person, included if contact sync is enabled for the company + * @param \Pipedrive\versions\v2\Model\PersonItemIm[]|null $im The instant messaging accounts of the person. Only accepted when contact sync is enabled for the company; otherwise the request returns 403. * * @return self */ @@ -589,7 +589,7 @@ public function getBirthday() /** * Sets birthday * - * @param string|null $birthday The birthday of the person, included if contact sync is enabled for the company + * @param string|null $birthday The birthday of the person. Only accepted when contact sync is enabled for the company; otherwise the request returns 403. * * @return self */ @@ -613,7 +613,7 @@ public function getJobTitle() /** * Sets job_title * - * @param string|null $job_title The job title of the person, included if contact sync is enabled for the company + * @param string|null $job_title The job title of the person. Only accepted when contact sync is enabled for the company; otherwise the request returns 403. * * @return self */ From ca34be7a744339e25155ce3bae160c43202a8d7a Mon Sep 17 00:00:00 2001 From: Denis Date: Thu, 17 Sep 2026 13:38:36 +0300 Subject: [PATCH 2/2] Release v17.8.0 --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 805364de..360e96f2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - Reworded the `im`, `notes`, `birthday`, and `job_title` field descriptions and the `addPerson`/`updatePerson` operation descriptions (which also cover `postal_address`) to disclose that these fields 403 when contact sync isn't enabled, rather than only describing when they're present on read. - Fixed OAuth scopes on six v2 deal sub-resource write operations (`POST /api/v2/deals/{id}/discounts`, `PATCH`/`DELETE /api/v2/deals/{id}/discounts/{discount_id}`, `POST /api/v2/deals/{id}/installments`, `PATCH`/`DELETE /api/v2/deals/{id}/installments/{installment_id}`) that incorrectly listed `deals:read` alongside `deals:full`, copied from their sibling GET operations - these are now `deals:full` only, matching their read-write nature +## [17.8.0](https://github.com/pipedrive/client-php/compare/17.7.0...17.8.0) (2026-09-17) + ## [17.7.0](https://github.com/pipedrive/client-php/compare/17.6.3...17.7.0) (2026-09-17) ## [17.6.3](https://github.com/pipedrive/client-php/compare/17.6.2...17.6.3) (2026-09-17)