Legend:
Library
Module
Module type
Parameter
Class
Class type
Library
Module
Module type
Parameter
Class
Class type
type usergroup = {
id : string;
team_id : string option;
is_usergroup : bool;
name : string option;
description : string option;
handle : string option;
is_external : bool;
date_create : int option;
date_update : int option;
date_delete : int option;
created_by : string option;
updated_by : string option;
deleted_by : string option;
users : string list option;
user_count : int option;
}
type profile = {
display_name : string;
display_name_normalized : string;
email : string option;
first_name : string;
last_name : string;
phone : string option;
pronouns : string option;
real_name : string;
real_name_normalized : string;
status_emoji : string option;
status_expiration : int option;
status_text : string option;
team : string;
title : string option;
image_24 : string option;
image_32 : string option;
image_48 : string option;
image_72 : string option;
image_192 : string option;
image_512 : string option;
}
type user = {
id : string;
deleted : bool;
has_2fa : bool;
is_admin : bool;
is_app_user : bool;
is_bot : bool;
is_invited_user : bool;
is_owner : bool;
is_restricted : bool;
is_stranger : bool;
is_ultra_restricted : bool;
locale : string option;
profile : profile;
two_factor_type : two_fa_type;
tz : string option;
tz_label : string option;
tz_offset : int;
updated : int;
}
val make_user_info_req :
user:string ->
?include_locale:bool ->
unit ->
user_info_req
val make_update_usergroups_users_req :
usergroup:string ->
?users:string list ->
?include_count:bool ->
?team_id:string ->
unit ->
update_usergroups_users_req
val make_text_object : text_type:text_object_type -> text:string -> text_object
val make_message_text_block : text:text_object -> message_text_block
val make_message_field :
?title:string ->
value:string ->
short:bool ->
unit ->
message_field
type message_attachment = {
fallback : string option;
mrkdwn_in : string list option;
color : string option;
pretext : string option;
title : string option;
title_link : string option;
text : string option;
fields : message_field list option;
image_url : string option;
thumb_url : string option;
ts : int option;
}
val make_message_attachment :
?fallback:string ->
?mrkdwn_in:string list ->
?color:string ->
?pretext:string ->
?author_name:string ->
?author_link:string ->
?author_icon:string ->
?title:string ->
?title_link:string ->
?text:string ->
?fields:message_field list ->
?image_url:string ->
?thumb_url:string ->
?ts:int ->
?footer:string ->
unit ->
message_attachment
type update_message_req = {
channel : string;
ts : string;
text : string option;
attachments : message_attachment list option;
blocks : message_block list option;
link_names : bool option;
metadata : string option;
parse : string option;
reply_broadcast : bool option;
}
val make_update_message_req :
channel:string ->
ts:string ->
?text:string ->
?attachments:message_attachment list ->
?blocks:message_block list ->
?link_names:bool ->
?metadata:string ->
?parse:string ->
?reply_broadcast:bool ->
unit ->
update_message_req
type timestamp_int = Devkit.Time.t
type slack_api_error = [
| `Access_denied
| `Accesslimited
| `Account_inactive
| `As_user_not_supported
| `Block_mismatch
| `Blocked_file_type
| `Cannot_auth_user
| `Cannot_find_channel
| `Cannot_find_message
| `Cannot_find_service
| `Cannot_parse_attachment
| `Cannot_prompt
| `Cannot_unfurl_message
| `Cannot_unfurl_url
| `Cant_broadcast_message
| `Cant_update_message
| `Channel_not_found
| `Deprecated_endpoint
| `Duplicate_channel_not_found
| `Duplicate_message_not_found
| `Edit_window_closed
| `Ekm_access_denied
| `Enterprise_is_restricted
| `External_channel_migrating
| `Fatal_error
| `Internal_error
| `Invalid_arg_name
| `Invalid_arguments
| `Invalid_array_arg
| `Invalid_attachments
| `Invalid_auth
| `Invalid_blocks
| `Invalid_blocks_format
| `Invalid_channel
| `Invalid_charset
| `Invalid_cursor
| `Invalid_form_data
| `Invalid_metadata_filter_keys
| `Invalid_metadata_format
| `Invalid_metadata_schema
| `Invalid_post_type
| `Invalid_source
| `Invalid_ts_latest
| `Invalid_ts_oldest
| `Invalid_unfurl_id
| `Invalid_unfurls_format
| `Invalid_users
| `Is_archived
| `Is_bot
| `Is_inactive
| `Malware_detected
| `Message_limit_exceeded
| `Message_not_found
| `Messages_tab_disabled
| `Metadata_must_be_sent_from_app
| `Metadata_too_large
| `Method_deprecated
| `Method_not_supported_for_channel_type
| `Missing_argument
| `Missing_channel
| `Missing_post_type
| `Missing_scope
| `Missing_source
| `Missing_ts
| `Missing_unfurl_id
| `Missing_unfurls
| `Msg_too_long
| `No_dual_broadcast_content_update
| `No_permission
| `No_text
| `No_users_provided
| `Not_allowed_token_type
| `Not_authed
| `Not_in_channel
| `Org_login_required
| `Permission_denied
| `Plan_upgrade_required
| `Post_contents_too_large
| `Posting_to_general_channel_denied
| `Rate_limited
| `Ratelimited
| `Request_timeout
| `Restricted_action
| `Restricted_action_non_threadable_channel
| `Restricted_action_read_only_channel
| `Restricted_action_thread_locked
| `Restricted_action_thread_only_channel
| `Slack_connect_blocked_file_type
| `Slack_connect_canvas_sharing_blocked
| `Slack_connect_clip_sharing_blocked
| `Slack_connect_file_link_sharing_blocked
| `Slack_connect_file_upload_sharing_blocked
| `Slack_connect_team_blocked
| `Subteam_max_users_exceeded
| `Team_access_not_granted
| `Team_added_to_org
| `Team_not_found
| `Thread_not_found
| `Token_expired
| `Token_revoked
| `Too_many_attachments
| `Too_many_contact_cards
| `Too_many_members
| `Too_many_users
| `Two_factor_setup_required
| `Update_failed
| `User_is_restricted
| `User_not_found
| `User_not_visible
| `Other of string
]
type 'ok slack_response = ('ok, slack_api_error) http_response
type post_message_req = {
channel : string;
text : string option;
attachments : message_attachment list option;
blocks : message_block list option;
username : string option;
icon_url : string option;
icon_emoji : string option;
metadata : string option;
mrkdwn : bool option;
parse : string option;
reply_broadcast : bool option;
thread_ts : string option;
unfurl_links : bool option;
unfurl_media : bool option;
}
val make_post_message_req :
channel:string ->
?text:string ->
?attachments:message_attachment list ->
?blocks:message_block list ->
?username:string ->
?icon_url:string ->
?icon_emoji:string ->
?metadata:string ->
?mrkdwn:bool ->
?parse:string ->
?reply_broadcast:bool ->
?thread_ts:string ->
?unfurl_links:bool ->
?unfurl_media:bool ->
unit ->
post_message_req
val make_list_users_req :
?cursor:string ->
?include_locale:bool ->
?limit:int ->
?team_id:string ->
unit ->
list_users_req
val make_list_usergroups_req :
?include_count:bool ->
?team_id:string ->
?include_users:bool ->
?include_disabled:bool ->
unit ->
list_usergroups_req
val make_list_usergroup_users_req :
usergroup:string ->
?team_id:string ->
?include_disabled:bool ->
unit ->
list_usergroup_users_req
type json = Yojson.Basic.t
type file = {
id : string;
name : string option;
title : string option;
mimetype : string option;
filetype : string option;
pretty_type : string option;
user : string option;
size : int option;
channels : string list;
ims : string list;
groups : string list;
permalink : string option;
permalink_public : string option;
}
val make_files_upload_req :
?channels:string ->
?content:string ->
?filename:string ->
?filetype:string ->
?initial_comment:string ->
?thread_ts:string ->
?title:string ->
unit ->
files_upload_req
type event_callback_notification = {
token : string;
team_id : string;
api_app_id : string;
event : event;
event_id : string;
event_time : timestamp_int;
}
type event_notification =
| Event_callback of event_callback_notification
| Url_verification of url_verification_notification
type conversations_replies_res = {
messages : conversation_reply list option;
ok : bool;
has_more : bool option;
response_metadata : (string * json) list;
}
val make_conversations_replies_req :
channel:string ->
ts:string ->
?cursor:string ->
?include_all_metadata:bool ->
?inclusive:bool ->
?latest:string ->
?limit:int ->
?oldest:string ->
unit ->
conversations_replies_req
type conversation = {
id : string;
name : string option;
is_channel : bool;
is_group : bool;
is_im : bool;
is_member : bool option;
user : string option;
locale : string option;
num_members : int option;
topic : created_value option;
purpose : created_value option;
}
type conversations_join_res = {
channel : conversation;
warning : string option;
response_metadata : (string * json) list;
}
val make_conversations_join_req : channel:string -> conversations_join_req
val make_conversations_info_req :
channel:string ->
?include_locale:bool ->
?include_num_members:bool ->
unit ->
conversations_info_req
val make_chat_unfurl_req :
channel:string ->
ts:string ->
?unfurls:(string * unfurl) list ->
unit ->
chat_unfurl_req