33 lines
1.2 KiB
Go
33 lines
1.2 KiB
Go
package orbit
|
|
|
|
import (
|
|
"context"
|
|
"errors"
|
|
)
|
|
|
|
// RetireResourceRequest 永久退役已结清的资源;保留原键/版本用于未知回执重报。
|
|
type RetireResourceRequest struct {
|
|
ExpectedRevision uint64 `json:"expected_revision,string"` // ExpectedRevision 当前配置版本。
|
|
Reason string `json:"reason"` // Reason 管理原因,写入服务端审计。
|
|
}
|
|
|
|
// RetireQueue 拒绝新工作并保留历史;未结清资源返回 RESOURCE_BUSY。
|
|
func (c *Client) RetireQueue(ctx context.Context, id, key string, in RetireResourceRequest) (CreateQueueResult, error) {
|
|
var out CreateQueueResult
|
|
if !validID(id) {
|
|
return out, errors.New("invalid queue id")
|
|
}
|
|
err := c.call(ctx, "POST", "/v1/queues/"+id+":retire", key, in, &out)
|
|
return out, err
|
|
}
|
|
|
|
// RetireSubscription 只在结果全部确认后退役,释放活动名额;不可重新启用。
|
|
func (c *Client) RetireSubscription(ctx context.Context, id, key string, in RetireResourceRequest) (SubscriptionResult, error) {
|
|
var out SubscriptionResult
|
|
if !validID(id) {
|
|
return out, errors.New("invalid subscription id")
|
|
}
|
|
err := c.call(ctx, "POST", "/v1/subscriptions/"+id+":retire", key, in, &out)
|
|
return out, err
|
|
}
|