Plan V2 Webhook Documentation
This document describes the Plan V2 webhook payload for external API consumers. It explains the payload structure, supported actions, schema definitions, examples, and backward-compatibility considerations.
1) Top-level payload schema (WebhookPayloadV2)
{
"requestedModifications": {
"entityType": "PlanVersion | Plan",
"requestPayload": {},
"requestor": {}
},
"transactionId": "guid",
"planVersion": {},
"milestone": {},
"requestedModificationsV2": {
"entityType": "PlanVersion | Plan",
"action": "mutate | discard | publish | move | ...",
"requestPayload": {},
"requestor": {}
}
}
| Field |
Type |
Description |
requestedModifications |
object |
Existing/legacy modification context (backward compatibility). |
transactionId |
guid |
Correlation id for tracing and idempotency. |
planVersion |
PlanVersionRespDtoV2 |
Native Plan V2 plan version snapshot. Can be null if unavailable. |
milestone |
MilestoneRoadmapEntity |
Legacy milestone-shaped projection for backward compatibility consumers. |
requestedModificationsV2 |
RequestedModificationsV2 |
V2-native modification context with explicit action + command DTO payload. |
2) requestedModificationsV2 schema (RequestedModificationsV2)
| Field |
Type |
Description |
entityType |
enum |
Typically PlanVersion or Plan. |
action |
string |
Command action name (for example mutate, discard, publish, move). |
requestPayload |
object |
Action-specific command DTO. |
requestor |
object |
Requesting user details when available. |
Action -> command DTO mapping
| Action |
DTO type |
mutate |
PlanVersionMutateCmdReqDto |
discard |
PlanVersionDiscardCmdReqDto |
publish |
PlanVersionPublishCmdReqDto |
move |
PlanMoveCmdReqDto |
create |
PlanCreateCmdReqDto |
archive |
PlanArchiveCmdReqDto |
restore |
PlanRestoreCmdReqDto |
3) Detailed command DTO schemas
3.1 PlanCreateCmdReqDto
Gocious.Minotaur.Proteus.Model.PlanVersion.Dto.Req.PlanVersionCreateCmdReqDto
| Field |
Type |
Description |
description |
string |
Plan version description. |
DMZDescription |
string |
DMZ description (takes precedence over description). |
startOfProduction |
datetime (UTC) |
Start of production date. |
productLineId |
guid |
Product line id for the new plan version. |
parentId |
guid (optional) |
Parent plan id (optional). |
planId |
guid |
Plan id. |
version |
VersionDts |
Version information. |
stageId |
guid (optional) |
Stage id (optional). |
planPropertyIds |
array of guid |
List of plan property ids. |
benefits |
array of BenefitAttributeValueDts |
Plan benefits with attribute values. |
costs |
array of AttributeValueDts |
Plan costs with attribute values. |
themeIds |
array of guid |
List of theme ids. |
featureIds |
array of guid |
List of feature ids. |
featureChangeIndicators |
object map<guid, FeatureChangeIndicator> |
Feature change indicators by feature id. |
keyFeatureTypes |
array of guid |
Set of key feature type ids. |
attributeValues |
object map<guid, AttributeValueDts> |
Attribute values by attribute id. |
meta |
Meta |
Command metadata. |
Note: PlanVersionMutateCmdReqDto uses optional/patch semantics. A field may be omitted if not being changed.
3.2 PlanVersionMutateCmdReqDto
| Field |
Type |
Description |
name |
string |
Plan version name update. |
description |
string |
Plan version description update. |
startOfProduction |
datetime (UTC) / null |
SOP date update. |
parentId |
guid / null |
Parent plan reference update. |
stageId |
guid / null |
Workflow stage reference update. |
attributeValues |
List<ListItem<AttributeValueDts>> |
Summary/cost style attribute updates. |
benefits |
List<BenefitAttributeValueDts> |
Benefit attribute updates scoped by market division ids. |
costs |
List<AttributeValueDts> |
Cost attribute updates. |
planPropertyIds |
List<ListItem<Guid>> |
Plan properties add/modify/delete operations. |
themeIds |
List<ListItem<Guid>> |
Themes add/modify/delete operations. |
featureIds |
List<ListItem<Guid>> |
Scope features add/modify/delete operations. |
keyFeatureTypes |
List<ListItem<Guid>> |
Key feature types updates. |
featureChangeIndicators |
List<ListItem<FeatureChangeIndicatorDts>> |
Feature change indicator updates. |
meta |
Meta |
Common command metadata. |
Meta
| Field |
Type |
Description |
includeEntityDetailsInResponse |
bool |
Whether command response includes entity details. |
ListItem<T>
| Field |
Type |
Description |
action |
enum (Delete=-1, Modify=0, Add=1) |
Mutation operation to apply to item. |
item |
T |
Item payload for that operation. |
FeatureChangeIndicatorDts
| Field |
Type |
Description |
featureId |
guid |
Feature id. |
indicator |
enum |
Unchanged, New, Changed, Introduction. |
AttributeValueDts request polymorphic schema
Base shape:
| Field |
Type |
Description |
id |
guid |
Attribute id. |
dataTypeEnum |
enum |
Attribute data type discriminator. |
Possible concrete shapes:
| Concrete type |
Additional fields |
TextAttributeValueDts |
value: string |
NumericAttributeValueDts |
value: double? |
PercentageAttributeValueDts |
value: double? |
DateTimeAttributeValueDts |
value: datetime? |
ValueChoiceAttributeValueDts |
choiceId: guid |
MultipleChoiceAttributeValueDts |
choiceIds: List<guid> |
CurrencyAttributeValueDts |
value: double?, currencyId: guid |
UnitOfMeasureAttributeValueDts |
value: double?, unitOfMeasureId: guid |
BenefitAttributeValueDts
| Field |
Type |
Description |
marketDivisionIds |
HashSet<guid> |
Market divisions this benefit applies to. |
attributeValue |
AttributeValueDts |
Benefit attribute payload (polymorphic). |
3.3 PlanVersionDiscardCmdReqDto
| Field |
Type |
Description |
id |
guid |
Plan version id to discard. |
planId |
guid |
plan id. |
meta |
Meta |
Command metadata. |
3.4 PlanVersionPublishCmdReqDto
| Field |
Type |
Description |
meta |
Meta |
Command metadata. |
3.5 PlanArchiveCmdReqDto
| Field |
Type |
Description |
planId |
guid |
Plan id to archive. |
meta |
Meta |
Command metadata. |
3.6 PlanRestoreCmdReqDto
| Field |
Type |
Description |
planId |
guid |
Plan id to restore. |
meta |
Meta |
Command metadata. |
3.7 PlanMoveCmdReqDto
| Field |
Type |
Description |
sourceProductLineId |
guid |
Current/source product line id. |
targetProductLineId |
guid |
Target product line id. |
4) Detailed planVersion schema (PlanVersionRespDtoV2)
planVersion is composed of base response fields plus section objects.
4.1 Base fields from BaseRespDto
| Field |
Type |
Description |
id |
guid |
Plan version id. |
name |
string |
Plan version display name. |
createDate |
datetime (UTC) |
Creation timestamp. |
createdBy |
UserRespDts |
User who created the record. |
updateDate |
datetime (UTC) |
Last update timestamp. |
updatedBy |
UserRespDts |
User who last updated the record. |
status |
enum |
Entity status. |
UserRespDts
| Field |
Type |
Description |
id |
guid |
User id. |
name |
string |
User name fallback. |
firstName |
string |
First name. |
middleName |
string |
Middle name. |
lastName |
string |
Last name. |
displayName |
string |
Computed display name (first + last, fallback to name). |
email |
string |
Email address. |
avatarUrl |
string |
Avatar URL. |
4.2 Section fields in PlanVersionRespDtoV2
| Field |
Type |
Description |
core |
CoreSectionDts |
Core identity and metadata. |
summary |
SummarySectionDts |
Summary attribute values. |
workflow |
WorkflowSectionDts |
Stage/workflow information. |
scope |
ScopeSectionDts |
Feature scope list. |
benefits |
BenefitSectionDts |
Benefit attribute values. |
costs |
CostSectionDts |
Cost attribute values. |
market |
MarketSectionDts |
Market references. |
4.3 CoreSectionDts
| Field |
Type |
Description |
version |
VersionDts |
Version metadata. |
parent |
BaseRespDts |
Parent plan reference (id, name). |
planId |
guid |
plan id. |
productLine |
ProductLineRespDts |
Product line reference + metadata. |
description |
string |
Plan version description. |
startOfProduction |
datetime (UTC) / null |
SOP date. |
themes |
List<AttributeRespDts> |
Theme attributes. |
planProperties |
List<PlanPropertyRespDts> |
Plan properties. |
VersionDts
| Field |
Type |
Description |
name |
string |
Derived value v{sequentialId}. |
sequentialId |
int |
Version sequence number. |
id |
guid |
Version id. |
isPublished |
bool |
Published state. |
isProposed |
bool |
Proposed state. |
isCurrent |
bool |
Current active state. |
BaseRespDts (reference object)
| Field |
Type |
Description |
id |
guid |
Reference id. |
name |
string |
Reference display name. |
ProductLineRespDts
| Field |
Type |
Description |
id |
guid |
Product line id. |
name |
string |
Product line name. |
color |
string |
Display color. |
thumbnailRefId |
string |
Thumbnail reference id. |
createDate |
datetime (UTC) / null |
Product line creation timestamp. |
createdBy |
guid |
Product line creator id. |
categories |
List<CategoryRespDts> |
Product line categories. |
access |
AccessRespDts |
Access model details. |
CategoryRespDts
| Field |
Type |
Description |
id |
guid |
Category id. |
name |
string |
Category name. |
categoryLevelId |
string |
Category level id. |
AccessRespDts
| Field |
Type |
Description |
memberAccess |
array |
List of explicit member access entries. |
PlanPropertyRespDts
| Field |
Type |
Description |
id |
guid |
Plan property id. |
name |
string |
Plan property name. |
abbreviation |
string |
Plan property abbreviation. |
color |
string |
Plan property color. |
planGroupCategory |
PlanPropertyCategoryRespDts |
Group category metadata. |
PlanPropertyCategoryRespDts
| Field |
Type |
Description |
id |
guid |
Category id. |
name |
string |
Category name. |
abbreviation |
string |
Category abbreviation. |
displayOnRoadmaps |
bool |
Whether shown on roadmaps. |
AttributeRespDts
| Field |
Type |
Description |
id |
guid |
Attribute id. |
name |
string |
Attribute name. |
scope |
enum |
Attribute scope. |
abbreviation |
string |
Attribute abbreviation. |
thumbnailRefId |
string |
Thumbnail reference id. |
attributeGroupRef |
BaseRespDts |
Attribute group reference. |
dataTypeRef |
DataTypeRespDts |
Data type details. |
systemAttributeEnum |
enum / null |
System attribute kind. |
origin |
enum |
Origin type. |
configuration |
object |
Data-type-specific attribute configuration. |
alerts |
array |
Alerts for the attribute. |
DataTypeRespDts
| Field |
Type |
Description |
id |
guid |
Data type id. |
name |
string |
Data type name. |
dataTypeEnum |
enum |
Data type enum. |
isUserAssignable |
bool |
User assignable flag. |
isGroupable |
bool |
Groupable flag. |
isSortable |
bool |
Sortable flag. |
isFilterable |
bool |
Filterable flag. |
isAggregable |
bool |
Aggregable flag. |
4.4 SummarySectionDts
| Field |
Type |
Description |
attributeValues |
Dictionary<guid, AttributeValueDts> |
Summary attribute values keyed by attribute id. |
4.5 WorkflowSectionDts
| Field |
Type |
Description |
stage |
StageRespDts |
Current stage. |
StageRespDts
| Field |
Type |
Description |
id |
guid |
Stage id. |
name |
string |
Stage name. |
color |
string |
Stage color. |
status |
enum |
Stage status. |
abbreviation |
string |
Stage abbreviation. |
isEnabledForMilestones |
bool / null |
Milestone enablement flag. |
4.6 ScopeSectionDts
| Field |
Type |
Description |
features |
List<FeatureDts> |
Features included in scope. |
FeatureDts
| Field |
Type |
Description |
id |
guid |
Feature id. |
name |
string |
Feature name. |
description |
string |
Feature description. |
code |
string |
Feature code. |
startDate |
datetime (UTC) / null |
Feature start date. |
endDate |
datetime (UTC) / null |
Feature end date. |
featureType |
FeatureTypeDts |
Feature type metadata. |
changeIndicator |
enum |
Change indicator. |
FeatureTypeDts
| Field |
Type |
Description |
id |
guid |
Feature type id. |
name |
string |
Feature type name. |
category |
enum |
Feature type category. |
isKey |
bool |
Whether key feature type. |
4.7 BenefitSectionDts
| Field |
Type |
Description |
attributeValues |
List<BenefitAttributeValueDts> |
Benefit values scoped by market divisions. |
4.8 CostSectionDts
| Field |
Type |
Description |
attributeValues |
Dictionary<guid, AttributeValueDts> |
Cost values keyed by attribute id. |
4.9 MarketSectionDts
| Field |
Type |
Description |
marketRefs |
List<MarketDts> |
Market references for the plan version. |
MarketDts
| Field |
Type |
Description |
id |
guid |
Market id. |
name |
string |
Market name. |
code |
string |
Market code. |
marketDivision |
BaseRespDts |
Market division reference (id, name). |
4.10 AttributeValueDts response polymorphic schema
Base shape:
| Field |
Type |
Description |
id |
guid |
Attribute id. |
name |
string |
Attribute name. |
dataTypeEnum |
enum |
Data type discriminator. |
Possible concrete response shapes:
| Concrete type |
Additional fields |
TextAttributeValueDts |
value: string |
NumericAttributeValueDts |
value: decimal? |
PercentageAttributeValueDts |
value: decimal? |
DateTimeAttributeValueDts |
value: datetime? |
ValueChoiceAttributeValueDts |
value: string |
ChoiceAttributeValueDts |
choiceId: guid, choiceLabel: string |
MultipleChoiceAttributeValueDts |
choices: List<ChoiceDts> |
CurrencyAttributeValueDts |
value: decimal?, currencyRef: CurrencyDts |
UnitOfMeasureAttributeValueDts |
value: decimal?, unitOfMeasureRef: UnitOfMeasureDts |
ChoiceDts
| Field |
Type |
Description |
id |
guid |
Choice id. |
label |
string |
Choice label. |
CurrencyDts
| Field |
Type |
Description |
id |
guid |
Currency id. |
name |
string |
Currency name. |
code |
string |
Currency code. |
UnitOfMeasureDts
| Field |
Type |
Description |
id |
guid |
UOM id. |
name |
string |
UOM name. |
abbreviation |
string |
UOM abbreviation. |
categoryRef |
MeasurementCategoryDts |
UOM category reference. |
MeasurementCategoryDts
| Field |
Type |
Description |
id |
guid |
Category id. |
name |
string |
Category name. |
5) JSON examples
5.1 Mutate request payload example (PlanVersionMutateCmdReqDto)
{
"name": "Updated Plan Version Name",
"description": "Updated description",
"DMZDescription": "Updated DMZ text",
"startOfProduction": "2026-01-15T00:00:00Z",
"parentId": null,
"stageId": "b7be44ef-4c68-4e2f-b96a-8fb9b4f3e89e",
"attributeValues": [
{
"action": 0,
"item": {
"id": "53cfcf70-8d6f-4f7e-a2da-c62fe08aa2a4",
"dataTypeEnum": "Text",
"value": "Updated value"
}
}
],
"meta": {
"includeEntityDetailsInResponse": true
}
}
5.2 Full webhook example (Mutate)
{
"transactionId": "9aeb4f6e-f08e-4d78-9f90-77c8fd407fcc",
"planVersion": {
"core": {
"version": {
"name": "v1",
"sequentialId": 1,
"id": "471fae45-2e2b-40be-9b50-bc4ebd9bf1dd",
"isPublished": false,
"isProposed": true,
"isCurrent": false
},
"parent": null,
"planId": "e03555fd-ae3a-421f-81a7-74f9ef77012d",
"productLine": {
"color": "#1C6ED9",
"createDate": "2026-08-10T06:55:46.5984779Z",
"createdBy": "0ae13d2b-0207-42b6-849e-597603f681b2",
"categories": [
{
"categoryLevelId": "161ccede-504f-45bb-a8de-c685efce5af3",
"id": "7e26b0f4-e865-4a7c-aac9-05861d20aa90",
"name": "L1 "
},
{
"categoryLevelId": "807c2c90-b5b2-4aef-b81d-65a7ed024c98",
"id": "4ae5ce95-fea3-47bf-a669-3d1572a654c1",
"name": "L2a"
},
{
"categoryLevelId": "876c400c-c70b-493a-a490-4f9c80ef554e",
"id": "eb2ee3e8-b9d2-496b-ace6-2959c8cc0b5f",
"name": "L3a"
},
{
"categoryLevelId": "38c48780-6f94-4ed0-be0a-508c2d077038",
"id": "803a84e9-9579-45d1-9912-86216e88a831",
"name": "L4"
}
],
"id": "d1a333e4-226c-4e6e-8927-46aece481ef0",
"name": "PlanV2WebhookTest2"
},
"description": "<p>Updated description</p>",
"startOfProduction": "2026-01-15T00:00:00Z",
"themes": [
{
"scope": "KpiBusiness",
"abbreviation": "abcd",
"thumbnailRefId": "dd6af046-6fae-40a2-a226-54fc940ea38a3",
"attributeGroupRef": null,
"dataTypeRef": {
"dataTypeEnum": "Currency",
"isUserAssignable": true,
"isGroupable": false,
"isSortable": true,
"isFilterable": true,
"isAggregable": true,
"id": "d91c59d6-7ae7-47ae-9187-7904646f38e1",
"name": "Currency"
},
"origin": "User",
"configuration": {
"id": "da1ff0ab-4512-4783-8e40-53fe97c372db",
"name": "United States Dollar",
"code": "USD",
"status": 10,
"dataTypeEnum": "Currency"
},
"alerts": [],
"id": "cc97da2d-abb0-445a-9b7c-02fd74eba358",
"name": "Jan 28 test 2"
}
],
"planProperties": [
{
"abbreviation": "OP2",
"color": "#e87130",
"planGroupCategory": {
"abbreviation": "LES",
"displayOnRoadmaps": true,
"id": "c672a012-a08b-49b6-968b-e79af3975372",
"name": "Lead Engineering Site"
},
"id": "0f3e09f6-2c1f-42c3-b87e-c28a5664da58",
"name": "Option2"
}
]
},
"summary": {
"attributeValues": {
"d8d5dccb-b3f5-45c1-bae5-8b9ab3c34dae": {
"choiceId": "765d8909-f578-4d37-a19f-9de6d9be0697",
"choiceLabel": "Label 1 updated",
"id": "d8d5dccb-b3f5-45c1-bae5-8b9ab3c34dae",
"name": "Feb15ChoiceListUpdated",
"dataTypeEnum": 90
},
"23a3820d-e9be-4b10-9049-4eb68971c904": {
"value": "99",
"id": "23a3820d-e9be-4b10-9049-4eb68971c904",
"name": "Feb15ValueChoiceList",
"dataTypeEnum": 100
},
"53cfcf70-8d6f-4f7e-a2da-c62fe08aa2a4": {
"value": "rt",
"id": "53cfcf70-8d6f-4f7e-a2da-c62fe08aa2a4",
"name": "Updated Value",
"dataTypeEnum": 10
},
"24eca692-09c3-4daf-8ee2-f9a38e92bf30": {
"value": 23,
"unitOfMeasureRef": {
"id": "f008714d-480a-4473-b13f-609e3ee37ca2",
"name": "kW",
"abbreviation": "kW Updated4",
"categoryRef": {
"id": "ed1e2cf8-df9b-4087-97a6-c97a6ae61e42",
"name": "Unassigned"
}
},
"id": "24eca692-09c3-4daf-8ee2-f9a38e92bf30",
"name": "Feb15UOM",
"dataTypeEnum": 70
},
"793dd12b-7981-44f8-874c-4017adcaaaf8": {
"value": null,
"id": "793dd12b-7981-44f8-874c-4017adcaaaf8",
"name": "Feb15DateTime",
"dataTypeEnum": 50
},
"77c18384-00ec-476e-ac26-508a901d585c": {
"value": 12,
"currencyRef": {
"id": "da1ff0ab-4512-4783-8e40-53fe97c372db",
"name": "United States Dollar",
"code": "USD"
},
"id": "77c18384-00ec-476e-ac26-508a901d585c",
"name": "Feb15Currency_Updated_07_04_2026",
"dataTypeEnum": 30
},
"bb118e0b-6ae7-47ff-83c3-1f07c6446239": {
"value": "2026-08-09T18:30:00",
"id": "bb118e0b-6ae7-47ff-83c3-1f07c6446239",
"name": "CR (LE)",
"dataTypeEnum": 50
},
"e42b3bd5-3c3e-46f9-9c43-4d97d7186ac4": {
"choices": [
{
"id": "95df1bb5-8d1a-487e-98ce-be4c415afe92",
"label": "Choice3"
},
{
"id": "bf2768ec-9880-4a45-a8e0-cfe9cfd41062",
"label": "Choice1Updated"
}
],
"id": "e42b3bd5-3c3e-46f9-9c43-4d97d7186ac4",
"name": "MCL Attr1",
"dataTypeEnum": 200
}
}
},
"workflow": {
"stage": {
"color": "#c7df4e",
"status": 10,
"abbreviation": "PH6",
"isEnabledForMilestones": true,
"id": "b7be44ef-4c68-4e2f-b96a-8fb9b4f3e89e",
"name": "Evaluation"
}
},
"scope": {
"features": [
{
"id": "04208b9b-d4c3-432e-9dda-29ee598b923e",
"name": "15v power outlet front",
"description": null,
"code": "15vPF",
"startDate": "2023-08-29T00:00:00",
"endDate": "2023-12-29T00:00:00",
"featureType": {
"id": "87b3e3b2-728f-40a6-b4ed-40ffcd959c8a",
"name": "KSP_17_15v power outlet front",
"category": 10,
"isKey": false
},
"changeIndicator": 1
},
{
"id": "29713b5f-11f7-455f-832e-e86a399dc675",
"name": "15v power outlet front",
"description": null,
"code": "15vPF",
"startDate": "2025-05-09T00:00:00",
"endDate": null,
"featureType": {
"id": "697bdb91-e87b-4787-bf5b-1bfa039e8659",
"name": "KSP_615v power outlet front",
"category": 10,
"isKey": false
},
"changeIndicator": 2
}
]
},
"benefits": {
"attributeValues": [
{
"marketDivisionIds": [],
"attributeValue": {
"value": 15,
"id": "d2f6de46-9e82-43c1-abfb-2727cc933506",
"name": "FT2",
"dataTypeEnum": 60
}
},
{
"marketDivisionIds": [],
"attributeValue": {
"value": 35,
"currencyRef": {
"id": "da1ff0ab-4512-4783-8e40-53fe97c372db",
"name": "United States Dollar",
"code": "USD"
},
"id": "ca17b7b2-459e-4aac-a36f-645b5b78168a",
"name": "FT4",
"dataTypeEnum": 30
}
},
{
"marketDivisionIds": [
"f2f1a765-cfc7-4f7d-a847-b52bf3a5216a",
"969e305f-2823-41db-8040-42e85f0fca9d"
],
"attributeValue": {
"value": 10,
"id": "354ae4ce-bf7d-4e38-b9ef-204ba8118e1f",
"name": "FT1",
"dataTypeEnum": 60
}
}
]
},
"costs": {
"attributeValues": {
"59a7f21f-fcec-4b86-8618-a5cb51c1d935": {
"value": 18,
"id": "59a7f21f-fcec-4b86-8618-a5cb51c1d935",
"name": "cost1 updated",
"dataTypeEnum": 60
},
"688bc668-c896-4bf0-8d41-c10c7f43ede0": {
"value": 20,
"currencyRef": {
"id": "da1ff0ab-4512-4783-8e40-53fe97c372db",
"name": "United States Dollar",
"code": "USD"
},
"id": "688bc668-c896-4bf0-8d41-c10c7f43ede0",
"name": "Cost4",
"dataTypeEnum": 30
}
}
},
"market": {
"marketRefs": [
{
"code": "MDT001",
"marketDivision": {
"id": "27c0ae56-e22b-4804-9ccf-6dc1e86a59d4",
"name": "MD-Test"
},
"id": "969e305f-2823-41db-8040-42e85f0fca9d",
"name": "MD-Test"
},
{
"code": "BC",
"marketDivision": {
"id": "cbd9622f-af47-46db-81c6-efaa8d2a2cad",
"name": "Brand up"
},
"id": "f2f1a765-cfc7-4f7d-a847-b52bf3a5216a",
"name": "Borch"
}
]
},
"id": "471fae45-2e2b-40be-9b50-bc4ebd9bf1dd",
"name": "Updated Plan Version Name",
"createDate": "2026-08-10T06:55:56.1779361Z",
"createdBy": {
"firstName": "Jane",
"middleName": null,
"lastName": "Doe",
"displayName": "Jane Doe",
"email": "jane.doe@example.com",
"avatarUrl": "https://s.gravatar.com/avatar/822e5c04cf8c93d052e0e83ac0ad731e?s=480&r=pg&d=https%3A%2F%2Fcdn.auth0.com%2Favatars%2Fkr.png",
"id": "0ae13d2b-0207-42b6-849e-597603f681b2",
"name": "Jane Doe"
},
"updateDate": "2026-08-10T10:57:10.6604672Z",
"updatedBy": {
"firstName": "Jane",
"middleName": null,
"lastName": "Doe",
"displayName": "Jane Doe",
"email": "jane.doe@example.com",
"avatarUrl": "https://s.gravatar.com/avatar/822e5c04cf8c93d052e0e83ac0ad731e?s=480&r=pg&d=https%3A%2F%2Fcdn.auth0.com%2Favatars%2Fkr.png",
"id": "0ae13d2b-0207-42b6-849e-597603f681b2",
"name": "Jane Doe"
},
"status": 10
},
"requestedModificationsV2": {
"entityType": "PlanVersion",
"action": "Mutate",
"requestPayload": {
"name": "Updated Plan Version Name",
"description": "Updated description",
"startOfProduction": "2026-01-15T00:00:00Z",
"parentId": null,
"stageId": "b7be44ef-4c68-4e2f-b96a-8fb9b4f3e89e",
"attributeValues": [
{
"action": 0,
"item": {
"id": "53cfcf70-8d6f-4f7e-a2da-c62fe08aa2a4",
"dataTypeEnum": "Text",
"value": "Updated value"
}
}
],
"meta": {
"includeEntityDetailsInResponse": true
}
},
"requestor": {
"id": "0ae13d2b-0207-42b6-849e-597603f681b2",
"name": "Jane Doe",
"displayName": "Jane Doe",
"firstName": "Jane",
"lastName": "Doe",
"email": "jane.doe@example.com",
"avatarURL": "https://s.gravatar.com/avatar/822e5c04cf8c93d052e0e83ac0ad731e?s=480&r=pg&d=https%3A%2F%2Fcdn.auth0.com%2Favatars%2Fkr.png"
}
}
}
6) Client integration notes
- Continue supporting legacy fields (
requestedModifications, milestone) for backward compatibility. - Use
requestedModificationsV2.action as the primary discriminator for command parsing. - Deserialize
requestedModificationsV2.requestPayload to the matching DTO using the mapping table above. - Use
transactionId for idempotency and trace correlation. - Treat unknown future fields as non-breaking additions.