public LineItemChangeStateReasonType ChangeStateReasonType { get; set; }
Output only. Predefined enum types for why this line item change is in
current state. For example, a line item change's state could be
LINE_ITEM_CHANGE_STATE_COMPLETED because of end-of-term expiration,
immediate cancellation initiated by the user, or system-initiated
cancellation.
Output only. Provider-supplied message explaining the LineItemChange's
state. Mainly used to communicate progress and ETA for provisioning in the
case of PENDING_APPROVAL, and to explain why the change request was
denied or canceled in the case of REJECTED and CANCELED states.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-07 UTC."],[[["\u003cp\u003eThis documentation details the \u003ccode\u003eLineItemChange\u003c/code\u003e class, part of the Google Cloud Commerce Consumer Procurement v1 API, which represents a change made to a line item.\u003c/p\u003e\n"],["\u003cp\u003eThe latest version of the \u003ccode\u003eLineItemChange\u003c/code\u003e class is 1.4.0, with previous versions (1.3.0, 1.2.0, 1.1.0, 1.0.0) also available for reference.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eLineItemChange\u003c/code\u003e class implements several interfaces, including \u003ccode\u003eIMessage\u003c/code\u003e, \u003ccode\u003eIEquatable\u003c/code\u003e, \u003ccode\u003eIDeepCloneable\u003c/code\u003e, and \u003ccode\u003eIBufferMessage\u003c/code\u003e, and inherits members from the base \u003ccode\u003eobject\u003c/code\u003e class.\u003c/p\u003e\n"],["\u003cp\u003eKey properties of the \u003ccode\u003eLineItemChange\u003c/code\u003e class include \u003ccode\u003eChangeEffectiveTime\u003c/code\u003e, \u003ccode\u003eChangeId\u003c/code\u003e, \u003ccode\u003eChangeState\u003c/code\u003e, \u003ccode\u003eChangeStateReasonType\u003c/code\u003e, \u003ccode\u003eChangeType\u003c/code\u003e, \u003ccode\u003eCreateTime\u003c/code\u003e, \u003ccode\u003eNewLineItemInfo\u003c/code\u003e, \u003ccode\u003eOldLineItemInfo\u003c/code\u003e, \u003ccode\u003eStateReason\u003c/code\u003e, and \u003ccode\u003eUpdateTime\u003c/code\u003e, each providing specific information about the change.\u003c/p\u003e\n"],["\u003cp\u003eThe class has two constructors, one is default and the other is a copy constructor accepting another instance of the class as a parameter.\u003c/p\u003e\n"]]],[],null,["# Cloud Commerce Consumer Procurement v1 API - Class LineItemChange (1.5.0)\n\nVersion latestkeyboard_arrow_down\n\n- [1.5.0 (latest)](/dotnet/docs/reference/Google.Cloud.Commerce.Consumer.Procurement.V1/latest/Google.Cloud.Commerce.Consumer.Procurement.V1.LineItemChange)\n- [1.4.0](/dotnet/docs/reference/Google.Cloud.Commerce.Consumer.Procurement.V1/1.4.0/Google.Cloud.Commerce.Consumer.Procurement.V1.LineItemChange)\n- [1.3.0](/dotnet/docs/reference/Google.Cloud.Commerce.Consumer.Procurement.V1/1.3.0/Google.Cloud.Commerce.Consumer.Procurement.V1.LineItemChange)\n- [1.2.0](/dotnet/docs/reference/Google.Cloud.Commerce.Consumer.Procurement.V1/1.2.0/Google.Cloud.Commerce.Consumer.Procurement.V1.LineItemChange)\n- [1.1.0](/dotnet/docs/reference/Google.Cloud.Commerce.Consumer.Procurement.V1/1.1.0/Google.Cloud.Commerce.Consumer.Procurement.V1.LineItemChange)\n- [1.0.0](/dotnet/docs/reference/Google.Cloud.Commerce.Consumer.Procurement.V1/1.0.0/Google.Cloud.Commerce.Consumer.Procurement.V1.LineItemChange) \n\n public sealed class LineItemChange : IMessage\u003cLineItemChange\u003e, IEquatable\u003cLineItemChange\u003e, IDeepCloneable\u003cLineItemChange\u003e, IBufferMessage, IMessage\n\nReference documentation and code samples for the Cloud Commerce Consumer Procurement v1 API class LineItemChange.\n\nA change made on a line item. \n\nInheritance\n-----------\n\n[object](https://learn.microsoft.com/dotnet/api/system.object) \\\u003e LineItemChange \n\nImplements\n----------\n\n[IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage-1.html)[LineItemChange](/dotnet/docs/reference/Google.Cloud.Commerce.Consumer.Procurement.V1/latest/Google.Cloud.Commerce.Consumer.Procurement.V1.LineItemChange), [IEquatable](https://learn.microsoft.com/dotnet/api/system.iequatable-1)[LineItemChange](/dotnet/docs/reference/Google.Cloud.Commerce.Consumer.Procurement.V1/latest/Google.Cloud.Commerce.Consumer.Procurement.V1.LineItemChange), [IDeepCloneable](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IDeepCloneable-1.html)[LineItemChange](/dotnet/docs/reference/Google.Cloud.Commerce.Consumer.Procurement.V1/latest/Google.Cloud.Commerce.Consumer.Procurement.V1.LineItemChange), [IBufferMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IBufferMessage.html), [IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage.html) \n\nInherited Members\n-----------------\n\n[object.GetHashCode()](https://learn.microsoft.com/dotnet/api/system.object.gethashcode) \n[object.GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype) \n[object.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring)\n\nNamespace\n---------\n\n[Google.Cloud.Commerce.Consumer.Procurement.V1](/dotnet/docs/reference/Google.Cloud.Commerce.Consumer.Procurement.V1/latest/Google.Cloud.Commerce.Consumer.Procurement.V1)\n\nAssembly\n--------\n\nGoogle.Cloud.Commerce.Consumer.Procurement.V1.dll\n\nConstructors\n------------\n\n### LineItemChange()\n\n public LineItemChange()\n\n### LineItemChange(LineItemChange)\n\n public LineItemChange(LineItemChange other)\n\nProperties\n----------\n\n### ChangeEffectiveTime\n\n public Timestamp ChangeEffectiveTime { get; set; }\n\nOutput only. A time at which the change became or will become (in case of\npending change) effective.\n\n### ChangeId\n\n public string ChangeId { get; set; }\n\nOutput only. Change ID.\nAll changes made within one order update operation have the same change_id.\n\n### ChangeState\n\n public LineItemChangeState ChangeState { get; set; }\n\nOutput only. State of the change.\n\n### ChangeStateReasonType\n\n public LineItemChangeStateReasonType ChangeStateReasonType { get; set; }\n\nOutput only. Predefined enum types for why this line item change is in\ncurrent state. For example, a line item change's state could be\n`LINE_ITEM_CHANGE_STATE_COMPLETED` because of end-of-term expiration,\nimmediate cancellation initiated by the user, or system-initiated\ncancellation.\n\n### ChangeType\n\n public LineItemChangeType ChangeType { get; set; }\n\nRequired. Type of the change to make.\n\n### CreateTime\n\n public Timestamp CreateTime { get; set; }\n\nOutput only. The time when change was initiated.\n\n### NewLineItemInfo\n\n public LineItemInfo NewLineItemInfo { get; set; }\n\nLine item info after the change.\n\n### OldLineItemInfo\n\n public LineItemInfo OldLineItemInfo { get; set; }\n\nOutput only. Line item info before the change.\n\n### StateReason\n\n public string StateReason { get; set; }\n\nOutput only. Provider-supplied message explaining the LineItemChange's\nstate. Mainly used to communicate progress and ETA for provisioning in the\ncase of `PENDING_APPROVAL`, and to explain why the change request was\ndenied or canceled in the case of `REJECTED` and `CANCELED` states.\n\n### UpdateTime\n\n public Timestamp UpdateTime { get; set; }\n\nOutput only. The time when change was updated, e.g. approved/rejected by\npartners or cancelled by the user."]]