diff --git a/calendars.go b/calendars.go index 2eca99d..e7fc44e 100644 --- a/calendars.go +++ b/calendars.go @@ -9,7 +9,7 @@ type CalendarsService service // Delete calendar event. // -// Delete a calendar event by calendar ID and event ID. +// Delete one event of a personal calendar by event_id, or clear the calendar's own events off the days [start_at, end_at). Pass either event_id or both start_at and end_at. Cleared days fall back to the linked holiday calendars and the weekly workdays. // // API: POST /calendar/event/delete (calEventDelete). func (s *CalendarsService) CalEventDelete(ctx context.Context, req *CalEventIDRequest) (*Response, error) { @@ -18,7 +18,7 @@ func (s *CalendarsService) CalEventDelete(ctx context.Context, req *CalEventIDRe // List calendar events. // -// Return events for a personal calendar within a year/month/day scope. When month and day are both omitted the whole year is returned. +// Return events for a personal calendar within a year/month/day scope. When month and day are both omitted the whole year is returned. The response also carries days, the resolved state of every day in the scope. // // API: POST /calendar/event/list (calEventList). func (s *CalendarsService) CalEventList(ctx context.Context, req *CalEventListRequest) (*CalEventListResponse, *Response, error) { @@ -32,7 +32,7 @@ func (s *CalendarsService) CalEventList(ctx context.Context, req *CalEventListRe // Upsert calendar event. // -// Create or update a calendar event (holiday or workday override). Omit event_id to create a new event. +// Create or update an event the calendar owns (a day off or a working-day override) over the days [start_at, end_at). Omit event_id to create a new event; a given event_id must be an existing event of this calendar. The write clears the calendar's other own events off the same days: an event fully inside the range is deleted, one partly inside is shortened, and one spanning the range is split in two, so the latest write decides those days. end_at must be later than start_at. // // API: POST /calendar/event/upsert (calEventUpsert). func (s *CalendarsService) CalEventUpsert(ctx context.Context, req *CalEventUpsertRequest) (*CalEventUpsertResponse, *Response, error) { diff --git a/models_gen.go b/models_gen.go index 79653a7..76479c8 100644 --- a/models_gen.go +++ b/models_gen.go @@ -1646,12 +1646,26 @@ type BindWorkItemPostMortemRequest struct { PostMortemID string `json:"post_mortem_id" toon:"post_mortem_id"` } +// CalDay is generated from the Flashduty OpenAPI schema. +type CalDay struct { + // ID of the event that decided the day. Absent when no event covers the day. + EventID string `json:"event_id" toon:"event_id"` + // Whether the day is a day off. + IsOff bool `json:"is_off" toon:"is_off"` + // Layer that decided the day: custom = the calendar's own events, holiday = a linked holiday calendar, weekly = the weekly workdays. Absent when no event covers the day. + Layer string `json:"layer" toon:"layer"` +} + // CalEventIDRequest is generated from the Flashduty OpenAPI schema. type CalEventIDRequest struct { // Calendar ID; obtain it from `POST /calendar/list`. CalID string `json:"cal_id" toon:"cal_id"` - // Event ID. - EventID string `json:"event_id" toon:"event_id"` + // End date of the range to clear, in YYYY-MM-DD (exclusive). Must be later than start_at. + EndAt string `json:"end_at,omitempty" toon:"end_at,omitempty"` + // ID of the event to delete. Omit when clearing a date range. + EventID string `json:"event_id,omitempty" toon:"event_id,omitempty"` + // Start date of the range to clear, in YYYY-MM-DD. Pass together with end_at instead of event_id. + StartAt string `json:"start_at,omitempty" toon:"start_at,omitempty"` } // CalEventItem is generated from the Flashduty OpenAPI schema. @@ -1694,6 +1708,8 @@ type CalEventListRequest struct { // CalEventListResponse is generated from the Flashduty OpenAPI schema. type CalEventListResponse struct { + // Resolved state of every day in the requested scope, keyed by date (YYYY-MM-DD). The highest layer holding any event decides a day: the calendar's own events (custom), then the linked holiday calendars (holiday), then the weekly workdays (weekly). Inside one layer a working-day event beats a day off, so a make-up workday from a holiday calendar wins over holiday rest days. A day no event covers is a working day. + Days map[string]CalDay `json:"days" toon:"days"` // Calendar events sorted by start_at. Items []CalEventItem `json:"items" toon:"items"` // Total number of events returned. @@ -1714,8 +1730,8 @@ type CalEventUpsertRequest struct { IsOff bool `json:"is_off" toon:"is_off"` // Event start date in YYYY-MM-DD. StartAt string `json:"start_at" toon:"start_at"` - // Event summary. - Summary string `json:"summary" toon:"summary"` + // Event summary. Optional. + Summary string `json:"summary,omitempty" toon:"summary,omitempty"` } // CalEventUpsertResponse is generated from the Flashduty OpenAPI schema. @@ -2051,7 +2067,7 @@ type CommentIncidentRequest struct { type CompleteWorkItemRequest struct { // Client-generated idempotency key (max 128 characters; letters, digits, `_`, `-`, `.`, `:` only). IdempotencyKey string `json:"idempotency_key" toon:"idempotency_key"` - // Client-defined status to set (max 64 characters). There is no fixed state machine. + // Target status. Must be `done`; any other value is rejected. TargetStatus string `json:"target_status" toon:"target_status"` // Current item version for optimistic locking. Must match the stored version. Version int64 `json:"version" toon:"version"` @@ -2077,7 +2093,7 @@ type ContextResolvedItem struct { type ConvertWorkItemRequest struct { // Client-generated idempotency key (max 128 characters; letters, digits, `_`, `-`, `.`, `:` only). IdempotencyKey string `json:"idempotency_key" toon:"idempotency_key"` - // Optional client-defined status to set on the converted follow-up (max 64 characters). + // Optional status to set on the converted follow-up. One of `open`, `in_progress`, `done`, `cancelled`. TargetStatus *string `json:"target_status,omitempty" toon:"target_status,omitempty"` // Current item version for optimistic locking. Must match the stored version. Version int64 `json:"version" toon:"version"` @@ -2423,7 +2439,7 @@ type CreateWorkItemRequest struct { PostMortemID string `json:"post_mortem_id,omitempty" toon:"post_mortem_id,omitempty"` // Optional client-defined priority (max 64 characters). Priority string `json:"priority,omitempty" toon:"priority,omitempty"` - // Optional client-defined initial status (max 64 characters). + // Initial status. One of `open`, `in_progress`, `done`, `cancelled`; defaults to `open` when omitted or blank. Status string `json:"status,omitempty" toon:"status,omitempty"` // Item title (max 512 characters). Title string `json:"title" toon:"title"` @@ -6053,6 +6069,8 @@ type KnowledgeWarning struct { type LicenseListResponse struct { // People holding an active license. Items []LicensePersonItem `json:"items" toon:"items"` + // Whether the account has used up its license release quota for the current 30-day window. While `true`, releasing a seat fails with error code `NoLicense`. + ReleaseLimited bool `json:"release_limited" toon:"release_limited"` // Number of people holding an active license. Total int64 `json:"total" toon:"total"` } @@ -9802,8 +9820,10 @@ type ScheduleEmptyObject struct{} // ScheduleFixedTimeNotifyInfo is generated from the Flashduty OpenAPI schema. type ScheduleFixedTimeNotifyInfo struct { - // Notification cycle; only `day` is supported. + // Notification cycle: `day` sends every day; `week` sends on the weekdays listed in `days`; `month` sends on the day-of-month values listed in `days`. Cycle string `json:"cycle" toon:"cycle"` + // Days the notification fires on, read in the schedule's timezone. For `week`, weekday numbers 0-6 (0 = Sunday); for `month`, day-of-month numbers 1-31, and a month without that date is skipped. Required when `cycle` is `week` or `month`; ignored when `cycle` is `day`. + Days []int64 `json:"days,omitempty" toon:"days,omitempty"` // Time of day to send, format `HH:MM` (24-hour). Start string `json:"start" toon:"start"` } @@ -11731,7 +11751,7 @@ type UpdateWorkItemRequest struct { Description *string `json:"description,omitempty" toon:"description,omitempty"` // New client-defined priority (max 64 characters). Priority *string `json:"priority,omitempty" toon:"priority,omitempty"` - // New client-defined status (max 64 characters). + // New status. One of `open`, `in_progress`, `done`, `cancelled`. Status *string `json:"status,omitempty" toon:"status,omitempty"` // New title (max 512 characters). Title *string `json:"title,omitempty" toon:"title,omitempty"` diff --git a/openapi/openapi.en.json b/openapi/openapi.en.json index 1a797fb..83b94f7 100644 --- a/openapi/openapi.en.json +++ b/openapi/openapi.en.json @@ -3991,20 +3991,27 @@ "type": "object" }, "CalEventIDRequest": { - "description": "Calendar event delete request.", + "description": "Calendar event delete request. Provide event_id, or both start_at and end_at.", "properties": { "cal_id": { "description": "Calendar ID; obtain it from `POST /calendar/list`.", "type": "string" }, "event_id": { - "description": "Event ID.", + "description": "ID of the event to delete. Omit when clearing a date range.", + "type": "string" + }, + "start_at": { + "description": "Start date of the range to clear, in YYYY-MM-DD. Pass together with end_at instead of event_id.", + "type": "string" + }, + "end_at": { + "description": "End date of the range to clear, in YYYY-MM-DD (exclusive). Must be later than start_at.", "type": "string" } }, "required": [ - "cal_id", - "event_id" + "cal_id" ], "type": "object" }, @@ -4117,11 +4124,45 @@ "description": "Total number of events returned.", "format": "int64", "type": "integer" + }, + "days": { + "additionalProperties": { + "$ref": "#/components/schemas/CalDay" + }, + "description": "Resolved state of every day in the requested scope, keyed by date (YYYY-MM-DD). The highest layer holding any event decides a day: the calendar's own events (custom), then the linked holiday calendars (holiday), then the weekly workdays (weekly). Inside one layer a working-day event beats a day off, so a make-up workday from a holiday calendar wins over holiday rest days. A day no event covers is a working day.", + "type": "object" } }, "required": [ "items", - "total" + "total", + "days" + ], + "type": "object" + }, + "CalDay": { + "description": "Resolved state of one calendar day.", + "properties": { + "event_id": { + "description": "ID of the event that decided the day. Absent when no event covers the day.", + "type": "string" + }, + "is_off": { + "description": "Whether the day is a day off.", + "type": "boolean" + }, + "layer": { + "description": "Layer that decided the day: custom = the calendar's own events, holiday = a linked holiday calendar, weekly = the weekly workdays. Absent when no event covers the day.", + "enum": [ + "custom", + "holiday", + "weekly" + ], + "type": "string" + } + }, + "required": [ + "is_off" ], "type": "object" }, @@ -4155,15 +4196,13 @@ "type": "string" }, "summary": { - "description": "Event summary.", + "description": "Event summary. Optional.", "maxLength": 39, - "minLength": 1, "type": "string" } }, "required": [ "cal_id", - "summary", "start_at", "end_at", "is_off" @@ -4991,7 +5030,10 @@ "type": "string" }, "target_status": { - "description": "Client-defined status to set (max 64 characters). There is no fixed state machine.", + "description": "Target status. Must be `done`; any other value is rejected.", + "enum": [ + "done" + ], "maxLength": 64, "type": "string" }, @@ -5057,7 +5099,13 @@ "type": "string" }, "target_status": { - "description": "Optional client-defined status to set on the converted follow-up (max 64 characters).", + "description": "Optional status to set on the converted follow-up. One of `open`, `in_progress`, `done`, `cancelled`.", + "enum": [ + "open", + "in_progress", + "done", + "cancelled" + ], "maxLength": 64, "type": [ "string", @@ -6649,7 +6697,13 @@ "type": "string" }, "status": { - "description": "Optional client-defined initial status (max 64 characters).", + "description": "Initial status. One of `open`, `in_progress`, `done`, `cancelled`; defaults to `open` when omitted or blank.", + "enum": [ + "open", + "in_progress", + "done", + "cancelled" + ], "maxLength": 64, "type": "string" }, @@ -13348,6 +13402,10 @@ }, "type": "array" }, + "release_limited": { + "description": "Whether the account has used up its license release quota for the current 30-day window. While `true`, releasing a seat fails with error code `NoLicense`.", + "type": "boolean" + }, "total": { "description": "Number of people holding an active license.", "format": "int64", @@ -13356,7 +13414,8 @@ }, "required": [ "total", - "items" + "items", + "release_limited" ], "type": "object" }, @@ -22640,12 +22699,22 @@ "description": "Fixed-time notification config.", "properties": { "cycle": { - "description": "Notification cycle; only `day` is supported.", + "description": "Notification cycle: `day` sends every day; `week` sends on the weekdays listed in `days`; `month` sends on the day-of-month values listed in `days`.", "enum": [ - "day" + "day", + "week", + "month" ], "type": "string" }, + "days": { + "description": "Days the notification fires on, read in the schedule's timezone. For `week`, weekday numbers 0-6 (0 = Sunday); for `month`, day-of-month numbers 1-31, and a month without that date is skipped. Required when `cycle` is `week` or `month`; ignored when `cycle` is `day`.", + "items": { + "format": "int64", + "type": "integer" + }, + "type": "array" + }, "start": { "description": "Time of day to send, format `HH:MM` (24-hour).", "type": "string" @@ -27760,7 +27829,13 @@ ] }, "status": { - "description": "New client-defined status (max 64 characters).", + "description": "New status. One of `open`, `in_progress`, `done`, `cancelled`.", + "enum": [ + "open", + "in_progress", + "done", + "cancelled" + ], "maxLength": 64, "type": [ "string", @@ -34585,7 +34660,7 @@ }, "/calendar/event/delete": { "post": { - "description": "Delete a calendar event by calendar ID and event ID.", + "description": "Delete one event of a personal calendar by event_id, or clear the calendar's own events off the days [start_at, end_at). Pass either event_id or both start_at and end_at. Cleared days fall back to the linked holiday calendars and the weekly workdays.", "operationId": "calEventDelete", "requestBody": { "content": { @@ -34656,7 +34731,7 @@ }, "/calendar/event/list": { "post": { - "description": "Return events for a personal calendar within a year/month/day scope. When month and day are both omitted the whole year is returned.", + "description": "Return events for a personal calendar within a year/month/day scope. When month and day are both omitted the whole year is returned. The response also carries days, the resolved state of every day in the scope.", "operationId": "calEventList", "requestBody": { "content": { @@ -34707,7 +34782,27 @@ "updated_at": 0 } ], - "total": 11 + "total": 11, + "days": { + "2026-05-01": { + "is_off": true, + "event_id": "cale.KyG9XWTCU5CucbwukEVBQ4", + "layer": "custom" + }, + "2026-05-02": { + "is_off": true, + "event_id": "non_work.20260502", + "layer": "weekly" + }, + "2026-05-09": { + "is_off": false, + "event_id": "zh-cn.china.official.c234057c-fd90-380e-889c-3e3254dd5b01", + "layer": "holiday" + }, + "2026-05-11": { + "is_off": false + } + } }, "request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4" }, @@ -34758,7 +34853,7 @@ }, "/calendar/event/upsert": { "post": { - "description": "Create or update a calendar event (holiday or workday override). Omit event_id to create a new event.", + "description": "Create or update an event the calendar owns (a day off or a working-day override) over the days [start_at, end_at). Omit event_id to create a new event; a given event_id must be an existing event of this calendar. The write clears the calendar's other own events off the same days: an event fully inside the range is deleted, one partly inside is shortened, and one spanning the range is split in two, so the latest write decides those days. end_at must be later than start_at.", "operationId": "calEventUpsert", "requestBody": { "content": { @@ -48975,6 +49070,7 @@ "updated_by": 0 } ], + "release_limited": false, "total": 2 }, "request_id": "01J0D5Y31GY2TWAHRP3Q8K4M6N" diff --git a/openapi/openapi.zh.json b/openapi/openapi.zh.json index 30821d0..06f4462 100644 --- a/openapi/openapi.zh.json +++ b/openapi/openapi.zh.json @@ -3991,20 +3991,27 @@ "type": "object" }, "CalEventIDRequest": { - "description": "日历事件删除请求。", + "description": "日历事件删除请求。传入 event_id,或同时传入 start_at 和 end_at。", "properties": { "cal_id": { "description": "日历 ID,可通过 `POST /calendar/list` 获取。", "type": "string" }, "event_id": { - "description": "事件 ID。", + "description": "要删除的事件 ID。按日期范围清除时不传。", + "type": "string" + }, + "start_at": { + "description": "要清除的日期范围的开始日期,格式 YYYY-MM-DD。与 end_at 一起传入,代替 event_id。", + "type": "string" + }, + "end_at": { + "description": "要清除的日期范围的结束日期(不含),格式 YYYY-MM-DD。必须晚于 start_at。", "type": "string" } }, "required": [ - "cal_id", - "event_id" + "cal_id" ], "type": "object" }, @@ -4117,11 +4124,45 @@ "description": "返回的事件总数。", "format": "int64", "type": "integer" + }, + "days": { + "additionalProperties": { + "$ref": "#/components/schemas/CalDay" + }, + "description": "请求范围内每一天的判定结果,键为日期(YYYY-MM-DD)。每天由有事件的最高一层决定:日历自己的事件(custom)优先,其次是关联的节假日日历(holiday),最后是每周工作日设置(weekly)。同一层内工作日事件优先于休息日事件,因此节假日日历中的调休补班日会覆盖节假日休息日。没有任何事件覆盖的日期为工作日。", + "type": "object" } }, "required": [ "items", - "total" + "total", + "days" + ], + "type": "object" + }, + "CalDay": { + "description": "单个日期的判定结果。", + "properties": { + "event_id": { + "description": "决定该日期的事件 ID。没有事件覆盖该日期时不返回。", + "type": "string" + }, + "is_off": { + "description": "该日期是否为休息日。", + "type": "boolean" + }, + "layer": { + "description": "决定该日期的层:custom = 日历自己的事件,holiday = 关联的节假日日历,weekly = 每周工作日设置。没有事件覆盖该日期时不返回。", + "enum": [ + "custom", + "holiday", + "weekly" + ], + "type": "string" + } + }, + "required": [ + "is_off" ], "type": "object" }, @@ -4155,15 +4196,13 @@ "type": "string" }, "summary": { - "description": "事件摘要。", + "description": "事件摘要,选填。", "maxLength": 39, - "minLength": 1, "type": "string" } }, "required": [ "cal_id", - "summary", "start_at", "end_at", "is_off" @@ -4991,7 +5030,10 @@ "type": "string" }, "target_status": { - "description": "要设置的客户端自定义状态(最长 64 字符),没有固定状态机。", + "description": "要设置的目标状态,必须为 `done`,其他取值一律拒绝。", + "enum": [ + "done" + ], "maxLength": 64, "type": "string" }, @@ -5057,7 +5099,13 @@ "type": "string" }, "target_status": { - "description": "可选,设置在转化后后续行动上的客户端自定义状态(最长 64 字符)。", + "description": "可选,设置在转化后后续行动上的状态,取 `open`、`in_progress`、`done`、`cancelled` 之一。", + "enum": [ + "open", + "in_progress", + "done", + "cancelled" + ], "maxLength": 64, "type": [ "string", @@ -6649,7 +6697,13 @@ "type": "string" }, "status": { - "description": "可选的客户端自定义初始状态(最长 64 字符)。", + "description": "可选,客户端自定义的初始状态,取 `open`、`in_progress`、`done`、`cancelled` 之一;省略或为空时默认为 `open`。", + "enum": [ + "open", + "in_progress", + "done", + "cancelled" + ], "maxLength": 64, "type": "string" }, @@ -13348,6 +13402,10 @@ }, "type": "array" }, + "release_limited": { + "description": "当前 30 天窗口内的许可释放配额是否已用尽。为 `true` 时释放席位会返回错误码 `NoLicense`。", + "type": "boolean" + }, "total": { "description": "持有有效许可的人员数量。", "format": "int64", @@ -13356,7 +13414,8 @@ }, "required": [ "total", - "items" + "items", + "release_limited" ], "type": "object" }, @@ -22640,12 +22699,22 @@ "description": "固定时间通知配置。", "properties": { "cycle": { - "description": "通知周期,仅支持 `day`(按天)。", + "description": "通知周期:`day` 每天发送;`week` 在 `days` 列出的星期发送;`month` 在 `days` 列出的每月日期发送。", "enum": [ - "day" + "day", + "week", + "month" ], "type": "string" }, + "days": { + "description": "通知发送日,按值班表时区的墙钟计算。`week` 为星期几(0-6,0 表示周日);`month` 为每月第几日(1-31,当月没有该日则跳过)。`cycle` 为 `week` 或 `month` 时必填,为 `day` 时忽略。", + "items": { + "format": "int64", + "type": "integer" + }, + "type": "array" + }, "start": { "description": "发送时间,格式 `HH:MM`(24 小时制)。", "type": "string" @@ -27760,7 +27829,13 @@ ] }, "status": { - "description": "新的客户端自定义状态(最长 64 字符)。", + "description": "新的客户端自定义状态,取 `open`、`in_progress`、`done`、`cancelled` 之一。", + "enum": [ + "open", + "in_progress", + "done", + "cancelled" + ], "maxLength": 64, "type": [ "string", @@ -34585,7 +34660,7 @@ }, "/calendar/event/delete": { "post": { - "description": "根据日历 ID 与事件 ID 删除日历事件。", + "description": "按 event_id 删除个人日历的一个事件,或清除该日历自己在 [start_at, end_at) 这些日期上的事件。event_id 与 start_at/end_at 二选一,start_at 和 end_at 须同时传入。清除后这些日期回到关联节假日日历和每周工作日设置的判定。", "operationId": "calEventDelete", "requestBody": { "content": { @@ -34656,7 +34731,7 @@ }, "/calendar/event/list": { "post": { - "description": "返回个人日历在指定年/月/日范围内的事件列表。未同时传入 month 和 day 时返回整年数据。", + "description": "返回个人日历在指定年/月/日范围内的事件列表。未同时传入 month 和 day 时返回整年数据。响应中的 days 给出范围内每一天的判定结果。", "operationId": "calEventList", "requestBody": { "content": { @@ -34707,7 +34782,27 @@ "updated_at": 0 } ], - "total": 11 + "total": 11, + "days": { + "2026-05-01": { + "is_off": true, + "event_id": "cale.KyG9XWTCU5CucbwukEVBQ4", + "layer": "custom" + }, + "2026-05-02": { + "is_off": true, + "event_id": "non_work.20260502", + "layer": "weekly" + }, + "2026-05-09": { + "is_off": false, + "event_id": "zh-cn.china.official.c234057c-fd90-380e-889c-3e3254dd5b01", + "layer": "holiday" + }, + "2026-05-11": { + "is_off": false + } + } }, "request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4" }, @@ -34758,7 +34853,7 @@ }, "/calendar/event/upsert": { "post": { - "description": "创建或更新日历事件(节假日或工作日覆盖)。不传 event_id 时会创建新事件。", + "description": "创建或更新日历自己的事件(休息日或工作日覆盖),作用于 [start_at, end_at) 这些日期。不传 event_id 时创建新事件;传入的 event_id 必须是该日历已有的事件。写入时会把该日历自己的其他事件从这些日期上移除:完全落在范围内的事件被删除,部分重叠的被截短,跨越整个范围的被拆成两段,因此这些日期以最后一次写入为准。end_at 必须晚于 start_at。", "operationId": "calEventUpsert", "requestBody": { "content": { @@ -48975,6 +49070,7 @@ "updated_by": 0 } ], + "release_limited": false, "total": 2 }, "request_id": "01J0D5Y31GY2TWAHRP3Q8K4M6N" @@ -64386,7 +64482,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "成功", "content": { "application/json": { "schema": { @@ -64664,7 +64760,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "成功", "content": { "application/json": { "schema": { @@ -64851,7 +64947,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "成功", "content": { "application/json": { "schema": { @@ -65133,7 +65229,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "成功", "content": { "application/json": { "schema": { @@ -65322,7 +65418,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "成功", "content": { "application/json": { "schema": { @@ -65399,7 +65495,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "成功", "content": { "application/json": { "schema": { @@ -65585,7 +65681,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "成功", "content": { "application/json": { "schema": { @@ -65690,7 +65786,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "成功", "content": { "application/json": { "schema": { @@ -65794,7 +65890,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "成功", "content": { "application/json": { "schema": { @@ -65894,7 +65990,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "成功", "content": { "application/json": { "schema": { @@ -65984,7 +66080,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "成功", "content": { "application/json": { "schema": { @@ -66164,7 +66260,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "成功", "content": { "application/json": { "schema": { @@ -66307,7 +66403,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "成功", "content": { "application/json": { "schema": { @@ -66428,7 +66524,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "成功", "content": { "application/json": { "schema": { @@ -66577,7 +66673,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "成功", "content": { "application/json": { "schema": { @@ -66703,7 +66799,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "成功", "content": { "application/json": { "schema": { @@ -66864,7 +66960,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "成功", "content": { "application/json": { "schema": { @@ -67089,7 +67185,7 @@ }, "responses": { "200": { - "description": "Success", + "description": "成功", "content": { "application/json": { "schema": {