Preview cover ending
using System.Net.Http.Headers;var client = new HttpClient();var request = new HttpRequestMessage{ Method = HttpMethod.Post, RequestUri = new Uri("https://api.roundrobinbot.eu/v1/rotations/example/cover-requests/example/end/preview"), Headers = { { "Authorization", "Bearer <token>" }, }, Content = new StringContent("{ \"operationId\": \"example\", \"expectedRevision\": 1, \"acknowledgedConflictIds\": [ \"example\" ] }") { Headers = { ContentType = new MediaTypeHeaderValue("application/json-patch+json") } }};using (var response = await client.SendAsync(request)){ response.EnsureSuccessStatusCode(); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body);}package main
import ( "fmt" "strings" "net/http" "io")
func main() {
url := "https://api.roundrobinbot.eu/v1/rotations/example/cover-requests/example/end/preview"
payload := strings.NewReader("{ \"operationId\": \"example\", \"expectedRevision\": 1, \"acknowledgedConflictIds\": [ \"example\" ] }")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>") req.Header.Add("Content-Type", "application/json-patch+json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close() body, _ := io.ReadAll(res.Body)
fmt.Println(res) fmt.Println(string(body))
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json-patch+json");RequestBody body = RequestBody.create(mediaType, "{ \"operationId\": \"example\", \"expectedRevision\": 1, \"acknowledgedConflictIds\": [ \"example\" ] }");Request request = new Request.Builder() .url("https://api.roundrobinbot.eu/v1/rotations/example/cover-requests/example/end/preview") .post(body) .addHeader("Authorization", "Bearer <token>") .addHeader("Content-Type", "application/json-patch+json") .build();
Response response = client.newCall(request).execute();import axios from 'axios';
const options = { method: 'POST', url: 'https://api.roundrobinbot.eu/v1/rotations/example/cover-requests/example/end/preview', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json-patch+json'}, data: '{ "operationId": "example", "expectedRevision": 1, "acknowledgedConflictIds": [ "example" ] }'};
try { const { data } = await axios.request(options); console.log(data);} catch (error) { console.error(error);}const url = 'https://api.roundrobinbot.eu/v1/rotations/example/cover-requests/example/end/preview';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json-patch+json'}, body: '{ "operationId": "example", "expectedRevision": 1, "acknowledgedConflictIds": [ "example" ] }'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.roundrobinbot.eu/v1/rotations/example/cover-requests/example/end/preview \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json-patch+json' \ --data '{ "operationId": "example", "expectedRevision": 1, "acknowledgedConflictIds": [ "example" ] }'Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Request Bodyrequired
Section titled “Request Bodyrequired”Revision and conflict acknowledgments for a cover response.
object
Caller-generated mutation identity, at most 128 characters. Reuse only for an identical retry.
Request revision the caller reviewed.
Exact current conflict identifiers acknowledged by the accepting recipient.
Examplegenerated
{ "operationId": "example", "expectedRevision": 1, "acknowledgedConflictIds": [ "example" ]}Revision and conflict acknowledgments for a cover response.
object
Caller-generated mutation identity, at most 128 characters. Reuse only for an identical retry.
Request revision the caller reviewed.
Exact current conflict identifiers acknowledged by the accepting recipient.
Examplegenerated
{ "operationId": "example", "expectedRevision": 1, "acknowledgedConflictIds": [ "example" ]}Revision and conflict acknowledgments for a cover response.
object
Caller-generated mutation identity, at most 128 characters. Reuse only for an identical retry.
Request revision the caller reviewed.
Exact current conflict identifiers acknowledged by the accepting recipient.
Examplegenerated
{ "operationId": "example", "expectedRevision": 1, "acknowledgedConflictIds": [ "example" ]}Revision and conflict acknowledgments for a cover response.
object
Caller-generated mutation identity, at most 128 characters. Reuse only for an identical retry.
Request revision the caller reviewed.
Exact current conflict identifiers acknowledged by the accepting recipient.
Examplegenerated
{ "operationId": "example", "expectedRevision": 1, "acknowledgedConflictIds": [ "example" ]}Responses
Section titled “Responses”OK
object
Effective duty during part of an assignment interval.
object
The inclusive UTC start.
The exclusive UTC end.
Slack user identifiers of the effective holders. An empty list means no assignee only when resolved is true.
Whether the holders or absence of duty are known for this interval.
Examplegenerated
{ "asOfUtc": "2026-04-15T12:00:00Z", "from": "2026-04-15T12:00:00Z", "to": "2026-04-15T12:00:00Z", "complete": true, "segments": [ { "from": "2026-04-15T12:00:00Z", "to": "2026-04-15T12:00:00Z", "userIds": [ "example" ], "resolved": true } ], "requestRevision": 1}