mirror of
https://github.com/hanzoai/team.git
synced 2026-09-30 01:57:35 +00:00
* Add weekly recurring scheduled posts. Extend scheduled posts so users can schedule weekly repeats and keep the series healthy across sends, reschedules, and UI updates instead of falling back to one-shot behavior. Made-with: Cursor * Add Playwright coverage for recurring scheduled posts. Cover weekly recurring scheduled messages in the scheduled-messages spec so the recurring UI and reschedule flow stay protected without adding a separate test surface. Made-with: Cursor * Fix recurring scheduled post CI failures. Resolve the initial lint and formatting issues and renumber the new scheduled-post migration so it no longer collides with master during Postgres-backed test setup. Made-with: Cursor * Sync recurring scheduled post translation files. Regenerate the affected English translation catalogs so the recurring scheduled post strings match the source extraction order expected by CI. Made-with: Cursor * Fix recurring scheduled post review follow-ups. Preserve overdue cleanup behavior during weekly catch-up, defer delete websocket events until deletion succeeds, and address the remaining migration and UI review nits. Made-with: Cursor * Address recurring scheduled post review feedback Made-with: Cursor * Fix recurring scheduled post CI checks Made-with: Cursor * Make pending scheduled post keyset cursor index-scannable EXPLAIN ANALYZE on a 5M-row ScheduledPosts table showed the pure OR-form cursor forced Postgres to scan idx_scheduledposts_pending_scheduled_at_id from the top on every page (~383ms/page, ~2M rows filtered). Keeping the ScheduledAt <= beforeTime bound outside the tie-break restores the index boundary (~0.12ms/page). Adds storetest coverage for cursor pagination. Co-authored-by: nick.misasi <[email protected]> * Address code quality review findings for recurring scheduled posts Server: - Replace silent-fallback AdvanceWeeklyScheduledNextOccurrence with error-returning ScheduledPost.ComputeNextScheduledAt; a recurring post whose timezone fails to load is now routed through the failed-post path instead of being reposted every job run or silently deleted - Add ScheduledPost.IsRecurring and partition batches in processScheduledPostBatch; advance/delete now run independently so a store failure in one path can't cause reposts in the other - Drop dead generality in UpdateRecurringScheduledPosts (only ScheduledAt varies per row; ErrorCode/ProcessedAt are constants) - Simplify redundant repeat-type condition in GetPendingScheduledPosts Webapp: - Add shared isRecurringScheduledPost helper, replacing six scattered repeat_type === 'weekly' literals - Recurrence timezone is now simply the scheduler's current timezone; removes initialRepeatTimezone/effectiveTimezone plumbing and the modal-label/picker timezone mismatch - Single enforcement point for hiding send-now on recurring posts - Use canonical getTeamIdByChannelId at both SCHEDULED_POST_UPDATED dispatch sites; rewrite errorsByTeamId update case as remove-then-add and add reducer tests Co-authored-by: nick.misasi <[email protected]> * Simplify recurring scheduled post code per review - End a recurring series when its channel no longer exists instead of advancing it forever (matches the one-shot channel-not-found handling) - Collapse the errorsByTeamId SCHEDULED_POST_UPDATED case into the identical SINGLE_SCHEDULED_POST_RECEIVED case (a scheduled post's team can't change) and combine duplicate byId cases; preserves state references on no-op updates - Drop no-op timezone conversions in ComputeNextScheduledAt - Remove redundant checkbox aria-label (label htmlFor already names it) - Schedule new job tests in the past instead of sleeping a real second - Remove redundant test assignment and e2e positional boolean Co-authored-by: nick.misasi <[email protected]> * Remove slop from recurring scheduled post changes - Drop the business-rule CHECK constraint from the recurrence migration; no other migration enforces model-layer validation in the database, and BaseIsValid plus the job's failure handling already own it - Fold the standalone repeat-validation test file into the existing TestScheduledPostBaseIsValid, matching its conventions - Revert unrelated benchmark modernization in utils_test.go - Drop an unneeded cast, unused fixture fields, and naming/assertion inconsistencies in tests Co-authored-by: nick.misasi <[email protected]> * Regenerate ScheduledPostStore mock with mockery ordering Co-authored-by: nick.misasi <[email protected]> * Address CodeRabbit review feedback - Reject the host-dependent 'Local' value for RepeatTimezone; recurring schedules need a fixed zone (UTC or IANA name) - Hide reschedule for deactivated DMs, matching send-now eligibility Co-authored-by: nick.misasi <[email protected]> * Resolve scheduled post team bucket from existing state when channel is unloaded An admin can reschedule before fetchMissingChannels resolves, in which case deriving the team from the channel returns undefined and the update was misfiled under directChannels. getScheduledPostTeamId falls back to the byTeamId bucket that already holds the post. Co-authored-by: nick.misasi <[email protected]> * Retrigger CI after transient enterprise npm network failure Co-authored-by: nick.misasi <[email protected]> * Clear hover/focus before asserting scheduled post header details in e2e The drafts panel hides its timestamp/tag info section while hovered or focus-within; after the reschedule modal closes, focus returns to the row and the 'Repeats weekly' tag assertion saw a hidden element. Co-authored-by: nick.misasi <[email protected]> * Move recurrence columns into baseColumns and dispatch ComputeNextScheduledAt on repeat type Co-authored-by: nick.misasi <[email protected]> * Preserve recurrence when scheduled post updates omit repeat fields Co-authored-by: nick.misasi <[email protected]> * Disallow file attachments on recurring scheduled posts Co-authored-by: nick.misasi <[email protected]> * Stop pinning the channel indicator for recurring-only scheduled posts Co-authored-by: nick.misasi <[email protected]> * Re-home nullable-Type comment onto baseColumns Co-authored-by: nick.misasi <[email protected]> * Gate recurring scheduled posts behind a default-off feature flag Co-authored-by: nick.misasi <[email protected]> * Move presence-preservation rationale to the copy site Co-authored-by: nick.misasi <[email protected]> * Extract draftHasAttachments helper and require allowRecurring at single-caller layers Co-authored-by: nick.misasi <[email protected]> * Return null from the indicator selector when nothing should show Co-authored-by: nick.misasi <[email protected]> * Gate only recurrence transitions and preserve existing series in the modal Co-authored-by: nick.misasi <[email protected]> * Avoid err shadowing in scheduled post update handler Co-authored-by: nick.misasi <[email protected]> * Disable the repeat weekly checkbox with a tooltip when the message has attachments Co-authored-by: nick.misasi <[email protected]> * Return an explicit disposition from postScheduledPost The batch loop inferred 'channel permanently gone' from the one return path with a nil error and an error code set - an invariant a future change could silently break, deleting recurring series by accident. postScheduledPost now returns posted/failed/unsendable explicitly, the switch refuses to delete on an unhandled disposition, and a test pins that both recurring and one-shot posts in a nonexistent channel are permanently deleted. Co-authored-by: nick.misasi <[email protected]> * Fix Repeat weekly attachments tooltip centering on the modal row (#37927) Shrink-wrap the repeat checkbox row so WithTooltip anchors to the control/label instead of the full modal body width. --------- Co-authored-by: Hanzo Dev <[email protected]>
5595 lines
171 KiB
YAML
5595 lines
171 KiB
YAML
components:
|
|
securitySchemes:
|
|
bearerAuth:
|
|
type: http
|
|
scheme: bearer
|
|
responses:
|
|
Forbidden:
|
|
description: Do not have appropriate permissions
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AppError"
|
|
Unauthorized:
|
|
description: No access token provided
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AppError"
|
|
BadRequest:
|
|
description: Invalid or missing parameters in URL or request body
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AppError"
|
|
NotFound:
|
|
description: Resource not found
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AppError"
|
|
Conflict:
|
|
description: Request conflicts with current state of the resource
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AppError"
|
|
TooLarge:
|
|
description: Content too large
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AppError"
|
|
NotImplemented:
|
|
description: Feature is disabled
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AppError"
|
|
TooManyRequests:
|
|
description: Too many requests
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AppError"
|
|
InternalServerError:
|
|
description: Something went wrong with the server
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AppError"
|
|
BadGateway:
|
|
description: Bad gateway
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/AppError"
|
|
schemas:
|
|
User:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
create_at:
|
|
description: The time in milliseconds a user was created
|
|
type: integer
|
|
format: int64
|
|
update_at:
|
|
description: The time in milliseconds a user was last updated
|
|
type: integer
|
|
format: int64
|
|
delete_at:
|
|
description: The time in milliseconds a user was deleted
|
|
type: integer
|
|
format: int64
|
|
username:
|
|
type: string
|
|
first_name:
|
|
type: string
|
|
last_name:
|
|
type: string
|
|
nickname:
|
|
type: string
|
|
email:
|
|
type: string
|
|
email_verified:
|
|
type: boolean
|
|
auth_service:
|
|
type: string
|
|
roles:
|
|
type: string
|
|
locale:
|
|
type: string
|
|
notify_props:
|
|
$ref: "#/components/schemas/UserNotifyProps"
|
|
props:
|
|
type: object
|
|
last_password_update:
|
|
type: integer
|
|
format: int64
|
|
last_picture_update:
|
|
type: integer
|
|
format: int64
|
|
failed_attempts:
|
|
type: integer
|
|
mfa_active:
|
|
type: boolean
|
|
timezone:
|
|
$ref: "#/components/schemas/Timezone"
|
|
terms_of_service_id:
|
|
description: ID of accepted terms of service, if any. This field is not present
|
|
if empty.
|
|
type: string
|
|
terms_of_service_create_at:
|
|
description: The time in milliseconds the user accepted the terms of service
|
|
type: integer
|
|
format: int64
|
|
UsersStats:
|
|
type: object
|
|
properties:
|
|
total_users_count:
|
|
type: integer
|
|
KnownUsers:
|
|
type: array
|
|
properties:
|
|
items:
|
|
type: string
|
|
Team:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
create_at:
|
|
description: The time in milliseconds a team was created
|
|
type: integer
|
|
format: int64
|
|
update_at:
|
|
description: The time in milliseconds a team was last updated
|
|
type: integer
|
|
format: int64
|
|
delete_at:
|
|
description: The time in milliseconds a team was deleted
|
|
type: integer
|
|
format: int64
|
|
display_name:
|
|
type: string
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
email:
|
|
type: string
|
|
type:
|
|
type: string
|
|
allowed_domains:
|
|
type: string
|
|
invite_id:
|
|
type: string
|
|
allow_open_invite:
|
|
type: boolean
|
|
policy_id:
|
|
type: string
|
|
description: >-
|
|
The data retention policy to which this team has been assigned. If no such policy exists,
|
|
or the caller does not have the `sysconsole_read_compliance_data_retention` permission,
|
|
this field will be null.
|
|
TeamStats:
|
|
type: object
|
|
properties:
|
|
team_id:
|
|
type: string
|
|
total_member_count:
|
|
type: integer
|
|
TeamExists:
|
|
type: object
|
|
properties:
|
|
exists:
|
|
type: boolean
|
|
Channel:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
create_at:
|
|
description: The time in milliseconds a channel was created
|
|
type: integer
|
|
format: int64
|
|
update_at:
|
|
description: The time in milliseconds a channel was last updated
|
|
type: integer
|
|
format: int64
|
|
delete_at:
|
|
description: The time in milliseconds a channel was deleted
|
|
type: integer
|
|
format: int64
|
|
team_id:
|
|
type: string
|
|
type:
|
|
type: string
|
|
display_name:
|
|
type: string
|
|
name:
|
|
type: string
|
|
header:
|
|
type: string
|
|
purpose:
|
|
type: string
|
|
last_post_at:
|
|
description: The time in milliseconds of the last post of a channel
|
|
type: integer
|
|
format: int64
|
|
total_msg_count:
|
|
type: integer
|
|
extra_update_at:
|
|
description: Deprecated in Mattermost 5.0 release
|
|
type: integer
|
|
format: int64
|
|
creator_id:
|
|
type: string
|
|
ChannelStats:
|
|
type: object
|
|
properties:
|
|
channel_id:
|
|
type: string
|
|
member_count:
|
|
type: integer
|
|
ChannelMember:
|
|
type: object
|
|
properties:
|
|
channel_id:
|
|
type: string
|
|
user_id:
|
|
type: string
|
|
roles:
|
|
type: string
|
|
last_viewed_at:
|
|
description: The time in milliseconds the channel was last viewed by the user
|
|
type: integer
|
|
format: int64
|
|
msg_count:
|
|
type: integer
|
|
mention_count:
|
|
type: integer
|
|
notify_props:
|
|
$ref: "#/components/schemas/ChannelNotifyProps"
|
|
last_update_at:
|
|
description: The time in milliseconds the channel member was last updated
|
|
type: integer
|
|
format: int64
|
|
ChannelMemberWithTeamData:
|
|
allOf:
|
|
- $ref: "#/components/schemas/ChannelMember"
|
|
- type: object
|
|
properties:
|
|
team_display_name:
|
|
type: string
|
|
description: The display name of the team to which this channel belongs.
|
|
team_name:
|
|
type: string
|
|
description: The name of the team to which this channel belongs.
|
|
team_update_at:
|
|
type: integer
|
|
description: The time at which the team to which this channel belongs was last updated.
|
|
ChannelData:
|
|
type: object
|
|
properties:
|
|
channel:
|
|
$ref: "#/components/schemas/Channel"
|
|
member:
|
|
$ref: "#/components/schemas/ChannelMember"
|
|
ChannelWithTeamData:
|
|
allOf:
|
|
- $ref: "#/components/schemas/Channel"
|
|
- type: object
|
|
properties:
|
|
team_display_name:
|
|
type: string
|
|
description: The display name of the team to which this channel belongs.
|
|
team_name:
|
|
type: string
|
|
description: The name of the team to which this channel belongs.
|
|
team_update_at:
|
|
type: integer
|
|
description: The time at which the team to which this channel belongs was last updated.
|
|
policy_id:
|
|
type: string
|
|
description: >-
|
|
The data retention policy to which this team has been assigned. If no such policy exists,
|
|
or the caller does not have the `sysconsole_read_compliance_data_retention` permission, this field
|
|
will be null.
|
|
ChannelListWithTeamData:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/ChannelWithTeamData"
|
|
ChannelBookmark:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
create_at:
|
|
description: The time in milliseconds a channel bookmark was created
|
|
type: integer
|
|
format: int64
|
|
update_at:
|
|
description: The time in milliseconds a channel bookmark was last updated
|
|
type: integer
|
|
format: int64
|
|
delete_at:
|
|
description: The time in milliseconds a channel bookmark was deleted
|
|
type: integer
|
|
format: int64
|
|
channel_id:
|
|
type: string
|
|
owner_id:
|
|
description: The ID of the user that the channel bookmark belongs to
|
|
type: string
|
|
file_id:
|
|
description: The ID of the file associated with the channel bookmark
|
|
type: string
|
|
display_name:
|
|
type: string
|
|
sort_order:
|
|
description: The order of the channel bookmark
|
|
type: integer
|
|
format: int64
|
|
link_url:
|
|
description: The URL associated with the channel bookmark
|
|
type: string
|
|
image_url:
|
|
description: The URL of the image associated with the channel bookmark
|
|
type: string
|
|
emoji:
|
|
type: string
|
|
type:
|
|
type: string
|
|
enum: [link, file, board]
|
|
target_id:
|
|
type: string
|
|
description: Mattermost 26-character ID of a referenced Mattermost entity when the bookmark includes one.
|
|
original_id:
|
|
description: The ID of the original channel bookmark
|
|
type: string
|
|
parent_id:
|
|
description: The ID of the parent channel bookmark
|
|
type: string
|
|
ChannelBookmarkWithFileInfo:
|
|
allOf:
|
|
- $ref: "#/components/schemas/ChannelBookmark"
|
|
- type: object
|
|
properties:
|
|
file:
|
|
$ref: "#/components/schemas/FileInfo"
|
|
UpdateChannelBookmarkResponse:
|
|
type: object
|
|
properties:
|
|
updated:
|
|
$ref: "#/components/schemas/ChannelBookmarkWithFileInfo"
|
|
deleted:
|
|
$ref: "#/components/schemas/ChannelBookmarkWithFileInfo"
|
|
View:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
description: The unique identifier of the view
|
|
channel_id:
|
|
type: string
|
|
description: The ID of the channel this view belongs to
|
|
type:
|
|
type: string
|
|
enum: [kanban]
|
|
creator_id:
|
|
type: string
|
|
description: The ID of the user who created this view
|
|
title:
|
|
type: string
|
|
description: The title of the view
|
|
description:
|
|
type: string
|
|
description: The description of the view
|
|
sort_order:
|
|
type: integer
|
|
description: The display order of the view within the channel
|
|
props:
|
|
type: object
|
|
description: Arbitrary key-value properties for the view
|
|
additionalProperties: true
|
|
create_at:
|
|
description: The time in milliseconds the view was created
|
|
type: integer
|
|
format: int64
|
|
update_at:
|
|
description: The time in milliseconds the view was last updated
|
|
type: integer
|
|
format: int64
|
|
delete_at:
|
|
description: The time in milliseconds the view was deleted
|
|
type: integer
|
|
format: int64
|
|
ViewPatch:
|
|
type: object
|
|
description: Fields that can be updated on a view via PATCH
|
|
properties:
|
|
title:
|
|
type: string
|
|
description:
|
|
type: string
|
|
sort_order:
|
|
type: integer
|
|
props:
|
|
type: object
|
|
description: Arbitrary key-value properties for the view
|
|
additionalProperties: true
|
|
ViewsWithCount:
|
|
type: object
|
|
description: Paginated list of views with total count
|
|
properties:
|
|
views:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/View"
|
|
total_count:
|
|
type: integer
|
|
format: int64
|
|
description: Total number of views matching the query (ignoring pagination)
|
|
Post:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
create_at:
|
|
description: The time in milliseconds a post was created
|
|
type: integer
|
|
format: int64
|
|
update_at:
|
|
description: The time in milliseconds a post was last updated
|
|
type: integer
|
|
format: int64
|
|
delete_at:
|
|
description: The time in milliseconds a post was deleted
|
|
type: integer
|
|
format: int64
|
|
edit_at:
|
|
type: integer
|
|
format: int64
|
|
user_id:
|
|
type: string
|
|
channel_id:
|
|
type: string
|
|
root_id:
|
|
type: string
|
|
original_id:
|
|
type: string
|
|
message:
|
|
type: string
|
|
type:
|
|
type: string
|
|
props:
|
|
type: object
|
|
hashtag:
|
|
type: string
|
|
file_ids:
|
|
type: array
|
|
items:
|
|
type: string
|
|
pending_post_id:
|
|
type: string
|
|
metadata:
|
|
$ref: "#/components/schemas/PostMetadata"
|
|
PostPriority:
|
|
type: object
|
|
description: Priority metadata associated with a post or draft.
|
|
properties:
|
|
priority:
|
|
type: string
|
|
description: The priority label of a post, either empty, important, or urgent.
|
|
enum:
|
|
- ""
|
|
- important
|
|
- urgent
|
|
requested_ack:
|
|
type: boolean
|
|
description: Whether the post author has requested acknowledgements.
|
|
persistent_notifications:
|
|
type: boolean
|
|
description: Whether persistent notifications are enabled for the post.
|
|
PostInfo:
|
|
type: object
|
|
description: Additional team and channel context metadata for a post.
|
|
properties:
|
|
channel_id:
|
|
type: string
|
|
description: The ID of the channel containing the post.
|
|
channel_type:
|
|
type: string
|
|
description: The type of the channel containing the post.
|
|
channel_display_name:
|
|
type: string
|
|
description: The display name of the channel containing the post.
|
|
has_joined_channel:
|
|
type: boolean
|
|
description: Whether the requesting user is already a member of the channel.
|
|
team_id:
|
|
type: string
|
|
description: The ID of the team containing the channel, if applicable.
|
|
team_type:
|
|
type: string
|
|
description: The type of the team containing the channel, if applicable.
|
|
team_display_name:
|
|
type: string
|
|
description: The display name of the team containing the channel, if applicable.
|
|
has_joined_team:
|
|
type: boolean
|
|
description: Whether the requesting user is already a member of the team.
|
|
Draft:
|
|
type: object
|
|
properties:
|
|
create_at:
|
|
type: integer
|
|
format: int64
|
|
update_at:
|
|
type: integer
|
|
format: int64
|
|
delete_at:
|
|
type: integer
|
|
format: int64
|
|
description: Deprecated. Drafts are hard-deleted.
|
|
user_id:
|
|
type: string
|
|
channel_id:
|
|
type: string
|
|
root_id:
|
|
type: string
|
|
message:
|
|
type: string
|
|
type:
|
|
type: string
|
|
props:
|
|
type: object
|
|
additionalProperties: true
|
|
file_ids:
|
|
type: array
|
|
items:
|
|
type: string
|
|
metadata:
|
|
$ref: "#/components/schemas/PostMetadata"
|
|
priority:
|
|
$ref: "#/components/schemas/PostPriority"
|
|
DraftUpsertRequest:
|
|
type: object
|
|
required:
|
|
- channel_id
|
|
- message
|
|
properties:
|
|
channel_id:
|
|
type: string
|
|
root_id:
|
|
type: string
|
|
message:
|
|
type: string
|
|
description: Draft message. Set to an empty string to delete the draft.
|
|
type:
|
|
type: string
|
|
props:
|
|
type: object
|
|
additionalProperties: true
|
|
file_ids:
|
|
type: array
|
|
items:
|
|
type: string
|
|
priority:
|
|
$ref: "#/components/schemas/PostPriority"
|
|
NotifyAdminToUpgradeRequest:
|
|
type: object
|
|
properties:
|
|
trial_notification:
|
|
type: boolean
|
|
required_plan:
|
|
type: string
|
|
required_feature:
|
|
type: string
|
|
PluginReattachAddress:
|
|
type: object
|
|
properties:
|
|
Name:
|
|
type: string
|
|
Net:
|
|
type: string
|
|
PluginReattachConfig:
|
|
type: object
|
|
properties:
|
|
Protocol:
|
|
type: string
|
|
ProtocolVersion:
|
|
type: integer
|
|
Addr:
|
|
$ref: "#/components/schemas/PluginReattachAddress"
|
|
Pid:
|
|
type: integer
|
|
Test:
|
|
type: boolean
|
|
PluginReattachRequest:
|
|
type: object
|
|
required:
|
|
- Manifest
|
|
- PluginReattachConfig
|
|
properties:
|
|
Manifest:
|
|
$ref: "#/components/schemas/PluginManifest"
|
|
PluginReattachConfig:
|
|
$ref: "#/components/schemas/PluginReattachConfig"
|
|
InstallMarketplacePluginRequest:
|
|
type: object
|
|
required:
|
|
- id
|
|
properties:
|
|
id:
|
|
type: string
|
|
description: The ID of the plugin to install.
|
|
version:
|
|
type: string
|
|
description: Optional plugin version. If omitted, the latest compatible version is installed.
|
|
RemoteClusterMsg:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
topic:
|
|
type: string
|
|
create_at:
|
|
type: integer
|
|
format: int64
|
|
payload:
|
|
description: Raw message payload.
|
|
type: object
|
|
additionalProperties: true
|
|
RemoteClusterFrame:
|
|
type: object
|
|
properties:
|
|
remote_id:
|
|
type: string
|
|
msg:
|
|
$ref: "#/components/schemas/RemoteClusterMsg"
|
|
RemoteClusterPing:
|
|
type: object
|
|
properties:
|
|
sent_at:
|
|
type: integer
|
|
format: int64
|
|
recv_at:
|
|
type: integer
|
|
format: int64
|
|
RemoteClusterResponse:
|
|
type: object
|
|
properties:
|
|
status:
|
|
type: string
|
|
err:
|
|
type: string
|
|
payload:
|
|
description: Raw response payload.
|
|
type: object
|
|
additionalProperties: true
|
|
PropertyField:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
group_id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
type:
|
|
type: string
|
|
description: The type of property
|
|
enum: [text, select, multiselect, date, user, multiuser]
|
|
object_type:
|
|
type: string
|
|
description: The type of object this property applies to
|
|
enum: [post, channel, user, template]
|
|
attrs:
|
|
type: object
|
|
description: Additional attributes
|
|
target_id:
|
|
type: string
|
|
description: The ID of the target (empty for system-level, team ID for team-level, channel ID for channel-level)
|
|
target_type:
|
|
type: string
|
|
description: The scope level (system, team, channel)
|
|
protected:
|
|
type: boolean
|
|
description: Whether this field is protected from API modification
|
|
permission_field:
|
|
type: string
|
|
description: Permission level for editing the field definition
|
|
enum: [none, sysadmin, member]
|
|
permission_values:
|
|
type: string
|
|
description: Permission level for setting values on objects
|
|
enum: [none, sysadmin, member]
|
|
permission_options:
|
|
type: string
|
|
description: Permission level for managing options on select/multiselect fields
|
|
enum: [none, sysadmin, member]
|
|
linked_field_id:
|
|
type: string
|
|
nullable: true
|
|
description: >
|
|
The ID of the template field this field is linked to. When set, the field
|
|
inherits its type and options from the source template. Can only be set at
|
|
creation time. Null when the field is not linked.
|
|
create_at:
|
|
type: integer
|
|
format: int64
|
|
update_at:
|
|
type: integer
|
|
format: int64
|
|
delete_at:
|
|
type: integer
|
|
format: int64
|
|
created_by:
|
|
type: string
|
|
description: User ID of the user who created this property field
|
|
updated_by:
|
|
type: string
|
|
description: User ID of the user who last updated this property field
|
|
PropertyFieldPatch:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
type:
|
|
type: string
|
|
attrs:
|
|
type: object
|
|
linked_field_id:
|
|
type: string
|
|
description: >
|
|
Set to empty string to unlink a linked field. Cannot be set to a new
|
|
value on an existing field; linking is only allowed at creation time.
|
|
PropertyValue:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
target_id:
|
|
type: string
|
|
target_type:
|
|
type: string
|
|
group_id:
|
|
type: string
|
|
field_id:
|
|
type: string
|
|
value:
|
|
type: string
|
|
create_at:
|
|
type: integer
|
|
format: int64
|
|
update_at:
|
|
type: integer
|
|
format: int64
|
|
delete_at:
|
|
type: integer
|
|
format: int64
|
|
created_by:
|
|
type: string
|
|
description: User ID of the user who created this property value
|
|
updated_by:
|
|
type: string
|
|
description: User ID of the user who last updated this property value
|
|
FileInfoList:
|
|
type: object
|
|
properties:
|
|
order:
|
|
type: array
|
|
items:
|
|
type: string
|
|
example:
|
|
- file_info_id1
|
|
- file_info_id2
|
|
file_infos:
|
|
type: object
|
|
additionalProperties:
|
|
$ref: "#/components/schemas/FileInfo"
|
|
next_file_id:
|
|
type: string
|
|
description: The ID of next file info. Not omitted when empty or not relevant.
|
|
prev_file_id:
|
|
type: string
|
|
description: The ID of previous file info. Not omitted when empty or not relevant.
|
|
PostList:
|
|
type: object
|
|
properties:
|
|
order:
|
|
type: array
|
|
items:
|
|
type: string
|
|
example:
|
|
- post_id1
|
|
- post_id12
|
|
posts:
|
|
type: object
|
|
additionalProperties:
|
|
$ref: "#/components/schemas/Post"
|
|
next_post_id:
|
|
type: string
|
|
description: The ID of next post. Not omitted when empty or not relevant.
|
|
prev_post_id:
|
|
type: string
|
|
description: The ID of previous post. Not omitted when empty or not relevant.
|
|
has_next:
|
|
type: boolean
|
|
description: Whether there are more items after this page.
|
|
PostListWithSearchMatches:
|
|
type: object
|
|
properties:
|
|
order:
|
|
type: array
|
|
items:
|
|
type: string
|
|
example:
|
|
- post_id1
|
|
- post_id12
|
|
posts:
|
|
type: object
|
|
additionalProperties:
|
|
$ref: "#/components/schemas/Post"
|
|
matches:
|
|
description: A mapping of post IDs to a list of matched terms within the post.
|
|
This field will only be populated on servers running version 5.1 or
|
|
greater with Elasticsearch enabled.
|
|
type: object
|
|
additionalProperties:
|
|
type: array
|
|
items:
|
|
type: string
|
|
example:
|
|
post_id1:
|
|
- search match 1
|
|
- search match 2
|
|
PostMetadata:
|
|
type: object
|
|
description: Additional information used to display a post.
|
|
properties:
|
|
embeds:
|
|
type: array
|
|
description: >
|
|
Information about content embedded in the post including OpenGraph
|
|
previews, image link previews, and message attachments.
|
|
This field will be null if the post does not contain embedded content.
|
|
items:
|
|
type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
description: The type of content that is embedded in this point.
|
|
enum:
|
|
- image
|
|
- message_attachment
|
|
- opengraph
|
|
- link
|
|
url:
|
|
type: string
|
|
description: The URL of the embedded content, if one exists.
|
|
data:
|
|
type: object
|
|
description: >
|
|
Any additional information about the embedded content. Only
|
|
used at this time to store OpenGraph metadata.
|
|
|
|
This field will be null for non-OpenGraph embeds.
|
|
emojis:
|
|
type: array
|
|
description: >
|
|
The custom emojis that appear in this point or have been used in
|
|
reactions to this post. This field will be null if the post does not contain custom emojis.
|
|
items:
|
|
$ref: "#/components/schemas/Emoji"
|
|
files:
|
|
type: array
|
|
description: >
|
|
The FileInfo objects for any files attached to the post. This field
|
|
will be null if the post does not have any file attachments.
|
|
items:
|
|
$ref: "#/components/schemas/FileInfo"
|
|
images:
|
|
type: object
|
|
description: >
|
|
An object mapping the URL of an external image to an object
|
|
containing the dimensions of that image. This field will be
|
|
null if the post or its embedded content does not reference any external images.
|
|
items:
|
|
type: object
|
|
properties:
|
|
height:
|
|
type: integer
|
|
width:
|
|
type: integer
|
|
reactions:
|
|
type: array
|
|
description: >
|
|
Any reactions made to this point. This field will be null if no
|
|
reactions have been made to this post.
|
|
items:
|
|
$ref: "#/components/schemas/Reaction"
|
|
priority:
|
|
allOf:
|
|
- $ref: "#/components/schemas/PostPriority"
|
|
description: >
|
|
Post priority set for this post. This field will be null if no
|
|
priority metadata has been set.
|
|
acknowledgements:
|
|
type: array
|
|
description: >
|
|
Any acknowledgements made to this point.
|
|
items:
|
|
$ref: "#/components/schemas/PostAcknowledgement"
|
|
TeamMap:
|
|
type: object
|
|
description: A mapping of teamIds to teams.
|
|
properties:
|
|
team_id:
|
|
$ref: "#/components/schemas/Team"
|
|
TeamMember:
|
|
type: object
|
|
properties:
|
|
team_id:
|
|
description: The ID of the team this member belongs to.
|
|
type: string
|
|
user_id:
|
|
description: The ID of the user this member relates to.
|
|
type: string
|
|
roles:
|
|
description: The complete list of roles assigned to this team member, as a
|
|
space-separated list of role names, including any roles granted
|
|
implicitly through permissions schemes.
|
|
type: string
|
|
delete_at:
|
|
description: The time in milliseconds that this team member was deleted.
|
|
type: integer
|
|
scheme_user:
|
|
description: Whether this team member holds the default user role defined by the
|
|
team's permissions scheme.
|
|
type: boolean
|
|
scheme_admin:
|
|
description: Whether this team member holds the default admin role defined by the
|
|
team's permissions scheme.
|
|
type: boolean
|
|
explicit_roles:
|
|
description: The list of roles explicitly assigned to this team member, as a
|
|
space separated list of role names. This list does *not* include any
|
|
roles granted implicitly through permissions schemes.
|
|
type: string
|
|
TeamUnread:
|
|
type: object
|
|
properties:
|
|
team_id:
|
|
type: string
|
|
msg_count:
|
|
type: integer
|
|
mention_count:
|
|
type: integer
|
|
ChannelUnread:
|
|
type: object
|
|
properties:
|
|
team_id:
|
|
type: string
|
|
channel_id:
|
|
type: string
|
|
msg_count:
|
|
type: integer
|
|
mention_count:
|
|
type: integer
|
|
ChannelUnreadAt:
|
|
type: object
|
|
properties:
|
|
team_id:
|
|
description: The ID of the team the channel belongs to.
|
|
type: string
|
|
channel_id:
|
|
description: The ID of the channel the user has access to..
|
|
type: string
|
|
msg_count:
|
|
description: No. of messages the user has already read.
|
|
type: integer
|
|
mention_count:
|
|
description: No. of mentions the user has within the unread posts of the channel.
|
|
type: integer
|
|
last_viewed_at:
|
|
description: time in milliseconds when the user last viewed the channel.
|
|
type: integer
|
|
Session:
|
|
type: object
|
|
properties:
|
|
create_at:
|
|
description: The time in milliseconds a session was created
|
|
type: integer
|
|
format: int64
|
|
device_id:
|
|
type: string
|
|
voip_device_id:
|
|
description: VoIP push token. Same prefix shape as device_id.
|
|
type: string
|
|
expires_at:
|
|
description: The time in milliseconds a session will expire
|
|
type: integer
|
|
format: int64
|
|
id:
|
|
type: string
|
|
is_oauth:
|
|
type: boolean
|
|
last_activity_at:
|
|
description: The time in milliseconds of the last activity of a session
|
|
type: integer
|
|
format: int64
|
|
props:
|
|
type: object
|
|
roles:
|
|
type: string
|
|
team_members:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/TeamMember"
|
|
token:
|
|
type: string
|
|
user_id:
|
|
type: string
|
|
FileInfo:
|
|
type: object
|
|
properties:
|
|
id:
|
|
description: The unique identifier for this file
|
|
type: string
|
|
user_id:
|
|
description: The ID of the user that uploaded this file
|
|
type: string
|
|
post_id:
|
|
description: If this file is attached to a post, the ID of that post
|
|
type: string
|
|
create_at:
|
|
description: The time in milliseconds a file was created
|
|
type: integer
|
|
format: int64
|
|
update_at:
|
|
description: The time in milliseconds a file was last updated
|
|
type: integer
|
|
format: int64
|
|
delete_at:
|
|
description: The time in milliseconds a file was deleted
|
|
type: integer
|
|
format: int64
|
|
name:
|
|
description: The name of the file
|
|
type: string
|
|
extension:
|
|
description: The extension at the end of the file name
|
|
type: string
|
|
size:
|
|
description: The size of the file in bytes
|
|
type: integer
|
|
mime_type:
|
|
description: The MIME type of the file
|
|
type: string
|
|
width:
|
|
description: If this file is an image, the width of the file
|
|
type: integer
|
|
height:
|
|
description: If this file is an image, the height of the file
|
|
type: integer
|
|
has_preview_image:
|
|
description: If this file is an image, whether or not it has a preview-sized
|
|
version
|
|
type: boolean
|
|
Preference:
|
|
type: object
|
|
properties:
|
|
user_id:
|
|
description: The ID of the user that owns this preference
|
|
type: string
|
|
category:
|
|
type: string
|
|
name:
|
|
type: string
|
|
value:
|
|
type: string
|
|
UserAuthData:
|
|
type: object
|
|
properties:
|
|
auth_data:
|
|
description: Service-specific authentication data. Required and must be non-empty for external authentication services. Omit this field when `auth_service` is `email`.
|
|
type: string
|
|
auth_service:
|
|
description: The authentication service such as "email", "gitlab", or "ldap". Use "email" with omitted `auth_data` to clear external authentication.
|
|
type: string
|
|
required:
|
|
- auth_service
|
|
UserAutocomplete:
|
|
type: object
|
|
properties:
|
|
users:
|
|
description: A list of users that are the main result of the query
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/User"
|
|
out_of_channel:
|
|
description: A special case list of users returned when autocompleting in a
|
|
specific channel. Omitted when empty or not relevant
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/User"
|
|
UserAutocompleteInTeam:
|
|
type: object
|
|
properties:
|
|
in_team:
|
|
description: A list of user objects in the team
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/User"
|
|
UserAutocompleteInChannel:
|
|
type: object
|
|
properties:
|
|
in_channel:
|
|
description: A list of user objects in the channel
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/User"
|
|
out_of_channel:
|
|
description: A list of user objects not in the channel
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/User"
|
|
IncomingWebhook:
|
|
type: object
|
|
properties:
|
|
id:
|
|
description: The unique identifier for this incoming webhook
|
|
type: string
|
|
create_at:
|
|
description: The time in milliseconds a incoming webhook was created
|
|
type: integer
|
|
format: int64
|
|
update_at:
|
|
description: The time in milliseconds a incoming webhook was last updated
|
|
type: integer
|
|
format: int64
|
|
delete_at:
|
|
description: The time in milliseconds a incoming webhook was deleted
|
|
type: integer
|
|
format: int64
|
|
last_used:
|
|
description: The time in milliseconds this incoming webhook was last used to post a message
|
|
type: integer
|
|
format: int64
|
|
channel_id:
|
|
description: The ID of a public channel or private group that receives the
|
|
webhook payloads
|
|
type: string
|
|
description:
|
|
description: The description for this incoming webhook
|
|
type: string
|
|
display_name:
|
|
description: The display name for this incoming webhook
|
|
type: string
|
|
OutgoingWebhook:
|
|
type: object
|
|
properties:
|
|
id:
|
|
description: The unique identifier for this outgoing webhook
|
|
type: string
|
|
create_at:
|
|
description: The time in milliseconds a outgoing webhook was created
|
|
type: integer
|
|
format: int64
|
|
update_at:
|
|
description: The time in milliseconds a outgoing webhook was last updated
|
|
type: integer
|
|
format: int64
|
|
delete_at:
|
|
description: The time in milliseconds a outgoing webhook was deleted
|
|
type: integer
|
|
format: int64
|
|
creator_id:
|
|
description: The Id of the user who created the webhook
|
|
type: string
|
|
team_id:
|
|
description: The ID of the team that the webhook watchs
|
|
type: string
|
|
channel_id:
|
|
description: The ID of a public channel that the webhook watchs
|
|
type: string
|
|
description:
|
|
description: The description for this outgoing webhook
|
|
type: string
|
|
display_name:
|
|
description: The display name for this outgoing webhook
|
|
type: string
|
|
trigger_words:
|
|
description: List of words for the webhook to trigger on
|
|
type: array
|
|
items:
|
|
type: string
|
|
trigger_when:
|
|
description: When to trigger the webhook, `0` when a trigger word is present at
|
|
all and `1` if the message starts with a trigger word
|
|
type: integer
|
|
callback_urls:
|
|
description: The URLs to POST the payloads to when the webhook is triggered
|
|
type: array
|
|
items:
|
|
type: string
|
|
content_type:
|
|
description: The format to POST the data in, either `application/json` or
|
|
`application/x-www-form-urlencoded`
|
|
default: application/x-www-form-urlencoded
|
|
type: string
|
|
Reaction:
|
|
type: object
|
|
properties:
|
|
user_id:
|
|
description: The ID of the user that made this reaction
|
|
type: string
|
|
post_id:
|
|
description: The ID of the post to which this reaction was made
|
|
type: string
|
|
emoji_name:
|
|
description: The name of the emoji that was used for this reaction
|
|
type: string
|
|
create_at:
|
|
description: The time in milliseconds this reaction was made
|
|
type: integer
|
|
format: int64
|
|
NewTeamMember:
|
|
type: object
|
|
properties:
|
|
id:
|
|
description: The user's ID.
|
|
type: string
|
|
username:
|
|
type: string
|
|
first_name:
|
|
type: string
|
|
last_name:
|
|
type: string
|
|
nickname:
|
|
type: string
|
|
position:
|
|
description: The user's position field value.
|
|
type: string
|
|
create_at:
|
|
description: The creation timestamp of the team member record.
|
|
type: integer
|
|
NewTeamMembersList:
|
|
type: object
|
|
properties:
|
|
has_next:
|
|
description: Indicates if there is another page of new team members that can be fetched.
|
|
type: boolean
|
|
items:
|
|
description: List of new team members.
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/NewTeamMember"
|
|
total_count:
|
|
description: The total count of new team members for the given time range.
|
|
type: integer
|
|
Emoji:
|
|
type: object
|
|
properties:
|
|
id:
|
|
description: The ID of the emoji
|
|
type: string
|
|
creator_id:
|
|
description: The ID of the user that made the emoji
|
|
type: string
|
|
name:
|
|
description: The name of the emoji
|
|
type: string
|
|
create_at:
|
|
description: The time in milliseconds the emoji was made
|
|
type: integer
|
|
format: int64
|
|
update_at:
|
|
description: The time in milliseconds the emoji was last updated
|
|
type: integer
|
|
format: int64
|
|
delete_at:
|
|
description: The time in milliseconds the emoji was deleted
|
|
type: integer
|
|
format: int64
|
|
Command:
|
|
type: object
|
|
properties:
|
|
id:
|
|
description: The ID of the slash command
|
|
type: string
|
|
token:
|
|
description: The token which is used to verify the source of the payload
|
|
type: string
|
|
create_at:
|
|
description: The time in milliseconds the command was created
|
|
type: integer
|
|
update_at:
|
|
description: The time in milliseconds the command was last updated
|
|
type: integer
|
|
format: int64
|
|
delete_at:
|
|
description: The time in milliseconds the command was deleted, 0 if never deleted
|
|
type: integer
|
|
format: int64
|
|
creator_id:
|
|
description: The user id for the commands creator
|
|
type: string
|
|
team_id:
|
|
description: The team id for which this command is configured
|
|
type: string
|
|
trigger:
|
|
description: The string that triggers this command
|
|
type: string
|
|
method:
|
|
description: Is the trigger done with HTTP Get ('G') or HTTP Post ('P')
|
|
type: string
|
|
username:
|
|
description: What is the username for the response post
|
|
type: string
|
|
icon_url:
|
|
description: The url to find the icon for this users avatar
|
|
type: string
|
|
auto_complete:
|
|
description: Use auto complete for this command
|
|
type: boolean
|
|
auto_complete_desc:
|
|
description: The description for this command shown when selecting the command
|
|
type: string
|
|
auto_complete_hint:
|
|
description: The hint for this command
|
|
type: string
|
|
display_name:
|
|
description: Display name for the command
|
|
type: string
|
|
description:
|
|
description: Description for this command
|
|
type: string
|
|
url:
|
|
description: The URL that is triggered
|
|
type: string
|
|
AutocompleteSuggestion:
|
|
type: object
|
|
properties:
|
|
Complete:
|
|
description: Completed suggestion
|
|
type: string
|
|
Suggestion:
|
|
description: Predicted text user might want to input
|
|
type: string
|
|
Hint:
|
|
description: Hint about suggested input
|
|
type: string
|
|
Description:
|
|
description: Description of the suggested command
|
|
type: string
|
|
IconData:
|
|
description: Base64 encoded svg image
|
|
type: string
|
|
CommandResponse:
|
|
type: object
|
|
properties:
|
|
ResponseType:
|
|
description: The response type either in_channel or ephemeral
|
|
type: string
|
|
Text:
|
|
type: string
|
|
Username:
|
|
type: string
|
|
IconURL:
|
|
type: string
|
|
GotoLocation:
|
|
type: string
|
|
Attachments:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/MessageAttachment"
|
|
MessageAttachment:
|
|
type: object
|
|
properties:
|
|
Id:
|
|
type: string
|
|
Fallback:
|
|
type: string
|
|
Color:
|
|
type: string
|
|
Pretext:
|
|
type: string
|
|
AuthorName:
|
|
type: string
|
|
AuthorLink:
|
|
type: string
|
|
AuthorIcon:
|
|
type: string
|
|
Title:
|
|
type: string
|
|
TitleLink:
|
|
type: string
|
|
Text:
|
|
type: string
|
|
Fields:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/MessageAttachmentField"
|
|
ImageURL:
|
|
type: string
|
|
ThumbURL:
|
|
type: string
|
|
Footer:
|
|
type: string
|
|
FooterIcon:
|
|
type: string
|
|
Timestamp:
|
|
description: The timestamp of the message attachment, either type of string or integer
|
|
type: string
|
|
MessageAttachmentField:
|
|
type: object
|
|
properties:
|
|
Title:
|
|
type: string
|
|
Value:
|
|
description: The value of the attachment, set as string but capable with golang interface
|
|
type: string
|
|
Short:
|
|
type: boolean
|
|
StatusOK:
|
|
type: object
|
|
properties:
|
|
status:
|
|
description: Will contain "ok" if the request was successful and there was nothing else to return
|
|
type: string
|
|
OpenGraph:
|
|
type: object
|
|
description: OpenGraph metadata of a webpage
|
|
properties:
|
|
type:
|
|
type: string
|
|
url:
|
|
type: string
|
|
title:
|
|
type: string
|
|
description:
|
|
type: string
|
|
determiner:
|
|
type: string
|
|
site_name:
|
|
type: string
|
|
locale:
|
|
type: string
|
|
locales_alternate:
|
|
type: array
|
|
items:
|
|
type: string
|
|
images:
|
|
type: array
|
|
items:
|
|
type: object
|
|
description: Image object used in OpenGraph metadata of a webpage
|
|
properties:
|
|
url:
|
|
type: string
|
|
secure_url:
|
|
type: string
|
|
type:
|
|
type: string
|
|
width:
|
|
type: integer
|
|
height:
|
|
type: integer
|
|
videos:
|
|
type: array
|
|
items:
|
|
type: object
|
|
description: Video object used in OpenGraph metadata of a webpage
|
|
properties:
|
|
url:
|
|
type: string
|
|
secure_url:
|
|
type: string
|
|
type:
|
|
type: string
|
|
width:
|
|
type: integer
|
|
height:
|
|
type: integer
|
|
audios:
|
|
type: array
|
|
items:
|
|
type: object
|
|
description: Audio object used in OpenGraph metadata of a webpage
|
|
properties:
|
|
url:
|
|
type: string
|
|
secure_url:
|
|
type: string
|
|
type:
|
|
type: string
|
|
article:
|
|
type: object
|
|
description: Article object used in OpenGraph metadata of a webpage, if type is
|
|
article
|
|
properties:
|
|
published_time:
|
|
type: string
|
|
modified_time:
|
|
type: string
|
|
expiration_time:
|
|
type: string
|
|
section:
|
|
type: string
|
|
tags:
|
|
type: array
|
|
items:
|
|
type: string
|
|
authors:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
first_name:
|
|
type: string
|
|
last_name:
|
|
type: string
|
|
username:
|
|
type: string
|
|
gender:
|
|
type: string
|
|
book:
|
|
type: object
|
|
description: Book object used in OpenGraph metadata of a webpage, if type is book
|
|
properties:
|
|
isbn:
|
|
type: string
|
|
release_date:
|
|
type: string
|
|
tags:
|
|
type: array
|
|
items:
|
|
type: string
|
|
authors:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
first_name:
|
|
type: string
|
|
last_name:
|
|
type: string
|
|
username:
|
|
type: string
|
|
gender:
|
|
type: string
|
|
profile:
|
|
type: object
|
|
properties:
|
|
first_name:
|
|
type: string
|
|
last_name:
|
|
type: string
|
|
username:
|
|
type: string
|
|
gender:
|
|
type: string
|
|
Audit:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
create_at:
|
|
description: The time in milliseconds a audit was created
|
|
type: integer
|
|
format: int64
|
|
user_id:
|
|
type: string
|
|
action:
|
|
type: string
|
|
extra_info:
|
|
type: string
|
|
ip_address:
|
|
type: string
|
|
session_id:
|
|
type: string
|
|
LdapSettings:
|
|
type: object
|
|
properties:
|
|
Enable:
|
|
type: boolean
|
|
EnableSync:
|
|
type: boolean
|
|
LdapServer:
|
|
type: string
|
|
LdapPort:
|
|
type: integer
|
|
ConnectionSecurity:
|
|
type: string
|
|
BaseDN:
|
|
type: string
|
|
BindUsername:
|
|
type: string
|
|
BindPassword:
|
|
type: string
|
|
MaximumLoginAttempts:
|
|
type: integer
|
|
UserFilter:
|
|
type: string
|
|
GroupFilter:
|
|
type: string
|
|
GuestFilter:
|
|
type: string
|
|
EnableAdminFilter:
|
|
type: boolean
|
|
AdminFilter:
|
|
type: string
|
|
GroupDisplayNameAttribute:
|
|
type: string
|
|
GroupIdAttribute:
|
|
type: string
|
|
FirstNameAttribute:
|
|
type: string
|
|
LastNameAttribute:
|
|
type: string
|
|
EmailAttribute:
|
|
type: string
|
|
UsernameAttribute:
|
|
type: string
|
|
NicknameAttribute:
|
|
type: string
|
|
IdAttribute:
|
|
type: string
|
|
PositionAttribute:
|
|
type: string
|
|
LoginIdAttribute:
|
|
type: string
|
|
PictureAttribute:
|
|
type: string
|
|
SyncIntervalMinutes:
|
|
type: integer
|
|
SkipCertificateVerification:
|
|
type: boolean
|
|
PublicCertificateFile:
|
|
type: string
|
|
PrivateKeyFile:
|
|
type: string
|
|
QueryTimeout:
|
|
type: integer
|
|
MaxPageSize:
|
|
type: integer
|
|
LoginFieldName:
|
|
type: string
|
|
LdapDiagnosticResult:
|
|
type: object
|
|
properties:
|
|
test_name:
|
|
type: string
|
|
description: Name/type of the diagnostic test being performed
|
|
test_value:
|
|
type: string
|
|
description: The actual test value (filter string or attribute name)
|
|
total_count:
|
|
type: integer
|
|
description: Number of entries found by the filter
|
|
message:
|
|
type: string
|
|
description: Optional success/info message
|
|
error:
|
|
type: string
|
|
description: Optional error message if test failed
|
|
sample_results:
|
|
type: array
|
|
description: Array of sample LDAP entries found
|
|
items:
|
|
type: object
|
|
properties:
|
|
dn:
|
|
type: string
|
|
description: Distinguished Name
|
|
username:
|
|
type: string
|
|
description: Username
|
|
email:
|
|
type: string
|
|
description: Email
|
|
first_name:
|
|
type: string
|
|
description: First name
|
|
last_name:
|
|
type: string
|
|
description: Last name
|
|
id:
|
|
type: string
|
|
description: ID attribute
|
|
display_name:
|
|
type: string
|
|
description: Display name for groups
|
|
available_attributes:
|
|
type: object
|
|
description: Map of all available LDAP attributes
|
|
additionalProperties:
|
|
type: string
|
|
Config:
|
|
type: object
|
|
properties:
|
|
ServiceSettings:
|
|
type: object
|
|
properties:
|
|
SiteURL:
|
|
type: string
|
|
ListenAddress:
|
|
type: string
|
|
ConnectionSecurity:
|
|
type: string
|
|
TLSCertFile:
|
|
type: string
|
|
TLSKeyFile:
|
|
type: string
|
|
UseLetsEncrypt:
|
|
type: boolean
|
|
LetsEncryptCertificateCacheFile:
|
|
type: string
|
|
Forward80To443:
|
|
type: boolean
|
|
ReadTimeout:
|
|
type: integer
|
|
WriteTimeout:
|
|
type: integer
|
|
MaximumLoginAttempts:
|
|
type: integer
|
|
SegmentDeveloperKey:
|
|
type: string
|
|
GoogleDeveloperKey:
|
|
type: string
|
|
EnableOAuthServiceProvider:
|
|
type: boolean
|
|
EnableIncomingWebhooks:
|
|
type: boolean
|
|
EnableOutgoingWebhooks:
|
|
type: boolean
|
|
EnableCommands:
|
|
type: boolean
|
|
EnableOnlyAdminIntegrations:
|
|
type: boolean
|
|
EnablePostUsernameOverride:
|
|
type: boolean
|
|
EnablePostIconOverride:
|
|
type: boolean
|
|
EnableTesting:
|
|
type: boolean
|
|
description: Intended only for isolated non-production environments and must never be enabled in production.
|
|
EnableDeveloper:
|
|
type: boolean
|
|
EnableSecurityFixAlert:
|
|
type: boolean
|
|
EnableInsecureOutgoingConnections:
|
|
type: boolean
|
|
EnableMultifactorAuthentication:
|
|
type: boolean
|
|
EnforceMultifactorAuthentication:
|
|
type: boolean
|
|
AllowCorsFrom:
|
|
type: string
|
|
SessionLengthWebInDays:
|
|
type: integer
|
|
SessionLengthMobileInDays:
|
|
type: integer
|
|
SessionLengthSSOInDays:
|
|
type: integer
|
|
SessionCacheInMinutes:
|
|
type: integer
|
|
WebsocketSecurePort:
|
|
type: integer
|
|
WebsocketPort:
|
|
type: integer
|
|
WebserverMode:
|
|
type: string
|
|
EnableCustomEmoji:
|
|
type: boolean
|
|
RestrictCustomEmojiCreation:
|
|
type: string
|
|
TeamSettings:
|
|
type: object
|
|
properties:
|
|
SiteName:
|
|
type: string
|
|
MaxUsersPerTeam:
|
|
type: integer
|
|
EnableTeamCreation:
|
|
type: boolean
|
|
EnableUserCreation:
|
|
type: boolean
|
|
EnableOpenServer:
|
|
type: boolean
|
|
RestrictCreationToDomains:
|
|
type: string
|
|
EnableCustomBrand:
|
|
type: boolean
|
|
CustomBrandText:
|
|
type: string
|
|
CustomDescriptionText:
|
|
type: string
|
|
RestrictDirectMessage:
|
|
type: string
|
|
RestrictTeamInvite:
|
|
type: string
|
|
RestrictPublicChannelManagement:
|
|
type: string
|
|
RestrictPrivateChannelManagement:
|
|
type: string
|
|
RestrictPublicChannelCreation:
|
|
type: string
|
|
RestrictPrivateChannelCreation:
|
|
type: string
|
|
RestrictPublicChannelDeletion:
|
|
type: string
|
|
RestrictPrivateChannelDeletion:
|
|
type: string
|
|
UserStatusAwayTimeout:
|
|
type: integer
|
|
MaxChannelsPerTeam:
|
|
type: integer
|
|
MaxNotificationsPerChannel:
|
|
type: integer
|
|
SqlSettings:
|
|
type: object
|
|
properties:
|
|
DriverName:
|
|
type: string
|
|
DataSource:
|
|
type: string
|
|
DataSourceReplicas:
|
|
type: array
|
|
items:
|
|
type: string
|
|
MaxIdleConns:
|
|
type: integer
|
|
MaxOpenConns:
|
|
type: integer
|
|
Trace:
|
|
type: boolean
|
|
AtRestEncryptKey:
|
|
type: string
|
|
LogSettings:
|
|
type: object
|
|
properties:
|
|
EnableConsole:
|
|
type: boolean
|
|
ConsoleLevel:
|
|
type: string
|
|
EnableFile:
|
|
type: boolean
|
|
FileLevel:
|
|
type: string
|
|
FileLocation:
|
|
type: string
|
|
EnableWebhookDebugging:
|
|
type: boolean
|
|
EnableDiagnostics:
|
|
type: boolean
|
|
PasswordSettings:
|
|
type: object
|
|
properties:
|
|
MinimumLength:
|
|
type: integer
|
|
Lowercase:
|
|
type: boolean
|
|
Number:
|
|
type: boolean
|
|
Uppercase:
|
|
type: boolean
|
|
Symbol:
|
|
type: boolean
|
|
FileSettings:
|
|
type: object
|
|
properties:
|
|
MaxFileSize:
|
|
type: integer
|
|
DriverName:
|
|
type: string
|
|
Directory:
|
|
type: string
|
|
EnablePublicLink:
|
|
type: boolean
|
|
PublicLinkSalt:
|
|
type: string
|
|
ThumbnailWidth:
|
|
type: integer
|
|
ThumbnailHeight:
|
|
type: integer
|
|
PreviewWidth:
|
|
type: integer
|
|
PreviewHeight:
|
|
type: integer
|
|
ProfileWidth:
|
|
type: integer
|
|
ProfileHeight:
|
|
type: integer
|
|
InitialFont:
|
|
type: string
|
|
AmazonS3AccessKeyId:
|
|
type: string
|
|
AmazonS3SecretAccessKey:
|
|
type: string
|
|
AmazonS3Bucket:
|
|
type: string
|
|
AmazonS3Region:
|
|
type: string
|
|
AmazonS3Endpoint:
|
|
type: string
|
|
AmazonS3SSL:
|
|
type: boolean
|
|
AmazonS3StorageClass:
|
|
type: string
|
|
EmailSettings:
|
|
type: object
|
|
properties:
|
|
EnableSignUpWithEmail:
|
|
type: boolean
|
|
EnableSignInWithEmail:
|
|
type: boolean
|
|
EnableSignInWithUsername:
|
|
type: boolean
|
|
SendEmailNotifications:
|
|
type: boolean
|
|
RequireEmailVerification:
|
|
type: boolean
|
|
FeedbackName:
|
|
type: string
|
|
FeedbackEmail:
|
|
type: string
|
|
FeedbackOrganization:
|
|
type: string
|
|
SMTPUsername:
|
|
type: string
|
|
SMTPPassword:
|
|
type: string
|
|
SMTPServer:
|
|
type: string
|
|
SMTPPort:
|
|
type: string
|
|
ConnectionSecurity:
|
|
type: string
|
|
InviteSalt:
|
|
type: string
|
|
PasswordResetSalt:
|
|
type: string
|
|
SendPushNotifications:
|
|
type: boolean
|
|
PushNotificationServer:
|
|
type: string
|
|
PushNotificationContents:
|
|
type: string
|
|
EnableEmailBatching:
|
|
type: boolean
|
|
EmailBatchingBufferSize:
|
|
type: integer
|
|
EmailBatchingInterval:
|
|
type: integer
|
|
RateLimitSettings:
|
|
type: object
|
|
properties:
|
|
Enable:
|
|
type: boolean
|
|
PerSec:
|
|
type: integer
|
|
MaxBurst:
|
|
type: integer
|
|
MemoryStoreSize:
|
|
type: integer
|
|
VaryByRemoteAddr:
|
|
type: boolean
|
|
VaryByHeader:
|
|
type: string
|
|
PrivacySettings:
|
|
type: object
|
|
properties:
|
|
ShowEmailAddress:
|
|
type: boolean
|
|
ShowFullName:
|
|
type: boolean
|
|
SupportSettings:
|
|
type: object
|
|
properties:
|
|
TermsOfServiceLink:
|
|
type: string
|
|
PrivacyPolicyLink:
|
|
type: string
|
|
AboutLink:
|
|
type: string
|
|
HelpLink:
|
|
type: string
|
|
ReportAProblemLink:
|
|
type: string
|
|
ReportAProblemType:
|
|
type: string
|
|
ReportAProblemMail:
|
|
type: string
|
|
AllowDownloadLogs:
|
|
type: boolean
|
|
SupportEmail:
|
|
type: string
|
|
GitLabSettings:
|
|
type: object
|
|
properties:
|
|
Enable:
|
|
type: boolean
|
|
Secret:
|
|
type: string
|
|
Id:
|
|
type: string
|
|
Scope:
|
|
type: string
|
|
AuthEndpoint:
|
|
type: string
|
|
TokenEndpoint:
|
|
type: string
|
|
UserApiEndpoint:
|
|
type: string
|
|
GoogleSettings:
|
|
type: object
|
|
properties:
|
|
Enable:
|
|
type: boolean
|
|
Secret:
|
|
type: string
|
|
Id:
|
|
type: string
|
|
Scope:
|
|
type: string
|
|
AuthEndpoint:
|
|
type: string
|
|
TokenEndpoint:
|
|
type: string
|
|
UserApiEndpoint:
|
|
type: string
|
|
Office365Settings:
|
|
type: object
|
|
properties:
|
|
Enable:
|
|
type: boolean
|
|
Secret:
|
|
type: string
|
|
Id:
|
|
type: string
|
|
Scope:
|
|
type: string
|
|
AuthEndpoint:
|
|
type: string
|
|
TokenEndpoint:
|
|
type: string
|
|
UserApiEndpoint:
|
|
type: string
|
|
LdapSettings:
|
|
type: object
|
|
properties:
|
|
Enable:
|
|
type: boolean
|
|
LdapServer:
|
|
type: string
|
|
LdapPort:
|
|
type: integer
|
|
ConnectionSecurity:
|
|
type: string
|
|
BaseDN:
|
|
type: string
|
|
BindUsername:
|
|
type: string
|
|
BindPassword:
|
|
type: string
|
|
UserFilter:
|
|
type: string
|
|
FirstNameAttribute:
|
|
type: string
|
|
LastNameAttribute:
|
|
type: string
|
|
EmailAttribute:
|
|
type: string
|
|
UsernameAttribute:
|
|
type: string
|
|
NicknameAttribute:
|
|
type: string
|
|
IdAttribute:
|
|
type: string
|
|
PositionAttribute:
|
|
type: string
|
|
SyncIntervalMinutes:
|
|
type: integer
|
|
SkipCertificateVerification:
|
|
type: boolean
|
|
QueryTimeout:
|
|
type: integer
|
|
MaxPageSize:
|
|
type: integer
|
|
LoginFieldName:
|
|
type: string
|
|
ComplianceSettings:
|
|
type: object
|
|
properties:
|
|
Enable:
|
|
type: boolean
|
|
Directory:
|
|
type: string
|
|
EnableDaily:
|
|
type: boolean
|
|
LocalizationSettings:
|
|
type: object
|
|
properties:
|
|
DefaultServerLocale:
|
|
type: string
|
|
DefaultClientLocale:
|
|
type: string
|
|
AvailableLocales:
|
|
type: string
|
|
SamlSettings:
|
|
type: object
|
|
properties:
|
|
Enable:
|
|
type: boolean
|
|
Verify:
|
|
type: boolean
|
|
Encrypt:
|
|
type: boolean
|
|
IdpUrl:
|
|
type: string
|
|
IdpDescriptorUrl:
|
|
type: string
|
|
AssertionConsumerServiceURL:
|
|
type: string
|
|
IdpCertificateFile:
|
|
type: string
|
|
PublicCertificateFile:
|
|
type: string
|
|
PrivateKeyFile:
|
|
type: string
|
|
FirstNameAttribute:
|
|
type: string
|
|
LastNameAttribute:
|
|
type: string
|
|
EmailAttribute:
|
|
type: string
|
|
UsernameAttribute:
|
|
type: string
|
|
NicknameAttribute:
|
|
type: string
|
|
LocaleAttribute:
|
|
type: string
|
|
PositionAttribute:
|
|
type: string
|
|
LoginButtonText:
|
|
type: string
|
|
NativeAppSettings:
|
|
type: object
|
|
properties:
|
|
AppDownloadLink:
|
|
type: string
|
|
AndroidAppDownloadLink:
|
|
type: string
|
|
IosAppDownloadLink:
|
|
type: string
|
|
ClusterSettings:
|
|
type: object
|
|
properties:
|
|
Enable:
|
|
type: boolean
|
|
InterNodeListenAddress:
|
|
type: string
|
|
InterNodeUrls:
|
|
type: array
|
|
items:
|
|
type: string
|
|
MetricsSettings:
|
|
type: object
|
|
properties:
|
|
Enable:
|
|
type: boolean
|
|
BlockProfileRate:
|
|
type: integer
|
|
ListenAddress:
|
|
type: string
|
|
AnalyticsSettings:
|
|
type: object
|
|
properties:
|
|
MaxUsersForStatistics:
|
|
type: integer
|
|
EnvironmentConfig:
|
|
type: object
|
|
properties:
|
|
ServiceSettings:
|
|
type: object
|
|
properties:
|
|
SiteURL:
|
|
type: boolean
|
|
ListenAddress:
|
|
type: boolean
|
|
ConnectionSecurity:
|
|
type: boolean
|
|
TLSCertFile:
|
|
type: boolean
|
|
TLSKeyFile:
|
|
type: boolean
|
|
UseLetsEncrypt:
|
|
type: boolean
|
|
LetsEncryptCertificateCacheFile:
|
|
type: boolean
|
|
Forward80To443:
|
|
type: boolean
|
|
ReadTimeout:
|
|
type: boolean
|
|
WriteTimeout:
|
|
type: boolean
|
|
MaximumLoginAttempts:
|
|
type: boolean
|
|
SegmentDeveloperKey:
|
|
type: boolean
|
|
GoogleDeveloperKey:
|
|
type: boolean
|
|
EnableOAuthServiceProvider:
|
|
type: boolean
|
|
EnableIncomingWebhooks:
|
|
type: boolean
|
|
EnableOutgoingWebhooks:
|
|
type: boolean
|
|
EnableCommands:
|
|
type: boolean
|
|
EnableOnlyAdminIntegrations:
|
|
type: boolean
|
|
EnablePostUsernameOverride:
|
|
type: boolean
|
|
EnablePostIconOverride:
|
|
type: boolean
|
|
EnableTesting:
|
|
type: boolean
|
|
description: Intended only for isolated non-production environments and must never be enabled in production.
|
|
EnableDeveloper:
|
|
type: boolean
|
|
EnableSecurityFixAlert:
|
|
type: boolean
|
|
EnableInsecureOutgoingConnections:
|
|
type: boolean
|
|
EnableMultifactorAuthentication:
|
|
type: boolean
|
|
EnforceMultifactorAuthentication:
|
|
type: boolean
|
|
AllowCorsFrom:
|
|
type: boolean
|
|
SessionLengthWebInDays:
|
|
type: boolean
|
|
SessionLengthMobileInDays:
|
|
type: boolean
|
|
SessionLengthSSOInDays:
|
|
type: boolean
|
|
SessionCacheInMinutes:
|
|
type: boolean
|
|
WebsocketSecurePort:
|
|
type: boolean
|
|
WebsocketPort:
|
|
type: boolean
|
|
WebserverMode:
|
|
type: boolean
|
|
EnableCustomEmoji:
|
|
type: boolean
|
|
RestrictCustomEmojiCreation:
|
|
type: boolean
|
|
TeamSettings:
|
|
type: object
|
|
properties:
|
|
SiteName:
|
|
type: boolean
|
|
MaxUsersPerTeam:
|
|
type: boolean
|
|
EnableTeamCreation:
|
|
type: boolean
|
|
EnableUserCreation:
|
|
type: boolean
|
|
EnableOpenServer:
|
|
type: boolean
|
|
RestrictCreationToDomains:
|
|
type: boolean
|
|
EnableCustomBrand:
|
|
type: boolean
|
|
CustomBrandText:
|
|
type: boolean
|
|
CustomDescriptionText:
|
|
type: boolean
|
|
RestrictDirectMessage:
|
|
type: boolean
|
|
RestrictTeamInvite:
|
|
type: boolean
|
|
RestrictPublicChannelManagement:
|
|
type: boolean
|
|
RestrictPrivateChannelManagement:
|
|
type: boolean
|
|
RestrictPublicChannelCreation:
|
|
type: boolean
|
|
RestrictPrivateChannelCreation:
|
|
type: boolean
|
|
RestrictPublicChannelDeletion:
|
|
type: boolean
|
|
RestrictPrivateChannelDeletion:
|
|
type: boolean
|
|
UserStatusAwayTimeout:
|
|
type: boolean
|
|
MaxChannelsPerTeam:
|
|
type: boolean
|
|
MaxNotificationsPerChannel:
|
|
type: boolean
|
|
SqlSettings:
|
|
type: object
|
|
properties:
|
|
DriverName:
|
|
type: boolean
|
|
DataSource:
|
|
type: boolean
|
|
DataSourceReplicas:
|
|
type: boolean
|
|
MaxIdleConns:
|
|
type: boolean
|
|
MaxOpenConns:
|
|
type: boolean
|
|
Trace:
|
|
type: boolean
|
|
AtRestEncryptKey:
|
|
type: boolean
|
|
LogSettings:
|
|
type: object
|
|
properties:
|
|
EnableConsole:
|
|
type: boolean
|
|
ConsoleLevel:
|
|
type: boolean
|
|
EnableFile:
|
|
type: boolean
|
|
FileLevel:
|
|
type: boolean
|
|
FileLocation:
|
|
type: boolean
|
|
EnableWebhookDebugging:
|
|
type: boolean
|
|
EnableDiagnostics:
|
|
type: boolean
|
|
PasswordSettings:
|
|
type: object
|
|
properties:
|
|
MinimumLength:
|
|
type: boolean
|
|
Lowercase:
|
|
type: boolean
|
|
Number:
|
|
type: boolean
|
|
Uppercase:
|
|
type: boolean
|
|
Symbol:
|
|
type: boolean
|
|
FileSettings:
|
|
type: object
|
|
properties:
|
|
MaxFileSize:
|
|
type: boolean
|
|
DriverName:
|
|
type: boolean
|
|
Directory:
|
|
type: boolean
|
|
EnablePublicLink:
|
|
type: boolean
|
|
PublicLinkSalt:
|
|
type: boolean
|
|
ThumbnailWidth:
|
|
type: boolean
|
|
ThumbnailHeight:
|
|
type: boolean
|
|
PreviewWidth:
|
|
type: boolean
|
|
PreviewHeight:
|
|
type: boolean
|
|
ProfileWidth:
|
|
type: boolean
|
|
ProfileHeight:
|
|
type: boolean
|
|
InitialFont:
|
|
type: boolean
|
|
AmazonS3AccessKeyId:
|
|
type: boolean
|
|
AmazonS3SecretAccessKey:
|
|
type: boolean
|
|
AmazonS3Bucket:
|
|
type: boolean
|
|
AmazonS3Region:
|
|
type: boolean
|
|
AmazonS3Endpoint:
|
|
type: boolean
|
|
AmazonS3SSL:
|
|
type: boolean
|
|
AmazonS3StorageClass:
|
|
type: string
|
|
EmailSettings:
|
|
type: object
|
|
properties:
|
|
EnableSignUpWithEmail:
|
|
type: boolean
|
|
EnableSignInWithEmail:
|
|
type: boolean
|
|
EnableSignInWithUsername:
|
|
type: boolean
|
|
SendEmailNotifications:
|
|
type: boolean
|
|
RequireEmailVerification:
|
|
type: boolean
|
|
FeedbackName:
|
|
type: boolean
|
|
FeedbackEmail:
|
|
type: boolean
|
|
FeedbackOrganization:
|
|
type: boolean
|
|
SMTPUsername:
|
|
type: boolean
|
|
SMTPPassword:
|
|
type: boolean
|
|
SMTPServer:
|
|
type: boolean
|
|
SMTPPort:
|
|
type: boolean
|
|
ConnectionSecurity:
|
|
type: boolean
|
|
InviteSalt:
|
|
type: boolean
|
|
PasswordResetSalt:
|
|
type: boolean
|
|
SendPushNotifications:
|
|
type: boolean
|
|
PushNotificationServer:
|
|
type: boolean
|
|
PushNotificationContents:
|
|
type: boolean
|
|
EnableEmailBatching:
|
|
type: boolean
|
|
EmailBatchingBufferSize:
|
|
type: boolean
|
|
EmailBatchingInterval:
|
|
type: boolean
|
|
RateLimitSettings:
|
|
type: object
|
|
properties:
|
|
Enable:
|
|
type: boolean
|
|
PerSec:
|
|
type: boolean
|
|
MaxBurst:
|
|
type: boolean
|
|
MemoryStoreSize:
|
|
type: boolean
|
|
VaryByRemoteAddr:
|
|
type: boolean
|
|
VaryByHeader:
|
|
type: boolean
|
|
PrivacySettings:
|
|
type: object
|
|
properties:
|
|
ShowEmailAddress:
|
|
type: boolean
|
|
ShowFullName:
|
|
type: boolean
|
|
SupportSettings:
|
|
type: object
|
|
properties:
|
|
TermsOfServiceLink:
|
|
type: boolean
|
|
PrivacyPolicyLink:
|
|
type: boolean
|
|
AboutLink:
|
|
type: boolean
|
|
HelpLink:
|
|
type: boolean
|
|
ReportAProblemLink:
|
|
type: boolean
|
|
ReportAProblemType:
|
|
type: boolean
|
|
ReportAProblemMail:
|
|
type: boolean
|
|
AllowDownloadLogs:
|
|
type: boolean
|
|
SupportEmail:
|
|
type: boolean
|
|
GitLabSettings:
|
|
type: object
|
|
properties:
|
|
Enable:
|
|
type: boolean
|
|
Secret:
|
|
type: boolean
|
|
Id:
|
|
type: boolean
|
|
Scope:
|
|
type: boolean
|
|
AuthEndpoint:
|
|
type: boolean
|
|
TokenEndpoint:
|
|
type: boolean
|
|
UserApiEndpoint:
|
|
type: boolean
|
|
GoogleSettings:
|
|
type: object
|
|
properties:
|
|
Enable:
|
|
type: boolean
|
|
Secret:
|
|
type: boolean
|
|
Id:
|
|
type: boolean
|
|
Scope:
|
|
type: boolean
|
|
AuthEndpoint:
|
|
type: boolean
|
|
TokenEndpoint:
|
|
type: boolean
|
|
UserApiEndpoint:
|
|
type: boolean
|
|
Office365Settings:
|
|
type: object
|
|
properties:
|
|
Enable:
|
|
type: boolean
|
|
Secret:
|
|
type: boolean
|
|
Id:
|
|
type: boolean
|
|
Scope:
|
|
type: boolean
|
|
AuthEndpoint:
|
|
type: boolean
|
|
TokenEndpoint:
|
|
type: boolean
|
|
UserApiEndpoint:
|
|
type: boolean
|
|
LdapSettings:
|
|
type: object
|
|
properties:
|
|
Enable:
|
|
type: boolean
|
|
LdapServer:
|
|
type: boolean
|
|
LdapPort:
|
|
type: boolean
|
|
ConnectionSecurity:
|
|
type: boolean
|
|
BaseDN:
|
|
type: boolean
|
|
BindUsername:
|
|
type: boolean
|
|
BindPassword:
|
|
type: boolean
|
|
UserFilter:
|
|
type: boolean
|
|
FirstNameAttribute:
|
|
type: boolean
|
|
LastNameAttribute:
|
|
type: boolean
|
|
EmailAttribute:
|
|
type: boolean
|
|
UsernameAttribute:
|
|
type: boolean
|
|
NicknameAttribute:
|
|
type: boolean
|
|
IdAttribute:
|
|
type: boolean
|
|
PositionAttribute:
|
|
type: boolean
|
|
SyncIntervalMinutes:
|
|
type: boolean
|
|
SkipCertificateVerification:
|
|
type: boolean
|
|
QueryTimeout:
|
|
type: boolean
|
|
MaxPageSize:
|
|
type: boolean
|
|
LoginFieldName:
|
|
type: boolean
|
|
ComplianceSettings:
|
|
type: object
|
|
properties:
|
|
Enable:
|
|
type: boolean
|
|
Directory:
|
|
type: boolean
|
|
EnableDaily:
|
|
type: boolean
|
|
LocalizationSettings:
|
|
type: object
|
|
properties:
|
|
DefaultServerLocale:
|
|
type: boolean
|
|
DefaultClientLocale:
|
|
type: boolean
|
|
AvailableLocales:
|
|
type: boolean
|
|
SamlSettings:
|
|
type: object
|
|
properties:
|
|
Enable:
|
|
type: boolean
|
|
Verify:
|
|
type: boolean
|
|
Encrypt:
|
|
type: boolean
|
|
IdpUrl:
|
|
type: boolean
|
|
IdpDescriptorUrl:
|
|
type: boolean
|
|
AssertionConsumerServiceURL:
|
|
type: boolean
|
|
IdpCertificateFile:
|
|
type: boolean
|
|
PublicCertificateFile:
|
|
type: boolean
|
|
PrivateKeyFile:
|
|
type: boolean
|
|
FirstNameAttribute:
|
|
type: boolean
|
|
LastNameAttribute:
|
|
type: boolean
|
|
EmailAttribute:
|
|
type: boolean
|
|
UsernameAttribute:
|
|
type: boolean
|
|
NicknameAttribute:
|
|
type: boolean
|
|
LocaleAttribute:
|
|
type: boolean
|
|
PositionAttribute:
|
|
type: boolean
|
|
LoginButtonText:
|
|
type: boolean
|
|
NativeAppSettings:
|
|
type: object
|
|
properties:
|
|
AppDownloadLink:
|
|
type: boolean
|
|
AndroidAppDownloadLink:
|
|
type: boolean
|
|
IosAppDownloadLink:
|
|
type: boolean
|
|
ClusterSettings:
|
|
type: object
|
|
properties:
|
|
Enable:
|
|
type: boolean
|
|
InterNodeListenAddress:
|
|
type: boolean
|
|
InterNodeUrls:
|
|
type: boolean
|
|
MetricsSettings:
|
|
type: object
|
|
properties:
|
|
Enable:
|
|
type: boolean
|
|
BlockProfileRate:
|
|
type: boolean
|
|
ListenAddress:
|
|
type: boolean
|
|
AnalyticsSettings:
|
|
type: object
|
|
properties:
|
|
MaxUsersForStatistics:
|
|
type: boolean
|
|
SamlCertificateStatus:
|
|
type: object
|
|
properties:
|
|
idp_certificate_file:
|
|
description: Status is good when `true`
|
|
type: boolean
|
|
public_certificate_file:
|
|
description: Status is good when `true`
|
|
type: boolean
|
|
private_key_file:
|
|
description: Status is good when `true`
|
|
type: boolean
|
|
IntuneLoginRequest:
|
|
type: object
|
|
description: Request body for Microsoft Intune MAM authentication using Azure AD/Entra ID access token
|
|
required:
|
|
- access_token
|
|
properties:
|
|
access_token:
|
|
type: string
|
|
description: Microsoft Entra ID access token obtained via MSAL (Microsoft Authentication Library). This token must be scoped to the Intune MAM app registration and will be validated against the configured tenant.
|
|
device_id:
|
|
type: string
|
|
description: Optional mobile device identifier used for push notifications. If provided, the device will be registered for receiving push notifications.
|
|
voip_device_id:
|
|
type: string
|
|
description: Optional VoIP push token. Same prefix shape as device_id. When provided, enables ring-style call push notifications.
|
|
Compliance:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
create_at:
|
|
type: integer
|
|
format: int64
|
|
user_id:
|
|
type: string
|
|
status:
|
|
type: string
|
|
count:
|
|
type: integer
|
|
desc:
|
|
type: string
|
|
type:
|
|
type: string
|
|
start_at:
|
|
type: integer
|
|
format: int64
|
|
end_at:
|
|
type: integer
|
|
format: int64
|
|
keywords:
|
|
type: string
|
|
emails:
|
|
type: string
|
|
ClusterInfo:
|
|
type: array
|
|
properties:
|
|
items:
|
|
type: object
|
|
properties:
|
|
id:
|
|
description: The unique ID for the node
|
|
type: string
|
|
version:
|
|
description: The server version the node is on
|
|
type: string
|
|
schema_version:
|
|
description: The number of the latest DB migration successfully executed for the node
|
|
type: string
|
|
config_hash:
|
|
description: The hash of the configuration file the node is using
|
|
type: string
|
|
ipaddress:
|
|
description: The IP address of the node
|
|
type: string
|
|
hostname:
|
|
description: The hostname for this node
|
|
type: string
|
|
AppError:
|
|
type: object
|
|
properties:
|
|
status_code:
|
|
type: integer
|
|
id:
|
|
type: string
|
|
message:
|
|
type: string
|
|
request_id:
|
|
type: string
|
|
Status:
|
|
type: object
|
|
properties:
|
|
user_id:
|
|
type: string
|
|
status:
|
|
type: string
|
|
manual:
|
|
type: boolean
|
|
last_activity_at:
|
|
type: integer
|
|
format: int64
|
|
OAuthApp:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
description: The client id of the application
|
|
client_secret:
|
|
type: string
|
|
description: The client secret of the application
|
|
name:
|
|
type: string
|
|
description: The name of the client application
|
|
description:
|
|
type: string
|
|
description: A short description of the application
|
|
icon_url:
|
|
type: string
|
|
description: A URL to an icon to display with the application
|
|
callback_urls:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: A list of callback URLs for the appliation
|
|
homepage:
|
|
type: string
|
|
description: A link to the website of the application
|
|
is_trusted:
|
|
type: boolean
|
|
description: Set this to `true` to skip asking users for permission
|
|
create_at:
|
|
type: integer
|
|
description: The time of registration for the application
|
|
format: int64
|
|
update_at:
|
|
type: integer
|
|
description: The last time of update for the application
|
|
format: int64
|
|
ClientRegistrationRequest:
|
|
type: object
|
|
description: OAuth 2.0 Dynamic Client Registration request as defined in RFC 7591
|
|
required:
|
|
- redirect_uris
|
|
properties:
|
|
redirect_uris:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: Array of redirection URI strings for use in redirect-based flows such as the authorization code and implicit flows
|
|
minItems: 1
|
|
client_name:
|
|
type: string
|
|
description: Human-readable string name of the client to be presented to the end-user during authorization
|
|
maxLength: 64
|
|
client_uri:
|
|
type: string
|
|
description: URL string of a web page providing information about the client
|
|
maxLength: 256
|
|
format: uri
|
|
ClientRegistrationResponse:
|
|
type: object
|
|
description: OAuth 2.0 Dynamic Client Registration response as defined in RFC 7591
|
|
properties:
|
|
client_id:
|
|
type: string
|
|
description: OAuth 2.0 client identifier string
|
|
client_secret:
|
|
type: string
|
|
description: OAuth 2.0 client secret string
|
|
redirect_uris:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: Array of the registered redirection URI strings
|
|
token_endpoint_auth_method:
|
|
type: string
|
|
description: String indicator of the requested authentication method for the token endpoint
|
|
enum:
|
|
- client_secret_post
|
|
- none
|
|
grant_types:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: Array of OAuth 2.0 grant type strings that the client can use at the token endpoint
|
|
response_types:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: Array of the OAuth 2.0 response type strings that the client can use at the authorization endpoint
|
|
scope:
|
|
type: string
|
|
description: Space-separated list of scope values that the client can use when requesting access tokens
|
|
client_name:
|
|
type: string
|
|
description: Human-readable string name of the client to be presented to the end-user during authorization
|
|
client_uri:
|
|
type: string
|
|
description: URL string of a web page providing information about the client
|
|
format: uri
|
|
AuthorizationServerMetadata:
|
|
type: object
|
|
description: OAuth 2.0 Authorization Server Metadata as defined in RFC 8414
|
|
properties:
|
|
issuer:
|
|
type: string
|
|
description: The authorization server's issuer identifier, which is a URL that uses the "https" scheme
|
|
authorization_endpoint:
|
|
type: string
|
|
description: URL of the authorization server's authorization endpoint
|
|
token_endpoint:
|
|
type: string
|
|
description: URL of the authorization server's token endpoint
|
|
response_types_supported:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: JSON array containing a list of the OAuth 2.0 response_type values that this authorization server supports
|
|
registration_endpoint:
|
|
type: string
|
|
description: URL of the authorization server's OAuth 2.0 Dynamic Client Registration endpoint
|
|
scopes_supported:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: JSON array containing a list of the OAuth 2.0 scope values that this authorization server supports
|
|
grant_types_supported:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: JSON array containing a list of the OAuth 2.0 grant type values that this authorization server supports
|
|
token_endpoint_auth_methods_supported:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: JSON array containing a list of client authentication methods supported by the token endpoint
|
|
code_challenge_methods_supported:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: JSON array containing a list of PKCE code challenge methods supported by this authorization server
|
|
required:
|
|
- issuer
|
|
- response_types_supported
|
|
Job:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
description: The unique id of the job
|
|
type:
|
|
type: string
|
|
description: The type of job
|
|
create_at:
|
|
type: integer
|
|
description: The time at which the job was created
|
|
format: int64
|
|
start_at:
|
|
type: integer
|
|
description: The time at which the job was started
|
|
format: int64
|
|
last_activity_at:
|
|
type: integer
|
|
description: The last time at which the job had activity
|
|
format: int64
|
|
status:
|
|
type: string
|
|
description: The status of the job
|
|
progress:
|
|
type: integer
|
|
description: The progress (as a percentage) of the job
|
|
data:
|
|
type: object
|
|
description: A freeform data field containing additional information about the job
|
|
UserAccessToken:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
description: Unique identifier for the token
|
|
token:
|
|
type: string
|
|
description: The token used for authentication
|
|
user_id:
|
|
type: string
|
|
description: The user the token authenticates for
|
|
description:
|
|
type: string
|
|
description: A description of the token usage
|
|
UserAccessTokenSanitized:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
description: Unique identifier for the token
|
|
user_id:
|
|
type: string
|
|
description: The user the token authenticates for
|
|
description:
|
|
type: string
|
|
description: A description of the token usage
|
|
is_active:
|
|
type: boolean
|
|
description: Indicates whether the token is active
|
|
GlobalDataRetentionPolicy:
|
|
type: object
|
|
properties:
|
|
message_deletion_enabled:
|
|
type: boolean
|
|
description: Indicates whether data retention policy deletion of messages is
|
|
enabled globally.
|
|
file_deletion_enabled:
|
|
type: boolean
|
|
description: Indicates whether data retention policy deletion of file attachments
|
|
is enabled globally.
|
|
message_retention_cutoff:
|
|
type: integer
|
|
description: The current server timestamp before which messages should be deleted.
|
|
file_retention_cutoff:
|
|
type: integer
|
|
description: The current server timestamp before which files should be deleted.
|
|
DataRetentionPolicyWithoutId:
|
|
type: object
|
|
properties:
|
|
display_name:
|
|
type: string
|
|
description: The display name for this retention policy.
|
|
post_duration:
|
|
type: integer
|
|
description: >
|
|
The number of days a message will be retained before being deleted by this policy.
|
|
If this value is less than 0, the policy has infinite retention (i.e. messages
|
|
are never deleted).
|
|
DataRetentionPolicy:
|
|
allOf:
|
|
- $ref: "#/components/schemas/DataRetentionPolicyWithoutId"
|
|
- type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
description: The ID of this retention policy.
|
|
DataRetentionPolicyWithTeamAndChannelCounts:
|
|
allOf:
|
|
- $ref: "#/components/schemas/DataRetentionPolicy"
|
|
- type: object
|
|
properties:
|
|
team_count:
|
|
type: integer
|
|
description: The number of teams to which this policy is applied.
|
|
channel_count:
|
|
type: integer
|
|
description: The number of channels to which this policy is applied.
|
|
DataRetentionPolicyWithTeamAndChannelIds:
|
|
allOf:
|
|
- $ref: "#/components/schemas/DataRetentionPolicyWithoutId"
|
|
- type: object
|
|
properties:
|
|
team_ids:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: The IDs of the teams to which this policy should be applied.
|
|
channel_ids:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: The IDs of the channels to which this policy should be applied.
|
|
DataRetentionPolicyCreate:
|
|
allOf:
|
|
- $ref: "#/components/schemas/DataRetentionPolicyWithTeamAndChannelIds"
|
|
required:
|
|
- display_name
|
|
- post_duration
|
|
DataRetentionPolicyForTeam:
|
|
type: object
|
|
properties:
|
|
team_id:
|
|
type: string
|
|
description: The team ID.
|
|
post_duration:
|
|
type: integer
|
|
description: The number of days a message will be retained before being deleted by this policy.
|
|
RetentionPolicyForTeamList:
|
|
type: object
|
|
properties:
|
|
policies:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/DataRetentionPolicyForTeam"
|
|
description: The list of team policies.
|
|
total_count:
|
|
type: integer
|
|
description: The total number of team policies.
|
|
DataRetentionPolicyForChannel:
|
|
type: object
|
|
properties:
|
|
channel_id:
|
|
type: string
|
|
description: The channel ID.
|
|
post_duration:
|
|
type: integer
|
|
description: The number of days a message will be retained before being deleted by this policy.
|
|
RetentionPolicyForChannelList:
|
|
type: object
|
|
properties:
|
|
policies:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/DataRetentionPolicyForChannel"
|
|
description: The list of channel policies.
|
|
total_count:
|
|
type: integer
|
|
description: The total number of channel policies.
|
|
UserNotifyProps:
|
|
type: object
|
|
properties:
|
|
email:
|
|
type: string
|
|
description: Set to "true" to enable email notifications, "false" to disable.
|
|
Defaults to "true".
|
|
push:
|
|
type: string
|
|
description: Set to "all" to receive push notifications for all activity,
|
|
"mention" for mentions and direct messages only, and "none" to
|
|
disable. Defaults to "mention".
|
|
desktop:
|
|
type: string
|
|
description: Set to "all" to receive desktop notifications for all activity,
|
|
"mention" for mentions and direct messages only, and "none" to
|
|
disable. Defaults to "all".
|
|
desktop_sound:
|
|
type: string
|
|
description: Set to "true" to enable sound on desktop notifications, "false" to
|
|
disable. Defaults to "true".
|
|
mention_keys:
|
|
type: string
|
|
description: A comma-separated list of words to count as mentions. Defaults to
|
|
username and @username.
|
|
channel:
|
|
type: string
|
|
description: Set to "true" to enable channel-wide notifications (@channel, @all,
|
|
etc.), "false" to disable. Defaults to "true".
|
|
first_name:
|
|
type: string
|
|
description: Set to "true" to enable mentions for first name. Defaults to "true"
|
|
if a first name is set, "false" otherwise.
|
|
auto_responder_message:
|
|
type: string
|
|
description: The message sent to users when they are auto-responded to.
|
|
Defaults to "".
|
|
push_threads:
|
|
type: string
|
|
description: Set to "all" to enable mobile push notifications for followed threads and "none" to disable.
|
|
Defaults to "all".
|
|
comments:
|
|
type: string
|
|
description: Set to "any" to enable notifications for comments to any post you have
|
|
replied to, "root" for comments on your posts, and "never" to disable. Only
|
|
affects users with collapsed reply threads disabled.
|
|
Defaults to "never".
|
|
desktop_threads:
|
|
type: string
|
|
description: Set to "all" to enable desktop notifications for followed threads and "none" to disable.
|
|
Defaults to "all".
|
|
email_threads:
|
|
type: string
|
|
description: Set to "all" to enable email notifications for followed threads and "none" to disable.
|
|
Defaults to "all".
|
|
Timezone:
|
|
type: object
|
|
properties:
|
|
useAutomaticTimezone:
|
|
type: string
|
|
description: Set to "true" to use the browser/system timezone, "false" to set
|
|
manually. Defaults to "true".
|
|
manualTimezone:
|
|
type: string
|
|
description: Value when setting manually the timezone, i.e. "Europe/Berlin".
|
|
automaticTimezone:
|
|
type: string
|
|
description: This value is set automatically when the "useAutomaticTimezone" is
|
|
set to "true".
|
|
ChannelNotifyProps:
|
|
type: object
|
|
properties:
|
|
email:
|
|
type: string
|
|
description: Set to "true" to enable email notifications, "false" to disable, or
|
|
"default" to use the global user notification setting.
|
|
push:
|
|
type: string
|
|
description: Set to "all" to receive push notifications for all activity,
|
|
"mention" for mentions and direct messages only, "none" to disable,
|
|
or "default" to use the global user notification setting.
|
|
desktop:
|
|
type: string
|
|
description: Set to "all" to receive desktop notifications for all activity,
|
|
"mention" for mentions and direct messages only, "none" to disable,
|
|
or "default" to use the global user notification setting.
|
|
mark_unread:
|
|
type: string
|
|
description: Set to "all" to mark the channel unread for any new message,
|
|
"mention" to mark unread for new mentions only. Defaults to "all".
|
|
PluginManifest:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
description: Globally unique identifier that represents the plugin.
|
|
name:
|
|
type: string
|
|
description: Name of the plugin.
|
|
description:
|
|
type: string
|
|
description: Description of what the plugin is and does.
|
|
version:
|
|
type: string
|
|
description: Version number of the plugin.
|
|
min_server_version:
|
|
type: string
|
|
description: |
|
|
The minimum Mattermost server version required for the plugin.
|
|
|
|
Available as server version 5.6.
|
|
backend:
|
|
type: object
|
|
description: Deprecated in Mattermost 5.2 release.
|
|
properties:
|
|
executable:
|
|
type: string
|
|
description: Path to the executable binary.
|
|
server:
|
|
type: object
|
|
properties:
|
|
executables:
|
|
type: object
|
|
description: Paths to executable binaries, specifying multiple entry points
|
|
for different platforms when bundled together in a single
|
|
plugin.
|
|
properties:
|
|
linux-amd64:
|
|
type: string
|
|
darwin-amd64:
|
|
type: string
|
|
windows-amd64:
|
|
type: string
|
|
executable:
|
|
type: string
|
|
description: Path to the executable binary.
|
|
webapp:
|
|
type: object
|
|
properties:
|
|
bundle_path:
|
|
type: string
|
|
description: Path to the webapp JavaScript bundle.
|
|
settings_schema:
|
|
type: object
|
|
description: Settings schema used to define the System Console UI for the plugin.
|
|
MarketplacePlugin:
|
|
type: object
|
|
properties:
|
|
homepage_url:
|
|
type: string
|
|
description: URL that leads to the homepage of the plugin.
|
|
icon_data:
|
|
type: string
|
|
description: Base64 encoding of a plugin icon SVG.
|
|
download_url:
|
|
type: string
|
|
description: URL to download the plugin.
|
|
release_notes_url:
|
|
type: string
|
|
description: URL that leads to the release notes of the plugin.
|
|
labels:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: A list of the plugin labels.
|
|
signature:
|
|
type: string
|
|
description: Base64 encoded signature of the plugin.
|
|
manifest:
|
|
$ref: "#/components/schemas/PluginManifest"
|
|
installed_version:
|
|
type: string
|
|
description: Version number of the already installed plugin, if any.
|
|
PushNotification:
|
|
type: object
|
|
properties:
|
|
ack_id:
|
|
type: string
|
|
platform:
|
|
type: string
|
|
server_id:
|
|
type: string
|
|
device_id:
|
|
type: string
|
|
post_id:
|
|
type: string
|
|
category:
|
|
type: string
|
|
sound:
|
|
type: string
|
|
message:
|
|
type: string
|
|
badge:
|
|
type: number
|
|
cont_ava:
|
|
type: number
|
|
team_id:
|
|
type: string
|
|
channel_id:
|
|
type: string
|
|
root_id:
|
|
type: string
|
|
channel_name:
|
|
type: string
|
|
type:
|
|
type: string
|
|
sub_type:
|
|
type: string
|
|
description: Additional message type information for mobile clients. Use "calls" for Calls plugin notifications.
|
|
transport:
|
|
type: string
|
|
description: Delivery path for the push proxy. Use "voip" for VoIP (CallKit) notifications; omit for standard delivery.
|
|
enum:
|
|
- ""
|
|
- voip
|
|
sender_id:
|
|
type: string
|
|
sender_name:
|
|
type: string
|
|
override_username:
|
|
type: string
|
|
override_icon_url:
|
|
type: string
|
|
from_webhook:
|
|
type: string
|
|
version:
|
|
type: string
|
|
is_crt_enabled:
|
|
type: boolean
|
|
description: Whether Collapsed Reply Threads is enabled for the recipient.
|
|
is_id_loaded:
|
|
type: boolean
|
|
signature:
|
|
type: string
|
|
PluginStatus:
|
|
type: object
|
|
properties:
|
|
plugin_id:
|
|
type: string
|
|
description: Globally unique identifier that represents the plugin.
|
|
name:
|
|
type: string
|
|
description: Name of the plugin.
|
|
description:
|
|
type: string
|
|
description: Description of what the plugin is and does.
|
|
version:
|
|
type: string
|
|
description: Version number of the plugin.
|
|
cluster_id:
|
|
type: string
|
|
description: ID of the cluster in which plugin is running
|
|
plugin_path:
|
|
type: string
|
|
description: Path to the plugin on the server
|
|
state:
|
|
type: number
|
|
description: State of the plugin
|
|
enum:
|
|
- NotRunning
|
|
- Starting
|
|
- Running
|
|
- FailedToStart
|
|
- FailedToStayRunning
|
|
- Stopping
|
|
|
|
|
|
PluginManifestWebapp:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
description: Globally unique identifier that represents the plugin.
|
|
version:
|
|
type: string
|
|
description: Version number of the plugin.
|
|
webapp:
|
|
type: object
|
|
properties:
|
|
bundle_path:
|
|
type: string
|
|
description: Path to the webapp JavaScript bundle.
|
|
Role:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
description: The unique identifier of the role.
|
|
name:
|
|
type: string
|
|
description: The unique name of the role, used when assigning roles to
|
|
users/groups in contexts.
|
|
display_name:
|
|
type: string
|
|
description: The human readable name for the role.
|
|
description:
|
|
type: string
|
|
description: A human readable description of the role.
|
|
permissions:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: A list of the unique names of the permissions this role grants.
|
|
scheme_managed:
|
|
type: boolean
|
|
description: indicates if this role is managed by a scheme (true), or is a custom
|
|
stand-alone role (false).
|
|
Scheme:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
description: The unique identifier of the scheme.
|
|
name:
|
|
type: string
|
|
description: The human readable name for the scheme.
|
|
description:
|
|
type: string
|
|
description: A human readable description of the scheme.
|
|
create_at:
|
|
type: integer
|
|
format: int64
|
|
description: The time at which the scheme was created.
|
|
update_at:
|
|
type: integer
|
|
format: int64
|
|
description: The time at which the scheme was last updated.
|
|
delete_at:
|
|
type: integer
|
|
format: int64
|
|
description: The time at which the scheme was deleted.
|
|
scope:
|
|
type: string
|
|
description: The scope to which this scheme can be applied, either "team" or
|
|
"channel".
|
|
default_team_admin_role:
|
|
type: string
|
|
description: The id of the default team admin role for this scheme.
|
|
default_team_user_role:
|
|
type: string
|
|
description: The id of the default team user role for this scheme.
|
|
default_channel_admin_role:
|
|
type: string
|
|
description: The id of the default channel admin role for this scheme.
|
|
default_channel_user_role:
|
|
type: string
|
|
description: The id of the default channel user role for this scheme.
|
|
TermsOfService:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
description: The unique identifier of the terms of service.
|
|
create_at:
|
|
type: integer
|
|
format: int64
|
|
description: The time at which the terms of service was created.
|
|
user_id:
|
|
type: string
|
|
description: The unique identifier of the user who created these terms of service.
|
|
text:
|
|
type: string
|
|
description: The text of terms of service. Supports Markdown.
|
|
UserTermsOfService:
|
|
type: object
|
|
properties:
|
|
user_id:
|
|
type: string
|
|
description: The unique identifier of the user who performed this terms of
|
|
service action.
|
|
terms_of_service_id:
|
|
type: string
|
|
description: The unique identifier of the terms of service the action was
|
|
performed on.
|
|
create_at:
|
|
description: The time in milliseconds that this action was performed.
|
|
type: integer
|
|
format: int64
|
|
PostIdToReactionsMap:
|
|
type: object
|
|
additionalProperties:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Reaction"
|
|
Product:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
price_per_seat:
|
|
type: string
|
|
add_ons:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/AddOn"
|
|
AddOn:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
display_name:
|
|
type: string
|
|
price_per_seat:
|
|
type: string
|
|
ProductLimits:
|
|
type: object
|
|
properties:
|
|
boards:
|
|
$ref: "#/components/schemas/BoardsLimits"
|
|
nullable: true
|
|
files:
|
|
$ref: "#/components/schemas/FilesLimits"
|
|
nullable: true
|
|
integrations:
|
|
$ref: "#/components/schemas/IntegrationsLimits"
|
|
nullable: true
|
|
messages:
|
|
$ref: "#/components/schemas/MessagesLimits"
|
|
nullable: true
|
|
teams:
|
|
$ref: "#/components/schemas/TeamsLimits"
|
|
nullable: true
|
|
BoardsLimits:
|
|
type: object
|
|
properties:
|
|
cards:
|
|
type: integer
|
|
nullable: true
|
|
views:
|
|
type: integer
|
|
nullable: true
|
|
FilesLimits:
|
|
type: object
|
|
properties:
|
|
total_storage:
|
|
type: integer
|
|
format: int64
|
|
nullable: true
|
|
IntegrationsLimits:
|
|
type: object
|
|
properties:
|
|
enabled:
|
|
type: integer
|
|
nullable: true
|
|
MessagesLimits:
|
|
type: object
|
|
properties:
|
|
history:
|
|
type: integer
|
|
nullable: true
|
|
TeamsLimits:
|
|
type: object
|
|
properties:
|
|
active:
|
|
type: integer
|
|
nullable: true
|
|
PaymentMethod:
|
|
type: object
|
|
properties:
|
|
type:
|
|
type: string
|
|
last_four:
|
|
type: integer
|
|
exp_month:
|
|
type: integer
|
|
exp_year:
|
|
type: integer
|
|
card_brand:
|
|
type: string
|
|
name:
|
|
type: string
|
|
Address:
|
|
type: object
|
|
properties:
|
|
city:
|
|
type: string
|
|
country:
|
|
type: string
|
|
line1:
|
|
type: string
|
|
line2:
|
|
type: string
|
|
postal_code:
|
|
type: string
|
|
state:
|
|
type: string
|
|
CloudCustomer:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
creator_id:
|
|
type: string
|
|
create_at:
|
|
type: integer
|
|
format: int64
|
|
email:
|
|
type: string
|
|
name:
|
|
type: string
|
|
num_employees:
|
|
type: string
|
|
contact_first_name:
|
|
type: string
|
|
contact_last_name:
|
|
type: string
|
|
billing_address:
|
|
$ref: "#/components/schemas/Address"
|
|
company_address:
|
|
$ref: "#/components/schemas/Address"
|
|
payment_method:
|
|
$ref: "#/components/schemas/PaymentMethod"
|
|
Subscription:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
customer_id:
|
|
type: string
|
|
product_id:
|
|
type: string
|
|
add_ons:
|
|
type: array
|
|
items:
|
|
type: string
|
|
start_at:
|
|
type: integer
|
|
format: int64
|
|
end_at:
|
|
type: integer
|
|
format: int64
|
|
create_at:
|
|
type: integer
|
|
format: int64
|
|
seats:
|
|
type: integer
|
|
dns:
|
|
type: string
|
|
SubscriptionStats:
|
|
type: object
|
|
properties:
|
|
remaining_seats:
|
|
type: integer
|
|
is_paid_tier:
|
|
type: string
|
|
Invoice:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
number:
|
|
type: string
|
|
create_at:
|
|
type: integer
|
|
format: int64
|
|
total:
|
|
type: integer
|
|
format: int64
|
|
tax:
|
|
type: integer
|
|
format: int64
|
|
status:
|
|
type: string
|
|
period_start:
|
|
type: integer
|
|
format: int64
|
|
period_end:
|
|
type: integer
|
|
format: int64
|
|
subscription_id:
|
|
type: string
|
|
item:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/InvoiceLineItem"
|
|
InvoiceLineItem:
|
|
type: object
|
|
properties:
|
|
price_id:
|
|
type: string
|
|
total:
|
|
type: integer
|
|
format: int64
|
|
quantity:
|
|
type: integer
|
|
format: int64
|
|
price_per_unit:
|
|
type: integer
|
|
format: int64
|
|
description:
|
|
type: string
|
|
metadata:
|
|
type: array
|
|
items:
|
|
type: string
|
|
Group:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
display_name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
source:
|
|
type: string
|
|
remote_id:
|
|
type: string
|
|
create_at:
|
|
type: integer
|
|
format: int64
|
|
update_at:
|
|
type: integer
|
|
format: int64
|
|
delete_at:
|
|
type: integer
|
|
format: int64
|
|
has_syncables:
|
|
type: boolean
|
|
GroupMember:
|
|
type: object
|
|
properties:
|
|
group_id:
|
|
type: string
|
|
user_id:
|
|
type: string
|
|
create_at:
|
|
type: integer
|
|
format: int64
|
|
delete_at:
|
|
type: integer
|
|
format: int64
|
|
GroupSyncableTeam:
|
|
type: object
|
|
properties:
|
|
team_id:
|
|
type: string
|
|
group_id:
|
|
type: string
|
|
auto_add:
|
|
type: boolean
|
|
create_at:
|
|
type: integer
|
|
format: int64
|
|
delete_at:
|
|
type: integer
|
|
format: int64
|
|
update_at:
|
|
type: integer
|
|
format: int64
|
|
GroupSyncableChannel:
|
|
type: object
|
|
properties:
|
|
channel_id:
|
|
type: string
|
|
group_id:
|
|
type: string
|
|
auto_add:
|
|
type: boolean
|
|
create_at:
|
|
type: integer
|
|
format: int64
|
|
delete_at:
|
|
type: integer
|
|
format: int64
|
|
update_at:
|
|
type: integer
|
|
format: int64
|
|
GroupSyncableTeams:
|
|
type: object
|
|
properties:
|
|
team_id:
|
|
type: string
|
|
team_display_name:
|
|
type: string
|
|
team_type:
|
|
type: string
|
|
group_id:
|
|
type: string
|
|
auto_add:
|
|
type: boolean
|
|
create_at:
|
|
type: integer
|
|
format: int64
|
|
delete_at:
|
|
type: integer
|
|
format: int64
|
|
update_at:
|
|
type: integer
|
|
format: int64
|
|
GroupSyncableChannels:
|
|
type: object
|
|
properties:
|
|
channel_id:
|
|
type: string
|
|
channel_display_name:
|
|
type: string
|
|
channel_type:
|
|
type: string
|
|
team_id:
|
|
type: string
|
|
team_display_name:
|
|
type: string
|
|
team_type:
|
|
type: string
|
|
group_id:
|
|
type: string
|
|
auto_add:
|
|
type: boolean
|
|
create_at:
|
|
type: integer
|
|
format: int64
|
|
delete_at:
|
|
type: integer
|
|
format: int64
|
|
update_at:
|
|
type: integer
|
|
format: int64
|
|
ChannelModeration:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
roles:
|
|
$ref: "#/components/schemas/ChannelModeratedRoles"
|
|
ChannelModeratedRoles:
|
|
type: object
|
|
properties:
|
|
guests:
|
|
$ref: "#/components/schemas/ChannelModeratedRole"
|
|
members:
|
|
$ref: "#/components/schemas/ChannelModeratedRole"
|
|
ChannelModeratedRole:
|
|
type: object
|
|
properties:
|
|
value:
|
|
type: boolean
|
|
enabled:
|
|
type: boolean
|
|
ChannelModeratedRolesPatch:
|
|
type: object
|
|
properties:
|
|
guests:
|
|
type: boolean
|
|
members:
|
|
type: boolean
|
|
ChannelModerationPatch:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
roles:
|
|
$ref: "#/components/schemas/ChannelModeratedRolesPatch"
|
|
ChannelMemberCountByGroup:
|
|
description: An object describing group member information in a channel
|
|
type: object
|
|
properties:
|
|
group_id:
|
|
type: string
|
|
description: ID of the group
|
|
channel_member_count:
|
|
type: number
|
|
description: Total number of group members in the channel
|
|
channel_member_timezones_count:
|
|
type: number
|
|
description: Total number of unique timezones for the group members in the channel
|
|
LDAPGroupsPaged:
|
|
description: A paged list of LDAP groups
|
|
type: object
|
|
properties:
|
|
count:
|
|
type: number
|
|
description: Total number of groups
|
|
groups:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/LDAPGroup"
|
|
LDAPGroup:
|
|
description: A LDAP group
|
|
type: object
|
|
properties:
|
|
has_syncables:
|
|
type: boolean
|
|
mattermost_group_id:
|
|
type: string
|
|
primary_key:
|
|
type: string
|
|
name:
|
|
type: string
|
|
SidebarCategory:
|
|
description: User's sidebar category
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
user_id:
|
|
type: string
|
|
team_id:
|
|
type: string
|
|
display_name:
|
|
type: string
|
|
type:
|
|
type: string
|
|
enum:
|
|
- channels
|
|
- custom
|
|
- direct_messages
|
|
- favorites
|
|
SidebarCategoryWithChannels:
|
|
description: User's sidebar category with it's channels
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
user_id:
|
|
type: string
|
|
team_id:
|
|
type: string
|
|
display_name:
|
|
type: string
|
|
type:
|
|
type: string
|
|
enum:
|
|
- channels
|
|
- custom
|
|
- direct_messages
|
|
- favorites
|
|
channel_ids:
|
|
type: array
|
|
items:
|
|
type: string
|
|
OrderedSidebarCategories:
|
|
description: List of user's categories with their channels
|
|
type: object
|
|
properties:
|
|
order:
|
|
type: array
|
|
items:
|
|
type: string
|
|
categories:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/SidebarCategoryWithChannels"
|
|
Bot:
|
|
description: A bot account
|
|
type: object
|
|
properties:
|
|
user_id:
|
|
description: The user id of the associated user entry.
|
|
type: string
|
|
create_at:
|
|
description: The time in milliseconds a bot was created
|
|
type: integer
|
|
format: int64
|
|
update_at:
|
|
description: The time in milliseconds a bot was last updated
|
|
type: integer
|
|
format: int64
|
|
delete_at:
|
|
description: The time in milliseconds a bot was deleted
|
|
type: integer
|
|
format: int64
|
|
username:
|
|
type: string
|
|
display_name:
|
|
type: string
|
|
description:
|
|
type: string
|
|
owner_id:
|
|
description: The user id of the user that currently owns this bot.
|
|
type: string
|
|
Server_Busy:
|
|
type: object
|
|
properties:
|
|
busy:
|
|
description: True if the server is marked as busy (under high load)
|
|
type: boolean
|
|
expires:
|
|
description: timestamp - number of seconds since Jan 1, 1970 UTC.
|
|
type: integer
|
|
format: int64
|
|
GroupWithSchemeAdmin:
|
|
description: group augmented with scheme admin information
|
|
type: object
|
|
properties:
|
|
group:
|
|
$ref: "#/components/schemas/Group"
|
|
scheme_admin:
|
|
type: boolean
|
|
GroupsAssociatedToChannels:
|
|
description: a map of channel id(s) to the set of groups that constrain the corresponding channel in a team
|
|
type: object
|
|
additionalProperties:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/GroupWithSchemeAdmin"
|
|
|
|
OrphanedRecord:
|
|
description: an object containing information about an orphaned record.
|
|
type: object
|
|
properties:
|
|
parent_id:
|
|
type: string
|
|
description: the id of the parent relation (table) entry.
|
|
child_id:
|
|
type: string
|
|
description: the id of the child relation (table) entry.
|
|
UserThread:
|
|
description: a thread that user is following
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
description: ID of the post that is this thread's root
|
|
reply_count:
|
|
type: integer
|
|
description: number of replies in this thread
|
|
last_reply_at:
|
|
type: integer
|
|
format: int64
|
|
description: timestamp of the last post to this thread
|
|
last_viewed_at:
|
|
type: integer
|
|
format: int64
|
|
description: timestamp of the last time the user viewed this thread
|
|
participants:
|
|
type: array
|
|
description: list of users participating in this thread. only includes IDs unless 'extended' was set to 'true'
|
|
items:
|
|
$ref: "#/components/schemas/User"
|
|
post:
|
|
$ref: "#/components/schemas/Post"
|
|
RelationalIntegrityCheckData:
|
|
description: an object containing the results of a relational integrity check.
|
|
type: object
|
|
properties:
|
|
parent_name:
|
|
type: string
|
|
description: the name of the parent relation (table).
|
|
child_name:
|
|
type: string
|
|
description: the name of the child relation (table).
|
|
parent_id_attr:
|
|
type: string
|
|
description: the name of the attribute (column) containing the parent id.
|
|
child_id_attr:
|
|
type: string
|
|
description: the name of the attribute (column) containing the child id.
|
|
records:
|
|
description: the list of orphaned records found.
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/OrphanedRecord"
|
|
IntegrityCheckResult:
|
|
description: an object with the result of the integrity check.
|
|
type: object
|
|
properties:
|
|
data:
|
|
$ref: "#/components/schemas/RelationalIntegrityCheckData"
|
|
err:
|
|
type: string
|
|
description: a string value set in case of error.
|
|
UploadSession:
|
|
description: an object containing information used to keep track of a file upload.
|
|
type: object
|
|
properties:
|
|
id:
|
|
description: The unique identifier for the upload.
|
|
type: string
|
|
type:
|
|
description: The type of the upload.
|
|
type: string
|
|
enum:
|
|
- attachment
|
|
- import
|
|
create_at:
|
|
description: The time the upload was created in milliseconds.
|
|
type: integer
|
|
format: int64
|
|
user_id:
|
|
description: The ID of the user performing the upload.
|
|
type: string
|
|
channel_id:
|
|
description: The ID of the channel to upload to.
|
|
type: string
|
|
filename:
|
|
description: The name of the file to upload.
|
|
type: string
|
|
file_size:
|
|
description: The size of the file to upload in bytes.
|
|
type: integer
|
|
format: int64
|
|
file_offset:
|
|
description: The amount of data uploaded in bytes.
|
|
type: integer
|
|
format: int64
|
|
Notice:
|
|
type: object
|
|
properties:
|
|
id:
|
|
description: Notice ID
|
|
type: string
|
|
sysAdminOnly:
|
|
description: Does this notice apply only to sysadmins
|
|
type: boolean
|
|
teamAdminOnly:
|
|
description: Does this notice apply only to team admins
|
|
type: boolean
|
|
action:
|
|
description: "Optional action to perform on action button click. (defaults to closing the notice)"
|
|
type: string
|
|
actionParam:
|
|
description: "Optional action parameter. \nExample: {\"action\": \"url\", actionParam: \"/console/some-page\"}"
|
|
type: string
|
|
actionText:
|
|
description: Optional override for the action button text (defaults to OK)
|
|
type: string
|
|
description:
|
|
description: "Notice content. Use {{Mattermost}} instead of plain text to support white-labeling. Text supports Markdown."
|
|
type: string
|
|
image:
|
|
description: URL of image to display
|
|
type: string
|
|
title:
|
|
description: "Notice title. Use {{Mattermost}} instead of plain text to support white-labeling. Text supports Markdown."
|
|
type: string
|
|
SharedChannel:
|
|
type: object
|
|
properties:
|
|
id:
|
|
description: Channel id of the shared channel
|
|
type: string
|
|
team_id:
|
|
type: string
|
|
home:
|
|
description: Is this the home cluster for the shared channel
|
|
type: boolean
|
|
readonly:
|
|
description: Is this shared channel shared as read only
|
|
type: boolean
|
|
name:
|
|
description: Channel name as it is shared (may be different than original channel name)
|
|
type: string
|
|
display_name:
|
|
description: Channel display name as it appears locally
|
|
type: string
|
|
purpose:
|
|
type: string
|
|
header:
|
|
type: string
|
|
creator_id:
|
|
description: Id of the user that shared the channel
|
|
type: string
|
|
create_at:
|
|
description: Time in milliseconds that the channel was shared
|
|
type: integer
|
|
update_at:
|
|
description: Time in milliseconds that the shared channel record was last updated
|
|
type: integer
|
|
remote_id:
|
|
description: Id of the remote cluster where the shared channel is homed
|
|
type: string
|
|
RemoteCluster:
|
|
type: object
|
|
properties:
|
|
remote_id:
|
|
type: string
|
|
remote_team_id:
|
|
type: string
|
|
name:
|
|
type: string
|
|
display_name:
|
|
type: string
|
|
site_url:
|
|
description: URL of the remote cluster
|
|
type: string
|
|
default_team_id:
|
|
description: The team where channels from invites are created
|
|
type: string
|
|
create_at:
|
|
description: Time in milliseconds that the remote cluster was created
|
|
type: integer
|
|
delete_at:
|
|
description: Time in milliseconds that the remote cluster record was deleted
|
|
type: integer
|
|
last_ping_at:
|
|
description: Time in milliseconds when the last ping to the remote cluster was run
|
|
type: integer
|
|
token:
|
|
type: string
|
|
remote_token:
|
|
type: string
|
|
topics:
|
|
type: string
|
|
creator_id:
|
|
type: string
|
|
plugin_id:
|
|
type: string
|
|
options:
|
|
description: A bitmask with a set of option flags
|
|
type: integer
|
|
RemoteClusterInfo:
|
|
type: object
|
|
properties:
|
|
display_name:
|
|
description: The display name for the remote cluster
|
|
type: string
|
|
create_at:
|
|
description: The time in milliseconds a remote cluster was created
|
|
type: integer
|
|
format: int64
|
|
last_ping_at:
|
|
description: The time in milliseconds a remote cluster was last pinged successfully
|
|
type: integer
|
|
format: int64
|
|
SharedChannelRemote:
|
|
type: object
|
|
properties:
|
|
id:
|
|
description: The id of the shared channel remote
|
|
type: string
|
|
channel_id:
|
|
description: The id of the channel
|
|
type: string
|
|
creator_id:
|
|
description: Id of the user that invited the remote to share the channel
|
|
type: string
|
|
create_at:
|
|
description: Time in milliseconds that the remote was invited to the channel
|
|
type: integer
|
|
update_at:
|
|
description: Time in milliseconds that the shared channel remote record was last updated
|
|
type: integer
|
|
delete_at:
|
|
description: Time in milliseconds that the shared chanenl remote record was deleted
|
|
type: integer
|
|
is_invite_accepted:
|
|
description: Indicates if the invite has been accepted by the remote
|
|
type: boolean
|
|
is_invite_confirmed:
|
|
description: Indicates if the invite has been confirmed by the remote
|
|
type: boolean
|
|
remote_id:
|
|
description: Id of the remote cluster that the channel is shared with
|
|
type: string
|
|
last_post_update_at:
|
|
description: Time in milliseconds of the last post in the channel that was synchronized with the remote update_at
|
|
type: integer
|
|
last_post_id:
|
|
description: Id of the last post in the channel that was synchronized with the remote
|
|
type: string
|
|
last_post_create_at:
|
|
description: Time in milliseconds of the last post in the channel that was synchronized with the remote create_at
|
|
type: string
|
|
last_post_create_id:
|
|
type: string
|
|
SystemStatusResponse:
|
|
type: object
|
|
properties:
|
|
AndroidLatestVersion:
|
|
description: Latest Android version supported
|
|
type: string
|
|
AndroidMinVersion:
|
|
description: Minimum Android version supported
|
|
type: string
|
|
DesktopLatestVersion:
|
|
description: Latest desktop version supported
|
|
type: string
|
|
DesktopMinVersion:
|
|
description: Minimum desktop version supported
|
|
type: string
|
|
IosLatestVersion:
|
|
description: Latest iOS version supported
|
|
type: string
|
|
IosMinVersion:
|
|
description: Minimum iOS version supported
|
|
type: string
|
|
database_status:
|
|
description: Status of database ("OK" or "UNHEALTHY"). Included when get_server_status parameter set.
|
|
type: string
|
|
filestore_status:
|
|
description: Status of filestore ("OK" or "UNHEALTHY"). Included when get_server_status parameter set.
|
|
type: string
|
|
status:
|
|
description: Status of server ("OK" or "UNHEALTHY"). Included when get_server_status parameter set.
|
|
type: string
|
|
CanReceiveNotifications:
|
|
description: Whether the device id provided can receive notifications ("true", "false" or "unknown"). Included when device_id parameter set.
|
|
type: string
|
|
UserThreads:
|
|
type: object
|
|
properties:
|
|
total:
|
|
description: Total number of threads (used for paging)
|
|
type: integer
|
|
threads:
|
|
description: Array of threads
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/UserThread"
|
|
System:
|
|
type: object
|
|
properties:
|
|
name:
|
|
description: System property name
|
|
type: string
|
|
value:
|
|
description: System property value
|
|
type: string
|
|
PostsUsage:
|
|
type: object
|
|
properties:
|
|
count:
|
|
type: number
|
|
description: Total no. of posts
|
|
StorageUsage:
|
|
type: object
|
|
properties:
|
|
bytes:
|
|
type: number
|
|
description: Total file storage usage for the instance in bytes rounded down to the most significant digit
|
|
BridgeAgentInfo:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
description: Unique identifier for the agent
|
|
displayName:
|
|
type: string
|
|
description: Human-readable name for the agent
|
|
username:
|
|
type: string
|
|
description: Username associated with the agent bot
|
|
service_id:
|
|
type: string
|
|
description: ID of the service providing this agent
|
|
service_type:
|
|
type: string
|
|
description: Type of the service (e.g., openai, anthropic)
|
|
BridgeServiceInfo:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
description: Unique identifier for the LLM service
|
|
name:
|
|
type: string
|
|
description: Name of the LLM service
|
|
type:
|
|
type: string
|
|
description: Type of the service (e.g., openai, anthropic, azure)
|
|
AgentsResponse:
|
|
type: object
|
|
properties:
|
|
agents:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/BridgeAgentInfo"
|
|
description: List of available agents
|
|
ServicesResponse:
|
|
type: object
|
|
properties:
|
|
services:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/BridgeServiceInfo"
|
|
description: List of available LLM services
|
|
AgentsIntegrityResponse:
|
|
type: object
|
|
properties:
|
|
available:
|
|
type: boolean
|
|
description: Whether the AI plugin bridge is available
|
|
reason:
|
|
type: string
|
|
description: Reason code if not available (translation ID)
|
|
AIBridgeTestHelperStatus:
|
|
type: object
|
|
properties:
|
|
available:
|
|
type: boolean
|
|
description: Whether the mocked AI bridge should be reported as available
|
|
reason:
|
|
type: string
|
|
description: Optional reason code when the mocked AI bridge is unavailable
|
|
AIBridgeTestHelperFeatureFlags:
|
|
type: object
|
|
properties:
|
|
enable_ai_plugin_bridge:
|
|
type: boolean
|
|
description: Override for the EnableAIPluginBridge feature flag in test mode
|
|
enable_ai_recaps:
|
|
type: boolean
|
|
description: Override for the EnableAIRecaps feature flag in test mode
|
|
AIBridgeTestHelperCompletion:
|
|
type: object
|
|
properties:
|
|
completion:
|
|
type: string
|
|
description: Mocked completion payload returned for a queued bridge operation
|
|
error:
|
|
type: string
|
|
description: Mocked error message returned for a queued bridge operation
|
|
status_code:
|
|
type: integer
|
|
description: Optional HTTP-style status code associated with a mocked error
|
|
AIBridgeTestHelperMessage:
|
|
type: object
|
|
properties:
|
|
role:
|
|
type: string
|
|
description: Role associated with the message payload
|
|
message:
|
|
type: string
|
|
description: Message content sent through the AI bridge
|
|
file_ids:
|
|
type: array
|
|
description: Optional file IDs attached to the bridge message
|
|
items:
|
|
type: string
|
|
AIBridgeTestHelperConfig:
|
|
type: object
|
|
properties:
|
|
status:
|
|
$ref: "#/components/schemas/AIBridgeTestHelperStatus"
|
|
agents:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/BridgeAgentInfo"
|
|
description: Mock agent list returned from the bridge
|
|
services:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/BridgeServiceInfo"
|
|
description: Mock service list returned from the bridge
|
|
agent_completions:
|
|
type: object
|
|
description: Queued mocked completion responses keyed by explicit bridge operation name
|
|
additionalProperties:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/AIBridgeTestHelperCompletion"
|
|
feature_flags:
|
|
$ref: "#/components/schemas/AIBridgeTestHelperFeatureFlags"
|
|
record_requests:
|
|
type: boolean
|
|
description: Whether bridge requests should be recorded for later inspection
|
|
AIBridgeTestHelperRecordedRequest:
|
|
type: object
|
|
properties:
|
|
operation:
|
|
type: string
|
|
description: Explicit bridge operation key such as recap_summary or rewrite
|
|
client_operation:
|
|
type: string
|
|
description: Client-facing operation routed through the bridge client
|
|
operation_sub_type:
|
|
type: string
|
|
description: Optional subtype used to disambiguate bridge requests
|
|
session_user_id:
|
|
type: string
|
|
description: Session user ID used when invoking the bridge
|
|
user_id:
|
|
type: string
|
|
description: Optional effective user ID passed through the bridge request
|
|
channel_id:
|
|
type: string
|
|
description: Optional channel context passed through the bridge request
|
|
agent_id:
|
|
type: string
|
|
description: Agent ID targeted by the bridge completion request
|
|
service_id:
|
|
type: string
|
|
description: Service ID targeted by the bridge completion request
|
|
messages:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/AIBridgeTestHelperMessage"
|
|
description: Bridge messages sent for the recorded request
|
|
json_output_format:
|
|
type: object
|
|
description: Optional JSON schema requested for structured bridge output
|
|
additionalProperties: true
|
|
AIBridgeTestHelperState:
|
|
type: object
|
|
properties:
|
|
status:
|
|
$ref: "#/components/schemas/AIBridgeTestHelperStatus"
|
|
agents:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/BridgeAgentInfo"
|
|
description: Current mocked agent list
|
|
services:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/BridgeServiceInfo"
|
|
description: Current mocked service list
|
|
agent_completions:
|
|
type: object
|
|
description: Remaining queued mocked completions keyed by bridge operation
|
|
additionalProperties:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/AIBridgeTestHelperCompletion"
|
|
feature_flags:
|
|
$ref: "#/components/schemas/AIBridgeTestHelperFeatureFlags"
|
|
record_requests:
|
|
type: boolean
|
|
description: Whether bridge request recording is currently enabled
|
|
recorded_requests:
|
|
type: array
|
|
description: Recorded bridge requests captured while record_requests was enabled
|
|
items:
|
|
$ref: "#/components/schemas/AIBridgeTestHelperRecordedRequest"
|
|
PostAcknowledgement:
|
|
type: object
|
|
properties:
|
|
user_id:
|
|
description: The ID of the user that made this acknowledgement.
|
|
type: string
|
|
post_id:
|
|
description: The ID of the post to which this acknowledgement was made.
|
|
type: string
|
|
acknowledged_at:
|
|
description: The time in milliseconds in which this acknowledgement was made.
|
|
type: integer
|
|
format: int64
|
|
AllowedIPRange:
|
|
type: object
|
|
properties:
|
|
CIDRBlock:
|
|
description: An IP address range in CIDR notation
|
|
type: string
|
|
Description:
|
|
description: A description for the CIDRBlock
|
|
type: string
|
|
UserReport:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
create_at:
|
|
description: The time in milliseconds a user was created
|
|
type: integer
|
|
format: int64
|
|
update_at:
|
|
description: The time in milliseconds a user was last updated
|
|
type: integer
|
|
format: int64
|
|
delete_at:
|
|
description: The time in milliseconds a user was deleted
|
|
type: integer
|
|
format: int64
|
|
username:
|
|
type: string
|
|
auth_data:
|
|
type: string
|
|
auth_service:
|
|
type: string
|
|
email:
|
|
type: string
|
|
nickname:
|
|
type: string
|
|
first_name:
|
|
type: string
|
|
last_name:
|
|
type: string
|
|
position:
|
|
type: string
|
|
roles:
|
|
type: string
|
|
locale:
|
|
type: string
|
|
timezone:
|
|
$ref: "#/components/schemas/Timezone"
|
|
disable_welcome_email:
|
|
type: boolean
|
|
last_login:
|
|
description: Last time the user was logged in
|
|
type: integer
|
|
format: int64
|
|
last_status_at:
|
|
description: Last time the user's status was updated
|
|
type: integer
|
|
format: int64
|
|
last_post_date:
|
|
description: Last time the user made a post within the given date range
|
|
type: integer
|
|
format: int64
|
|
days_active:
|
|
description: Total number of days a user posted within the given date range
|
|
type: integer
|
|
total_posts:
|
|
description: Total number of posts made by a user within the given date range
|
|
type: integer
|
|
Installation:
|
|
type: object
|
|
properties:
|
|
id:
|
|
description: A unique identifier
|
|
type: string
|
|
allowed_ip_ranges:
|
|
$ref: "#/components/schemas/AllowedIPRange"
|
|
state:
|
|
description: The current state of the installation
|
|
type: string
|
|
MessageDescriptor:
|
|
type: object
|
|
properties:
|
|
id:
|
|
description: The i18n message ID
|
|
type: string
|
|
defaultMessage:
|
|
description: The default message text
|
|
type: string
|
|
values:
|
|
description: Optional values for message interpolation
|
|
type: object
|
|
additionalProperties: true
|
|
PreviewModalContentData:
|
|
type: object
|
|
properties:
|
|
skuLabel:
|
|
$ref: "#/components/schemas/MessageDescriptor"
|
|
title:
|
|
$ref: "#/components/schemas/MessageDescriptor"
|
|
subtitle:
|
|
$ref: "#/components/schemas/MessageDescriptor"
|
|
videoUrl:
|
|
description: URL of the video content
|
|
type: string
|
|
videoPoster:
|
|
description: URL of the video poster/thumbnail image
|
|
type: string
|
|
useCase:
|
|
description: The use case category for this content
|
|
type: string
|
|
ServerLimits:
|
|
type: object
|
|
properties:
|
|
maxUsersLimit:
|
|
description: The maximum number of users allowed on server
|
|
type: integer
|
|
format: int64
|
|
activeUserCount:
|
|
description: The number of active users in the server
|
|
type: integer
|
|
format: int64
|
|
# Outgoing OAuth Connections
|
|
OutgoingOAuthConnectionGetItem:
|
|
type: object
|
|
properties:
|
|
id:
|
|
description: The unique identifier for the outgoing OAuth connection.
|
|
type: string
|
|
name:
|
|
description: The name of the outgoing OAuth connection.
|
|
type: string
|
|
create_at:
|
|
description: The time in milliseconds the outgoing OAuth connection was created.
|
|
type: integer
|
|
format: int64
|
|
update_at:
|
|
description: The time in milliseconds the outgoing OAuth connection was last updated.
|
|
type: integer
|
|
format: int64
|
|
grant_type:
|
|
description: The grant type of the outgoing OAuth connection.
|
|
type: string
|
|
audiences:
|
|
description: The audiences of the outgoing OAuth connection.
|
|
type: string
|
|
OutgoingOAuthConnectionPostItem:
|
|
type: object
|
|
properties:
|
|
name:
|
|
description: The name of the outgoing OAuth connection.
|
|
type: string
|
|
client_id:
|
|
description: The client ID of the outgoing OAuth connection.
|
|
type: string
|
|
client_secret:
|
|
description: The client secret of the outgoing OAuth connection.
|
|
type: string
|
|
credentials_username:
|
|
description: The username of the credentials of the outgoing OAuth connection.
|
|
type: string
|
|
credentials_password:
|
|
description: The password of the credentials of the outgoing OAuth connection.
|
|
type: string
|
|
oauth_token_url:
|
|
description: The OAuth token URL of the outgoing OAuth connection.
|
|
type: string
|
|
grant_type:
|
|
description: The grant type of the outgoing OAuth connection.
|
|
type: string
|
|
audiences:
|
|
description: The audiences of the outgoing OAuth connection.
|
|
type: string
|
|
ScheduledPost:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
create_at:
|
|
description: The time in milliseconds a scheduled post was created
|
|
type: integer
|
|
format: int64
|
|
update_at:
|
|
description: The time in milliseconds a scheduled post was last updated
|
|
type: integer
|
|
format: int64
|
|
user_id:
|
|
type: string
|
|
channel_id:
|
|
type: string
|
|
root_id:
|
|
type: string
|
|
message:
|
|
type: string
|
|
props:
|
|
type: object
|
|
file_ids:
|
|
type: array
|
|
items:
|
|
type: string
|
|
scheduled_at:
|
|
description: The time in milliseconds a scheduled post is scheduled to be sent at
|
|
type: integer
|
|
format: int64
|
|
processed_at:
|
|
description: The time in milliseconds a scheduled post was processed at
|
|
type: integer
|
|
format: int64
|
|
error_code:
|
|
type: string
|
|
description: Explains the error behind why a scheduled post could not have been sent
|
|
repeat_type:
|
|
type: string
|
|
description: >
|
|
Empty for a one-time schedule, or `weekly` for a recurring weekly schedule in `repeat_timezone`.
|
|
repeat_timezone:
|
|
type: string
|
|
description: >
|
|
IANA timezone name (for example `America/New_York`) used to interpret weekly recurrence; required when `repeat_type` is `weekly`.
|
|
metadata:
|
|
$ref: "#/components/schemas/PostMetadata"
|
|
AccessControlFieldsAutocompleteResponse:
|
|
type: object
|
|
properties:
|
|
fields:
|
|
type: array
|
|
items:
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
description: The name of the field.
|
|
description:
|
|
type: string
|
|
description: A description of the field.
|
|
AccessControlPoliciesWithCount:
|
|
type: object
|
|
properties:
|
|
policies:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/AccessControlPolicy"
|
|
total_count:
|
|
type: integer
|
|
description: The total number of policies.
|
|
AccessControlPolicy:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
description: The unique identifier of the policy.
|
|
name:
|
|
type: string
|
|
description: The unique name for the policy.
|
|
display_name:
|
|
type: string
|
|
description: The human-readable name for the policy.
|
|
description:
|
|
type: string
|
|
description: A description of the policy.
|
|
expression:
|
|
type: string
|
|
description: The CEL expression defining the policy rules.
|
|
is_active:
|
|
type: boolean
|
|
description: Whether the policy is currently active and enforced.
|
|
create_at:
|
|
type: integer
|
|
format: int64
|
|
description: The time in milliseconds the policy was created.
|
|
update_at:
|
|
type: integer
|
|
format: int64
|
|
description: The time in milliseconds the policy was last updated.
|
|
delete_at:
|
|
type: integer
|
|
format: int64
|
|
description: The time in milliseconds the policy was deleted.
|
|
AccessControlPolicySearch:
|
|
type: object
|
|
properties:
|
|
term:
|
|
type: string
|
|
description: The search term to match against policy names or display names.
|
|
type:
|
|
type: string
|
|
description: The type of policy (e.g., 'parent' or 'channel').
|
|
parent_id:
|
|
type: string
|
|
description: The ID of the parent policy to search within.
|
|
ids:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: List of policy IDs to filter by.
|
|
active:
|
|
type: boolean
|
|
description: Filter policies by active status.
|
|
include_children:
|
|
type: boolean
|
|
description: Whether to include child policies in the result.
|
|
cursor:
|
|
$ref: "#/components/schemas/AccessControlPolicyCursor"
|
|
limit:
|
|
type: integer
|
|
description: The maximum number of policies to return.
|
|
AccessControlPolicyCursor:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
description: The ID of the policy to start searching after.
|
|
AccessControlPolicyTestResponse:
|
|
type: object
|
|
properties:
|
|
users:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/User"
|
|
description: A list of users affected by the policy expression.
|
|
total_count:
|
|
type: integer
|
|
description: The total number of users affected.
|
|
PolicySimulationUserOverride:
|
|
type: object
|
|
description: |
|
|
Per-user payload for the picker-driven `/cel/simulate_users` endpoint.
|
|
The simulator resolves each user's profile attributes from CPA storage
|
|
and then layers session context on top: first the requesting admin's
|
|
active-session snapshot (when `use_active_session` is true), then the
|
|
explicit `session_overrides` map.
|
|
required:
|
|
- user_id
|
|
properties:
|
|
user_id:
|
|
type: string
|
|
description: ID of the user to evaluate the draft policy against.
|
|
use_active_session:
|
|
type: boolean
|
|
description: |
|
|
When true, inject the requesting admin's `session.*` attributes
|
|
(network_status, device_managed, ip_range, etc.) into this user's
|
|
evaluation context. Forward-compatible with future PDP work that
|
|
populates session attributes on the request context.
|
|
session_overrides:
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
description: |
|
|
Replaces individual `session.*` attributes for this user only.
|
|
Applied on top of the active-session snapshot when both are set,
|
|
so a "configure session" panel can shadow specific values without
|
|
discarding the rest of the active session.
|
|
PolicySimulationByUsersParams:
|
|
type: object
|
|
description: |
|
|
Request body for `/access_control_policies/cel/simulate_users`. The
|
|
draft policy is compiled in-memory only — nothing is persisted.
|
|
required:
|
|
- policy
|
|
- actions
|
|
- users
|
|
properties:
|
|
policy:
|
|
$ref: "#/components/schemas/AccessControlPolicy"
|
|
actions:
|
|
type: array
|
|
minItems: 1
|
|
items:
|
|
type: string
|
|
description: |
|
|
Permission actions to simulate (e.g. `upload_file_attachment`,
|
|
`download_file_attachment`). At least one action is required —
|
|
the picker UX only makes sense once an action is in scope. The
|
|
backend rejects empty arrays with `app.pap.simulate.missing_actions`
|
|
(HTTP 400); `minItems` lets OpenAPI tooling catch that earlier
|
|
on the client.
|
|
rule_name:
|
|
type: string
|
|
description: |
|
|
Identifies which rule in `policy.rules` the author is editing
|
|
(used for blame attribution). When set, denies originating from
|
|
this rule are tagged `source=this_rule`; other denies in the same
|
|
draft are tagged `source=sibling_rule`.
|
|
channel_id:
|
|
type: string
|
|
description: |
|
|
Provides resource context for delegated channel admins and for
|
|
resource-lane evaluation when `policy.type == "channel"`.
|
|
team_id:
|
|
type: string
|
|
description: Provides team context for team-level delegated admins.
|
|
users:
|
|
type: array
|
|
minItems: 1
|
|
items:
|
|
$ref: "#/components/schemas/PolicySimulationUserOverride"
|
|
description: |
|
|
Explicit user list to evaluate, with per-user session-attribute
|
|
overrides. At least one user is required (the backend rejects
|
|
empty arrays with `app.pap.simulate.missing_users`).
|
|
evaluation_scope:
|
|
type: string
|
|
enum: [all, this_rule]
|
|
description: |
|
|
Selects whether the simulator considers only the rule under
|
|
simulation (`this_rule`) or co-evaluates every contributing
|
|
program (`all`). Empty defaults to `this_rule` on the server.
|
|
`this_rule` is the authoring-time "what does this rule alone
|
|
do?" view: useful for iterating on a single rule without
|
|
sibling rules shadowing or compensating for it. `all` mirrors
|
|
the live PDP at request time.
|
|
PolicySimulationBlame:
|
|
type: object
|
|
description: |
|
|
Attributes a deny decision back to the rule or policy that caused it.
|
|
properties:
|
|
source:
|
|
type: string
|
|
enum:
|
|
- this_rule
|
|
- sibling_rule
|
|
- sibling_saved
|
|
- peer_policy
|
|
- system_permission
|
|
- channel_policy
|
|
- no_applicable_policy
|
|
description: |
|
|
Origin of the blamed contribution.
|
|
* `this_rule` — the rule the author is currently editing.
|
|
* `sibling_rule` — another rule in the same draft policy.
|
|
* `sibling_saved` — recorded on ALLOW decisions where the
|
|
author's own rule alone would have denied; a sibling rule
|
|
flipped the verdict.
|
|
* `peer_policy` — a different policy at the SAME scope as the
|
|
draft. Carries `expression` / `evaluation_tree`.
|
|
* `system_permission` — a higher-scoped system permission policy.
|
|
Expression / tree are stripped to avoid leaking the contents
|
|
of policies outside the editing scope.
|
|
* `channel_policy` — a higher-scoped channel policy. Same
|
|
privacy stripping as `system_permission`.
|
|
* `no_applicable_policy` — no policy at any scope contributed a
|
|
decision (vacuous allow).
|
|
outcome:
|
|
type: string
|
|
enum:
|
|
- deny
|
|
- allow
|
|
description: |
|
|
Per-blame verdict. Most blame entries describe the deny that
|
|
produced the overall decision (`deny`); the simulator also
|
|
emits informational `allow` entries so the picker can show
|
|
"your draft rule allowed this user" alongside any peer
|
|
policies that actually caused the deny. Consumers that only
|
|
care about deny attribution should filter to `deny`. Empty
|
|
(omitted) is treated as `deny` for backward compatibility
|
|
with simulator builds that pre-date this field.
|
|
policy_id:
|
|
type: string
|
|
description: |
|
|
ID of the contributing policy. Empty when the deny originated
|
|
from the draft itself (no persisted ID exists yet).
|
|
policy_name:
|
|
type: string
|
|
description: Human-readable name of the contributing policy.
|
|
rule_name:
|
|
type: string
|
|
description: Name of the contributing rule.
|
|
role:
|
|
type: string
|
|
description: |
|
|
Scoped role (`system_admin` / `system_user` / `channel_admin` /
|
|
…) the contributing rule targets. Useful for explaining
|
|
role-chain fallbacks.
|
|
expression:
|
|
type: string
|
|
description: |
|
|
CEL text of the contributing rule. Only populated for blame
|
|
entries at the draft's own scope (`this_rule`, `sibling_rule`,
|
|
`sibling_saved`, `peer_policy`).
|
|
evaluation_tree:
|
|
type: object
|
|
description: |
|
|
Recursive per-node breakdown of the contributing rule, mirroring
|
|
the boolean shape of the CEL expression's AST. Same scope-privacy
|
|
rule as `expression`. The picker renders it as a structured
|
|
AND/OR/NOT tree highlighting which sub-expression(s) drove the
|
|
deny.
|
|
PolicySimulationActionDecision:
|
|
type: object
|
|
description: Per-action verdict for one user (or one session).
|
|
properties:
|
|
decision:
|
|
type: boolean
|
|
description: |
|
|
`true` means ALLOW, `false` means DENY. Pending evaluations
|
|
(rare) surface as `false` paired with an empty `blame` array.
|
|
blame:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/PolicySimulationBlame"
|
|
description: |
|
|
Ordered blame entries for the decision. The first entry is the
|
|
primary blame (what the picker renders on the chip); subsequent
|
|
entries describe other contributing policies the user can drill
|
|
into via the "Decision details" view.
|
|
PolicySimulationSession:
|
|
type: object
|
|
description: Per-session verdict for one user.
|
|
properties:
|
|
device:
|
|
type: string
|
|
network:
|
|
type: string
|
|
last_active_at:
|
|
type: integer
|
|
format: int64
|
|
description: Last-active timestamp in milliseconds since epoch.
|
|
decisions:
|
|
type: object
|
|
additionalProperties:
|
|
$ref: "#/components/schemas/PolicySimulationActionDecision"
|
|
description: Per-action verdicts for this specific session.
|
|
attributes:
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
description: |
|
|
Session-attribute snapshot used when evaluating this session
|
|
(network_status, device_managed, ip_range, etc.). Surfaced in
|
|
the per-row "Decision details" view.
|
|
PolicySimulationUserResult:
|
|
type: object
|
|
properties:
|
|
user:
|
|
$ref: "#/components/schemas/User"
|
|
decisions:
|
|
type: object
|
|
additionalProperties:
|
|
$ref: "#/components/schemas/PolicySimulationActionDecision"
|
|
description: |
|
|
Per-action verdicts for the user. When `sessions` is populated
|
|
this represents the "headline" decision (e.g. from the
|
|
most-recently-active session) so the picker can render a
|
|
single chip without consulting `sessions`.
|
|
sessions:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/PolicySimulationSession"
|
|
description: |
|
|
Optional per-session breakdown. When populated the picker
|
|
renders a Recent activity expand row revealing one decision
|
|
chip per session. Empty/undefined falls back to a single
|
|
user-level chip.
|
|
attributes:
|
|
type: object
|
|
additionalProperties:
|
|
type: string
|
|
description: |
|
|
User profile attribute snapshot used when evaluating this user
|
|
(department, region, clearance, etc.).
|
|
PolicySimulationResponse:
|
|
type: object
|
|
description: |
|
|
Body returned by `/cel/simulate_users`. Per-user, per-action
|
|
verdicts plus blame attribution for any deny.
|
|
properties:
|
|
results:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/PolicySimulationUserResult"
|
|
total:
|
|
type: integer
|
|
format: int64
|
|
description: |
|
|
Total number of users evaluated (matches `results.length` for
|
|
the picker endpoint since the caller supplies the user list
|
|
explicitly).
|
|
ChannelSearch: # Added based on dataretention.yaml and access_control.go usage
|
|
type: object
|
|
properties:
|
|
term:
|
|
type: string
|
|
description: The string to search in the channel name, display name, and purpose.
|
|
team_ids:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: Filters results to channels belonging to the given team ids.
|
|
public:
|
|
type: boolean
|
|
description: Filters results to only return Public / Open channels.
|
|
private:
|
|
type: boolean
|
|
description: Filters results to only return Private channels.
|
|
deleted:
|
|
type: boolean
|
|
description: Filters results to only return deleted / archived channels.
|
|
include_deleted:
|
|
type: boolean
|
|
description: Whether to include deleted channels in the search results.
|
|
# Add other potential search fields like not_associated_to_group, exclude_default_channels etc.
|
|
ChannelsWithCount: # Added based on access_control.go usage
|
|
type: object
|
|
properties:
|
|
channels:
|
|
$ref: "#/components/schemas/ChannelListWithTeamData" # Referencing existing type used in similar contexts
|
|
total_count:
|
|
type: integer
|
|
description: The total number of channels.
|
|
ExpressionError:
|
|
type: object
|
|
properties:
|
|
message:
|
|
type: string
|
|
description: The error message.
|
|
field:
|
|
type: string
|
|
description: The field related to the error, if applicable.
|
|
line:
|
|
type: integer
|
|
description: The line number where the error occurred in the expression.
|
|
column:
|
|
type: integer
|
|
description: The column number where the error occurred in the expression.
|
|
QueryExpressionParams:
|
|
type: object
|
|
properties:
|
|
expression:
|
|
type: string
|
|
description: The policy expression to test.
|
|
term:
|
|
type: string
|
|
description: A search term to filter users against whom the expression is tested.
|
|
limit:
|
|
type: integer
|
|
description: The maximum number of users to return.
|
|
after:
|
|
type: string
|
|
description: The ID of the user to start the test after (for pagination).
|
|
channelId:
|
|
type: string
|
|
description: The channel ID to contextually test the expression against (required for channel admins).
|
|
CELExpression:
|
|
type: object
|
|
properties:
|
|
expression:
|
|
type: string
|
|
description: The CEL expression to visualize.
|
|
channelId:
|
|
type: string
|
|
description: The channel ID to contextually test the expression against (required for channel admins).
|
|
VisualExpression:
|
|
type: object
|
|
properties:
|
|
conditions:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/Condition"
|
|
description: The visual AST for the CEL expression
|
|
Condition:
|
|
type: object
|
|
properties:
|
|
attribute:
|
|
type: string
|
|
description: The attribute name.
|
|
operator:
|
|
type: string
|
|
description: The operator of a single condition.
|
|
value:
|
|
type: string
|
|
description: The value.
|
|
value_type:
|
|
type: string
|
|
description: The value type.
|
|
ChannelBanner:
|
|
type: object
|
|
properties:
|
|
enabled:
|
|
type: boolean
|
|
description: enabled indicates whether the channel banner is enabled or not
|
|
text:
|
|
type: string
|
|
description: text is the actual text that renders in the channel banner. Markdown is supported.
|
|
background_color:
|
|
type: string
|
|
description: background_color is the HEX color code for the banner's background
|
|
ContentFlaggingConfig:
|
|
type: object
|
|
properties:
|
|
EnableContentFlagging:
|
|
type: boolean
|
|
description: Flag to enable or disable content flagging feature
|
|
example: true
|
|
NotificationSettings:
|
|
$ref: '#/components/schemas/NotificationSettings'
|
|
AdditionalSettings:
|
|
$ref: '#/components/schemas/AdditionalSettings'
|
|
ReviewerSettings:
|
|
$ref: '#/components/schemas/ReviewerSettings'
|
|
NotificationSettings:
|
|
type: object
|
|
properties:
|
|
EventTargetMapping:
|
|
$ref: '#/components/schemas/EventTargetMapping'
|
|
required:
|
|
- EventTargetMapping
|
|
EventTargetMapping:
|
|
type: object
|
|
properties:
|
|
assigned:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: List of targets to notify when content is assigned
|
|
example: [ ]
|
|
dismissed:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: List of targets to notify when content is dismissed
|
|
example: [ ]
|
|
flagged:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: List of targets to notify when content is flagged
|
|
example: [ "reviewers" ]
|
|
removed:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: List of targets to notify when content is removed
|
|
example: [ ]
|
|
required:
|
|
- assigned
|
|
- dismissed
|
|
- flagged
|
|
- removed
|
|
AdditionalSettings:
|
|
type: object
|
|
properties:
|
|
Reasons:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: Predefined reasons for flagging content
|
|
example: [ "reason 1", "reason 2", "reason 3" ]
|
|
ReporterCommentRequired:
|
|
type: boolean
|
|
description: Whether a comment is required from the reporter
|
|
example: false
|
|
ReviewerCommentRequired:
|
|
type: boolean
|
|
description: Whether a comment is required from the reviewer
|
|
example: false
|
|
HideFlaggedContent:
|
|
type: boolean
|
|
description: Whether to hide flagged content from general view
|
|
example: true
|
|
required:
|
|
- Reasons
|
|
- ReporterCommentRequired
|
|
- ReviewerCommentRequired
|
|
- HideFlaggedContent
|
|
ReviewerSettings:
|
|
type: object
|
|
properties:
|
|
CommonReviewers:
|
|
type: boolean
|
|
description: Whether to use common reviewers across all teams
|
|
example: true
|
|
SystemAdminsAsReviewers:
|
|
type: boolean
|
|
description: Whether system administrators can act as reviewers
|
|
example: false
|
|
TeamAdminsAsReviewers:
|
|
type: boolean
|
|
description: Whether team administrators can act as reviewers
|
|
example: true
|
|
CommonReviewerIds:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: List of user IDs designated as common reviewers
|
|
example: [ "onymzj7qcjnz7dcnhtjp1noc3w" ]
|
|
TeamReviewersSetting:
|
|
type: object
|
|
additionalProperties:
|
|
$ref: '#/components/schemas/TeamReviewerConfig'
|
|
description: Team-specific reviewer configuration, keyed by team ID
|
|
example:
|
|
"8guxic3sg7nijeu5dgxt1fh4ia":
|
|
Enabled: true
|
|
ReviewerIds: [ ]
|
|
"u1ujk34a47gfxp856pdczs9gey":
|
|
Enabled: false
|
|
ReviewerIds: [ ]
|
|
required:
|
|
- CommonReviewers
|
|
- SystemAdminsAsReviewers
|
|
- TeamAdminsAsReviewers
|
|
- CommonReviewerIds
|
|
- TeamReviewersSetting
|
|
TeamReviewerConfig:
|
|
type: object
|
|
properties:
|
|
Enabled:
|
|
type: boolean
|
|
description: Whether team-specific reviewers are enabled for this team
|
|
example: true
|
|
ReviewerIds:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: List of user IDs designated as reviewers for this specific team
|
|
example: [ ]
|
|
required:
|
|
- Enabled
|
|
- ReviewerIds
|
|
AccessControlPolicyActiveUpdateRequest:
|
|
type: object
|
|
properties:
|
|
entries:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/AccessControlPolicyActiveUpdate"
|
|
AccessControlPolicyActiveUpdate:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
description: The ID of the policy.
|
|
active:
|
|
type: boolean
|
|
description: The active status of the policy.
|
|
Recap:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
description: Unique identifier for the recap
|
|
user_id:
|
|
type: string
|
|
description: ID of the user who created the recap
|
|
title:
|
|
type: string
|
|
description: AI-generated title for the recap (max 5 words)
|
|
create_at:
|
|
type: integer
|
|
format: int64
|
|
description: The time in milliseconds the recap was created
|
|
update_at:
|
|
type: integer
|
|
format: int64
|
|
description: The time in milliseconds the recap was last updated
|
|
delete_at:
|
|
type: integer
|
|
format: int64
|
|
description: The time in milliseconds the recap was deleted
|
|
read_at:
|
|
type: integer
|
|
format: int64
|
|
description: The time in milliseconds the recap was marked as read
|
|
viewed_at:
|
|
type: integer
|
|
format: int64
|
|
description: The time in milliseconds the recap was marked as viewed (set in bulk when the recaps page is opened)
|
|
total_message_count:
|
|
type: integer
|
|
description: Total number of messages summarized across all channels
|
|
status:
|
|
type: string
|
|
enum: [pending, processing, completed, failed]
|
|
description: Current status of the recap job
|
|
bot_id:
|
|
type: string
|
|
description: ID of the AI agent/bot used to generate this recap
|
|
channels:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/RecapChannel"
|
|
description: List of channel summaries included in this recap
|
|
RecapChannel:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
description: Unique identifier for the recap channel
|
|
recap_id:
|
|
type: string
|
|
description: ID of the parent recap
|
|
channel_id:
|
|
type: string
|
|
description: ID of the channel that was summarized
|
|
channel_name:
|
|
type: string
|
|
description: Display name of the channel
|
|
highlights:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: Key discussion points and important information from the channel
|
|
action_items:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: Tasks, todos, and action items mentioned in the channel
|
|
source_post_ids:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: IDs of the posts used to generate this summary
|
|
create_at:
|
|
type: integer
|
|
format: int64
|
|
description: The time in milliseconds the recap channel was created
|
|
RecapLimitStatus:
|
|
type: object
|
|
description: The current user's recap limit status including usage and cooldown information
|
|
properties:
|
|
effective_limits:
|
|
$ref: "#/components/schemas/EffectiveRecapLimits"
|
|
daily:
|
|
$ref: "#/components/schemas/DailyUsageStatus"
|
|
cooldown:
|
|
$ref: "#/components/schemas/CooldownStatus"
|
|
EffectiveRecapLimits:
|
|
type: object
|
|
description: Resolved recap limit values for a user. A value of -1 means the limit is disabled/unlimited.
|
|
properties:
|
|
max_recaps_per_day:
|
|
type: integer
|
|
description: Maximum number of recaps the user can create per day (-1 = unlimited)
|
|
max_scheduled_recaps:
|
|
type: integer
|
|
description: Maximum number of scheduled recaps (-1 = unlimited)
|
|
max_channels_per_recap:
|
|
type: integer
|
|
description: Maximum number of channels per recap (-1 = unlimited)
|
|
max_posts_per_recap:
|
|
type: integer
|
|
description: Maximum number of posts per recap (-1 = unlimited)
|
|
max_tokens_per_recap:
|
|
type: integer
|
|
description: Maximum number of tokens per recap (-1 = unlimited)
|
|
max_posts_per_day:
|
|
type: integer
|
|
description: Maximum number of posts that can be processed per day (-1 = unlimited)
|
|
cooldown_minutes:
|
|
type: integer
|
|
description: Cooldown period in minutes between recap creations (-1 = no cooldown)
|
|
source:
|
|
type: string
|
|
enum: [system, group, user]
|
|
description: Where the effective limits originated from
|
|
source_id:
|
|
type: string
|
|
description: Group ID or User ID if overridden, empty for system defaults
|
|
DailyUsageStatus:
|
|
type: object
|
|
description: Daily recap usage tracking
|
|
properties:
|
|
used:
|
|
type: integer
|
|
description: Number of recaps used today
|
|
limit:
|
|
type: integer
|
|
description: Maximum recaps allowed per day
|
|
reset_at:
|
|
type: integer
|
|
format: int64
|
|
description: Unix timestamp in milliseconds when daily usage resets
|
|
CooldownStatus:
|
|
type: object
|
|
description: Cooldown state for recap creation
|
|
properties:
|
|
is_active:
|
|
type: boolean
|
|
description: Whether the cooldown is currently active
|
|
available_at:
|
|
type: integer
|
|
format: int64
|
|
description: Unix timestamp in milliseconds when cooldown ends
|
|
retry_after_seconds:
|
|
type: integer
|
|
description: Seconds until recap creation is available again
|
|
ScheduledRecap:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
description: Unique identifier for the scheduled recap
|
|
user_id:
|
|
type: string
|
|
description: The ID of the user who owns this scheduled recap
|
|
title:
|
|
type: string
|
|
description: Title for the scheduled recap
|
|
maxLength: 255
|
|
days_of_week:
|
|
type: integer
|
|
description: >
|
|
Bitmask for days of the week the recap should run.
|
|
Sun=1, Mon=2, Tue=4, Wed=8, Thu=16, Fri=32, Sat=64.
|
|
minimum: 1
|
|
maximum: 127
|
|
time_of_day:
|
|
type: string
|
|
description: Time of day in HH:MM format (e.g., "09:00")
|
|
timezone:
|
|
type: string
|
|
description: IANA timezone (e.g., "America/New_York")
|
|
time_period:
|
|
type: string
|
|
description: The lookback period for the recap content
|
|
enum:
|
|
- last_24h
|
|
- last_week
|
|
- since_last_read
|
|
next_run_at:
|
|
type: integer
|
|
format: int64
|
|
description: The next scheduled execution time in UTC milliseconds
|
|
last_run_at:
|
|
type: integer
|
|
format: int64
|
|
description: The last execution time in UTC milliseconds
|
|
run_count:
|
|
type: integer
|
|
description: Number of times this schedule has executed
|
|
channel_mode:
|
|
type: string
|
|
description: How channels are selected for the recap
|
|
enum:
|
|
- specific
|
|
- all_unreads
|
|
channel_ids:
|
|
type: array
|
|
items:
|
|
type: string
|
|
description: List of channel IDs to include (when channel_mode is "specific")
|
|
custom_instructions:
|
|
type: string
|
|
description: Custom AI instructions for the recap
|
|
agent_id:
|
|
type: string
|
|
description: ID of the AI agent to use for generating the recap
|
|
is_recurring:
|
|
type: boolean
|
|
description: Whether the recap runs on a recurring schedule or just once
|
|
enabled:
|
|
type: boolean
|
|
description: Whether the scheduled recap is active (false when paused)
|
|
create_at:
|
|
type: integer
|
|
format: int64
|
|
description: The time in milliseconds the scheduled recap was created
|
|
update_at:
|
|
type: integer
|
|
format: int64
|
|
description: The time in milliseconds the scheduled recap was last updated
|
|
delete_at:
|
|
type: integer
|
|
format: int64
|
|
description: The time in milliseconds the scheduled recap was soft-deleted (0 if not deleted)
|
|
externalDocs:
|
|
description: Find out more about Mattermost
|
|
url: 'https://about.mattermost.com'
|
|
security:
|
|
- bearerAuth: []
|