Alerting: Update mute timings provisioning API to support optimistic locking (#88731)
* add version to time-interval models * set time interval fingerprint as version * update to check provided version * delete to check if version is provided in query parameter 'version' * update integration tests * update specs
This commit is contained in:
@@ -70,6 +70,7 @@ import (
|
||||
// Responses:
|
||||
// 202: MuteTimeInterval
|
||||
// 400: ValidationError
|
||||
// 409: GenericPublicError
|
||||
|
||||
// swagger:route DELETE /v1/provisioning/mute-timings/{name} provisioning stable RouteDeleteMuteTiming
|
||||
//
|
||||
@@ -84,20 +85,31 @@ import (
|
||||
// swagger:model
|
||||
type MuteTimings []MuteTimeInterval
|
||||
|
||||
// swagger:parameters RouteGetTemplate RouteGetMuteTiming RoutePutMuteTiming stable RouteDeleteMuteTiming RouteExportMuteTiming
|
||||
// swagger:parameters RouteGetTemplate RouteGetMuteTiming RoutePutMuteTiming stable RouteExportMuteTiming
|
||||
type RouteGetMuteTimingParam struct {
|
||||
// Mute timing name
|
||||
// in:path
|
||||
Name string `json:"name"`
|
||||
}
|
||||
|
||||
// swagger:parameters stable RouteDeleteMuteTiming
|
||||
type RouteDeleteMuteTimingParam struct {
|
||||
// Mute timing name
|
||||
// in:path
|
||||
Name string `json:"name"`
|
||||
|
||||
// Version of mute timing to use for optimistic concurrency. Leave empty to disable validation
|
||||
// in:query
|
||||
Version string `json:"version"`
|
||||
}
|
||||
|
||||
// swagger:parameters RoutePostMuteTiming RoutePutMuteTiming
|
||||
type MuteTimingPayload struct {
|
||||
// in:body
|
||||
Body MuteTimeInterval
|
||||
}
|
||||
|
||||
// swagger:parameters RoutePostMuteTiming RoutePutMuteTiming
|
||||
// swagger:parameters RoutePostMuteTiming RoutePutMuteTiming RouteDeleteMuteTiming
|
||||
type MuteTimingHeaders struct {
|
||||
// in:header
|
||||
XDisableProvenance string `json:"X-Disable-Provenance"`
|
||||
@@ -106,6 +118,7 @@ type MuteTimingHeaders struct {
|
||||
// swagger:model
|
||||
type MuteTimeInterval struct {
|
||||
config.MuteTimeInterval `json:",inline" yaml:",inline"`
|
||||
Version string `json:"version,omitempty"`
|
||||
Provenance Provenance `json:"provenance,omitempty"`
|
||||
}
|
||||
|
||||
|
||||
@@ -39,6 +39,7 @@ type GetIntervalsByNameResponse struct {
|
||||
// swagger:model
|
||||
type PostableTimeIntervals struct {
|
||||
Name string `json:"name" hcl:"name"`
|
||||
Version string `json:"version,omitempty"`
|
||||
TimeIntervals []TimeIntervalItem `json:"time_intervals" hcl:"intervals,block"`
|
||||
}
|
||||
|
||||
@@ -60,5 +61,6 @@ type TimeIntervalTimeRange struct {
|
||||
type GettableTimeIntervals struct {
|
||||
Name string `json:"name" hcl:"name"`
|
||||
TimeIntervals []TimeIntervalItem `json:"time_intervals" hcl:"intervals,block"`
|
||||
Version string `json:"version,omitempty"`
|
||||
Provenance Provenance `json:"provenance,omitempty"`
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user