Replace one common responsibility timeline for an Entity instance.
using System.Net.Http.Headers;var client = new HttpClient();var request = new HttpRequestMessage{ Method = HttpMethod.Put, RequestUri = new Uri("https://example.com/api/workspace/entity/example/instances/example/assignments/example"), Headers = { { "Authorization", "Bearer <token>" }, }, Content = new StringContent("{ \"OperationKey\": \"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0\", \"Resource\": { \"ResourceModule\": \"example\", \"ResourceKind\": \"example\", \"ContextResourceId\": \"example\", \"ResourceObjectId\": \"example\" }, \"ResponsibilityKey\": \"example\", \"Subjects\": [ { \"SubjectType\": \"example\", \"SubjectId\": \"example\", \"EffectiveFrom\": \"2026-04-15T12:00:00Z\", \"EffectiveTo\": \"2026-04-15T12:00:00Z\" } ], \"RowVersion\": \"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0\", \"Reason\": \"example\" }") { Headers = { ContentType = new MediaTypeHeaderValue("application/json") } }};using (var response = await client.SendAsync(request)){ response.EnsureSuccessStatusCode(); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body);}const url = 'https://example.com/api/workspace/entity/example/instances/example/assignments/example';const options = { method: 'PUT', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"OperationKey":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","Resource":{"ResourceModule":"example","ResourceKind":"example","ContextResourceId":"example","ResourceObjectId":"example"},"ResponsibilityKey":"example","Subjects":[{"SubjectType":"example","SubjectId":"example","EffectiveFrom":"2026-04-15T12:00:00Z","EffectiveTo":"2026-04-15T12:00:00Z"}],"RowVersion":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","Reason":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PUT \ --url https://example.com/api/workspace/entity/example/instances/example/assignments/example \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "OperationKey": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "Resource": { "ResourceModule": "example", "ResourceKind": "example", "ContextResourceId": "example", "ResourceObjectId": "example" }, "ResponsibilityKey": "example", "Subjects": [ { "SubjectType": "example", "SubjectId": "example", "EffectiveFrom": "2026-04-15T12:00:00Z", "EffectiveTo": "2026-04-15T12:00:00Z" } ], "RowVersion": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "Reason": "example" }'Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Entity definition identifier or normalized key.
Entity instance identifier.
Stable responsibility code. The route parameter name is retained by the frozen Sprint 2 route contract; it no longer identifies an Entity relation definition.
Query Parameters
Section titled “Query Parameters”Optional access token for clients that cannot set Authorization headers. Prefer Authorization: Bearer <token> when possible.
Request Body
Section titled “Request Body”Replay-safe complete responsibility timeline replacement.
Replaces the complete assignment timeline of one responsibility on one Entity record.
object
Caller-generated UUID reused only for an exact retry of the same logical replacement.
object
Stable key of the responsibility configured on the Entity definition.
The complete timeline after the replacement; current subjects that are left out are closed. Keep the
EffectiveFrom of subjects that stay: a new instant closes and reopens their assignment.
object
Expected responsibility state version of the record (ResourceRowVersion), which all responsibilities of the
record share; it is not the record’s row version. A record without any responsibility state (none of its
responsibilities was ever assigned, including at creation) reports System.Guid.Empty; pass that empty value
for its first assignment. A value other than the current one, including System.Guid.Empty once the record
has responsibility state, fails without changing the assignments.
Required audit reason of 1–1000 characters after trimming, stored with the assignment change.
Examplegenerated
{ "OperationKey": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "Resource": { "ResourceModule": "example", "ResourceKind": "example", "ContextResourceId": "example", "ResourceObjectId": "example" }, "ResponsibilityKey": "example", "Subjects": [ { "SubjectType": "example", "SubjectId": "example", "EffectiveFrom": "2026-04-15T12:00:00Z", "EffectiveTo": "2026-04-15T12:00:00Z" } ], "RowVersion": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "Reason": "example"}Replaces the complete assignment timeline of one responsibility on one Entity record.
object
Caller-generated UUID reused only for an exact retry of the same logical replacement.
object
Stable key of the responsibility configured on the Entity definition.
The complete timeline after the replacement; current subjects that are left out are closed. Keep the
EffectiveFrom of subjects that stay: a new instant closes and reopens their assignment.
object
Expected responsibility state version of the record (ResourceRowVersion), which all responsibilities of the
record share; it is not the record’s row version. A record without any responsibility state (none of its
responsibilities was ever assigned, including at creation) reports System.Guid.Empty; pass that empty value
for its first assignment. A value other than the current one, including System.Guid.Empty once the record
has responsibility state, fails without changing the assignments.
Required audit reason of 1–1000 characters after trimming, stored with the assignment change.
Examplegenerated
{ "OperationKey": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "Resource": { "ResourceModule": "example", "ResourceKind": "example", "ContextResourceId": "example", "ResourceObjectId": "example" }, "ResponsibilityKey": "example", "Subjects": [ { "SubjectType": "example", "SubjectId": "example", "EffectiveFrom": "2026-04-15T12:00:00Z", "EffectiveTo": "2026-04-15T12:00:00Z" } ], "RowVersion": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "Reason": "example"}Replaces the complete assignment timeline of one responsibility on one Entity record.
object
Caller-generated UUID reused only for an exact retry of the same logical replacement.
object
Stable key of the responsibility configured on the Entity definition.
The complete timeline after the replacement; current subjects that are left out are closed. Keep the
EffectiveFrom of subjects that stay: a new instant closes and reopens their assignment.
object
Expected responsibility state version of the record (ResourceRowVersion), which all responsibilities of the
record share; it is not the record’s row version. A record without any responsibility state (none of its
responsibilities was ever assigned, including at creation) reports System.Guid.Empty; pass that empty value
for its first assignment. A value other than the current one, including System.Guid.Empty once the record
has responsibility state, fails without changing the assignments.
Required audit reason of 1–1000 characters after trimming, stored with the assignment change.
Examplegenerated
{ "OperationKey": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "Resource": { "ResourceModule": "example", "ResourceKind": "example", "ContextResourceId": "example", "ResourceObjectId": "example" }, "ResponsibilityKey": "example", "Subjects": [ { "SubjectType": "example", "SubjectId": "example", "EffectiveFrom": "2026-04-15T12:00:00Z", "EffectiveTo": "2026-04-15T12:00:00Z" } ], "RowVersion": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "Reason": "example"}Responses
Section titled “Responses”OK
object
object
object
object
object
object
Example
{ "Errors": [ { "Type": 0, "Severity": 0 } ], "Warnings": [ { "Type": 0, "Severity": 0 } ]}Bad Request
object
object
object
object
object
object
Example
{ "Errors": [ { "Type": 0, "Severity": 0 } ], "Warnings": [ { "Type": 0, "Severity": 0 } ]}Forbidden
object
object
object
object
object
object
Example
{ "Errors": [ { "Type": 0, "Severity": 0 } ], "Warnings": [ { "Type": 0, "Severity": 0 } ]}Not Found
object
object
object
object
object
object
Example
{ "Errors": [ { "Type": 0, "Severity": 0 } ], "Warnings": [ { "Type": 0, "Severity": 0 } ]}Conflict
object
object
object
object
object
object
Example
{ "Errors": [ { "Type": 0, "Severity": 0 } ], "Warnings": [ { "Type": 0, "Severity": 0 } ]}