model

package
v4.10.10+incompatible Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 14, 2019 License: AGPL-3.0, Apache-2.0 Imports: 37 Imported by: 0

Documentation ¶

Index ¶

Constants ¶

View Source
const (
	ACCESS_TOKEN_GRANT_TYPE  = "authorization_code"
	ACCESS_TOKEN_TYPE        = "bearer"
	REFRESH_TOKEN_GRANT_TYPE = "refresh_token"
)
View Source
const (
	AUTHCODE_EXPIRE_TIME   = 60 * 10 // 10 minutes
	AUTHCODE_RESPONSE_TYPE = "code"
	DEFAULT_SCOPE          = "user"
)
View Source
const (
	CHANNEL_OPEN                   = "O"
	CHANNEL_PRIVATE                = "P"
	CHANNEL_DIRECT                 = "D"
	CHANNEL_GROUP                  = "G"
	CHANNEL_GROUP_MAX_USERS        = 8
	CHANNEL_GROUP_MIN_USERS        = 3
	DEFAULT_CHANNEL                = "town-square"
	CHANNEL_DISPLAY_NAME_MAX_RUNES = 64
	CHANNEL_NAME_MIN_LENGTH        = 2
	CHANNEL_NAME_MAX_LENGTH        = 64
	CHANNEL_NAME_UI_MAX_LENGTH     = 22
	CHANNEL_HEADER_MAX_RUNES       = 1024
	CHANNEL_PURPOSE_MAX_RUNES      = 250
	CHANNEL_CACHE_SIZE             = 25000
)
View Source
const (
	CHANNEL_NOTIFY_DEFAULT      = "default"
	CHANNEL_NOTIFY_ALL          = "all"
	CHANNEL_NOTIFY_MENTION      = "mention"
	CHANNEL_NOTIFY_NONE         = "none"
	CHANNEL_MARK_UNREAD_ALL     = "all"
	CHANNEL_MARK_UNREAD_MENTION = "mention"
)
View Source
const (
	HEADER_REQUEST_ID         = "X-Request-ID"
	HEADER_VERSION_ID         = "X-Version-ID"
	HEADER_CLUSTER_ID         = "X-Cluster-ID"
	HEADER_ETAG_SERVER        = "ETag"
	HEADER_ETAG_CLIENT        = "If-None-Match"
	HEADER_FORWARDED          = "X-Forwarded-For"
	HEADER_REAL_IP            = "X-Real-IP"
	HEADER_FORWARDED_PROTO    = "X-Forwarded-Proto"
	HEADER_TOKEN              = "token"
	HEADER_BEARER             = "BEARER"
	HEADER_AUTH               = "Authorization"
	HEADER_REQUESTED_WITH     = "X-Requested-With"
	HEADER_REQUESTED_WITH_XML = "XMLHttpRequest"
	STATUS                    = "status"
	STATUS_OK                 = "OK"
	STATUS_FAIL               = "FAIL"
	STATUS_REMOVE             = "REMOVE"

	CLIENT_DIR = "client"

	API_URL_SUFFIX_V1 = "/api/v1"
	API_URL_SUFFIX_V3 = "/api/v3"
	API_URL_SUFFIX_V4 = "/api/v4"
	API_URL_SUFFIX    = API_URL_SUFFIX_V4
)
View Source
const (
	CDS_OFFLINE_AFTER_MILLIS = 1000 * 60 * 30 // 30 minutes
	CDS_TYPE_APP             = "mattermost_app"
)
View Source
const (
	CLUSTER_EVENT_PUBLISH                                           = "publish"
	CLUSTER_EVENT_UPDATE_STATUS                                     = "update_status"
	CLUSTER_EVENT_INVALIDATE_ALL_CACHES                             = "inv_all_caches"
	CLUSTER_EVENT_INVALIDATE_CACHE_FOR_REACTIONS                    = "inv_reactions"
	CLUSTER_EVENT_INVALIDATE_CACHE_FOR_WEBHOOK                      = "inv_webhook"
	CLUSTER_EVENT_INVALIDATE_CACHE_FOR_CHANNEL_POSTS                = "inv_channel_posts"
	CLUSTER_EVENT_INVALIDATE_CACHE_FOR_CHANNEL_MEMBERS_NOTIFY_PROPS = "inv_channel_members_notify_props"
	CLUSTER_EVENT_INVALIDATE_CACHE_FOR_CHANNEL_MEMBERS              = "inv_channel_members"
	CLUSTER_EVENT_INVALIDATE_CACHE_FOR_CHANNEL_BY_NAME              = "inv_channel_name"
	CLUSTER_EVENT_INVALIDATE_CACHE_FOR_CHANNEL                      = "inv_channel"
	CLUSTER_EVENT_INVALIDATE_CACHE_FOR_USER                         = "inv_user"
	CLUSTER_EVENT_CLEAR_SESSION_CACHE_FOR_USER                      = "clear_session_user"
	CLUSTER_EVENT_INVALIDATE_CACHE_FOR_ROLES                        = "inv_roles"

	CLUSTER_SEND_BEST_EFFORT = "best_effort"
	CLUSTER_SEND_RELIABLE    = "reliable"
)
View Source
const (
	COMMAND_METHOD_POST = "P"
	COMMAND_METHOD_GET  = "G"
	MIN_TRIGGER_LENGTH  = 1
	MAX_TRIGGER_LENGTH  = 128
)
View Source
const (
	COMMAND_RESPONSE_TYPE_IN_CHANNEL = "in_channel"
	COMMAND_RESPONSE_TYPE_EPHEMERAL  = "ephemeral"
)
View Source
const (
	COMPLIANCE_STATUS_CREATED  = "created"
	COMPLIANCE_STATUS_RUNNING  = "running"
	COMPLIANCE_STATUS_FINISHED = "finished"
	COMPLIANCE_STATUS_FAILED   = "failed"
	COMPLIANCE_STATUS_REMOVED  = "removed"

	COMPLIANCE_TYPE_DAILY = "daily"
	COMPLIANCE_TYPE_ADHOC = "adhoc"
)
View Source
const (
	CONN_SECURITY_NONE     = ""
	CONN_SECURITY_PLAIN    = "PLAIN"
	CONN_SECURITY_TLS      = "TLS"
	CONN_SECURITY_STARTTLS = "STARTTLS"

	IMAGE_DRIVER_LOCAL = "local"
	IMAGE_DRIVER_S3    = "amazons3"

	DATABASE_DRIVER_SQLITE   = "sqlite3"
	DATABASE_DRIVER_MYSQL    = "mysql"
	DATABASE_DRIVER_POSTGRES = "postgres"

	MINIO_ACCESS_KEY = "minioaccesskey"
	MINIO_SECRET_KEY = "miniosecretkey"
	MINIO_BUCKET     = "mattermost-test"

	PASSWORD_MAXIMUM_LENGTH = 64
	PASSWORD_MINIMUM_LENGTH = 5

	SERVICE_GITLAB    = "gitlab"
	SERVICE_GOOGLE    = "google"
	SERVICE_OFFICE365 = "office365"

	GENERIC_NO_CHANNEL_NOTIFICATION = "generic_no_channel"
	GENERIC_NOTIFICATION            = "generic"
	FULL_NOTIFICATION               = "full"

	DIRECT_MESSAGE_ANY  = "any"
	DIRECT_MESSAGE_TEAM = "team"

	SHOW_USERNAME          = "username"
	SHOW_NICKNAME_FULLNAME = "nickname_full_name"
	SHOW_FULLNAME          = "full_name"

	PERMISSIONS_ALL           = "all"
	PERMISSIONS_CHANNEL_ADMIN = "channel_admin"
	PERMISSIONS_TEAM_ADMIN    = "team_admin"
	PERMISSIONS_SYSTEM_ADMIN  = "system_admin"

	FAKE_SETTING = "********************************"

	RESTRICT_EMOJI_CREATION_ALL          = "all"
	RESTRICT_EMOJI_CREATION_ADMIN        = "admin"
	RESTRICT_EMOJI_CREATION_SYSTEM_ADMIN = "system_admin"

	PERMISSIONS_DELETE_POST_ALL          = "all"
	PERMISSIONS_DELETE_POST_TEAM_ADMIN   = "team_admin"
	PERMISSIONS_DELETE_POST_SYSTEM_ADMIN = "system_admin"

	ALLOW_EDIT_POST_ALWAYS     = "always"
	ALLOW_EDIT_POST_NEVER      = "never"
	ALLOW_EDIT_POST_TIME_LIMIT = "time_limit"

	GROUP_UNREAD_CHANNELS_DISABLED    = "disabled"
	GROUP_UNREAD_CHANNELS_DEFAULT_ON  = "default_on"
	GROUP_UNREAD_CHANNELS_DEFAULT_OFF = "default_off"

	EMAIL_BATCHING_BUFFER_SIZE = 256
	EMAIL_BATCHING_INTERVAL    = 30

	EMAIL_NOTIFICATION_CONTENTS_FULL    = "full"
	EMAIL_NOTIFICATION_CONTENTS_GENERIC = "generic"

	SITENAME_MAX_LENGTH = 30

	SERVICE_SETTINGS_DEFAULT_SITE_URL           = ""
	SERVICE_SETTINGS_DEFAULT_TLS_CERT_FILE      = ""
	SERVICE_SETTINGS_DEFAULT_TLS_KEY_FILE       = ""
	SERVICE_SETTINGS_DEFAULT_READ_TIMEOUT       = 300
	SERVICE_SETTINGS_DEFAULT_WRITE_TIMEOUT      = 300
	SERVICE_SETTINGS_DEFAULT_MAX_LOGIN_ATTEMPTS = 10
	SERVICE_SETTINGS_DEFAULT_ALLOW_CORS_FROM    = ""
	SERVICE_SETTINGS_DEFAULT_LISTEN_AND_ADDRESS = ":8065"

	TEAM_SETTINGS_DEFAULT_MAX_USERS_PER_TEAM       = 50
	TEAM_SETTINGS_DEFAULT_CUSTOM_BRAND_TEXT        = ""
	TEAM_SETTINGS_DEFAULT_CUSTOM_DESCRIPTION_TEXT  = ""
	TEAM_SETTINGS_DEFAULT_USER_STATUS_AWAY_TIMEOUT = 300

	SQL_SETTINGS_DEFAULT_DATA_SOURCE = "mmuser:mostest@tcp(dockerhost:3306)/mattermost_test?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s"

	EMAIL_SETTINGS_DEFAULT_FEEDBACK_ORGANIZATION = ""

	SUPPORT_SETTINGS_DEFAULT_TERMS_OF_SERVICE_LINK = "https://about.mattermost.com/default-terms/"
	SUPPORT_SETTINGS_DEFAULT_PRIVACY_POLICY_LINK   = "https://about.mattermost.com/default-privacy-policy/"
	SUPPORT_SETTINGS_DEFAULT_ABOUT_LINK            = "https://about.mattermost.com/default-about/"
	SUPPORT_SETTINGS_DEFAULT_HELP_LINK             = "https://about.mattermost.com/default-help/"
	SUPPORT_SETTINGS_DEFAULT_REPORT_A_PROBLEM_LINK = "https://about.mattermost.com/default-report-a-problem/"
	SUPPORT_SETTINGS_DEFAULT_SUPPORT_EMAIL         = "[email protected]"

	LDAP_SETTINGS_DEFAULT_FIRST_NAME_ATTRIBUTE = ""
	LDAP_SETTINGS_DEFAULT_LAST_NAME_ATTRIBUTE  = ""
	LDAP_SETTINGS_DEFAULT_EMAIL_ATTRIBUTE      = ""
	LDAP_SETTINGS_DEFAULT_USERNAME_ATTRIBUTE   = ""
	LDAP_SETTINGS_DEFAULT_NICKNAME_ATTRIBUTE   = ""
	LDAP_SETTINGS_DEFAULT_ID_ATTRIBUTE         = ""
	LDAP_SETTINGS_DEFAULT_POSITION_ATTRIBUTE   = ""
	LDAP_SETTINGS_DEFAULT_LOGIN_FIELD_NAME     = ""

	SAML_SETTINGS_DEFAULT_FIRST_NAME_ATTRIBUTE = ""
	SAML_SETTINGS_DEFAULT_LAST_NAME_ATTRIBUTE  = ""
	SAML_SETTINGS_DEFAULT_EMAIL_ATTRIBUTE      = ""
	SAML_SETTINGS_DEFAULT_USERNAME_ATTRIBUTE   = ""
	SAML_SETTINGS_DEFAULT_NICKNAME_ATTRIBUTE   = ""
	SAML_SETTINGS_DEFAULT_LOCALE_ATTRIBUTE     = ""
	SAML_SETTINGS_DEFAULT_POSITION_ATTRIBUTE   = ""

	NATIVEAPP_SETTINGS_DEFAULT_APP_DOWNLOAD_LINK         = "https://about.mattermost.com/downloads/"
	NATIVEAPP_SETTINGS_DEFAULT_ANDROID_APP_DOWNLOAD_LINK = "https://about.mattermost.com/mattermost-android-app/"
	NATIVEAPP_SETTINGS_DEFAULT_IOS_APP_DOWNLOAD_LINK     = "https://about.mattermost.com/mattermost-ios-app/"

	WEBRTC_SETTINGS_DEFAULT_STUN_URI = ""
	WEBRTC_SETTINGS_DEFAULT_TURN_URI = ""

	ANALYTICS_SETTINGS_DEFAULT_MAX_USERS_FOR_STATISTICS = 2500

	ANNOUNCEMENT_SETTINGS_DEFAULT_BANNER_COLOR      = "#f2a93b"
	ANNOUNCEMENT_SETTINGS_DEFAULT_BANNER_TEXT_COLOR = "#333333"

	TEAM_SETTINGS_DEFAULT_TEAM_TEXT = "default"

	ELASTICSEARCH_SETTINGS_DEFAULT_CONNECTION_URL                    = ""
	ELASTICSEARCH_SETTINGS_DEFAULT_USERNAME                          = ""
	ELASTICSEARCH_SETTINGS_DEFAULT_PASSWORD                          = ""
	ELASTICSEARCH_SETTINGS_DEFAULT_POST_INDEX_REPLICAS               = 1
	ELASTICSEARCH_SETTINGS_DEFAULT_POST_INDEX_SHARDS                 = 1
	ELASTICSEARCH_SETTINGS_DEFAULT_AGGREGATE_POSTS_AFTER_DAYS        = 365
	ELASTICSEARCH_SETTINGS_DEFAULT_POSTS_AGGREGATOR_JOB_START_TIME   = "03:00"
	ELASTICSEARCH_SETTINGS_DEFAULT_INDEX_PREFIX                      = ""
	ELASTICSEARCH_SETTINGS_DEFAULT_LIVE_INDEXING_BATCH_SIZE          = 1
	ELASTICSEARCH_SETTINGS_DEFAULT_BULK_INDEXING_TIME_WINDOW_SECONDS = 3600
	ELASTICSEARCH_SETTINGS_DEFAULT_REQUEST_TIMEOUT_SECONDS           = 30

	DATA_RETENTION_SETTINGS_DEFAULT_MESSAGE_RETENTION_DAYS  = 365
	DATA_RETENTION_SETTINGS_DEFAULT_FILE_RETENTION_DAYS     = 365
	DATA_RETENTION_SETTINGS_DEFAULT_DELETION_JOB_START_TIME = "02:00"

	PLUGIN_SETTINGS_DEFAULT_DIRECTORY        = "./plugins"
	PLUGIN_SETTINGS_DEFAULT_CLIENT_DIRECTORY = "./client/plugins"

	TIMEZONE_SETTINGS_DEFAULT_SUPPORTED_TIMEZONES_PATH = "timezones.json"

	COMPLIANCE_EXPORT_TYPE_ACTIANCE    = "actiance"
	COMPLIANCE_EXPORT_TYPE_GLOBALRELAY = "globalrelay"
	GLOBALRELAY_CUSTOMER_TYPE_A9       = "A9"
	GLOBALRELAY_CUSTOMER_TYPE_A10      = "A10"
)
View Source
const (
	EMOJI_NAME_MAX_LENGTH = 64
	EMOJI_SORT_BY_NAME    = "name"
)
View Source
const (
	JOB_TYPE_DATA_RETENTION                 = "data_retention"
	JOB_TYPE_MESSAGE_EXPORT                 = "message_export"
	JOB_TYPE_ELASTICSEARCH_POST_INDEXING    = "elasticsearch_post_indexing"
	JOB_TYPE_ELASTICSEARCH_POST_AGGREGATION = "elasticsearch_post_aggregation"
	JOB_TYPE_LDAP_SYNC                      = "ldap_sync"

	JOB_STATUS_PENDING          = "pending"
	JOB_STATUS_IN_PROGRESS      = "in_progress"
	JOB_STATUS_SUCCESS          = "success"
	JOB_STATUS_ERROR            = "error"
	JOB_STATUS_CANCEL_REQUESTED = "cancel_requested"
	JOB_STATUS_CANCELED         = "canceled"
)
View Source
const (
	EXPIRED_LICENSE_ERROR = "api.license.add_license.expired.app_error"
	INVALID_LICENSE_ERROR = "api.license.add_license.invalid.app_error"
)
View Source
const (
	OAUTH_ACTION_SIGNUP       = "signup"
	OAUTH_ACTION_LOGIN        = "login"
	OAUTH_ACTION_EMAIL_TO_SSO = "email_to_sso"
	OAUTH_ACTION_SSO_TO_EMAIL = "sso_to_email"
	OAUTH_ACTION_MOBILE       = "mobile"
)
View Source
const (
	PERMISSION_SCOPE_SYSTEM  = "system_scope"
	PERMISSION_SCOPE_TEAM    = "team_scope"
	PERMISSION_SCOPE_CHANNEL = "channel_scope"
)
View Source
const (
	KEY_VALUE_PLUGIN_ID_MAX_RUNES = 190
	KEY_VALUE_KEY_MAX_RUNES       = 50
)
View Source
const (
	POST_SYSTEM_MESSAGE_PREFIX  = "system_"
	POST_DEFAULT                = ""
	POST_SLACK_ATTACHMENT       = "slack_attachment"
	POST_SYSTEM_GENERIC         = "system_generic"
	POST_JOIN_LEAVE             = "system_join_leave" // Deprecated, use POST_JOIN_CHANNEL or POST_LEAVE_CHANNEL instead
	POST_JOIN_CHANNEL           = "system_join_channel"
	POST_LEAVE_CHANNEL          = "system_leave_channel"
	POST_JOIN_TEAM              = "system_join_team"
	POST_LEAVE_TEAM             = "system_leave_team"
	POST_AUTO_RESPONDER         = "system_auto_responder"
	POST_ADD_REMOVE             = "system_add_remove" // Deprecated, use POST_ADD_TO_CHANNEL or POST_REMOVE_FROM_CHANNEL instead
	POST_ADD_TO_CHANNEL         = "system_add_to_channel"
	POST_REMOVE_FROM_CHANNEL    = "system_remove_from_channel"
	POST_MOVE_CHANNEL           = "system_move_channel"
	POST_ADD_TO_TEAM            = "system_add_to_team"
	POST_REMOVE_FROM_TEAM       = "system_remove_from_team"
	POST_HEADER_CHANGE          = "system_header_change"
	POST_DISPLAYNAME_CHANGE     = "system_displayname_change"
	POST_CONVERT_CHANNEL        = "system_convert_channel"
	POST_PURPOSE_CHANGE         = "system_purpose_change"
	POST_CHANNEL_DELETED        = "system_channel_deleted"
	POST_EPHEMERAL              = "system_ephemeral"
	POST_CHANGE_CHANNEL_PRIVACY = "system_change_chan_privacy"
	POST_FILEIDS_MAX_RUNES      = 150
	POST_FILENAMES_MAX_RUNES    = 4000
	POST_HASHTAGS_MAX_RUNES     = 1000
	POST_MESSAGE_MAX_RUNES_V1   = 4000
	POST_MESSAGE_MAX_BYTES_V2   = 65535                         // Maximum size of a TEXT column in MySQL
	POST_MESSAGE_MAX_RUNES_V2   = POST_MESSAGE_MAX_BYTES_V2 / 4 // Assume a worst-case representation
	POST_PROPS_MAX_RUNES        = 8000
	POST_PROPS_MAX_USER_RUNES   = POST_PROPS_MAX_RUNES - 400 // Leave some room for system / pre-save modifications
	POST_CUSTOM_TYPE_PREFIX     = "custom_"
	PROPS_ADD_CHANNEL_MEMBER    = "add_channel_member"
	POST_PROPS_ADDED_USER_ID    = "addedUserId"
)
View Source
const (
	PREFERENCE_CATEGORY_DIRECT_CHANNEL_SHOW = "direct_channel_show"
	PREFERENCE_CATEGORY_TUTORIAL_STEPS      = "tutorial_step"
	PREFERENCE_CATEGORY_ADVANCED_SETTINGS   = "advanced_settings"
	PREFERENCE_CATEGORY_FLAGGED_POST        = "flagged_post"
	PREFERENCE_CATEGORY_FAVORITE_CHANNEL    = "favorite_channel"

	PREFERENCE_CATEGORY_DISPLAY_SETTINGS = "display_settings"
	PREFERENCE_NAME_COLLAPSE_SETTING     = "collapse_previews"

	PREFERENCE_CATEGORY_THEME = "theme"

	PREFERENCE_CATEGORY_AUTHORIZED_OAUTH_APP = "oauth_app"

	PREFERENCE_CATEGORY_LAST     = "last"
	PREFERENCE_NAME_LAST_CHANNEL = "channel"
	PREFERENCE_NAME_LAST_TEAM    = "team"

	PREFERENCE_CATEGORY_NOTIFICATIONS = "notifications"
	PREFERENCE_NAME_EMAIL_INTERVAL    = "email_interval"

	PREFERENCE_EMAIL_INTERVAL_NO_BATCHING_SECONDS = "30"  // the "immediate" setting is actually 30s
	PREFERENCE_EMAIL_INTERVAL_BATCHING_SECONDS    = "900" // fifteen minutes is 900 seconds
)
View Source
const (
	PUSH_NOTIFY_APPLE                = "apple"
	PUSH_NOTIFY_ANDROID              = "android"
	PUSH_NOTIFY_APPLE_REACT_NATIVE   = "apple_rn"
	PUSH_NOTIFY_ANDROID_REACT_NATIVE = "android_rn"

	PUSH_TYPE_MESSAGE = "message"
	PUSH_TYPE_CLEAR   = "clear"

	// The category is set to handle a set of interactive Actions
	// with the push notifications
	CATEGORY_CAN_REPLY = "CAN_REPLY"

	MHPNS = "https://push.mattermost.com"
)
View Source
const (
	PUSH_STATUS           = "status"
	PUSH_STATUS_OK        = "OK"
	PUSH_STATUS_FAIL      = "FAIL"
	PUSH_STATUS_REMOVE    = "REMOVE"
	PUSH_STATUS_ERROR_MSG = "error"
)
View Source
const (
	SYSTEM_USER_ROLE_ID              = "system_user"
	SYSTEM_ADMIN_ROLE_ID             = "system_admin"
	SYSTEM_POST_ALL_ROLE_ID          = "system_post_all"
	SYSTEM_POST_ALL_PUBLIC_ROLE_ID   = "system_post_all_public"
	SYSTEM_USER_ACCESS_TOKEN_ROLE_ID = "system_user_access_token"

	TEAM_USER_ROLE_ID            = "team_user"
	TEAM_ADMIN_ROLE_ID           = "team_admin"
	TEAM_POST_ALL_ROLE_ID        = "team_post_all"
	TEAM_POST_ALL_PUBLIC_ROLE_ID = "team_post_all_public"

	CHANNEL_USER_ROLE_ID  = "channel_user"
	CHANNEL_ADMIN_ROLE_ID = "channel_admin"

	ROLE_NAME_MAX_LENGTH         = 64
	ROLE_DISPLAY_NAME_MAX_LENGTH = 128
	ROLE_DESCRIPTION_MAX_LENGTH  = 1024
)
View Source
const (
	USER_AUTH_SERVICE_SAML      = "saml"
	USER_AUTH_SERVICE_SAML_TEXT = "With SAML"
)
View Source
const (
	SESSION_COOKIE_TOKEN              = "MMAUTHTOKEN"
	SESSION_COOKIE_USER               = "MMUSERID"
	SESSION_CACHE_SIZE                = 35000
	SESSION_PROP_PLATFORM             = "platform"
	SESSION_PROP_OS                   = "os"
	SESSION_PROP_BROWSER              = "browser"
	SESSION_PROP_TYPE                 = "type"
	SESSION_PROP_USER_ACCESS_TOKEN_ID = "user_access_token_id"
	SESSION_TYPE_USER_ACCESS_TOKEN    = "UserAccessToken"
	SESSION_ACTIVITY_TIMEOUT          = 1000 * 60 * 5 // 5 minutes
	SESSION_USER_ACCESS_TOKEN_EXPIRY  = 100 * 365     // 100 years
)
View Source
const (
	STATUS_OUT_OF_OFFICE   = "ooo"
	STATUS_OFFLINE         = "offline"
	STATUS_AWAY            = "away"
	STATUS_DND             = "dnd"
	STATUS_ONLINE          = "online"
	STATUS_CACHE_SIZE      = SESSION_CACHE_SIZE
	STATUS_CHANNEL_TIMEOUT = 20000  // 20 seconds
	STATUS_MIN_UPDATE_TIME = 120000 // 2 minutes
)
View Source
const (
	SYSTEM_DIAGNOSTIC_ID          = "DiagnosticId"
	SYSTEM_RAN_UNIT_TESTS         = "RanUnitTests"
	SYSTEM_LAST_SECURITY_TIME     = "LastSecurityTime"
	SYSTEM_ACTIVE_LICENSE_ID      = "ActiveLicenseId"
	SYSTEM_LAST_COMPLIANCE_TIME   = "LastComplianceTime"
	SYSTEM_ASYMMETRIC_SIGNING_KEY = "AsymmetricSigningKey"
)
View Source
const (
	TEAM_OPEN                       = "O"
	TEAM_INVITE                     = "I"
	TEAM_ALLOWED_DOMAINS_MAX_LENGTH = 500
	TEAM_COMPANY_NAME_MAX_LENGTH    = 64
	TEAM_DESCRIPTION_MAX_LENGTH     = 255
	TEAM_DISPLAY_NAME_MAX_RUNES     = 64
	TEAM_EMAIL_MAX_LENGTH           = 128
	TEAM_NAME_MAX_LENGTH            = 64
	TEAM_NAME_MIN_LENGTH            = 2
)
View Source
const (
	TOKEN_SIZE            = 64
	MAX_TOKEN_EXIPRY_TIME = 1000 * 60 * 60 * 24 // 24 hour
	TOKEN_TYPE_OAUTH      = "oauth"
)
View Source
const (
	ME                           = "me"
	USER_NOTIFY_ALL              = "all"
	USER_NOTIFY_MENTION          = "mention"
	USER_NOTIFY_NONE             = "none"
	DESKTOP_NOTIFY_PROP          = "desktop"
	DESKTOP_SOUND_NOTIFY_PROP    = "desktop_sound"
	DESKTOP_DURATION_NOTIFY_PROP = "desktop_duration"
	MARK_UNREAD_NOTIFY_PROP      = "mark_unread"
	PUSH_NOTIFY_PROP             = "push"
	PUSH_STATUS_NOTIFY_PROP      = "push_status"
	EMAIL_NOTIFY_PROP            = "email"
	CHANNEL_MENTIONS_NOTIFY_PROP = "channel"
	COMMENTS_NOTIFY_PROP         = "comments"
	MENTION_KEYS_NOTIFY_PROP     = "mention_keys"
	COMMENTS_NOTIFY_NEVER        = "never"
	COMMENTS_NOTIFY_ROOT         = "root"
	COMMENTS_NOTIFY_ANY          = "any"

	DEFAULT_LOCALE          = "en"
	USER_AUTH_SERVICE_EMAIL = "email"

	USER_EMAIL_MAX_LENGTH     = 128
	USER_NICKNAME_MAX_RUNES   = 64
	USER_POSITION_MAX_RUNES   = 128
	USER_FIRST_NAME_MAX_RUNES = 64
	USER_LAST_NAME_MAX_RUNES  = 64
	USER_AUTH_DATA_MAX_LENGTH = 128
	USER_NAME_MAX_LENGTH      = 64
	USER_NAME_MIN_LENGTH      = 1
	USER_PASSWORD_MAX_LENGTH  = 72
)
View Source
const (
	LOWERCASE_LETTERS = "abcdefghijklmnopqrstuvwxyz"
	UPPERCASE_LETTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
	NUMBERS           = "0123456789"
	SYMBOLS           = " !\"\\#$%&'()*+,-./:;<=>?@[]^_`|~"
)
View Source
const (
	WEBSOCKET_EVENT_TYPING                 = "typing"
	WEBSOCKET_EVENT_POSTED                 = "posted"
	WEBSOCKET_EVENT_POST_EDITED            = "post_edited"
	WEBSOCKET_EVENT_POST_DELETED           = "post_deleted"
	WEBSOCKET_EVENT_CHANNEL_DELETED        = "channel_deleted"
	WEBSOCKET_EVENT_CHANNEL_CREATED        = "channel_created"
	WEBSOCKET_EVENT_CHANNEL_UPDATED        = "channel_updated"
	WEBSOCKET_EVENT_CHANNEL_MEMBER_UPDATED = "channel_member_updated"
	WEBSOCKET_EVENT_DIRECT_ADDED           = "direct_added"
	WEBSOCKET_EVENT_GROUP_ADDED            = "group_added"
	WEBSOCKET_EVENT_NEW_USER               = "new_user"
	WEBSOCKET_EVENT_ADDED_TO_TEAM          = "added_to_team"
	WEBSOCKET_EVENT_LEAVE_TEAM             = "leave_team"
	WEBSOCKET_EVENT_UPDATE_TEAM            = "update_team"
	WEBSOCKET_EVENT_DELETE_TEAM            = "delete_team"
	WEBSOCKET_EVENT_USER_ADDED             = "user_added"
	WEBSOCKET_EVENT_USER_UPDATED           = "user_updated"
	WEBSOCKET_EVENT_USER_ROLE_UPDATED      = "user_role_updated"
	WEBSOCKET_EVENT_MEMBERROLE_UPDATED     = "memberrole_updated"
	WEBSOCKET_EVENT_USER_REMOVED           = "user_removed"
	WEBSOCKET_EVENT_PREFERENCE_CHANGED     = "preference_changed"
	WEBSOCKET_EVENT_PREFERENCES_CHANGED    = "preferences_changed"
	WEBSOCKET_EVENT_PREFERENCES_DELETED    = "preferences_deleted"
	WEBSOCKET_EVENT_EPHEMERAL_MESSAGE      = "ephemeral_message"
	WEBSOCKET_EVENT_STATUS_CHANGE          = "status_change"
	WEBSOCKET_EVENT_HELLO                  = "hello"
	WEBSOCKET_EVENT_WEBRTC                 = "webrtc"
	WEBSOCKET_AUTHENTICATION_CHALLENGE     = "authentication_challenge"
	WEBSOCKET_EVENT_REACTION_ADDED         = "reaction_added"
	WEBSOCKET_EVENT_REACTION_REMOVED       = "reaction_removed"
	WEBSOCKET_EVENT_RESPONSE               = "response"
	WEBSOCKET_EVENT_EMOJI_ADDED            = "emoji_added"
	WEBSOCKET_EVENT_CHANNEL_VIEWED         = "channel_viewed"
	WEBSOCKET_EVENT_PLUGIN_ACTIVATED       = "plugin_activated"   // EXPERIMENTAL - SUBJECT TO CHANGE
	WEBSOCKET_EVENT_PLUGIN_DEACTIVATED     = "plugin_deactivated" // EXPERIMENTAL - SUBJECT TO CHANGE
	WEBSOCKET_EVENT_ROLE_UPDATED           = "role_updated"
	WEBSOCKET_EVENT_LICENSE_CHANGED        = "license_changed"
	WEBSOCKET_EVENT_CONFIG_CHANGED         = "config_changed"
)
View Source
const (
	COMMAND_WEBHOOK_LIFETIME = 1000 * 60 * 30
)
View Source
const (
	DEFAULT_WEBHOOK_USERNAME = "webhook"
)
View Source
const (
	MaxImageSize = 6048 * 4032 // 24 megapixels, roughly 36MB as a raw image
)
View Source
const OUTGOING_HOOK_RESPONSE_TYPE_COMMENT = "comment"
View Source
const (
	SOCKET_MAX_MESSAGE_SIZE_KB = 8 * 1024 // 8KB
)
View Source
const (
	USER_AUTH_SERVICE_GITLAB = "gitlab"
)
View Source
const (
	USER_AUTH_SERVICE_LDAP = "ldap"
)

Variables ¶

View Source
var (
	IMAGE_EXTENSIONS = [5]string{".jpg", ".jpeg", ".gif", ".bmp", ".png"}
	IMAGE_MIME_TYPES = map[string]string{".jpg": "image/jpeg", ".jpeg": "image/jpeg", ".gif": "image/gif", ".bmp": "image/bmp", ".png": "image/png", ".tiff": "image/tiff"}
)
View Source
var ALL_PERMISSIONS []*Permission
View Source
var BuildDate string
View Source
var BuildEnterpriseReady string
View Source
var BuildHash string
View Source
var BuildHashEnterprise string
View Source
var BuildNumber string
View Source
var CurrentVersion string = versions[0]
View Source
var DefaultSupportedTimezones = []string{}/* 594 elements not displayed */
View Source
var SystemEmojis = map[string]string{} /* 2383 elements not displayed */
View Source
var UsedApiV3 *int32 = new(int32)

Functions ¶

func AppErrorInit ¶

func AppErrorInit(t goi18n.TranslateFunc)

func ArrayFromInterface ¶

func ArrayFromInterface(data interface{}) []string

func ArrayFromJson ¶

func ArrayFromJson(data io.Reader) []string

func ArrayToJson ¶

func ArrayToJson(objmap []string) string

func CheckStatusOK ¶

func CheckStatusOK(r *http.Response) bool

CheckStatusOK is a convenience function for checking the standard OK response from the web service.

func CleanTeamName ¶

func CleanTeamName(s string) string

func CleanUsername ¶

func CleanUsername(s string) string

func ClearMentionTags ¶

func ClearMentionTags(post string) string

func ClusterInfosToJson ¶

func ClusterInfosToJson(objmap []*ClusterInfo) string

func CommandListToJson ¶

func CommandListToJson(l []*Command) string

func ComparePassword ¶

func ComparePassword(hash string, password string) bool

ComparePassword compares the hash

func CompliancePostHeader ¶

func CompliancePostHeader() []string

func CopyStringMap ¶

func CopyStringMap(originalMap map[string]string) map[string]string

func DefaultUserTimezone ¶

func DefaultUserTimezone() map[string]string

func EmojiListToJson ¶

func EmojiListToJson(emojiList []*Emoji) string

func Etag ¶

func Etag(parts ...interface{}) string

func FileInfosToJson ¶

func FileInfosToJson(infos []*FileInfo) string

func GetDMNameFromIds ¶

func GetDMNameFromIds(userId1, userId2 string) string

func GetEtagForFileInfos ¶

func GetEtagForFileInfos(infos []*FileInfo) string

func GetGroupDisplayNameFromUsers ¶

func GetGroupDisplayNameFromUsers(users []*User, truncate bool) string

func GetGroupNameFromUserIds ¶

func GetGroupNameFromUserIds(userIds []string) string

func GetImageMimeType ¶

func GetImageMimeType(ext string) string

func GetInfoForBytes ¶

func GetInfoForBytes(name string, data []byte) (*FileInfo, *AppError)

func GetMillis ¶

func GetMillis() int64

GetMillis is a convience method to get milliseconds since epoch.

func GetPreviousVersion ¶

func GetPreviousVersion(version string) string

func GetServerIpAddress ¶

func GetServerIpAddress() string

func HashPassword ¶

func HashPassword(password string) string

HashPassword generates a hash using the bcrypt.GenerateFromPassword

func IncomingWebhookListToJson ¶

func IncomingWebhookListToJson(l []*IncomingWebhook) string

func IncomingWebhookRequestFromJson ¶

func IncomingWebhookRequestFromJson(data io.Reader) (*IncomingWebhookRequest, *AppError)

func IsChannelMarkUnreadLevelValid ¶

func IsChannelMarkUnreadLevelValid(markUnreadLevel string) bool

func IsChannelNotifyLevelValid ¶

func IsChannelNotifyLevelValid(notifyLevel string) bool

func IsCurrentVersion ¶

func IsCurrentVersion(versionToCheck string) bool

func IsFileExtImage ¶

func IsFileExtImage(ext string) bool

func IsInRole ¶

func IsInRole(userRoles string, inRole string) bool

Make sure you acually want to use this function. In context.go there are functions to check permissions This function should not be used to check permissions.

func IsLower ¶

func IsLower(s string) bool

func IsPreviousVersionsSupported ¶

func IsPreviousVersionsSupported(versionToCheck string) bool

func IsReservedTeamName ¶

func IsReservedTeamName(s string) bool
func IsSafeLink(link *string) bool

func IsSendEmailValid ¶

func IsSendEmailValid(sendEmail string) bool

func IsValidAlphaNum ¶

func IsValidAlphaNum(s string) bool

func IsValidAlphaNumHyphenUnderscore ¶

func IsValidAlphaNumHyphenUnderscore(s string, withFormat bool) bool

func IsValidChannelIdentifier ¶

func IsValidChannelIdentifier(s string) bool

func IsValidCommentsNotifyLevel ¶

func IsValidCommentsNotifyLevel(notifyLevel string) bool

func IsValidEmail ¶

func IsValidEmail(email string) bool

func IsValidHttpUrl ¶

func IsValidHttpUrl(rawUrl string) bool

func IsValidId ¶

func IsValidId(value string) bool

func IsValidNumberString ¶

func IsValidNumberString(value string) bool

func IsValidPushStatusNotifyLevel ¶

func IsValidPushStatusNotifyLevel(notifyLevel string) bool

func IsValidRoleName ¶

func IsValidRoleName(roleName string) bool

func IsValidTeamName ¶

func IsValidTeamName(s string) bool

func IsValidTrueOrFalseString ¶

func IsValidTrueOrFalseString(value string) bool

func IsValidTurnOrStunServer ¶

func IsValidTurnOrStunServer(rawUri string) bool

func IsValidUserNotifyLevel ¶

func IsValidUserNotifyLevel(notifyLevel string) bool

func IsValidUserRoles ¶

func IsValidUserRoles(userRoles string) bool

func IsValidUsername ¶

func IsValidUsername(s string) bool

func IsValidWebsocketUrl ¶

func IsValidWebsocketUrl(rawUrl string) bool

func JobsToJson ¶

func JobsToJson(jobs []*Job) string

func MakeDefaultRoles ¶

func MakeDefaultRoles() map[string]*Role

func ManifestListToJson ¶

func ManifestListToJson(m []*Manifest) string

func MapBoolFromJson ¶

func MapBoolFromJson(data io.Reader) map[string]bool

MapFromJson will decode the key/value pair map

func MapBoolToJson ¶

func MapBoolToJson(objmap map[string]bool) string

MapToJson converts a map to a json string

func MapFromJson ¶

func MapFromJson(data io.Reader) map[string]string

MapFromJson will decode the key/value pair map

func MapToJson ¶

func MapToJson(objmap map[string]string) string

MapToJson converts a map to a json string

func NewBool ¶

func NewBool(b bool) *bool

func NewId ¶

func NewId() string

NewId is a globally unique identifier. It is a [A-Z0-9] string 26 characters long. It is a UUID version 4 Guid that is zbased32 encoded with the padding stripped off.

func NewInt ¶

func NewInt(n int) *int

func NewInt64 ¶

func NewInt64(n int64) *int64

func NewRandomString ¶

func NewRandomString(length int) string

func NewString ¶

func NewString(s string) *string

func NewWebSocketClient ¶

func NewWebSocketClient(url, authToken string) (*WebSocketClient, *AppError)

NewWebSocketClient constructs a new WebSocket client with convenience methods for talking to the server.

func NewWebSocketClient4 ¶

func NewWebSocketClient4(url, authToken string) (*WebSocketClient, *AppError)

NewWebSocketClient4 constructs a new WebSocket client with convenience methods for talking to the server. Uses the v4 endpoint.

func NewWebSocketClient4WithDialer ¶

func NewWebSocketClient4WithDialer(dialer *websocket.Dialer, url, authToken string) (*WebSocketClient, *AppError)

NewWebSocketClient4WithDialer constructs a new WebSocket client with convenience methods for talking to the server using a custom dialer. Uses the v4 endpoint.

func NewWebSocketClientWithDialer ¶

func NewWebSocketClientWithDialer(dialer *websocket.Dialer, url, authToken string) (*WebSocketClient, *AppError)

NewWebSocketClientWithDialer constructs a new WebSocket client with convenience methods for talking to the server using a custom dialer.

func NormalizeEmail ¶

func NormalizeEmail(email string) string

func NormalizeUsername ¶

func NormalizeUsername(username string) string

func OAuthAppListToJson ¶

func OAuthAppListToJson(l []*OAuthApp) string

func OutgoingWebhookListToJson ¶

func OutgoingWebhookListToJson(l []*OutgoingWebhook) string

func ParseHashtags ¶

func ParseHashtags(text string) (string, string)

func PermissionsChangedByPatch ¶

func PermissionsChangedByPatch(role *Role, patch *RolePatch) []string

Returns an array of permissions that are in either role.Permissions or patch.Permissions, but not both.

func ReactionsToJson ¶

func ReactionsToJson(o []*Reaction) string

func RewriteImageURLs ¶

func RewriteImageURLs(message string, f func(string) string) string

RewriteImageURLs takes a message and returns a copy that has all of the image URLs replaced according to the function f. For each image URL, f will be invoked, and the resulting markdown will contain the URL returned by that invocation instead.

Image URLs are destination URLs used in inline images or reference definitions that are used anywhere in the input markdown as an image.

func RoleListToJson ¶

func RoleListToJson(r []*Role) string

func SessionsToJson ¶

func SessionsToJson(o []*Session) string

func SplitVersion ¶

func SplitVersion(version string) (int64, int64, int64)

func StatusListToJson ¶

func StatusListToJson(u []*Status) string

func StatusMapToInterfaceMap ¶

func StatusMapToInterfaceMap(statusMap map[string]*Status) map[string]interface{}

func StringFromJson ¶

func StringFromJson(data io.Reader) string

func StringInterfaceFromJson ¶

func StringInterfaceFromJson(data io.Reader) map[string]interface{}

func StringInterfaceToJson ¶

func StringInterfaceToJson(objmap map[string]interface{}) string

func StringToJson ¶

func StringToJson(s string) string

func TeamListToJson ¶

func TeamListToJson(t []*Team) string

func TeamMapFromJson ¶

func TeamMapFromJson(data io.Reader) map[string]*Team

func TeamMapToJson ¶

func TeamMapToJson(u map[string]*Team) string

func TeamMembersToJson ¶

func TeamMembersToJson(o []*TeamMember) string

func TeamsUnreadToJson ¶

func TeamsUnreadToJson(o []*TeamUnread) string

func TimezonesToJson ¶

func TimezonesToJson(timezoneList []string) string

func UserAccessTokenListToJson ¶

func UserAccessTokenListToJson(t []*UserAccessToken) string

func UserListToJson ¶

func UserListToJson(u []*User) string

func UserMapFromJson ¶

func UserMapFromJson(data io.Reader) map[string]*User

func UserMapToJson ¶

func UserMapToJson(u map[string]*User) string

Types ¶

type AccessData ¶

type AccessData struct {
	ClientId     string `json:"client_id"`
	UserId       string `json:"user_id"`
	Token        string `json:"token"`
	RefreshToken string `json:"refresh_token"`
	RedirectUri  string `json:"redirect_uri"`
	ExpiresAt    int64  `json:"expires_at"`
	Scope        string `json:"scope"`
}

func AccessDataFromJson ¶

func AccessDataFromJson(data io.Reader) *AccessData

func (*AccessData) IsExpired ¶

func (me *AccessData) IsExpired() bool

func (*AccessData) IsValid ¶

func (ad *AccessData) IsValid() *AppError

IsValid validates the AccessData and returns an error if it isn't configured correctly.

func (*AccessData) ToJson ¶

func (ad *AccessData) ToJson() string

type AccessResponse ¶

type AccessResponse struct {
	AccessToken  string `json:"access_token"`
	TokenType    string `json:"token_type"`
	ExpiresIn    int32  `json:"expires_in"`
	Scope        string `json:"scope"`
	RefreshToken string `json:"refresh_token"`
}

func AccessResponseFromJson ¶

func AccessResponseFromJson(data io.Reader) *AccessResponse

func (*AccessResponse) ToJson ¶

func (ar *AccessResponse) ToJson() string

type AnalyticsRow ¶

type AnalyticsRow struct {
	Name  string  `json:"name"`
	Value float64 `json:"value"`
}

func AnalyticsRowFromJson ¶

func AnalyticsRowFromJson(data io.Reader) *AnalyticsRow

func (*AnalyticsRow) ToJson ¶

func (me *AnalyticsRow) ToJson() string

type AnalyticsRows ¶

type AnalyticsRows []*AnalyticsRow

func AnalyticsRowsFromJson ¶

func AnalyticsRowsFromJson(data io.Reader) AnalyticsRows

func (AnalyticsRows) ToJson ¶

func (me AnalyticsRows) ToJson() string

type AnalyticsSettings ¶

type AnalyticsSettings struct {
	MaxUsersForStatistics *int
}

func (*AnalyticsSettings) SetDefaults ¶

func (s *AnalyticsSettings) SetDefaults()

type AnnouncementSettings ¶

type AnnouncementSettings struct {
	EnableBanner         *bool
	BannerText           *string
	BannerColor          *string
	BannerTextColor      *string
	AllowBannerDismissal *bool
}

func (*AnnouncementSettings) SetDefaults ¶

func (s *AnnouncementSettings) SetDefaults()

type AppError ¶

type AppError struct {
	Id            string `json:"id"`
	Message       string `json:"message"`               // Message to be display to the end user without debugging information
	DetailedError string `json:"detailed_error"`        // Internal error string to help the developer
	RequestId     string `json:"request_id,omitempty"`  // The RequestId that's also set in the header
	StatusCode    int    `json:"status_code,omitempty"` // The http status code
	Where         string `json:"-"`                     // The function where it happened in the form of Struct.Func
	IsOAuth       bool   `json:"is_oauth,omitempty"`    // Whether the error is OAuth specific
	// contains filtered or unexported fields
}

func AppErrorFromJson ¶

func AppErrorFromJson(data io.Reader) *AppError

AppErrorFromJson will decode the input and return an AppError

func InvalidUserError ¶

func InvalidUserError(fieldName string, userId string) *AppError

func NewAppError ¶

func NewAppError(where string, id string, params map[string]interface{}, details string, status int) *AppError

func (*AppError) Error ¶

func (er *AppError) Error() string

func (*AppError) SystemMessage ¶

func (er *AppError) SystemMessage(T goi18n.TranslateFunc) string

func (*AppError) ToJson ¶

func (er *AppError) ToJson() string

func (*AppError) Translate ¶

func (er *AppError) Translate(T goi18n.TranslateFunc)

type Audit ¶

type Audit struct {
	Id        string `json:"id"`
	CreateAt  int64  `json:"create_at"`
	UserId    string `json:"user_id"`
	Action    string `json:"action"`
	ExtraInfo string `json:"extra_info"`
	IpAddress string `json:"ip_address"`
	SessionId string `json:"session_id"`
}

func AuditFromJson ¶

func AuditFromJson(data io.Reader) *Audit

func (*Audit) ToJson ¶

func (o *Audit) ToJson() string

type Audits ¶

type Audits []Audit

func AuditsFromJson ¶

func AuditsFromJson(data io.Reader) Audits

func (Audits) Etag ¶

func (o Audits) Etag() string

func (Audits) ToJson ¶

func (o Audits) ToJson() string

type AuthData ¶

type AuthData struct {
	ClientId    string `json:"client_id"`
	UserId      string `json:"user_id"`
	Code        string `json:"code"`
	ExpiresIn   int32  `json:"expires_in"`
	CreateAt    int64  `json:"create_at"`
	RedirectUri string `json:"redirect_uri"`
	State       string `json:"state"`
	Scope       string `json:"scope"`
}

func AuthDataFromJson ¶

func AuthDataFromJson(data io.Reader) *AuthData

func (*AuthData) IsExpired ¶

func (ad *AuthData) IsExpired() bool

func (*AuthData) IsValid ¶

func (ad *AuthData) IsValid() *AppError

IsValid validates the AuthData and returns an error if it isn't configured correctly.

func (*AuthData) PreSave ¶

func (ad *AuthData) PreSave()

func (*AuthData) ToJson ¶

func (ad *AuthData) ToJson() string

type AuthorizeRequest ¶

type AuthorizeRequest struct {
	ResponseType string `json:"response_type"`
	ClientId     string `json:"client_id"`
	RedirectUri  string `json:"redirect_uri"`
	Scope        string `json:"scope"`
	State        string `json:"state"`
}

func AuthorizeRequestFromJson ¶

func AuthorizeRequestFromJson(data io.Reader) *AuthorizeRequest

func (*AuthorizeRequest) IsValid ¶

func (ar *AuthorizeRequest) IsValid() *AppError

IsValid validates the AuthorizeRequest and returns an error if it isn't configured correctly.

func (*AuthorizeRequest) ToJson ¶

func (ar *AuthorizeRequest) ToJson() string

type BundleInfo ¶

type BundleInfo struct {
	Path string

	Manifest      *Manifest
	ManifestPath  string
	ManifestError error
}

func BundleInfoForPath ¶

func BundleInfoForPath(path string) *BundleInfo

Returns bundle info for the given path. The return value is never nil.

type Channel ¶

type Channel struct {
	Id            string `json:"id"`
	CreateAt      int64  `json:"create_at"`
	UpdateAt      int64  `json:"update_at"`
	DeleteAt      int64  `json:"delete_at"`
	TeamId        string `json:"team_id"`
	Type          string `json:"type"`
	DisplayName   string `json:"display_name"`
	Name          string `json:"name"`
	Header        string `json:"header"`
	Purpose       string `json:"purpose"`
	LastPostAt    int64  `json:"last_post_at"`
	TotalMsgCount int64  `json:"total_msg_count"`
	ExtraUpdateAt int64  `json:"extra_update_at"`
	CreatorId     string `json:"creator_id"`
}

func ChannelFromJson ¶

func ChannelFromJson(data io.Reader) *Channel

func ChannelSliceFromJson ¶

func ChannelSliceFromJson(data io.Reader) []*Channel

func (*Channel) DeepCopy ¶

func (o *Channel) DeepCopy() *Channel

func (*Channel) Etag ¶

func (o *Channel) Etag() string

func (*Channel) ExtraUpdated ¶

func (o *Channel) ExtraUpdated()

func (*Channel) IsGroupOrDirect ¶

func (o *Channel) IsGroupOrDirect() bool

func (*Channel) IsValid ¶

func (o *Channel) IsValid() *AppError

func (*Channel) Patch ¶

func (o *Channel) Patch(patch *ChannelPatch)

func (*Channel) PreSave ¶

func (o *Channel) PreSave()

func (*Channel) PreUpdate ¶

func (o *Channel) PreUpdate()

func (*Channel) ToJson ¶

func (o *Channel) ToJson() string

type ChannelCounts ¶

type ChannelCounts struct {
	Counts      map[string]int64 `json:"counts"`
	UpdateTimes map[string]int64 `json:"update_times"`
}

func ChannelCountsFromJson ¶

func ChannelCountsFromJson(data io.Reader) *ChannelCounts

func (*ChannelCounts) Etag ¶

func (o *ChannelCounts) Etag() string

func (*ChannelCounts) ToJson ¶

func (o *ChannelCounts) ToJson() string

type ChannelData ¶

type ChannelData struct {
	Channel *Channel       `json:"channel"`
	Member  *ChannelMember `json:"member"`
}

func ChannelDataFromJson ¶

func ChannelDataFromJson(data io.Reader) *ChannelData

func (*ChannelData) Etag ¶

func (o *ChannelData) Etag() string

func (*ChannelData) ToJson ¶

func (o *ChannelData) ToJson() string

type ChannelList ¶

type ChannelList []*Channel

func ChannelListFromJson ¶

func ChannelListFromJson(data io.Reader) *ChannelList

func (*ChannelList) Etag ¶

func (o *ChannelList) Etag() string

func (*ChannelList) ToJson ¶

func (o *ChannelList) ToJson() string

type ChannelMember ¶

type ChannelMember struct {
	ChannelId    string    `json:"channel_id"`
	UserId       string    `json:"user_id"`
	Roles        string    `json:"roles"`
	LastViewedAt int64     `json:"last_viewed_at"`
	MsgCount     int64     `json:"msg_count"`
	MentionCount int64     `json:"mention_count"`
	NotifyProps  StringMap `json:"notify_props"`
	LastUpdateAt int64     `json:"last_update_at"`
}

func ChannelMemberFromJson ¶

func ChannelMemberFromJson(data io.Reader) *ChannelMember

func (*ChannelMember) GetRoles ¶

func (o *ChannelMember) GetRoles() []string

func (*ChannelMember) IsValid ¶

func (o *ChannelMember) IsValid() *AppError

func (*ChannelMember) PreSave ¶

func (o *ChannelMember) PreSave()

func (*ChannelMember) PreUpdate ¶

func (o *ChannelMember) PreUpdate()

func (*ChannelMember) ToJson ¶

func (o *ChannelMember) ToJson() string

type ChannelMemberHistory ¶

type ChannelMemberHistory struct {
	ChannelId string
	UserId    string
	JoinTime  int64
	LeaveTime *int64
}

type ChannelMemberHistoryResult ¶

type ChannelMemberHistoryResult struct {
	ChannelId string
	UserId    string
	JoinTime  int64
	LeaveTime *int64

	// these two fields are never set in the database - when we SELECT, we join on Users to get them
	UserEmail string `db:"Email"`
	Username  string
}

type ChannelMembers ¶

type ChannelMembers []ChannelMember

func ChannelMembersFromJson ¶

func ChannelMembersFromJson(data io.Reader) *ChannelMembers

func (*ChannelMembers) ToJson ¶

func (o *ChannelMembers) ToJson() string

type ChannelPatch ¶

type ChannelPatch struct {
	DisplayName *string `json:"display_name"`
	Name        *string `json:"name"`
	Header      *string `json:"header"`
	Purpose     *string `json:"purpose"`
}

func ChannelPatchFromJson ¶

func ChannelPatchFromJson(data io.Reader) *ChannelPatch

func (*ChannelPatch) ToJson ¶

func (o *ChannelPatch) ToJson() string

type ChannelSearch ¶

type ChannelSearch struct {
	Term string `json:"term"`
}

func ChannelSearchFromJson ¶

func ChannelSearchFromJson(data io.Reader) *ChannelSearch

ChannelSearchFromJson will decode the input and return a Channel

func (*ChannelSearch) ToJson ¶

func (c *ChannelSearch) ToJson() string

ToJson convert a Channel to a json string

type ChannelStats ¶

type ChannelStats struct {
	ChannelId   string `json:"channel_id"`
	MemberCount int64  `json:"member_count"`
}

func ChannelStatsFromJson ¶

func ChannelStatsFromJson(data io.Reader) *ChannelStats

func (*ChannelStats) ToJson ¶

func (o *ChannelStats) ToJson() string

type ChannelUnread ¶

type ChannelUnread struct {
	TeamId       string    `json:"team_id"`
	ChannelId    string    `json:"channel_id"`
	MsgCount     int64     `json:"msg_count"`
	MentionCount int64     `json:"mention_count"`
	NotifyProps  StringMap `json:"-"`
}

func ChannelUnreadFromJson ¶

func ChannelUnreadFromJson(data io.Reader) *ChannelUnread

func (*ChannelUnread) ToJson ¶

func (o *ChannelUnread) ToJson() string

type ChannelView ¶

type ChannelView struct {
	ChannelId     string `json:"channel_id"`
	PrevChannelId string `json:"prev_channel_id"`
}

func ChannelViewFromJson ¶

func ChannelViewFromJson(data io.Reader) *ChannelView

func (*ChannelView) ToJson ¶

func (o *ChannelView) ToJson() string

type ChannelViewResponse ¶

type ChannelViewResponse struct {
	Status            string           `json:"status"`
	LastViewedAtTimes map[string]int64 `json:"last_viewed_at_times"`
}

func ChannelViewResponseFromJson ¶

func ChannelViewResponseFromJson(data io.Reader) *ChannelViewResponse

func (*ChannelViewResponse) ToJson ¶

func (o *ChannelViewResponse) ToJson() string

type Client ¶

type Client struct {
	Url           string       // The location of the server like "http://localhost:8065"
	ApiUrl        string       // The api location of the server like "http://localhost:8065/api/v3"
	HttpClient    *http.Client // The http client
	AuthToken     string
	AuthType      string
	TeamId        string
	RequestId     string
	Etag          string
	ServerVersion string
}

func NewClient ¶

func NewClient(url string) *Client

NewClient constructs a new client with convenience methods for talking to the server.

func (*Client) AddChannelMember ¶

func (c *Client) AddChannelMember(id, user_id string) (*Result, *AppError)

func (*Client) AddUserToTeam ¶

func (c *Client) AddUserToTeam(teamId string, userId string) (*Result, *AppError)

Adds a user directly to the team without sending an invite. The teamId and userId are required. You must be a valid member of the team and/or have the correct role to add new users to the team. Returns a map of user_id=userId if successful, otherwise returns an AppError.

func (*Client) AddUserToTeamFromInvite ¶

func (c *Client) AddUserToTeamFromInvite(token, inviteData, inviteId string) (*Result, *AppError)

AddUserToTeamFromInvite adds a user to a team based off data provided in an invite link. Either token and data are required or inviteId is required.

func (*Client) AdminResetMfa ¶

func (c *Client) AdminResetMfa(userId string) (*Result, *AppError)

func (*Client) AdminResetPassword ¶

func (c *Client) AdminResetPassword(userId, newPassword string) (*Result, *AppError)

func (*Client) AllowOAuth ¶

func (c *Client) AllowOAuth(rspType, clientId, redirect, scope, state string) (*Result, *AppError)

AllowOAuth allows a new session by an OAuth2 App. On success it returns the url to be redirected back to the app which initiated the oauth2 flow. Must be authenticated as a user.

func (*Client) AttachDeviceId ¶

func (c *Client) AttachDeviceId(deviceId string) (*Result, *AppError)

func (*Client) AutocompleteChannels ¶

func (c *Client) AutocompleteChannels(term string) (*Result, *AppError)

AutocompleteChannels will return a list of open channels that match the provided string. Must be authenticated.

func (*Client) AutocompleteUsers ¶

func (c *Client) AutocompleteUsers(term string) (*Result, *AppError)

AutocompleteUsers returns a list for autocompletion of users on the system that match the provided term, matching against username, full name and nickname. Must be authenticated.

func (*Client) AutocompleteUsersInChannel ¶

func (c *Client) AutocompleteUsersInChannel(term string, channelId string) (*Result, *AppError)

AutocompleteUsersInChannel returns two lists for autocompletion of users in a channel. The first list "in_channel", specifies users in the channel. The second list "out_of_channel" specifies users outside of the channel. Term, the string to search against, is required, channel id is also required. Must be authenticated.

func (*Client) AutocompleteUsersInTeam ¶

func (c *Client) AutocompleteUsersInTeam(term string) (*Result, *AppError)

AutocompleteUsersInTeam returns a list for autocompletion of users in a team. The list "in_team" specifies the users in the team that match the provided term, matching against username, full name and nickname. Must be authenticated.

func (*Client) CheckMfa ¶

func (c *Client) CheckMfa(loginId string) (*Result, *AppError)

CheckMfa returns a map with key "mfa_required" with the string value "true" or "false", indicating whether MFA is required to log the user in, based on a provided login id (username, email or some sort of SSO identifier based on configuration).

func (*Client) CheckStatusOK ¶

func (c *Client) CheckStatusOK(r *http.Response) bool

CheckStatusOK is a convenience function for checking the return of Web Service call that return the a map of status=OK.

func (*Client) ClearOAuthToken ¶

func (c *Client) ClearOAuthToken()

func (*Client) ClearTeamId ¶

func (c *Client) ClearTeamId()

func (*Client) Command ¶

func (c *Client) Command(channelId string, command string) (*Result, *AppError)

func (*Client) CreateChannel ¶

func (c *Client) CreateChannel(channel *Channel) (*Result, *AppError)

func (*Client) CreateCommand ¶

func (c *Client) CreateCommand(cmd *Command) (*Result, *AppError)

func (*Client) CreateDirectChannel ¶

func (c *Client) CreateDirectChannel(userId string) (*Result, *AppError)

func (*Client) CreateEmoji ¶

func (c *Client) CreateEmoji(emoji *Emoji, image []byte, filename string) (*Emoji, *AppError)

CreateEmoji will save an emoji to the server if the current user has permission to do so. If successful, the provided emoji will be returned with its Id field filled in. Otherwise, an error will be returned.

func (*Client) CreateGroupChannel ¶

func (c *Client) CreateGroupChannel(userIds []string) (*Result, *AppError)

func (*Client) CreateIncomingWebhook ¶

func (c *Client) CreateIncomingWebhook(hook *IncomingWebhook) (*Result, *AppError)

func (*Client) CreateOutgoingWebhook ¶

func (c *Client) CreateOutgoingWebhook(hook *OutgoingWebhook) (*Result, *AppError)

func (*Client) CreatePost ¶

func (c *Client) CreatePost(post *Post) (*Result, *AppError)

func (*Client) CreateTeam ¶

func (c *Client) CreateTeam(team *Team) (*Result, *AppError)

CreateTeam creates a team based on the provided Team struct. On success it returns the Team struct with the Id, CreateAt and other server-decided fields populated.

func (*Client) CreateUser ¶

func (c *Client) CreateUser(user *User, token string) (*Result, *AppError)

CreateUser creates a user in the system based on the provided user struct.

func (*Client) CreateUserFromSignup ¶

func (c *Client) CreateUserFromSignup(user *User, data string, token string) (*Result, *AppError)

func (*Client) CreateUserWithInvite ¶

func (c *Client) CreateUserWithInvite(user *User, token string, data string, inviteId string) (*Result, *AppError)

CreateUserWithInvite creates a user based on the provided user struct. Either the token and data strings or the inviteId is required from the invite.

func (*Client) DeleteChannel ¶

func (c *Client) DeleteChannel(id string) (*Result, *AppError)

func (*Client) DeleteCommand ¶

func (c *Client) DeleteCommand(data map[string]string) (*Result, *AppError)

func (*Client) DeleteEmoji ¶

func (c *Client) DeleteEmoji(id string) (bool, *AppError)

DeleteEmoji will delete an emoji from the server if the current user has permission to do so. If successful, it will return status=ok. Otherwise, an error will be returned.

func (*Client) DeleteIncomingWebhook ¶

func (c *Client) DeleteIncomingWebhook(id string) (*Result, *AppError)

func (*Client) DeleteOAuthApp ¶

func (c *Client) DeleteOAuthApp(id string) (*Result, *AppError)

DeleteOAuthApp deletes an OAuth2 app, the app must be deleted by the same user who created it or a System Administrator. On success returs Status OK. Must be authenticated as a user.

func (*Client) DeleteOutgoingWebhook ¶

func (c *Client) DeleteOutgoingWebhook(id string) (*Result, *AppError)

func (*Client) DeletePost ¶

func (c *Client) DeletePost(channelId string, postId string) (*Result, *AppError)

func (*Client) DeletePreferences ¶

func (c *Client) DeletePreferences(preferences *Preferences) (bool, *AppError)

DeletePreferences deletes a list of preferences owned by the current user. If successful, it will return status=ok. Otherwise, an error will be returned.

func (*Client) DeleteReaction ¶

func (c *Client) DeleteReaction(channelId string, reaction *Reaction) *AppError

Removes an emoji reaction for a post in the given channel. Returns nil if successful, otherwise returns an AppError.

func (*Client) DoApiGet ¶

func (c *Client) DoApiGet(url string, data string, etag string) (*http.Response, *AppError)

func (*Client) DoApiPost ¶

func (c *Client) DoApiPost(url string, data string) (*http.Response, *AppError)

func (*Client) DoPost ¶

func (c *Client) DoPost(url, data, contentType string) (*http.Response, *AppError)

func (*Client) DownloadComplianceReport ¶

func (c *Client) DownloadComplianceReport(id string) (*Result, *AppError)

func (*Client) EmailToLDAP ¶

func (c *Client) EmailToLDAP(m map[string]string) (*Result, *AppError)

func (*Client) EmailToOAuth ¶

func (c *Client) EmailToOAuth(m map[string]string) (*Result, *AppError)

func (*Client) FindTeamByName ¶

func (c *Client) FindTeamByName(name string) (*Result, *AppError)

FindTeamByName returns the strings "true" or "false" depending on if a team with the provided name was found.

func (*Client) GenerateMfaSecret ¶

func (c *Client) GenerateMfaSecret() (*Result, *AppError)

GenerateMfaSecret returns a QR code image containing the secret, to be scanned by a multi-factor authentication mobile application. It also returns the secret for manual entry. Must be authenticated.

func (*Client) GetAccessToken ¶

func (c *Client) GetAccessToken(data url.Values) (*Result, *AppError)

func (*Client) GetAllAudits ¶

func (c *Client) GetAllAudits() (*Result, *AppError)

func (*Client) GetAllPreferences ¶

func (c *Client) GetAllPreferences() (*Result, *AppError)

func (*Client) GetAllTeamListings ¶

func (c *Client) GetAllTeamListings() (*Result, *AppError)

GetAllTeamListings returns a map of all teams that are available to join using team ids as the key. Must be authenticated.

func (*Client) GetAllTeams ¶

func (c *Client) GetAllTeams() (*Result, *AppError)

GetAllTeams returns a map of all teams using team ids as the key.

func (*Client) GetAudits ¶

func (c *Client) GetAudits(id string, etag string) (*Result, *AppError)

func (*Client) GetByEmail ¶

func (c *Client) GetByEmail(email string, etag string) (*User, *ResponseMetadata)

getByEmail returns a user based on a provided username string. Must be authenticated.

func (*Client) GetByUsername ¶

func (c *Client) GetByUsername(username string, etag string) (*Result, *AppError)

getByUsername returns a user based on a provided username string. Must be authenticated.

func (*Client) GetChannel ¶

func (c *Client) GetChannel(id, etag string) (*Result, *AppError)

func (*Client) GetChannelByName ¶

func (c *Client) GetChannelByName(channelName string) (*Result, *AppError)

func (*Client) GetChannelCounts ¶

func (c *Client) GetChannelCounts(etag string) (*Result, *AppError)

func (*Client) GetChannelMember ¶

func (c *Client) GetChannelMember(channelId string, userId string) (*Result, *AppError)

func (*Client) GetChannelMembersByIds ¶

func (c *Client) GetChannelMembersByIds(channelId string, userIds []string) (*Result, *AppError)

GetChannelMembersByIds will return channel member objects as an array based on the channel id and a list of user ids provided. Must be authenticated.

func (*Client) GetChannelNameRoute ¶

func (c *Client) GetChannelNameRoute(channelName string) string

func (*Client) GetChannelRoute ¶

func (c *Client) GetChannelRoute(channelId string) string

func (*Client) GetChannelStats ¶

func (c *Client) GetChannelStats(id string, etag string) (*Result, *AppError)

func (*Client) GetChannels ¶

func (c *Client) GetChannels(etag string) (*Result, *AppError)

func (*Client) GetClientLicenceConfig ¶

func (c *Client) GetClientLicenceConfig(etag string) (*Result, *AppError)

func (*Client) GetClientProperties ¶

func (c *Client) GetClientProperties() (map[string]string, *AppError)

GetClientProperties returns properties needed by the client to show/hide certain features. It returns a map of strings.

func (*Client) GetClusterStatus ¶

func (c *Client) GetClusterStatus() ([]*ClusterInfo, *AppError)

func (*Client) GetComplianceReports ¶

func (c *Client) GetComplianceReports() (*Result, *AppError)

func (*Client) GetConfig ¶

func (c *Client) GetConfig() (*Result, *AppError)

func (*Client) GetCustomEmojiImageUrl ¶

func (c *Client) GetCustomEmojiImageUrl(id string) string

GetCustomEmojiImageUrl returns the API route that can be used to get the image used by the given emoji.

func (*Client) GetEmojiRoute ¶

func (c *Client) GetEmojiRoute() string

func (*Client) GetFile ¶

func (c *Client) GetFile(fileId string) (io.ReadCloser, *AppError)

func (*Client) GetFileInfo ¶

func (c *Client) GetFileInfo(fileId string) (*FileInfo, *AppError)

func (*Client) GetFileInfosForPost ¶

func (c *Client) GetFileInfosForPost(channelId string, postId string, etag string) ([]*FileInfo, *AppError)

GetFileInfosForPost returns a list of FileInfo objects for a given post id, if successful. Otherwise, it returns an error.

func (*Client) GetFilePreview ¶

func (c *Client) GetFilePreview(fileId string) (io.ReadCloser, *AppError)

func (*Client) GetFileRoute ¶

func (c *Client) GetFileRoute(fileId string) string

func (*Client) GetFileThumbnail ¶

func (c *Client) GetFileThumbnail(fileId string) (io.ReadCloser, *AppError)

func (*Client) GetFlaggedPosts ¶

func (c *Client) GetFlaggedPosts(offset int, limit int) (*Result, *AppError)

GetFlaggedPosts will return a post list of posts that have been flagged by the user. The page is set by the integer parameters offset and limit.

func (*Client) GetGeneralRoute ¶

func (c *Client) GetGeneralRoute() string

func (*Client) GetInitialLoad ¶

func (c *Client) GetInitialLoad() (*Result, *AppError)

func (*Client) GetLogs ¶

func (c *Client) GetLogs() (*Result, *AppError)

func (*Client) GetMe ¶

func (c *Client) GetMe(etag string) (*Result, *AppError)

GetMe returns the current user.

func (*Client) GetMoreChannelsPage ¶

func (c *Client) GetMoreChannelsPage(offset int, limit int) (*Result, *AppError)

GetMoreChannelsPage will return a page of open channels the user is not in based on the provided offset and limit. Must be authenticated.

func (*Client) GetMyChannelMembers ¶

func (c *Client) GetMyChannelMembers() (*Result, *AppError)

func (*Client) GetMyTeam ¶

func (c *Client) GetMyTeam(etag string) (*Result, *AppError)

func (*Client) GetMyTeamMembers ¶

func (c *Client) GetMyTeamMembers() (*Result, *AppError)

GetMyTeamMembers will return an array with team member objects that the current user is a member of. Must be authenticated.

func (*Client) GetMyTeamsUnread ¶

func (c *Client) GetMyTeamsUnread(teamId string) (*Result, *AppError)

GetMyTeamsUnread will return an array with TeamUnread objects that contain the amount of unread messages and mentions the current user has for the teams it belongs to. An optional team ID can be set to exclude that team from the results. Must be authenticated.

func (*Client) GetOAuthAppInfo ¶

func (c *Client) GetOAuthAppInfo(clientId string) (*Result, *AppError)

GetOAuthAppInfo lookup an OAuth2 App using the client_id. On success it returns a Sanitized OAuth2 App. Must be authenticated as a user.

func (*Client) GetOAuthAppsByUser ¶

func (c *Client) GetOAuthAppsByUser() (*Result, *AppError)

GetOAuthAppsByUser returns the OAuth2 Apps registered by the user. On success it returns a list of OAuth2 Apps from the same user or all the registered apps if the user is a System Administrator. Must be authenticated as a user.

func (*Client) GetOAuthAuthorizedApps ¶

func (c *Client) GetOAuthAuthorizedApps() (*Result, *AppError)

GetOAuthAuthorizedApps returns the OAuth2 Apps authorized by the user. On success it returns a list of sanitized OAuth2 Authorized Apps by the user.

func (c *Client) GetPermalink(channelId string, postId string, etag string) (*PostList, *ResponseMetadata)

GetPermalink returns a post list, based on the provided channel and post ID.

func (*Client) GetPing ¶

func (c *Client) GetPing() (map[string]string, *AppError)

GetPing returns a map of strings with server time, server version, and node Id. Systems that want to check on health status of the server should check the url /api/v3/ping for a 200 status response.

func (*Client) GetPinnedPosts ¶

func (c *Client) GetPinnedPosts(channelId string) (*Result, *AppError)

func (*Client) GetPost ¶

func (c *Client) GetPost(channelId string, postId string, etag string) (*Result, *AppError)

func (*Client) GetPostById ¶

func (c *Client) GetPostById(postId string, etag string) (*PostList, *ResponseMetadata)

GetPostById returns a post and any posts in the same thread by post id

func (*Client) GetPosts ¶

func (c *Client) GetPosts(channelId string, offset int, limit int, etag string) (*Result, *AppError)

func (*Client) GetPostsAfter ¶

func (c *Client) GetPostsAfter(channelId string, postid string, offset int, limit int, etag string) (*Result, *AppError)

func (*Client) GetPostsBefore ¶

func (c *Client) GetPostsBefore(channelId string, postid string, offset int, limit int, etag string) (*Result, *AppError)

func (*Client) GetPostsSince ¶

func (c *Client) GetPostsSince(channelId string, time int64) (*Result, *AppError)

func (*Client) GetPreference ¶

func (c *Client) GetPreference(category string, name string) (*Result, *AppError)

func (*Client) GetPreferenceCategory ¶

func (c *Client) GetPreferenceCategory(category string) (*Result, *AppError)

func (*Client) GetProfiles ¶

func (c *Client) GetProfiles(offset int, limit int, etag string) (*Result, *AppError)

GetProfiles returns a map of users using user id as the key. Must be authenticated.

func (*Client) GetProfilesByIds ¶

func (c *Client) GetProfilesByIds(userIds []string) (*Result, *AppError)

GetProfilesByIds returns a map of users based on the user ids provided. Must be authenticated.

func (*Client) GetProfilesInChannel ¶

func (c *Client) GetProfilesInChannel(channelId string, offset int, limit int, etag string) (*Result, *AppError)

GetProfilesInChannel returns a map of users for a channel using user id as the key. Must be authenticated.

func (*Client) GetProfilesInTeam ¶

func (c *Client) GetProfilesInTeam(teamId string, offset int, limit int, etag string) (*Result, *AppError)

GetProfilesInTeam returns a map of users for a team using user id as the key. Must be authenticated.

func (*Client) GetProfilesNotInChannel ¶

func (c *Client) GetProfilesNotInChannel(channelId string, offset int, limit int, etag string) (*Result, *AppError)

GetProfilesNotInChannel returns a map of users not in a channel but on the team using user id as the key. Must be authenticated.

func (c *Client) GetPublicLink(fileId string) (string, *AppError)

func (*Client) GetRecentlyActiveUsers ¶

func (c *Client) GetRecentlyActiveUsers(teamId string) (*Result, *AppError)

GetRecentlyActiveUsers returns a map of users including lastActivityAt using user id as the key

func (*Client) GetSessions ¶

func (c *Client) GetSessions(id string) (*Result, *AppError)

func (*Client) GetStatuses ¶

func (c *Client) GetStatuses() (*Result, *AppError)

GetStatuses returns a map of string statuses using user id as the key

func (*Client) GetStatusesByIds ¶

func (c *Client) GetStatusesByIds(userIds []string) (*Result, *AppError)

GetStatusesByIds returns a map of string statuses using user id as the key, based on the provided user ids

func (*Client) GetSystemAnalytics ¶

func (c *Client) GetSystemAnalytics(name string) (*Result, *AppError)

func (*Client) GetTeamAnalytics ¶

func (c *Client) GetTeamAnalytics(teamId, name string) (*Result, *AppError)

func (*Client) GetTeamByName ¶

func (c *Client) GetTeamByName(teamName string) (*Result, *AppError)

GetTeamByName will return a team object based on the team name provided. Must be authenticated.

func (*Client) GetTeamId ¶

func (c *Client) GetTeamId() string

func (*Client) GetTeamMember ¶

func (c *Client) GetTeamMember(teamId string, userId string) (*Result, *AppError)

GetTeamMember will return a team member object based on the team id and user id provided. Must be authenticated.

func (*Client) GetTeamMembers ¶

func (c *Client) GetTeamMembers(teamId string, offset int, limit int) (*Result, *AppError)

GetTeamMembers will return a page of team member objects as an array paged based on the team id, offset and limit provided. Must be authenticated.

func (*Client) GetTeamMembersByIds ¶

func (c *Client) GetTeamMembersByIds(teamId string, userIds []string) (*Result, *AppError)

GetTeamMembersByIds will return team member objects as an array based on the team id and a list of user ids provided. Must be authenticated.

func (*Client) GetTeamRoute ¶

func (c *Client) GetTeamRoute() string

func (*Client) GetTeamStats ¶

func (c *Client) GetTeamStats(teamId string) (*Result, *AppError)

GetTeamStats will return a team stats object containing the number of users on the team based on the team id provided. Must be authenticated.

func (*Client) GetUser ¶

func (c *Client) GetUser(id string, etag string) (*Result, *AppError)

GetUser returns a user based on a provided user id string. Must be authenticated.

func (*Client) GetUserRequiredRoute ¶

func (c *Client) GetUserRequiredRoute(userId string) string

func (*Client) GetWebrtcToken ¶

func (c *Client) GetWebrtcToken() (map[string]string, *AppError)

GetWebrtcToken if Successful returns a map with a valid token, stun server and turn server with credentials to use with the Mattermost WebRTC service, otherwise returns an AppError. Must be authenticated user.

func (*Client) InvalidateAllCaches ¶

func (c *Client) InvalidateAllCaches() (bool, *AppError)

func (*Client) InviteMembers ¶

func (c *Client) InviteMembers(invites *Invites) (*Result, *AppError)

func (*Client) JoinChannel ¶

func (c *Client) JoinChannel(id string) (*Result, *AppError)

func (*Client) JoinChannelByName ¶

func (c *Client) JoinChannelByName(name string) (*Result, *AppError)

func (*Client) LDAPToEmail ¶

func (c *Client) LDAPToEmail(m map[string]string) (*Result, *AppError)

func (*Client) LdapSyncNow ¶

func (c *Client) LdapSyncNow() (*Result, *AppError)

Initiate immediate synchronization of LDAP users. The synchronization will be performed asynchronously and this function will always return OK unless you don't have permissions. You must be the system administrator to use this function.

func (*Client) LeaveChannel ¶

func (c *Client) LeaveChannel(id string) (*Result, *AppError)

func (*Client) ListCommands ¶

func (c *Client) ListCommands() (*Result, *AppError)

func (*Client) ListEmoji ¶

func (c *Client) ListEmoji() ([]*Emoji, *AppError)

ListEmoji returns a list of all user-created emoji for the server.

func (*Client) ListIncomingWebhooks ¶

func (c *Client) ListIncomingWebhooks() (*Result, *AppError)

func (*Client) ListOutgoingWebhooks ¶

func (c *Client) ListOutgoingWebhooks() (*Result, *AppError)

func (*Client) ListReactions ¶

func (c *Client) ListReactions(channelId string, postId string) ([]*Reaction, *AppError)

Lists all emoji reactions made for the given post in the given channel. Returns a list of Reactions if successful, otherwise returns an AppError.

func (*Client) ListTeamCommands ¶

func (c *Client) ListTeamCommands() (*Result, *AppError)

func (*Client) LogClient ¶

func (c *Client) LogClient(message string) (bool, *AppError)

LogClient is a convenience Web Service call so clients can log messages into the server-side logs. For example we typically log javascript error messages into the server-side. It returns true if the logging was successful.

func (*Client) Login ¶

func (c *Client) Login(loginId string, password string) (*Result, *AppError)

Login authenticates a user by login id, which can be username, email or some sort of SSO identifier based on configuration, and a password.

func (*Client) LoginById ¶

func (c *Client) LoginById(id string, password string) (*Result, *AppError)

LoginById authenticates a user by user id and password.

func (*Client) LoginByLdap ¶

func (c *Client) LoginByLdap(loginId string, password string) (*Result, *AppError)

LoginByLdap authenticates a user by LDAP id and password.

func (*Client) LoginWithDevice ¶

func (c *Client) LoginWithDevice(loginId string, password string, deviceId string) (*Result, *AppError)

LoginWithDevice authenticates a user by login id (username, email or some sort of SSO identifier based on configuration), password and attaches a device id to the session.

func (*Client) Logout ¶

func (c *Client) Logout() (*Result, *AppError)

Logout terminates the current user's session.

func (*Client) MockSession ¶

func (c *Client) MockSession(sessionToken string)

func (*Client) Must ¶

func (c *Client) Must(result *Result, err *AppError) *Result

Must is a convenience function used for testing.

func (*Client) MustGeneric ¶

func (c *Client) MustGeneric(result interface{}, err *AppError) interface{}

MustGeneric is a convenience function used for testing.

func (*Client) OAuthDeauthorizeApp ¶

func (c *Client) OAuthDeauthorizeApp(clientId string) *AppError

OAuthDeauthorizeApp deauthorize a user an OAuth 2.0 app. On success it returns status OK or an AppError on fail.

func (*Client) OAuthToEmail ¶

func (c *Client) OAuthToEmail(m map[string]string) (*Result, *AppError)

func (*Client) PinPost ¶

func (c *Client) PinPost(channelId string, postId string) (*Result, *AppError)

func (*Client) PostToWebhook ¶

func (c *Client) PostToWebhook(id, payload string) (*Result, *AppError)

func (*Client) RecycleDatabaseConnection ¶

func (c *Client) RecycleDatabaseConnection() (bool, *AppError)

RecycleDatabaseConnection will attempt to recycle the database connections. You must have the system admin role to call this method. It will return status=OK if it's successfully recycled the connections, otherwise check the returned error.

func (*Client) RegenCommandToken ¶

func (c *Client) RegenCommandToken(data map[string]string) (*Result, *AppError)

func (*Client) RegenOutgoingWebhookToken ¶

func (c *Client) RegenOutgoingWebhookToken(id string) (*Result, *AppError)

func (*Client) RegenerateOAuthAppSecret ¶

func (c *Client) RegenerateOAuthAppSecret(clientId string) (*Result, *AppError)

RegenerateOAuthAppSecret generates a new OAuth App Client Secret. On success it returns an OAuth2 App. Must be authenticated as a user and the same user who registered the app or a System Admin.

func (*Client) RegisterApp ¶

func (c *Client) RegisterApp(app *OAuthApp) (*Result, *AppError)

RegisterApp creates a new OAuth2 app to be used with the OAuth2 Provider. On success it returns the created app. Must be authenticated as a user.

func (*Client) ReloadConfig ¶

func (c *Client) ReloadConfig() (bool, *AppError)

ReloadConfig will reload the config.json file from disk. Properties requiring a server restart will still need a server restart. You must have the system admin role to call this method. It will return status=OK if it's successfully reloaded the config file, otherwise check the returned error.

func (*Client) RemoveCertificateFile ¶

func (c *Client) RemoveCertificateFile(filename string) *AppError

Removes a x509 base64 Certificate or Private Key file used with SAML. filename is required. Returns nil if successful, otherwise returns an AppError

func (*Client) RemoveChannelMember ¶

func (c *Client) RemoveChannelMember(id, user_id string) (*Result, *AppError)

func (*Client) RemoveUserFromTeam ¶

func (c *Client) RemoveUserFromTeam(teamId string, userId string) (*Result, *AppError)

Removes a user directly from the team. The teamId and userId are required. You must be a valid member of the team and/or have the correct role to remove a user from the team. Returns a map of user_id=userId if successful, otherwise returns an AppError.

func (*Client) ResetPassword ¶

func (c *Client) ResetPassword(code, newPassword string) (*Result, *AppError)

func (*Client) RevokeSession ¶

func (c *Client) RevokeSession(sessionAltId string) (*Result, *AppError)

func (*Client) SamlCertificateStatus ¶

func (c *Client) SamlCertificateStatus(filename string) (map[string]interface{}, *AppError)

Checks if the x509 base64 Certificates and Private Key files used with SAML exists on the file system. Returns a map[string]interface{} if successful, otherwise returns an AppError. Must be System Admin authenticated.

func (*Client) SaveComplianceReport ¶

func (c *Client) SaveComplianceReport(job *Compliance) (*Result, *AppError)

func (*Client) SaveConfig ¶

func (c *Client) SaveConfig(config *Config) (*Result, *AppError)

func (*Client) SaveReaction ¶

func (c *Client) SaveReaction(channelId string, reaction *Reaction) (*Reaction, *AppError)

Saves an emoji reaction for a post in the given channel. Returns the saved reaction if successful, otherwise returns an AppError.

func (*Client) SearchMoreChannels ¶

func (c *Client) SearchMoreChannels(channelSearch ChannelSearch) (*Result, *AppError)

SearchMoreChannels will return a list of open channels the user is not in, that matches the search criteria provided. Must be authenticated.

func (*Client) SearchPosts ¶

func (c *Client) SearchPosts(terms string, isOrSearch bool) (*Result, *AppError)

func (*Client) SearchUsers ¶

func (c *Client) SearchUsers(params UserSearch) (*Result, *AppError)

SearchUsers returns a list of users that have a username matching or similar to the search term. Must be authenticated.

func (*Client) SendPasswordReset ¶

func (c *Client) SendPasswordReset(email string) (*Result, *AppError)

func (*Client) SetOAuthToken ¶

func (c *Client) SetOAuthToken(token string)

func (*Client) SetPreferences ¶

func (c *Client) SetPreferences(preferences *Preferences) (*Result, *AppError)

func (*Client) SetTeamId ¶

func (c *Client) SetTeamId(teamId string)

func (*Client) TestEmail ¶

func (c *Client) TestEmail(config *Config) (*Result, *AppError)

func (*Client) TestLdap ¶

func (c *Client) TestLdap(config *Config) (*Result, *AppError)

TestLdap will run a connection test on the current LDAP settings. It will return the standard OK response if settings work. Otherwise it will return an appropriate error.

func (*Client) UnpinPost ¶

func (c *Client) UnpinPost(channelId string, postId string) (*Result, *AppError)

func (*Client) UpdateActive ¶

func (c *Client) UpdateActive(userId string, active bool) (*Result, *AppError)

func (*Client) UpdateChannel ¶

func (c *Client) UpdateChannel(channel *Channel) (*Result, *AppError)

func (*Client) UpdateChannelHeader ¶

func (c *Client) UpdateChannelHeader(data map[string]string) (*Result, *AppError)

func (*Client) UpdateChannelPurpose ¶

func (c *Client) UpdateChannelPurpose(data map[string]string) (*Result, *AppError)

func (*Client) UpdateChannelRoles ¶

func (c *Client) UpdateChannelRoles(channelId string, userId string, roles string) (map[string]string, *ResponseMetadata)

Updates the user's roles in the channel by replacing them with the roles provided.

func (*Client) UpdateCommand ¶

func (c *Client) UpdateCommand(cmd *Command) (*Result, *AppError)

func (*Client) UpdateIncomingWebhook ¶

func (c *Client) UpdateIncomingWebhook(hook *IncomingWebhook) (*Result, *AppError)

func (*Client) UpdateMfa ¶

func (c *Client) UpdateMfa(activate bool, token string) (*Result, *AppError)

UpdateMfa activates multi-factor authenticates for the current user if activate is true and a valid token is provided. If activate is false, then token is not required and multi-factor authentication is disabled for the current user.

func (*Client) UpdateNotifyProps ¶

func (c *Client) UpdateNotifyProps(data map[string]string) (*Result, *AppError)

func (*Client) UpdateOutgoingWebhook ¶

func (c *Client) UpdateOutgoingWebhook(hook *OutgoingWebhook) (*Result, *AppError)

func (*Client) UpdatePost ¶

func (c *Client) UpdatePost(post *Post) (*Result, *AppError)

func (*Client) UpdateTeam ¶

func (c *Client) UpdateTeam(team *Team) (*Result, *AppError)

UpdateTeam updates a team based on the changes in the provided team struct. On success it returns a sanitized version of the updated team. Must be authenticated as a team admin for that team or a system admin.

func (*Client) UpdateTeamRoles ¶

func (c *Client) UpdateTeamRoles(userId string, roles string) (*Result, *AppError)

func (*Client) UpdateUser ¶

func (c *Client) UpdateUser(user *User) (*Result, *AppError)

func (*Client) UpdateUserNotify ¶

func (c *Client) UpdateUserNotify(data map[string]string) (*Result, *AppError)

func (*Client) UpdateUserPassword ¶

func (c *Client) UpdateUserPassword(userId, currentPassword, newPassword string) (*Result, *AppError)

func (*Client) UpdateUserRoles ¶

func (c *Client) UpdateUserRoles(userId string, roles string) (*Result, *AppError)

func (*Client) UploadCertificateFile ¶

func (c *Client) UploadCertificateFile(data []byte, contentType string) *AppError

Uploads a x509 base64 Certificate or Private Key file to be used with SAML. data byte array is required and needs to be a Multi-Part with 'certificate' as the field name contentType is also required. Returns nil if successful, otherwise returns an AppError

func (*Client) UploadPostAttachment ¶

func (c *Client) UploadPostAttachment(data []byte, channelId string, filename string) (*FileUploadResponse, *AppError)

func (*Client) UploadProfileFile ¶

func (c *Client) UploadProfileFile(data []byte, contentType string) (*Result, *AppError)

func (*Client) ViewChannel ¶

func (c *Client) ViewChannel(params ChannelView) (bool, *ResponseMetadata)

ViewChannel performs all the actions related to viewing a channel. This includes marking the channel and the previous one as read, and marking the channel as being actively viewed. ChannelId is required but may be blank to indicate no channel is being viewed. PrevChannelId is optional, populate to indicate a channel switch occurred.

type Client4 ¶

type Client4 struct {
	Url        string       // The location of the server, for example  "http://localhost:8065"
	ApiUrl     string       // The api location of the server, for example "http://localhost:8065/api/v4"
	HttpClient *http.Client // The http client
	AuthToken  string
	AuthType   string
	HttpHeader map[string]string // Headers to be copied over for each request
}

func NewAPIv4Client ¶

func NewAPIv4Client(url string) *Client4

func (*Client4) ActivatePlugin ¶

func (c *Client4) ActivatePlugin(id string) (bool, *Response)

ActivatePlugin will activate an plugin installed. WARNING: PLUGINS ARE STILL EXPERIMENTAL. THIS FUNCTION IS SUBJECT TO CHANGE.

func (*Client4) AddChannelMember ¶

func (c *Client4) AddChannelMember(channelId, userId string) (*ChannelMember, *Response)

AddChannelMember adds user to channel and return a channel member.

func (*Client4) AddChannelMemberWithRootId ¶

func (c *Client4) AddChannelMemberWithRootId(channelId, userId, postRootId string) (*ChannelMember, *Response)

AddChannelMemberWithRootId adds user to channel and return a channel member. Post add to channel message has the postRootId.

func (*Client4) AddTeamMember ¶

func (c *Client4) AddTeamMember(teamId, userId string) (*TeamMember, *Response)

AddTeamMember adds user to a team and return a team member.

func (*Client4) AddTeamMemberFromInvite ¶

func (c *Client4) AddTeamMemberFromInvite(token, inviteId string) (*TeamMember, *Response)

AddTeamMemberFromInvite adds a user to a team and return a team member using an invite id or an invite token/data pair.

func (*Client4) AddTeamMembers ¶

func (c *Client4) AddTeamMembers(teamId string, userIds []string) ([]*TeamMember, *Response)

AddTeamMembers adds a number of users to a team and returns the team members.

func (*Client4) AttachDeviceId ¶

func (c *Client4) AttachDeviceId(deviceId string) (bool, *Response)

AttachDeviceId attaches a mobile device ID to the current session.

func (*Client4) AuthorizeOAuthApp ¶

func (c *Client4) AuthorizeOAuthApp(authRequest *AuthorizeRequest) (string, *Response)

AuthorizeOAuthApp will authorize an OAuth 2.0 client application to access a user's account and provide a redirect link to follow.

func (*Client4) AutocompleteChannelsForTeam ¶

func (c *Client4) AutocompleteChannelsForTeam(teamId, name string) (*ChannelList, *Response)

AutocompleteChannelsForTeam will return an ordered list of channels autocomplete suggestions

func (*Client4) AutocompleteEmoji ¶

func (c *Client4) AutocompleteEmoji(name string, etag string) ([]*Emoji, *Response)

AutocompleteEmoji returns a list of emoji starting with or matching name.

func (*Client4) AutocompleteUsers ¶

func (c *Client4) AutocompleteUsers(username string, etag string) (*UserAutocomplete, *Response)

AutocompleteUsers returns the users in the system based on search term.

func (*Client4) AutocompleteUsersInChannel ¶

func (c *Client4) AutocompleteUsersInChannel(teamId string, channelId string, username string, etag string) (*UserAutocomplete, *Response)

AutocompleteUsersInChannel returns the users in a channel based on search term.

func (*Client4) AutocompleteUsersInTeam ¶

func (c *Client4) AutocompleteUsersInTeam(teamId string, username string, etag string) (*UserAutocomplete, *Response)

AutocompleteUsersInTeam returns the users on a team based on search term.

func (*Client4) CancelJob ¶

func (c *Client4) CancelJob(jobId string) (bool, *Response)

CancelJob requests the cancellation of the job with the provided Id.

func (*Client4) CheckUserMfa ¶

func (c *Client4) CheckUserMfa(loginId string) (bool, *Response)

CheckUserMfa checks whether a user has MFA active on their account or not based on the provided login id.

func (*Client4) ClearOAuthToken ¶

func (c *Client4) ClearOAuthToken()

func (*Client4) ConvertChannelToPrivate ¶

func (c *Client4) ConvertChannelToPrivate(channelId string) (*Channel, *Response)

ConvertChannelToPrivate converts public to private channel.

func (*Client4) CreateChannel ¶

func (c *Client4) CreateChannel(channel *Channel) (*Channel, *Response)

CreateChannel creates a channel based on the provided channel struct.

func (*Client4) CreateCommand ¶

func (c *Client4) CreateCommand(cmd *Command) (*Command, *Response)

CreateCommand will create a new command if the user have the right permissions.

func (*Client4) CreateComplianceReport ¶

func (c *Client4) CreateComplianceReport(report *Compliance) (*Compliance, *Response)

CreateComplianceReport creates an incoming webhook for a channel.

func (*Client4) CreateDirectChannel ¶

func (c *Client4) CreateDirectChannel(userId1, userId2 string) (*Channel, *Response)

CreateDirectChannel creates a direct message channel based on the two user ids provided.

func (*Client4) CreateEmoji ¶

func (c *Client4) CreateEmoji(emoji *Emoji, image []byte, filename string) (*Emoji, *Response)

CreateEmoji will save an emoji to the server if the current user has permission to do so. If successful, the provided emoji will be returned with its Id field filled in. Otherwise, an error will be returned.

func (*Client4) CreateGroupChannel ¶

func (c *Client4) CreateGroupChannel(userIds []string) (*Channel, *Response)

CreateGroupChannel creates a group message channel based on userIds provided

func (*Client4) CreateIncomingWebhook ¶

func (c *Client4) CreateIncomingWebhook(hook *IncomingWebhook) (*IncomingWebhook, *Response)

CreateIncomingWebhook creates an incoming webhook for a channel.

func (*Client4) CreateJob ¶

func (c *Client4) CreateJob(job *Job) (*Job, *Response)

CreateJob creates a job based on the provided job struct.

func (*Client4) CreateOAuthApp ¶

func (c *Client4) CreateOAuthApp(app *OAuthApp) (*OAuthApp, *Response)

CreateOAuthApp will register a new OAuth 2.0 client application with Mattermost acting as an OAuth 2.0 service provider.

func (*Client4) CreateOutgoingWebhook ¶

func (c *Client4) CreateOutgoingWebhook(hook *OutgoingWebhook) (*OutgoingWebhook, *Response)

CreateOutgoingWebhook creates an outgoing webhook for a team or channel.

func (*Client4) CreatePost ¶

func (c *Client4) CreatePost(post *Post) (*Post, *Response)

CreatePost creates a post based on the provided post struct.

func (*Client4) CreatePostEphemeral ¶

func (c *Client4) CreatePostEphemeral(post *PostEphemeral) (*Post, *Response)

CreatePostEphemeral creates a ephemeral post based on the provided post struct which is send to the given user id

func (*Client4) CreateTeam ¶

func (c *Client4) CreateTeam(team *Team) (*Team, *Response)

CreateTeam creates a team in the system based on the provided team struct.

func (*Client4) CreateUser ¶

func (c *Client4) CreateUser(user *User) (*User, *Response)

CreateUser creates a user in the system based on the provided user struct.

func (*Client4) CreateUserAccessToken ¶

func (c *Client4) CreateUserAccessToken(userId, description string) (*UserAccessToken, *Response)

CreateUserAccessToken will generate a user access token that can be used in place of a session token to access the REST API. Must have the 'create_user_access_token' permission and if generating for another user, must have the 'edit_other_users' permission. A non-blank description is required.

func (*Client4) CreateUserWithInviteId ¶

func (c *Client4) CreateUserWithInviteId(user *User, inviteId string) (*User, *Response)

CreateUserWithInviteId creates a user in the system based on the provided invited id.

func (*Client4) CreateUserWithToken ¶

func (c *Client4) CreateUserWithToken(user *User, tokenId string) (*User, *Response)

CreateUserWithToken creates a user in the system based on the provided tokenId.

func (*Client4) DatabaseRecycle ¶

func (c *Client4) DatabaseRecycle() (bool, *Response)

DatabaseRecycle will recycle the connections. Discard current connection and get new one.

func (*Client4) DeactivatePlugin ¶

func (c *Client4) DeactivatePlugin(id string) (bool, *Response)

DeactivatePlugin will deactivate an active plugin. WARNING: PLUGINS ARE STILL EXPERIMENTAL. THIS FUNCTION IS SUBJECT TO CHANGE.

func (*Client4) DeauthorizeOAuthApp ¶

func (c *Client4) DeauthorizeOAuthApp(appId string) (bool, *Response)

DeauthorizeOAuthApp will deauthorize an OAuth 2.0 client application from accessing a user's account.

func (*Client4) DeleteChannel ¶

func (c *Client4) DeleteChannel(channelId string) (bool, *Response)

DeleteChannel deletes channel based on the provided channel id string.

func (*Client4) DeleteCommand ¶

func (c *Client4) DeleteCommand(commandId string) (bool, *Response)

DeleteCommand deletes a command based on the provided command id string

func (*Client4) DeleteEmoji ¶

func (c *Client4) DeleteEmoji(emojiId string) (bool, *Response)

DeleteEmoji delete an custom emoji on the provided emoji id string.

func (*Client4) DeleteIncomingWebhook ¶

func (c *Client4) DeleteIncomingWebhook(hookID string) (bool, *Response)

DeleteIncomingWebhook deletes and Incoming Webhook given the hook ID

func (*Client4) DeleteOAuthApp ¶

func (c *Client4) DeleteOAuthApp(appId string) (bool, *Response)

DeleteOAuthApp deletes a registered OAuth 2.0 client application.

func (*Client4) DeleteOutgoingWebhook ¶

func (c *Client4) DeleteOutgoingWebhook(hookId string) (bool, *Response)

DeleteOutgoingWebhook delete the outgoing webhook on the system requested by Hook Id.

func (*Client4) DeletePost ¶

func (c *Client4) DeletePost(postId string) (bool, *Response)

DeletePost deletes a post from the provided post id string.

func (*Client4) DeletePreferences ¶

func (c *Client4) DeletePreferences(userId string, preferences *Preferences) (bool, *Response)

DeletePreferences deletes the user's preferences.

func (*Client4) DeleteReaction ¶

func (c *Client4) DeleteReaction(reaction *Reaction) (bool, *Response)

DeleteReaction deletes reaction of a user in a post.

func (*Client4) DeleteSamlIdpCertificate ¶

func (c *Client4) DeleteSamlIdpCertificate() (bool, *Response)

DeleteSamlIdpCertificate deletes the SAML IDP certificate from the server and updates the config to not use it and disable SAML.

func (*Client4) DeleteSamlPrivateCertificate ¶

func (c *Client4) DeleteSamlPrivateCertificate() (bool, *Response)

DeleteSamlPrivateCertificate deletes the SAML IDP certificate from the server and updates the config to not use it and disable SAML.

func (*Client4) DeleteSamlPublicCertificate ¶

func (c *Client4) DeleteSamlPublicCertificate() (bool, *Response)

DeleteSamlPublicCertificate deletes the SAML IDP certificate from the server and updates the config to not use it and disable SAML.

func (*Client4) DeleteUser ¶

func (c *Client4) DeleteUser(userId string) (bool, *Response)

DeleteUser deactivates a user in the system based on the provided user id string.

func (*Client4) DisableUserAccessToken ¶

func (c *Client4) DisableUserAccessToken(tokenId string) (bool, *Response)

DisableUserAccessToken will disable a user access token by id. Must have the 'revoke_user_access_token' permission and if disabling for another user, must have the 'edit_other_users' permission.

func (*Client4) DoApiDelete ¶

func (c *Client4) DoApiDelete(url string) (*http.Response, *AppError)

func (*Client4) DoApiGet ¶

func (c *Client4) DoApiGet(url string, etag string) (*http.Response, *AppError)

func (*Client4) DoApiPost ¶

func (c *Client4) DoApiPost(url string, data string) (*http.Response, *AppError)

func (*Client4) DoApiPut ¶

func (c *Client4) DoApiPut(url string, data string) (*http.Response, *AppError)

func (*Client4) DoApiRequest ¶

func (c *Client4) DoApiRequest(method, url, data, etag string) (*http.Response, *AppError)

func (*Client4) DoEmojiUploadFile ¶

func (c *Client4) DoEmojiUploadFile(url string, data []byte, contentType string) (*Emoji, *Response)

func (*Client4) DoPostAction ¶

func (c *Client4) DoPostAction(postId, actionId string) (bool, *Response)

DoPostAction performs a post action.

func (*Client4) DoUploadFile ¶

func (c *Client4) DoUploadFile(url string, data []byte, contentType string) (*FileUploadResponse, *Response)

func (*Client4) DoUploadImportTeam ¶

func (c *Client4) DoUploadImportTeam(url string, data []byte, contentType string) (map[string]string, *Response)

func (*Client4) DownloadComplianceReport ¶

func (c *Client4) DownloadComplianceReport(reportId string) ([]byte, *Response)

DownloadComplianceReport returns a full compliance report as a file.

func (*Client4) DownloadFile ¶

func (c *Client4) DownloadFile(fileId string, download bool) ([]byte, *Response)

DownloadFile gets the bytes for a file by id, optionally adding headers to force the browser to download it

func (*Client4) DownloadFilePreview ¶

func (c *Client4) DownloadFilePreview(fileId string, download bool) ([]byte, *Response)

DownloadFilePreview gets the bytes for a file by id.

func (*Client4) DownloadFileThumbnail ¶

func (c *Client4) DownloadFileThumbnail(fileId string, download bool) ([]byte, *Response)

DownloadFileThumbnail gets the bytes for a file by id, optionally adding headers to force the browser to download it.

func (*Client4) EnableUserAccessToken ¶

func (c *Client4) EnableUserAccessToken(tokenId string) (bool, *Response)

EnableUserAccessToken will enable a user access token by id. Must have the 'create_user_access_token' permission and if enabling for another user, must have the 'edit_other_users' permission.

func (*Client4) ExecuteCommand ¶

func (c *Client4) ExecuteCommand(channelId, command string) (*CommandResponse, *Response)

ExecuteCommand executes a given slash command.

func (*Client4) ExecuteCommandWithTeam ¶

func (c *Client4) ExecuteCommandWithTeam(channelId, teamId, command string) (*CommandResponse, *Response)

ExecuteCommand executes a given slash command against the specified team Use this when executing slash commands in a DM/GM, since the team id cannot be inferred in that case

func (*Client4) GenerateMfaSecret ¶

func (c *Client4) GenerateMfaSecret(userId string) (*MfaSecret, *Response)

GenerateMfaSecret will generate a new MFA secret for a user and return it as a string and as a base64 encoded image QR code.

func (*Client4) GetAllTeams ¶

func (c *Client4) GetAllTeams(etag string, page int, perPage int) ([]*Team, *Response)

GetAllTeams returns all teams based on permissions.

func (*Client4) GetAnalyticsOld ¶

func (c *Client4) GetAnalyticsOld(name, teamId string) (AnalyticsRows, *Response)

GetAnalyticsOld will retrieve analytics using the old format. New format is not available but the "/analytics" endpoint is reserved for it. The "name" argument is optional and defaults to "standard". The "teamId" argument is optional and will limit results to a specific team.

func (*Client4) GetAnalyticsRoute ¶

func (c *Client4) GetAnalyticsRoute() string

func (*Client4) GetAudits ¶

func (c *Client4) GetAudits(page int, perPage int, etag string) (Audits, *Response)

GetAudits returns a list of audits for the whole system.

func (*Client4) GetAuthorizedOAuthAppsForUser ¶

func (c *Client4) GetAuthorizedOAuthAppsForUser(userId string, page, perPage int) ([]*OAuthApp, *Response)

GetAuthorizedOAuthAppsForUser gets a page of OAuth 2.0 client applications the user has authorized to use access their account.

func (*Client4) GetBrandImage ¶

func (c *Client4) GetBrandImage() ([]byte, *Response)

GetBrandImage retrieves the previously uploaded brand image.

func (*Client4) GetBrandRoute ¶

func (c *Client4) GetBrandRoute() string

func (*Client4) GetCacheRoute ¶

func (c *Client4) GetCacheRoute() string

func (*Client4) GetChannel ¶

func (c *Client4) GetChannel(channelId, etag string) (*Channel, *Response)

GetChannel returns a channel based on the provided channel id string.

func (*Client4) GetChannelByName ¶

func (c *Client4) GetChannelByName(channelName, teamId string, etag string) (*Channel, *Response)

GetChannelByName returns a channel based on the provided channel name and team id strings.

func (*Client4) GetChannelByNameForTeamName ¶

func (c *Client4) GetChannelByNameForTeamName(channelName, teamName string, etag string) (*Channel, *Response)

GetChannelByNameForTeamName returns a channel based on the provided channel name and team name strings.

func (*Client4) GetChannelByNameForTeamNameRoute ¶

func (c *Client4) GetChannelByNameForTeamNameRoute(channelName, teamName string) string

func (*Client4) GetChannelByNameRoute ¶

func (c *Client4) GetChannelByNameRoute(channelName, teamId string) string

func (*Client4) GetChannelMember ¶

func (c *Client4) GetChannelMember(channelId, userId, etag string) (*ChannelMember, *Response)

GetChannelMember gets a channel member.

func (*Client4) GetChannelMemberRoute ¶

func (c *Client4) GetChannelMemberRoute(channelId, userId string) string

func (*Client4) GetChannelMembers ¶

func (c *Client4) GetChannelMembers(channelId string, page, perPage int, etag string) (*ChannelMembers, *Response)

GetChannelMembers gets a page of channel members.

func (*Client4) GetChannelMembersByIds ¶

func (c *Client4) GetChannelMembersByIds(channelId string, userIds []string) (*ChannelMembers, *Response)

GetChannelMembersByIds gets the channel members in a channel for a list of user ids.

func (*Client4) GetChannelMembersForUser ¶

func (c *Client4) GetChannelMembersForUser(userId, teamId, etag string) (*ChannelMembers, *Response)

GetChannelMembersForUser gets all the channel members for a user on a team.

func (*Client4) GetChannelMembersRoute ¶

func (c *Client4) GetChannelMembersRoute(channelId string) string

func (*Client4) GetChannelRoute ¶

func (c *Client4) GetChannelRoute(channelId string) string

func (*Client4) GetChannelStats ¶

func (c *Client4) GetChannelStats(channelId string, etag string) (*ChannelStats, *Response)

GetChannelStats returns statistics for a channel.

func (*Client4) GetChannelUnread ¶

func (c *Client4) GetChannelUnread(channelId, userId string) (*ChannelUnread, *Response)

GetChannelUnread will return a ChannelUnread object that contains the number of unread messages and mentions for a user.

func (*Client4) GetChannelsForTeamForUser ¶

func (c *Client4) GetChannelsForTeamForUser(teamId, userId, etag string) ([]*Channel, *Response)

GetChannelsForTeamForUser returns a list channels of on a team for a user.

func (*Client4) GetChannelsForTeamRoute ¶

func (c *Client4) GetChannelsForTeamRoute(teamId string) string

func (*Client4) GetChannelsRoute ¶

func (c *Client4) GetChannelsRoute() string

func (*Client4) GetClusterRoute ¶

func (c *Client4) GetClusterRoute() string

func (*Client4) GetClusterStatus ¶

func (c *Client4) GetClusterStatus() ([]*ClusterInfo, *Response)

GetClusterStatus returns the status of all the configured cluster nodes.

func (*Client4) GetCommandRoute ¶

func (c *Client4) GetCommandRoute(commandId string) string

func (*Client4) GetCommandsRoute ¶

func (c *Client4) GetCommandsRoute() string

func (*Client4) GetComplianceReport ¶

func (c *Client4) GetComplianceReport(reportId string) (*Compliance, *Response)

GetComplianceReport returns a compliance report.

func (*Client4) GetComplianceReportRoute ¶

func (c *Client4) GetComplianceReportRoute(reportId string) string

func (*Client4) GetComplianceReports ¶

func (c *Client4) GetComplianceReports(page, perPage int) (Compliances, *Response)

GetComplianceReports returns list of compliance reports.

func (*Client4) GetComplianceReportsRoute ¶

func (c *Client4) GetComplianceReportsRoute() string

func (*Client4) GetConfig ¶

func (c *Client4) GetConfig() (*Config, *Response)

GetConfig will retrieve the server config with some sanitized items.

func (*Client4) GetConfigRoute ¶

func (c *Client4) GetConfigRoute() string

func (*Client4) GetDataRetentionPolicy ¶

func (c *Client4) GetDataRetentionPolicy() (*DataRetentionPolicy, *Response)

GetDataRetentionPolicy will get the current server data retention policy details.

func (*Client4) GetDataRetentionRoute ¶

func (c *Client4) GetDataRetentionRoute() string

func (*Client4) GetDatabaseRoute ¶

func (c *Client4) GetDatabaseRoute() string

func (*Client4) GetDeletedChannelsForTeam ¶

func (c *Client4) GetDeletedChannelsForTeam(teamId string, page int, perPage int, etag string) ([]*Channel, *Response)

GetDeletedChannelsForTeam returns a list of public channels based on the provided team id string.

func (*Client4) GetElasticsearchRoute ¶

func (c *Client4) GetElasticsearchRoute() string

func (*Client4) GetEmoji ¶

func (c *Client4) GetEmoji(emojiId string) (*Emoji, *Response)

GetEmoji returns a custom emoji based on the emojiId string.

func (*Client4) GetEmojiByName ¶

func (c *Client4) GetEmojiByName(name string) (*Emoji, *Response)

GetEmojiByName returns a custom emoji based on the name string.

func (*Client4) GetEmojiByNameRoute ¶

func (c *Client4) GetEmojiByNameRoute(name string) string

func (*Client4) GetEmojiImage ¶

func (c *Client4) GetEmojiImage(emojiId string) ([]byte, *Response)

GetEmojiImage returns the emoji image.

func (*Client4) GetEmojiList ¶

func (c *Client4) GetEmojiList(page, perPage int) ([]*Emoji, *Response)

GetEmojiList returns a page of custom emoji on the system.

func (*Client4) GetEmojiRoute ¶

func (c *Client4) GetEmojiRoute(emojiId string) string

func (*Client4) GetEmojisRoute ¶

func (c *Client4) GetEmojisRoute() string

func (*Client4) GetEnvironmentConfig ¶

func (c *Client4) GetEnvironmentConfig() (map[string]interface{}, *Response)

GetEnvironmentConfig will retrieve a map mirroring the server configuration where fields are set to true if the corresponding config setting is set through an environment variable. Settings that haven't been set through environment variables will be missing from the map.

func (*Client4) GetFile ¶

func (c *Client4) GetFile(fileId string) ([]byte, *Response)

GetFile gets the bytes for a file by id.

func (*Client4) GetFileInfo ¶

func (c *Client4) GetFileInfo(fileId string) (*FileInfo, *Response)

GetFileInfo gets all the file info objects.

func (*Client4) GetFileInfosForPost ¶

func (c *Client4) GetFileInfosForPost(postId string, etag string) ([]*FileInfo, *Response)

GetFileInfosForPost gets all the file info objects attached to a post.

func (c *Client4) GetFileLink(fileId string) (string, *Response)

GetFileLink gets the public link of a file by id.

func (*Client4) GetFilePreview ¶

func (c *Client4) GetFilePreview(fileId string) ([]byte, *Response)

GetFilePreview gets the bytes for a file by id.

func (*Client4) GetFileRoute ¶

func (c *Client4) GetFileRoute(fileId string) string

func (*Client4) GetFileThumbnail ¶

func (c *Client4) GetFileThumbnail(fileId string) ([]byte, *Response)

GetFileThumbnail gets the bytes for a file by id.

func (*Client4) GetFilesRoute ¶

func (c *Client4) GetFilesRoute() string

func (*Client4) GetFlaggedPostsForUser ¶

func (c *Client4) GetFlaggedPostsForUser(userId string, page int, perPage int) (*PostList, *Response)

GetFlaggedPostsForUser returns flagged posts of a user based on user id string.

func (*Client4) GetFlaggedPostsForUserInChannel ¶

func (c *Client4) GetFlaggedPostsForUserInChannel(userId string, channelId string, page int, perPage int) (*PostList, *Response)

GetFlaggedPostsForUserInChannel returns flagged posts in channel of a user based on user id string.

func (*Client4) GetFlaggedPostsForUserInTeam ¶

func (c *Client4) GetFlaggedPostsForUserInTeam(userId string, teamId string, page int, perPage int) (*PostList, *Response)

GetFlaggedPostsForUserInTeam returns flagged posts in team of a user based on user id string.

func (*Client4) GetIncomingWebhook ¶

func (c *Client4) GetIncomingWebhook(hookID string, etag string) (*IncomingWebhook, *Response)

GetIncomingWebhook returns an Incoming webhook given the hook ID

func (*Client4) GetIncomingWebhookRoute ¶

func (c *Client4) GetIncomingWebhookRoute(hookID string) string

func (*Client4) GetIncomingWebhooks ¶

func (c *Client4) GetIncomingWebhooks(page int, perPage int, etag string) ([]*IncomingWebhook, *Response)

GetIncomingWebhooks returns a page of incoming webhooks on the system. Page counting starts at 0.

func (*Client4) GetIncomingWebhooksForTeam ¶

func (c *Client4) GetIncomingWebhooksForTeam(teamId string, page int, perPage int, etag string) ([]*IncomingWebhook, *Response)

GetIncomingWebhooksForTeam returns a page of incoming webhooks for a team. Page counting starts at 0.

func (*Client4) GetIncomingWebhooksRoute ¶

func (c *Client4) GetIncomingWebhooksRoute() string

func (*Client4) GetJob ¶

func (c *Client4) GetJob(id string) (*Job, *Response)

GetJob gets a single job.

func (*Client4) GetJobs ¶

func (c *Client4) GetJobs(page int, perPage int) ([]*Job, *Response)

Get all jobs, sorted with the job that was created most recently first.

func (*Client4) GetJobsByType ¶

func (c *Client4) GetJobsByType(jobType string, page int, perPage int) ([]*Job, *Response)

GetJobsByType gets all jobs of a given type, sorted with the job that was created most recently first.

func (*Client4) GetJobsRoute ¶

func (c *Client4) GetJobsRoute() string

func (*Client4) GetLdapRoute ¶

func (c *Client4) GetLdapRoute() string

func (*Client4) GetLicenseRoute ¶

func (c *Client4) GetLicenseRoute() string

func (*Client4) GetLogs ¶

func (c *Client4) GetLogs(page, perPage int) ([]string, *Response)

GetLogs page of logs as a string array.

func (*Client4) GetMe ¶

func (c *Client4) GetMe(etag string) (*User, *Response)

GetMe returns the logged in user.

func (*Client4) GetNewUsersInTeam ¶

func (c *Client4) GetNewUsersInTeam(teamId string, page int, perPage int, etag string) ([]*User, *Response)

GetNewUsersInTeam returns a page of users on a team. Page counting starts at 0.

func (*Client4) GetOAuthApp ¶

func (c *Client4) GetOAuthApp(appId string) (*OAuthApp, *Response)

GetOAuthApp gets a registered OAuth 2.0 client application with Mattermost acting as an OAuth 2.0 service provider.

func (*Client4) GetOAuthAppInfo ¶

func (c *Client4) GetOAuthAppInfo(appId string) (*OAuthApp, *Response)

GetOAuthAppInfo gets a sanitized version of a registered OAuth 2.0 client application with Mattermost acting as an OAuth 2.0 service provider.

func (*Client4) GetOAuthAppRoute ¶

func (c *Client4) GetOAuthAppRoute(appId string) string

func (*Client4) GetOAuthApps ¶

func (c *Client4) GetOAuthApps(page, perPage int) ([]*OAuthApp, *Response)

GetOAuthApps gets a page of registered OAuth 2.0 client applications with Mattermost acting as an OAuth 2.0 service provider.

func (*Client4) GetOAuthAppsRoute ¶

func (c *Client4) GetOAuthAppsRoute() string

func (*Client4) GetOldClientConfig ¶

func (c *Client4) GetOldClientConfig(etag string) (map[string]string, *Response)

GetOldClientConfig will retrieve the parts of the server configuration needed by the client, formatted in the old format.

func (*Client4) GetOldClientLicense ¶

func (c *Client4) GetOldClientLicense(etag string) (map[string]string, *Response)

GetOldClientLicense will retrieve the parts of the server license needed by the client, formatted in the old format.

func (*Client4) GetOpenGraphRoute ¶

func (c *Client4) GetOpenGraphRoute() string

func (*Client4) GetOutgoingWebhook ¶

func (c *Client4) GetOutgoingWebhook(hookId string) (*OutgoingWebhook, *Response)

GetOutgoingWebhook outgoing webhooks on the system requested by Hook Id.

func (*Client4) GetOutgoingWebhookRoute ¶

func (c *Client4) GetOutgoingWebhookRoute(hookID string) string

func (*Client4) GetOutgoingWebhooks ¶

func (c *Client4) GetOutgoingWebhooks(page int, perPage int, etag string) ([]*OutgoingWebhook, *Response)

GetOutgoingWebhooks returns a page of outgoing webhooks on the system. Page counting starts at 0.

func (*Client4) GetOutgoingWebhooksForChannel ¶

func (c *Client4) GetOutgoingWebhooksForChannel(channelId string, page int, perPage int, etag string) ([]*OutgoingWebhook, *Response)

GetOutgoingWebhooksForChannel returns a page of outgoing webhooks for a channel. Page counting starts at 0.

func (*Client4) GetOutgoingWebhooksForTeam ¶

func (c *Client4) GetOutgoingWebhooksForTeam(teamId string, page int, perPage int, etag string) ([]*OutgoingWebhook, *Response)

GetOutgoingWebhooksForTeam returns a page of outgoing webhooks for a team. Page counting starts at 0.

func (*Client4) GetOutgoingWebhooksRoute ¶

func (c *Client4) GetOutgoingWebhooksRoute() string

func (*Client4) GetPing ¶

func (c *Client4) GetPing() (string, *Response)

GetPing will return ok if the running goRoutines are below the threshold and unhealthy for above.

func (*Client4) GetPinnedPosts ¶

func (c *Client4) GetPinnedPosts(channelId string, etag string) (*PostList, *Response)

GetPinnedPosts gets a list of pinned posts.

func (*Client4) GetPluginRoute ¶

func (c *Client4) GetPluginRoute(pluginId string) string

func (*Client4) GetPlugins ¶

func (c *Client4) GetPlugins() (*PluginsResponse, *Response)

GetPlugins will return a list of plugin manifests for currently active plugins. WARNING: PLUGINS ARE STILL EXPERIMENTAL. THIS FUNCTION IS SUBJECT TO CHANGE.

func (*Client4) GetPluginsRoute ¶

func (c *Client4) GetPluginsRoute() string

func (*Client4) GetPost ¶

func (c *Client4) GetPost(postId string, etag string) (*Post, *Response)

GetPost gets a single post.

func (*Client4) GetPostRoute ¶

func (c *Client4) GetPostRoute(postId string) string

func (*Client4) GetPostThread ¶

func (c *Client4) GetPostThread(postId string, etag string) (*PostList, *Response)

GetPostThread gets a post with all the other posts in the same thread.

func (*Client4) GetPostsAfter ¶

func (c *Client4) GetPostsAfter(channelId, postId string, page, perPage int, etag string) (*PostList, *Response)

GetPostsAfter gets a page of posts that were posted after the post provided.

func (*Client4) GetPostsBefore ¶

func (c *Client4) GetPostsBefore(channelId, postId string, page, perPage int, etag string) (*PostList, *Response)

GetPostsBefore gets a page of posts that were posted before the post provided.

func (*Client4) GetPostsEphemeralRoute ¶

func (c *Client4) GetPostsEphemeralRoute() string

func (*Client4) GetPostsForChannel ¶

func (c *Client4) GetPostsForChannel(channelId string, page, perPage int, etag string) (*PostList, *Response)

GetPostsForChannel gets a page of posts with an array for ordering for a channel.

func (*Client4) GetPostsRoute ¶

func (c *Client4) GetPostsRoute() string

func (*Client4) GetPostsSince ¶

func (c *Client4) GetPostsSince(channelId string, time int64) (*PostList, *Response)

GetPostsSince gets posts created after a specified time as Unix time in milliseconds.

func (*Client4) GetPreferenceByCategoryAndName ¶

func (c *Client4) GetPreferenceByCategoryAndName(userId string, category string, preferenceName string) (*Preference, *Response)

GetPreferenceByCategoryAndName returns the user's preferences from the provided category and preference name string.

func (*Client4) GetPreferences ¶

func (c *Client4) GetPreferences(userId string) (Preferences, *Response)

GetPreferences returns the user's preferences.

func (*Client4) GetPreferencesByCategory ¶

func (c *Client4) GetPreferencesByCategory(userId string, category string) (Preferences, *Response)

GetPreferencesByCategory returns the user's preferences from the provided category string.

func (*Client4) GetPreferencesRoute ¶

func (c *Client4) GetPreferencesRoute(userId string) string

func (*Client4) GetProfileImage ¶

func (c *Client4) GetProfileImage(userId, etag string) ([]byte, *Response)

GetProfileImage gets user's profile image. Must be logged in or be a system administrator.

func (*Client4) GetPublicChannelsByIdsForTeam ¶

func (c *Client4) GetPublicChannelsByIdsForTeam(teamId string, channelIds []string) ([]*Channel, *Response)

GetPublicChannelsByIdsForTeam returns a list of public channels based on provided team id string

func (*Client4) GetPublicChannelsForTeam ¶

func (c *Client4) GetPublicChannelsForTeam(teamId string, page int, perPage int, etag string) ([]*Channel, *Response)

GetPublicChannelsForTeam returns a list of public channels based on the provided team id string.

func (*Client4) GetReactions ¶

func (c *Client4) GetReactions(postId string) ([]*Reaction, *Response)

GetReactions returns a list of reactions to a post.

func (*Client4) GetReactionsRoute ¶

func (c *Client4) GetReactionsRoute() string

func (*Client4) GetRecentlyActiveUsersInTeam ¶

func (c *Client4) GetRecentlyActiveUsersInTeam(teamId string, page int, perPage int, etag string) ([]*User, *Response)

GetRecentlyActiveUsersInTeam returns a page of users on a team. Page counting starts at 0.

func (*Client4) GetRole ¶

func (c *Client4) GetRole(id string) (*Role, *Response)

GetRole gets a single role by ID.

func (*Client4) GetRoleByName ¶

func (c *Client4) GetRoleByName(name string) (*Role, *Response)

GetRoleByName gets a single role by Name.

func (*Client4) GetRolesByNames ¶

func (c *Client4) GetRolesByNames(roleNames []string) ([]*Role, *Response)

GetRolesByNames returns a list of roles based on the provided role names.

func (*Client4) GetRolesRoute ¶

func (c *Client4) GetRolesRoute() string

func (*Client4) GetSamlCertificateStatus ¶

func (c *Client4) GetSamlCertificateStatus() (*SamlCertificateStatus, *Response)

GetSamlCertificateStatus returns metadata for the SAML configuration.

func (*Client4) GetSamlMetadata ¶

func (c *Client4) GetSamlMetadata() (string, *Response)

GetSamlMetadata returns metadata for the SAML configuration.

func (*Client4) GetSamlRoute ¶

func (c *Client4) GetSamlRoute() string

func (*Client4) GetSessions ¶

func (c *Client4) GetSessions(userId, etag string) ([]*Session, *Response)

GetSessions returns a list of sessions based on the provided user id string.

func (*Client4) GetSortedEmojiList ¶

func (c *Client4) GetSortedEmojiList(page, perPage int, sort string) ([]*Emoji, *Response)

GetSortedEmojiList returns a page of custom emoji on the system sorted based on the sort parameter, blank for no sorting and "name" to sort by emoji names.

func (*Client4) GetSupportedTimezone ¶

func (c *Client4) GetSupportedTimezone() (SupportedTimezones, *Response)

GetSupportedTimezone returns a page of supported timezones on the system.

func (*Client4) GetSystemRoute ¶

func (c *Client4) GetSystemRoute() string

func (*Client4) GetTeam ¶

func (c *Client4) GetTeam(teamId, etag string) (*Team, *Response)

GetTeam returns a team based on the provided team id string.

func (*Client4) GetTeamAutoCompleteCommandsRoute ¶

func (c *Client4) GetTeamAutoCompleteCommandsRoute(teamId string) string

func (*Client4) GetTeamByName ¶

func (c *Client4) GetTeamByName(name, etag string) (*Team, *Response)

GetTeamByName returns a team based on the provided team name string.

func (*Client4) GetTeamByNameRoute ¶

func (c *Client4) GetTeamByNameRoute(teamName string) string

func (*Client4) GetTeamIcon ¶

func (c *Client4) GetTeamIcon(teamId, etag string) ([]byte, *Response)

GetTeamIcon gets the team icon of the team

func (*Client4) GetTeamImportRoute ¶

func (c *Client4) GetTeamImportRoute(teamId string) string

func (*Client4) GetTeamInviteInfo ¶

func (c *Client4) GetTeamInviteInfo(inviteId string) (*Team, *Response)

GetTeamInviteInfo returns a team object from an invite id containing sanitized information.

func (*Client4) GetTeamMember ¶

func (c *Client4) GetTeamMember(teamId, userId, etag string) (*TeamMember, *Response)

GetTeamMember returns a team member based on the provided team and user id strings.

func (*Client4) GetTeamMemberRoute ¶

func (c *Client4) GetTeamMemberRoute(teamId, userId string) string

func (*Client4) GetTeamMembers ¶

func (c *Client4) GetTeamMembers(teamId string, page int, perPage int, etag string) ([]*TeamMember, *Response)

GetTeamMembers returns team members based on the provided team id string.

func (*Client4) GetTeamMembersByIds ¶

func (c *Client4) GetTeamMembersByIds(teamId string, userIds []string) ([]*TeamMember, *Response)

GetTeamMembersByIds will return an array of team members based on the team id and a list of user ids provided. Must be authenticated.

func (*Client4) GetTeamMembersForUser ¶

func (c *Client4) GetTeamMembersForUser(userId string, etag string) ([]*TeamMember, *Response)

GetTeamMembersForUser returns the team members for a user.

func (*Client4) GetTeamMembersRoute ¶

func (c *Client4) GetTeamMembersRoute(teamId string) string

func (*Client4) GetTeamRoute ¶

func (c *Client4) GetTeamRoute(teamId string) string

func (*Client4) GetTeamStats ¶

func (c *Client4) GetTeamStats(teamId, etag string) (*TeamStats, *Response)

GetTeamStats returns a team stats based on the team id string. Must be authenticated.

func (*Client4) GetTeamStatsRoute ¶

func (c *Client4) GetTeamStatsRoute(teamId string) string

func (*Client4) GetTeamUnread ¶

func (c *Client4) GetTeamUnread(teamId, userId string) (*TeamUnread, *Response)

GetTeamUnread will return a TeamUnread object that contains the amount of unread messages and mentions the user has for the specified team. Must be authenticated.

func (*Client4) GetTeamsForUser ¶

func (c *Client4) GetTeamsForUser(userId, etag string) ([]*Team, *Response)

GetTeamsForUser returns a list of teams a user is on. Must be logged in as the user or be a system administrator.

func (*Client4) GetTeamsRoute ¶

func (c *Client4) GetTeamsRoute() string

func (*Client4) GetTeamsUnreadForUser ¶

func (c *Client4) GetTeamsUnreadForUser(userId, teamIdToExclude string) ([]*TeamUnread, *Response)

GetTeamsUnreadForUser will return an array with TeamUnread objects that contain the amount of unread messages and mentions the current user has for the teams it belongs to. An optional team ID can be set to exclude that team from the results. Must be authenticated.

func (*Client4) GetTestEmailRoute ¶

func (c *Client4) GetTestEmailRoute() string

func (*Client4) GetTestS3Route ¶

func (c *Client4) GetTestS3Route() string

func (*Client4) GetTimezonesRoute ¶

func (c *Client4) GetTimezonesRoute() string

func (*Client4) GetUser ¶

func (c *Client4) GetUser(userId, etag string) (*User, *Response)

GetUser returns a user based on the provided user id string.

func (*Client4) GetUserAccessToken ¶

func (c *Client4) GetUserAccessToken(tokenId string) (*UserAccessToken, *Response)

GetUserAccessToken will get a user access tokens' id, description, is_active and the user_id of the user it is for. The actual token will not be returned. Must have the 'read_user_access_token' permission and if getting for another user, must have the 'edit_other_users' permission.

func (*Client4) GetUserAccessTokenRoute ¶

func (c *Client4) GetUserAccessTokenRoute(tokenId string) string

func (*Client4) GetUserAccessTokens ¶

func (c *Client4) GetUserAccessTokens(page int, perPage int) ([]*UserAccessToken, *Response)

GetUserAccessTokens will get a page of access tokens' id, description, is_active and the user_id in the system. The actual token will not be returned. Must have the 'manage_system' permission.

func (*Client4) GetUserAccessTokensForUser ¶

func (c *Client4) GetUserAccessTokensForUser(userId string, page, perPage int) ([]*UserAccessToken, *Response)

GetUserAccessTokensForUser will get a paged list of user access tokens showing id, description and user_id for each. The actual tokens will not be returned. Must have the 'read_user_access_token' permission and if getting for another user, must have the 'edit_other_users' permission.

func (*Client4) GetUserAccessTokensRoute ¶

func (c *Client4) GetUserAccessTokensRoute() string

func (*Client4) GetUserAudits ¶

func (c *Client4) GetUserAudits(userId string, page int, perPage int, etag string) (Audits, *Response)

GetUserAudits returns a list of audit based on the provided user id string.

func (*Client4) GetUserByEmail ¶

func (c *Client4) GetUserByEmail(email, etag string) (*User, *Response)

GetUserByEmail returns a user based on the provided user email string.

func (*Client4) GetUserByEmailRoute ¶

func (c *Client4) GetUserByEmailRoute(email string) string

func (*Client4) GetUserByUsername ¶

func (c *Client4) GetUserByUsername(userName, etag string) (*User, *Response)

GetUserByUsername returns a user based on the provided user name string.

func (*Client4) GetUserByUsernameRoute ¶

func (c *Client4) GetUserByUsernameRoute(userName string) string

func (*Client4) GetUserRoute ¶

func (c *Client4) GetUserRoute(userId string) string

func (*Client4) GetUserStatus ¶

func (c *Client4) GetUserStatus(userId, etag string) (*Status, *Response)

GetUserStatus returns a user based on the provided user id string.

func (*Client4) GetUserStatusRoute ¶

func (c *Client4) GetUserStatusRoute(userId string) string

func (*Client4) GetUserStatusesRoute ¶

func (c *Client4) GetUserStatusesRoute() string

func (*Client4) GetUsers ¶

func (c *Client4) GetUsers(page int, perPage int, etag string) ([]*User, *Response)

GetUsers returns a page of users on the system. Page counting starts at 0.

func (*Client4) GetUsersByIds ¶

func (c *Client4) GetUsersByIds(userIds []string) ([]*User, *Response)

GetUsersByIds returns a list of users based on the provided user ids.

func (*Client4) GetUsersByUsernames ¶

func (c *Client4) GetUsersByUsernames(usernames []string) ([]*User, *Response)

GetUsersByUsernames returns a list of users based on the provided usernames.

func (*Client4) GetUsersInChannel ¶

func (c *Client4) GetUsersInChannel(channelId string, page int, perPage int, etag string) ([]*User, *Response)

GetUsersInChannel returns a page of users in a channel. Page counting starts at 0.

func (*Client4) GetUsersInChannelByStatus ¶

func (c *Client4) GetUsersInChannelByStatus(channelId string, page int, perPage int, etag string) ([]*User, *Response)

GetUsersInChannelStatus returns a page of users in a channel. Page counting starts at 0. Sorted by Status

func (*Client4) GetUsersInTeam ¶

func (c *Client4) GetUsersInTeam(teamId string, page int, perPage int, etag string) ([]*User, *Response)

GetUsersInTeam returns a page of users on a team. Page counting starts at 0.

func (*Client4) GetUsersNotInChannel ¶

func (c *Client4) GetUsersNotInChannel(teamId, channelId string, page int, perPage int, etag string) ([]*User, *Response)

GetUsersNotInChannel returns a page of users not in a channel. Page counting starts at 0.

func (*Client4) GetUsersNotInTeam ¶

func (c *Client4) GetUsersNotInTeam(teamId string, page int, perPage int, etag string) ([]*User, *Response)

GetUsersNotInTeam returns a page of users who are not in a team. Page counting starts at 0.

func (*Client4) GetUsersRoute ¶

func (c *Client4) GetUsersRoute() string

func (*Client4) GetUsersStatusesByIds ¶

func (c *Client4) GetUsersStatusesByIds(userIds []string) ([]*Status, *Response)

GetUsersStatusesByIds returns a list of users status based on the provided user ids.

func (*Client4) GetUsersWithoutTeam ¶

func (c *Client4) GetUsersWithoutTeam(page int, perPage int, etag string) ([]*User, *Response)

GetUsersWithoutTeam returns a page of users on the system that aren't on any teams. Page counting starts at 0.

func (*Client4) GetWebappPlugins ¶

func (c *Client4) GetWebappPlugins() ([]*Manifest, *Response)

GetWebappPlugins will return a list of plugins that the webapp should download. WARNING: PLUGINS ARE STILL EXPERIMENTAL. THIS FUNCTION IS SUBJECT TO CHANGE.

func (*Client4) GetWebrtcToken ¶

func (c *Client4) GetWebrtcToken() (*WebrtcInfoResponse, *Response)

GetWebrtcToken returns a valid token, stun server and turn server with credentials to use with the Mattermost WebRTC service.

func (*Client4) ImportTeam ¶

func (c *Client4) ImportTeam(data []byte, filesize int, importFrom, filename, teamId string) (map[string]string, *Response)

ImportTeam will import an exported team from other app into a existing team.

func (*Client4) InvalidateCaches ¶

func (c *Client4) InvalidateCaches() (bool, *Response)

InvalidateCaches will purge the cache and can affect the performance while is cleaning.

func (*Client4) InviteUsersToTeam ¶

func (c *Client4) InviteUsersToTeam(teamId string, userEmails []string) (bool, *Response)

InviteUsersToTeam invite users by email to the team.

func (*Client4) ListAutocompleteCommands ¶

func (c *Client4) ListAutocompleteCommands(teamId string) ([]*Command, *Response)

ListCommands will retrieve a list of commands available in the team.

func (*Client4) ListCommands ¶

func (c *Client4) ListCommands(teamId string, customOnly bool) ([]*Command, *Response)

ListCommands will retrieve a list of commands available in the team.

func (*Client4) Login ¶

func (c *Client4) Login(loginId string, password string) (*User, *Response)

Login authenticates a user by login id, which can be username, email or some sort of SSO identifier based on server configuration, and a password.

func (*Client4) LoginById ¶

func (c *Client4) LoginById(id string, password string) (*User, *Response)

LoginById authenticates a user by user id and password.

func (*Client4) LoginByLdap ¶

func (c *Client4) LoginByLdap(loginId string, password string) (*User, *Response)

LoginByLdap authenticates a user by LDAP id and password.

func (*Client4) LoginWithDevice ¶

func (c *Client4) LoginWithDevice(loginId string, password string, deviceId string) (*User, *Response)

LoginWithDevice authenticates a user by login id (username, email or some sort of SSO identifier based on configuration), password and attaches a device id to the session.

func (*Client4) Logout ¶

func (c *Client4) Logout() (bool, *Response)

Logout terminates the current user's session.

func (*Client4) OpenGraph ¶

func (c *Client4) OpenGraph(url string) (map[string]string, *Response)

OpenGraph return the open graph metadata for a particular url if the site have the metadata

func (*Client4) PatchChannel ¶

func (c *Client4) PatchChannel(channelId string, patch *ChannelPatch) (*Channel, *Response)

PatchChannel partially updates a channel. Any missing fields are not updated.

func (*Client4) PatchPost ¶

func (c *Client4) PatchPost(postId string, patch *PostPatch) (*Post, *Response)

PatchPost partially updates a post. Any missing fields are not updated.

func (*Client4) PatchRole ¶

func (c *Client4) PatchRole(roleId string, patch *RolePatch) (*Role, *Response)

PatchRole partially updates a role in the system. Any missing fields are not updated.

func (*Client4) PatchTeam ¶

func (c *Client4) PatchTeam(teamId string, patch *TeamPatch) (*Team, *Response)

PatchTeam partially updates a team. Any missing fields are not updated.

func (*Client4) PatchUser ¶

func (c *Client4) PatchUser(userId string, patch *UserPatch) (*User, *Response)

PatchUser partially updates a user in the system. Any missing fields are not updated.

func (*Client4) PermanentDeleteTeam ¶

func (c *Client4) PermanentDeleteTeam(teamId string) (bool, *Response)

PermanentDeleteTeam deletes the team, should only be used when needed for compliance and the like

func (*Client4) PinPost ¶

func (c *Client4) PinPost(postId string) (bool, *Response)

PinPost pin a post based on provided post id string.

func (*Client4) PostLog ¶

func (c *Client4) PostLog(message map[string]string) (map[string]string, *Response)

PostLog is a convenience Web Service call so clients can log messages into the server-side logs. For example we typically log javascript error messages into the server-side. It returns the log message if the logging was successful.

func (*Client4) PurgeElasticsearchIndexes ¶

func (c *Client4) PurgeElasticsearchIndexes() (bool, *Response)

PurgeElasticsearchIndexes immediately deletes all Elasticsearch indexes.

func (*Client4) RegenCommandToken ¶

func (c *Client4) RegenCommandToken(commandId string) (string, *Response)

RegenCommandToken will create a new token if the user have the right permissions.

func (*Client4) RegenOutgoingHookToken ¶

func (c *Client4) RegenOutgoingHookToken(hookId string) (*OutgoingWebhook, *Response)

RegenOutgoingHookToken regenerate the outgoing webhook token.

func (*Client4) RegenerateOAuthAppSecret ¶

func (c *Client4) RegenerateOAuthAppSecret(appId string) (*OAuthApp, *Response)

RegenerateOAuthAppSecret regenerates the client secret for a registered OAuth 2.0 client application.

func (*Client4) ReloadConfig ¶

func (c *Client4) ReloadConfig() (bool, *Response)

ReloadConfig will reload the server configuration.

func (*Client4) RemoveLicenseFile ¶

func (c *Client4) RemoveLicenseFile() (bool, *Response)

RemoveLicenseFile will remove the server license it exists. Note that this will disable all enterprise features.

func (*Client4) RemovePlugin ¶

func (c *Client4) RemovePlugin(id string) (bool, *Response)

RemovePlugin will deactivate and delete a plugin. WARNING: PLUGINS ARE STILL EXPERIMENTAL. THIS FUNCTION IS SUBJECT TO CHANGE.

func (*Client4) RemoveTeamIcon ¶

func (c *Client4) RemoveTeamIcon(teamId string) (bool, *Response)

RemoveTeamIcon updates LastTeamIconUpdate to 0 which indicates team icon is removed.

func (*Client4) RemoveTeamMember ¶

func (c *Client4) RemoveTeamMember(teamId, userId string) (bool, *Response)

RemoveTeamMember will remove a user from a team.

func (*Client4) RemoveUserFromChannel ¶

func (c *Client4) RemoveUserFromChannel(channelId, userId string) (bool, *Response)

RemoveUserFromChannel will delete the channel member object for a user, effectively removing the user from a channel.

func (*Client4) ResetPassword ¶

func (c *Client4) ResetPassword(token, newPassword string) (bool, *Response)

ResetPassword uses a recovery code to update reset a user's password.

func (*Client4) RestoreChannel ¶

func (c *Client4) RestoreChannel(channelId string) (*Channel, *Response)

RestoreChannel restores a previously deleted channel. Any missing fields are not updated.

func (*Client4) RevokeAllSessions ¶

func (c *Client4) RevokeAllSessions(userId string) (bool, *Response)

RevokeAllSessions revokes all sessions for the provided user id string.

func (*Client4) RevokeSession ¶

func (c *Client4) RevokeSession(userId, sessionId string) (bool, *Response)

RevokeSession revokes a user session based on the provided user id and session id strings.

func (*Client4) RevokeUserAccessToken ¶

func (c *Client4) RevokeUserAccessToken(tokenId string) (bool, *Response)

RevokeUserAccessToken will revoke a user access token by id. Must have the 'revoke_user_access_token' permission and if revoking for another user, must have the 'edit_other_users' permission.

func (*Client4) SaveReaction ¶

func (c *Client4) SaveReaction(reaction *Reaction) (*Reaction, *Response)

SaveReaction saves an emoji reaction for a post. Returns the saved reaction if successful, otherwise an error will be returned.

func (*Client4) SearchChannels ¶

func (c *Client4) SearchChannels(teamId string, search *ChannelSearch) ([]*Channel, *Response)

SearchChannels returns the channels on a team matching the provided search term.

func (*Client4) SearchEmoji ¶

func (c *Client4) SearchEmoji(search *EmojiSearch) ([]*Emoji, *Response)

SearchEmoji returns a list of emoji matching some search criteria.

func (*Client4) SearchPosts ¶

func (c *Client4) SearchPosts(teamId string, terms string, isOrSearch bool) (*PostList, *Response)

SearchPosts returns any posts with matching terms string.

func (*Client4) SearchTeams ¶

func (c *Client4) SearchTeams(search *TeamSearch) ([]*Team, *Response)

SearchTeams returns teams matching the provided search term.

func (*Client4) SearchUserAccessTokens ¶

func (c *Client4) SearchUserAccessTokens(search *UserAccessTokenSearch) ([]*UserAccessToken, *Response)

SearchUserAccessTokens returns user access tokens matching the provided search term.

func (*Client4) SearchUsers ¶

func (c *Client4) SearchUsers(search *UserSearch) ([]*User, *Response)

SearchUsers returns a list of users based on some search criteria.

func (*Client4) SendPasswordResetEmail ¶

func (c *Client4) SendPasswordResetEmail(email string) (bool, *Response)

SendPasswordResetEmail will send a link for password resetting to a user with the provided email.

func (*Client4) SendVerificationEmail ¶

func (c *Client4) SendVerificationEmail(email string) (bool, *Response)

SendVerificationEmail will send an email to the user with the provided email address, if that user exists. The email will contain a link that can be used to verify the user's email address.

func (*Client4) SetOAuthToken ¶

func (c *Client4) SetOAuthToken(token string)

func (*Client4) SetProfileImage ¶

func (c *Client4) SetProfileImage(userId string, data []byte) (bool, *Response)

SetProfileImage sets profile image of the user

func (*Client4) SetTeamIcon ¶

func (c *Client4) SetTeamIcon(teamId string, data []byte) (bool, *Response)

SetTeamIcon sets team icon of the team

func (*Client4) SoftDeleteTeam ¶

func (c *Client4) SoftDeleteTeam(teamId string) (bool, *Response)

SoftDeleteTeam deletes the team softly (archive only, not permanent delete).

func (*Client4) SwitchAccountType ¶

func (c *Client4) SwitchAccountType(switchRequest *SwitchRequest) (string, *Response)

SwitchAccountType changes a user's login type from one type to another.

func (*Client4) SyncLdap ¶

func (c *Client4) SyncLdap() (bool, *Response)

SyncLdap will force a sync with the configured LDAP server.

func (*Client4) TeamExists ¶

func (c *Client4) TeamExists(name, etag string) (bool, *Response)

TeamExists returns true or false if the team exist or not.

func (*Client4) TestElasticsearch ¶

func (c *Client4) TestElasticsearch() (bool, *Response)

TestElasticsearch will attempt to connect to the configured Elasticsearch server and return OK if configured correctly.

func (*Client4) TestEmail ¶

func (c *Client4) TestEmail(config *Config) (bool, *Response)

TestEmail will attempt to connect to the configured SMTP server.

func (*Client4) TestLdap ¶

func (c *Client4) TestLdap() (bool, *Response)

TestLdap will attempt to connect to the configured LDAP server and return OK if configured correctly.

func (*Client4) TestS3Connection ¶

func (c *Client4) TestS3Connection(config *Config) (bool, *Response)

TestS3Connection will attempt to connect to the AWS S3.

func (*Client4) UnpinPost ¶

func (c *Client4) UnpinPost(postId string) (bool, *Response)

UnpinPost unpin a post based on provided post id string.

func (*Client4) UpdateChannel ¶

func (c *Client4) UpdateChannel(channel *Channel) (*Channel, *Response)

UpdateChannel update a channel based on the provided channel struct.

func (*Client4) UpdateChannelNotifyProps ¶

func (c *Client4) UpdateChannelNotifyProps(channelId, userId string, props map[string]string) (bool, *Response)

UpdateChannelNotifyProps will update the notification properties on a channel for a user.

func (*Client4) UpdateChannelRoles ¶

func (c *Client4) UpdateChannelRoles(channelId, userId, roles string) (bool, *Response)

UpdateChannelRoles will update the roles on a channel for a user.

func (*Client4) UpdateCommand ¶

func (c *Client4) UpdateCommand(cmd *Command) (*Command, *Response)

UpdateCommand updates a command based on the provided Command struct

func (*Client4) UpdateConfig ¶

func (c *Client4) UpdateConfig(config *Config) (*Config, *Response)

UpdateConfig will update the server configuration.

func (*Client4) UpdateIncomingWebhook ¶

func (c *Client4) UpdateIncomingWebhook(hook *IncomingWebhook) (*IncomingWebhook, *Response)

UpdateIncomingWebhook updates an incoming webhook for a channel.

func (*Client4) UpdateOAuthApp ¶

func (c *Client4) UpdateOAuthApp(app *OAuthApp) (*OAuthApp, *Response)

UpdateOAuthApp

func (*Client4) UpdateOutgoingWebhook ¶

func (c *Client4) UpdateOutgoingWebhook(hook *OutgoingWebhook) (*OutgoingWebhook, *Response)

UpdateOutgoingWebhook creates an outgoing webhook for a team or channel.

func (*Client4) UpdatePost ¶

func (c *Client4) UpdatePost(postId string, post *Post) (*Post, *Response)

UpdatePost updates a post based on the provided post struct.

func (*Client4) UpdatePreferences ¶

func (c *Client4) UpdatePreferences(userId string, preferences *Preferences) (bool, *Response)

UpdatePreferences saves the user's preferences.

func (*Client4) UpdateTeam ¶

func (c *Client4) UpdateTeam(team *Team) (*Team, *Response)

UpdateTeam will update a team.

func (*Client4) UpdateTeamMemberRoles ¶

func (c *Client4) UpdateTeamMemberRoles(teamId, userId, newRoles string) (bool, *Response)

UpdateTeamMemberRoles will update the roles on a team for a user.

func (*Client4) UpdateUser ¶

func (c *Client4) UpdateUser(user *User) (*User, *Response)

UpdateUser updates a user in the system based on the provided user struct.

func (*Client4) UpdateUserActive ¶

func (c *Client4) UpdateUserActive(userId string, active bool) (bool, *Response)

UpdateUserActive updates status of a user whether active or not.

func (*Client4) UpdateUserAuth ¶

func (c *Client4) UpdateUserAuth(userId string, userAuth *UserAuth) (*UserAuth, *Response)

UpdateUserAuth updates a user AuthData (uthData, authService and password) in the system.

func (*Client4) UpdateUserMfa ¶

func (c *Client4) UpdateUserMfa(userId, code string, activate bool) (bool, *Response)

UpdateUserMfa activates multi-factor authentication for a user if activate is true and a valid code is provided. If activate is false, then code is not required and multi-factor authentication is disabled for the user.

func (*Client4) UpdateUserPassword ¶

func (c *Client4) UpdateUserPassword(userId, currentPassword, newPassword string) (bool, *Response)

UpdateUserPassword updates a user's password. Must be logged in as the user or be a system administrator.

func (*Client4) UpdateUserRoles ¶

func (c *Client4) UpdateUserRoles(userId, roles string) (bool, *Response)

UpdateUserRoles updates a user's roles in the system. A user can have "system_user" and "system_admin" roles.

func (*Client4) UpdateUserStatus ¶

func (c *Client4) UpdateUserStatus(userId string, userStatus *Status) (*Status, *Response)

UpdateUserStatus sets a user's status based on the provided user id string.

func (*Client4) UploadBrandImage ¶

func (c *Client4) UploadBrandImage(data []byte) (bool, *Response)

UploadBrandImage sets the brand image for the system.

func (*Client4) UploadFile ¶

func (c *Client4) UploadFile(data []byte, channelId string, filename string) (*FileUploadResponse, *Response)

UploadFile will upload a file to a channel using a multipart request, to be later attached to a post. This method is functionally equivalent to Client4.UploadFileAsRequestBody.

func (*Client4) UploadFileAsRequestBody ¶

func (c *Client4) UploadFileAsRequestBody(data []byte, channelId string, filename string) (*FileUploadResponse, *Response)

UploadFileAsRequestBody will upload a file to a channel as the body of a request, to be later attached to a post. This method is functionally equivalent to Client4.UploadFile.

func (*Client4) UploadLicenseFile ¶

func (c *Client4) UploadLicenseFile(data []byte) (bool, *Response)

UploadLicenseFile will add a license file to the system.

func (*Client4) UploadPlugin ¶

func (c *Client4) UploadPlugin(file io.Reader) (*Manifest, *Response)

UploadPlugin takes an io.Reader stream pointing to the contents of a .tar.gz plugin. WARNING: PLUGINS ARE STILL EXPERIMENTAL. THIS FUNCTION IS SUBJECT TO CHANGE.

func (*Client4) UploadSamlIdpCertificate ¶

func (c *Client4) UploadSamlIdpCertificate(data []byte, filename string) (bool, *Response)

UploadSamlIdpCertificate will upload an IDP certificate for SAML and set the config to use it.

func (*Client4) UploadSamlPrivateCertificate ¶

func (c *Client4) UploadSamlPrivateCertificate(data []byte, filename string) (bool, *Response)

UploadSamlPrivateCertificate will upload a private key for SAML and set the config to use it.

func (*Client4) UploadSamlPublicCertificate ¶

func (c *Client4) UploadSamlPublicCertificate(data []byte, filename string) (bool, *Response)

UploadSamlPublicCertificate will upload a public certificate for SAML and set the config to use it.

func (*Client4) VerifyUserEmail ¶

func (c *Client4) VerifyUserEmail(token string) (bool, *Response)

VerifyUserEmail will verify a user's email using the supplied token.

func (*Client4) ViewChannel ¶

func (c *Client4) ViewChannel(userId string, view *ChannelView) (*ChannelViewResponse, *Response)

ViewChannel performs a view action for a user. Synonymous with switching channels or marking channels as read by a user.

type ClientRequirements ¶

type ClientRequirements struct {
	AndroidLatestVersion string
	AndroidMinVersion    string
	DesktopLatestVersion string
	DesktopMinVersion    string
	IosLatestVersion     string
	IosMinVersion        string
}

type ClusterDiscovery ¶

type ClusterDiscovery struct {
	Id          string `json:"id"`
	Type        string `json:"type"`
	ClusterName string `json:"cluster_name"`
	Hostname    string `json:"hostname"`
	GossipPort  int32  `json:"gossip_port"`
	Port        int32  `json:"port"`
	CreateAt    int64  `json:"create_at"`
	LastPingAt  int64  `json:"last_ping_at"`
}

func ClusterDiscoveryFromJson ¶

func ClusterDiscoveryFromJson(data io.Reader) *ClusterDiscovery

func FilterClusterDiscovery ¶

func FilterClusterDiscovery(vs []*ClusterDiscovery, f func(*ClusterDiscovery) bool) []*ClusterDiscovery

func (*ClusterDiscovery) AutoFillHostname ¶

func (o *ClusterDiscovery) AutoFillHostname()

func (*ClusterDiscovery) AutoFillIpAddress ¶

func (o *ClusterDiscovery) AutoFillIpAddress()

func (*ClusterDiscovery) IsEqual ¶

func (o *ClusterDiscovery) IsEqual(in *ClusterDiscovery) bool

func (*ClusterDiscovery) IsValid ¶

func (o *ClusterDiscovery) IsValid() *AppError

func (*ClusterDiscovery) PreSave ¶

func (o *ClusterDiscovery) PreSave()

func (*ClusterDiscovery) ToJson ¶

func (o *ClusterDiscovery) ToJson() string

type ClusterInfo ¶

type ClusterInfo struct {
	Id         string `json:"id"`
	Version    string `json:"version"`
	ConfigHash string `json:"config_hash"`
	IpAddress  string `json:"ipaddress"`
	Hostname   string `json:"hostname"`
}

func ClusterInfoFromJson ¶

func ClusterInfoFromJson(data io.Reader) *ClusterInfo

func ClusterInfosFromJson ¶

func ClusterInfosFromJson(data io.Reader) []*ClusterInfo

func (*ClusterInfo) ToJson ¶

func (me *ClusterInfo) ToJson() string

type ClusterMessage ¶

type ClusterMessage struct {
	Event            string            `json:"event"`
	SendType         string            `json:"-"`
	WaitForAllToSend bool              `json:"-"`
	Data             string            `json:"data,omitempty"`
	Props            map[string]string `json:"props,omitempty"`
}

func ClusterMessageFromJson ¶

func ClusterMessageFromJson(data io.Reader) *ClusterMessage

func (*ClusterMessage) ToJson ¶

func (o *ClusterMessage) ToJson() string

type ClusterSettings ¶

type ClusterSettings struct {
	Enable                *bool
	ClusterName           *string
	OverrideHostname      *string
	UseIpAddress          *bool
	UseExperimentalGossip *bool
	ReadOnlyConfig        *bool
	GossipPort            *int
	StreamingPort         *int
}

func (*ClusterSettings) SetDefaults ¶

func (s *ClusterSettings) SetDefaults()

type ClusterStats ¶

type ClusterStats struct {
	Id                        string `json:"id"`
	TotalWebsocketConnections int    `json:"total_websocket_connections"`
	TotalReadDbConnections    int    `json:"total_read_db_connections"`
	TotalMasterDbConnections  int    `json:"total_master_db_connections"`
}

func ClusterStatsFromJson ¶

func ClusterStatsFromJson(data io.Reader) *ClusterStats

func (*ClusterStats) ToJson ¶

func (me *ClusterStats) ToJson() string

type Command ¶

type Command struct {
	Id               string `json:"id"`
	Token            string `json:"token"`
	CreateAt         int64  `json:"create_at"`
	UpdateAt         int64  `json:"update_at"`
	DeleteAt         int64  `json:"delete_at"`
	CreatorId        string `json:"creator_id"`
	TeamId           string `json:"team_id"`
	Trigger          string `json:"trigger"`
	Method           string `json:"method"`
	Username         string `json:"username"`
	IconURL          string `json:"icon_url"`
	AutoComplete     bool   `json:"auto_complete"`
	AutoCompleteDesc string `json:"auto_complete_desc"`
	AutoCompleteHint string `json:"auto_complete_hint"`
	DisplayName      string `json:"display_name"`
	Description      string `json:"description"`
	URL              string `json:"url"`
}

func CommandFromJson ¶

func CommandFromJson(data io.Reader) *Command

func CommandListFromJson ¶

func CommandListFromJson(data io.Reader) []*Command

func (*Command) IsValid ¶

func (o *Command) IsValid() *AppError

func (*Command) PreSave ¶

func (o *Command) PreSave()

func (*Command) PreUpdate ¶

func (o *Command) PreUpdate()

func (*Command) Sanitize ¶

func (o *Command) Sanitize()

func (*Command) ToJson ¶

func (o *Command) ToJson() string

type CommandArgs ¶

type CommandArgs struct {
	UserId    string               `json:"user_id"`
	ChannelId string               `json:"channel_id"`
	TeamId    string               `json:"team_id"`
	RootId    string               `json:"root_id"`
	ParentId  string               `json:"parent_id"`
	Command   string               `json:"command"`
	SiteURL   string               `json:"-"`
	T         goi18n.TranslateFunc `json:"-"`
	Session   Session              `json:"-"`
}

func CommandArgsFromJson ¶

func CommandArgsFromJson(data io.Reader) *CommandArgs

func (*CommandArgs) ToJson ¶

func (o *CommandArgs) ToJson() string

type CommandResponse ¶

type CommandResponse struct {
	ResponseType string             `json:"response_type"`
	Text         string             `json:"text"`
	Username     string             `json:"username"`
	IconURL      string             `json:"icon_url"`
	Type         string             `json:"type"`
	Props        StringInterface    `json:"props"`
	GotoLocation string             `json:"goto_location"`
	Attachments  []*SlackAttachment `json:"attachments"`
}

func CommandResponseFromHTTPBody ¶

func CommandResponseFromHTTPBody(contentType string, body io.Reader) (*CommandResponse, error)

func CommandResponseFromJson ¶

func CommandResponseFromJson(data io.Reader) (*CommandResponse, error)

func CommandResponseFromPlainText ¶

func CommandResponseFromPlainText(text string) *CommandResponse

func (*CommandResponse) ToJson ¶

func (o *CommandResponse) ToJson() string

type CommandWebhook ¶

type CommandWebhook struct {
	Id        string
	CreateAt  int64
	CommandId string
	UserId    string
	ChannelId string
	RootId    string
	ParentId  string
	UseCount  int
}

func (*CommandWebhook) IsValid ¶

func (o *CommandWebhook) IsValid() *AppError

func (*CommandWebhook) PreSave ¶

func (o *CommandWebhook) PreSave()

type Compliance ¶

type Compliance struct {
	Id       string `json:"id"`
	CreateAt int64  `json:"create_at"`
	UserId   string `json:"user_id"`
	Status   string `json:"status"`
	Count    int    `json:"count"`
	Desc     string `json:"desc"`
	Type     string `json:"type"`
	StartAt  int64  `json:"start_at"`
	EndAt    int64  `json:"end_at"`
	Keywords string `json:"keywords"`
	Emails   string `json:"emails"`
}

func ComplianceFromJson ¶

func ComplianceFromJson(data io.Reader) *Compliance

func (*Compliance) IsValid ¶

func (me *Compliance) IsValid() *AppError

func (*Compliance) JobName ¶

func (me *Compliance) JobName() string

func (*Compliance) PreSave ¶

func (me *Compliance) PreSave()

func (*Compliance) ToJson ¶

func (o *Compliance) ToJson() string

type CompliancePost ¶

type CompliancePost struct {

	// From Team
	TeamName        string
	TeamDisplayName string

	// From Channel
	ChannelName        string
	ChannelDisplayName string
	ChannelType        string

	// From User
	UserUsername string
	UserEmail    string
	UserNickname string

	// From Post
	PostId         string
	PostCreateAt   int64
	PostUpdateAt   int64
	PostDeleteAt   int64
	PostRootId     string
	PostParentId   string
	PostOriginalId string
	PostMessage    string
	PostType       string
	PostProps      string
	PostHashtags   string
	PostFileIds    string
}

func (*CompliancePost) Row ¶

func (me *CompliancePost) Row() []string

type ComplianceSettings ¶

type ComplianceSettings struct {
	Enable      *bool
	Directory   *string
	EnableDaily *bool
}

func (*ComplianceSettings) SetDefaults ¶

func (s *ComplianceSettings) SetDefaults()

type Compliances ¶

type Compliances []Compliance

func CompliancesFromJson ¶

func CompliancesFromJson(data io.Reader) Compliances

func (Compliances) ToJson ¶

func (o Compliances) ToJson() string

type Config ¶

type Config struct {
	ServiceSettings       ServiceSettings
	TeamSettings          TeamSettings
	ClientRequirements    ClientRequirements
	SqlSettings           SqlSettings
	LogSettings           LogSettings
	PasswordSettings      PasswordSettings
	FileSettings          FileSettings
	EmailSettings         EmailSettings
	RateLimitSettings     RateLimitSettings
	PrivacySettings       PrivacySettings
	SupportSettings       SupportSettings
	AnnouncementSettings  AnnouncementSettings
	ThemeSettings         ThemeSettings
	GitLabSettings        SSOSettings
	GoogleSettings        SSOSettings
	Office365Settings     SSOSettings
	LdapSettings          LdapSettings
	ComplianceSettings    ComplianceSettings
	LocalizationSettings  LocalizationSettings
	SamlSettings          SamlSettings
	NativeAppSettings     NativeAppSettings
	ClusterSettings       ClusterSettings
	MetricsSettings       MetricsSettings
	AnalyticsSettings     AnalyticsSettings
	WebrtcSettings        WebrtcSettings
	ElasticsearchSettings ElasticsearchSettings
	DataRetentionSettings DataRetentionSettings
	MessageExportSettings MessageExportSettings
	JobSettings           JobSettings
	PluginSettings        PluginSettings
	DisplaySettings       DisplaySettings
	TimezoneSettings      TimezoneSettings
}

func ConfigFromJson ¶

func ConfigFromJson(data io.Reader) *Config

func (*Config) Clone ¶

func (o *Config) Clone() *Config

func (*Config) GetSSOService ¶

func (o *Config) GetSSOService(service string) *SSOSettings

func (*Config) GetSanitizeOptions ¶

func (o *Config) GetSanitizeOptions() map[string]bool

func (*Config) IsValid ¶

func (o *Config) IsValid() *AppError

func (*Config) Sanitize ¶

func (o *Config) Sanitize()

func (*Config) SetDefaults ¶

func (o *Config) SetDefaults()

func (*Config) ToJson ¶

func (o *Config) ToJson() string

type ConfigFunc ¶

type ConfigFunc func() *Config

type Customer ¶

type Customer struct {
	Id          string `json:"id"`
	Name        string `json:"name"`
	Email       string `json:"email"`
	Company     string `json:"company"`
	PhoneNumber string `json:"phone_number"`
}

type DataRetentionPolicy ¶

type DataRetentionPolicy struct {
	MessageDeletionEnabled bool  `json:"message_deletion_enabled"`
	FileDeletionEnabled    bool  `json:"file_deletion_enabled"`
	MessageRetentionCutoff int64 `json:"message_retention_cutoff"`
	FileRetentionCutoff    int64 `json:"file_retention_cutoff"`
}

func DataRetentionPolicyFromJson ¶

func DataRetentionPolicyFromJson(data io.Reader) *DataRetentionPolicy

func (*DataRetentionPolicy) ToJson ¶

func (me *DataRetentionPolicy) ToJson() string

type DataRetentionSettings ¶

type DataRetentionSettings struct {
	EnableMessageDeletion *bool
	EnableFileDeletion    *bool
	MessageRetentionDays  *int
	FileRetentionDays     *int
	DeletionJobStartTime  *string
}

func (*DataRetentionSettings) SetDefaults ¶

func (s *DataRetentionSettings) SetDefaults()

type DisplaySettings ¶

type DisplaySettings struct {
	ExperimentalTimezone *bool
}

func (*DisplaySettings) SetDefaults ¶

func (s *DisplaySettings) SetDefaults()

type ElasticsearchSettings ¶

type ElasticsearchSettings struct {
	ConnectionUrl                 *string
	Username                      *string
	Password                      *string
	EnableIndexing                *bool
	EnableSearching               *bool
	Sniff                         *bool
	PostIndexReplicas             *int
	PostIndexShards               *int
	AggregatePostsAfterDays       *int
	PostsAggregatorJobStartTime   *string
	IndexPrefix                   *string
	LiveIndexingBatchSize         *int
	BulkIndexingTimeWindowSeconds *int
	RequestTimeoutSeconds         *int
}

func (*ElasticsearchSettings) SetDefaults ¶

func (s *ElasticsearchSettings) SetDefaults()

type EmailSettings ¶

type EmailSettings struct {
	EnableSignUpWithEmail             bool
	EnableSignInWithEmail             *bool
	EnableSignInWithUsername          *bool
	SendEmailNotifications            bool
	UseChannelInEmailNotifications    *bool
	RequireEmailVerification          bool
	FeedbackName                      string
	FeedbackEmail                     string
	FeedbackOrganization              *string
	EnableSMTPAuth                    *bool
	SMTPUsername                      string
	SMTPPassword                      string
	SMTPServer                        string
	SMTPPort                          string
	ConnectionSecurity                string
	InviteSalt                        string
	SendPushNotifications             *bool
	PushNotificationServer            *string
	PushNotificationContents          *string
	EnableEmailBatching               *bool
	EmailBatchingBufferSize           *int
	EmailBatchingInterval             *int
	SkipServerCertificateVerification *bool
	EmailNotificationContentsType     *string
	LoginButtonColor                  *string
	LoginButtonBorderColor            *string
	LoginButtonTextColor              *string
}

func (*EmailSettings) SetDefaults ¶

func (s *EmailSettings) SetDefaults()

type Emoji ¶

type Emoji struct {
	Id        string `json:"id"`
	CreateAt  int64  `json:"create_at"`
	UpdateAt  int64  `json:"update_at"`
	DeleteAt  int64  `json:"delete_at"`
	CreatorId string `json:"creator_id"`
	Name      string `json:"name"`
}

func EmojiFromJson ¶

func EmojiFromJson(data io.Reader) *Emoji

func EmojiListFromJson ¶

func EmojiListFromJson(data io.Reader) []*Emoji

func (*Emoji) IsValid ¶

func (emoji *Emoji) IsValid() *AppError

func (*Emoji) PreSave ¶

func (emoji *Emoji) PreSave()

func (*Emoji) ToJson ¶

func (emoji *Emoji) ToJson() string

type EmojiSearch ¶

type EmojiSearch struct {
	Term       string `json:"term"`
	PrefixOnly bool   `json:"prefix_only"`
}

func EmojiSearchFromJson ¶

func EmojiSearchFromJson(data io.Reader) *EmojiSearch

func (*EmojiSearch) ToJson ¶

func (es *EmojiSearch) ToJson() string

type Features ¶

type Features struct {
	Users                     *int  `json:"users"`
	LDAP                      *bool `json:"ldap"`
	MFA                       *bool `json:"mfa"`
	GoogleOAuth               *bool `json:"google_oauth"`
	Office365OAuth            *bool `json:"office365_oauth"`
	Compliance                *bool `json:"compliance"`
	Cluster                   *bool `json:"cluster"`
	Metrics                   *bool `json:"metrics"`
	CustomBrand               *bool `json:"custom_brand"`
	MHPNS                     *bool `json:"mhpns"`
	SAML                      *bool `json:"saml"`
	PasswordRequirements      *bool `json:"password_requirements"`
	Elasticsearch             *bool `json:"elastic_search"`
	Announcement              *bool `json:"announcement"`
	ThemeManagement           *bool `json:"theme_management"`
	EmailNotificationContents *bool `json:"email_notification_contents"`
	DataRetention             *bool `json:"data_retention"`
	MessageExport             *bool `json:"message_export"`

	// after we enabled more features for webrtc we'll need to control them with this
	FutureFeatures *bool `json:"future_features"`
}

func (*Features) SetDefaults ¶

func (f *Features) SetDefaults()

func (*Features) ToMap ¶

func (f *Features) ToMap() map[string]interface{}

type FileInfo ¶

type FileInfo struct {
	Id              string `json:"id"`
	CreatorId       string `json:"user_id"`
	PostId          string `json:"post_id,omitempty"`
	CreateAt        int64  `json:"create_at"`
	UpdateAt        int64  `json:"update_at"`
	DeleteAt        int64  `json:"delete_at"`
	Path            string `json:"-"` // not sent back to the client
	ThumbnailPath   string `json:"-"` // not sent back to the client
	PreviewPath     string `json:"-"` // not sent back to the client
	Name            string `json:"name"`
	Extension       string `json:"extension"`
	Size            int64  `json:"size"`
	MimeType        string `json:"mime_type"`
	Width           int    `json:"width,omitempty"`
	Height          int    `json:"height,omitempty"`
	HasPreviewImage bool   `json:"has_preview_image,omitempty"`
}

func FileInfoFromJson ¶

func FileInfoFromJson(data io.Reader) *FileInfo

func FileInfosFromJson ¶

func FileInfosFromJson(data io.Reader) []*FileInfo

func (*FileInfo) IsImage ¶

func (o *FileInfo) IsImage() bool

func (*FileInfo) IsValid ¶

func (o *FileInfo) IsValid() *AppError

func (*FileInfo) PreSave ¶

func (o *FileInfo) PreSave()

func (*FileInfo) ToJson ¶

func (info *FileInfo) ToJson() string

type FileSettings ¶

type FileSettings struct {
	EnableFileAttachments   *bool
	EnableMobileUpload      *bool
	EnableMobileDownload    *bool
	MaxFileSize             *int64
	DriverName              *string
	Directory               string
	EnablePublicLink        bool
	PublicLinkSalt          *string
	InitialFont             string
	AmazonS3AccessKeyId     string
	AmazonS3SecretAccessKey string
	AmazonS3Bucket          string
	AmazonS3Region          string
	AmazonS3Endpoint        string
	AmazonS3SSL             *bool
	AmazonS3SignV2          *bool
	AmazonS3SSE             *bool
	AmazonS3Trace           *bool
}

func (*FileSettings) SetDefaults ¶

func (s *FileSettings) SetDefaults()

type FileUploadResponse ¶

type FileUploadResponse struct {
	FileInfos []*FileInfo `json:"file_infos"`
	ClientIds []string    `json:"client_ids"`
}

func FileUploadResponseFromJson ¶

func FileUploadResponseFromJson(data io.Reader) *FileUploadResponse

func (*FileUploadResponse) ToJson ¶

func (o *FileUploadResponse) ToJson() string

type GatewayResponse ¶

type GatewayResponse struct {
	Status string `json:"janus"`
}

func GatewayResponseFromJson ¶

func GatewayResponseFromJson(data io.Reader) *GatewayResponse

type GlobalRelayMessageExportSettings ¶

type GlobalRelayMessageExportSettings struct {
	CustomerType *string // must be either A9 or A10, dictates SMTP server url
	SmtpUsername *string
	SmtpPassword *string
	EmailAddress *string // the address to send messages to
}

func (*GlobalRelayMessageExportSettings) SetDefaults ¶

func (s *GlobalRelayMessageExportSettings) SetDefaults()

type IncomingWebhook ¶

type IncomingWebhook struct {
	Id          string `json:"id"`
	CreateAt    int64  `json:"create_at"`
	UpdateAt    int64  `json:"update_at"`
	DeleteAt    int64  `json:"delete_at"`
	UserId      string `json:"user_id"`
	ChannelId   string `json:"channel_id"`
	TeamId      string `json:"team_id"`
	DisplayName string `json:"display_name"`
	Description string `json:"description"`
	Username    string `json:"username"`
	IconURL     string `json:"icon_url"`
}

func IncomingWebhookFromJson ¶

func IncomingWebhookFromJson(data io.Reader) *IncomingWebhook

func IncomingWebhookListFromJson ¶

func IncomingWebhookListFromJson(data io.Reader) []*IncomingWebhook

func (*IncomingWebhook) IsValid ¶

func (o *IncomingWebhook) IsValid() *AppError

func (*IncomingWebhook) PreSave ¶

func (o *IncomingWebhook) PreSave()

func (*IncomingWebhook) PreUpdate ¶

func (o *IncomingWebhook) PreUpdate()

func (*IncomingWebhook) ToJson ¶

func (o *IncomingWebhook) ToJson() string

type IncomingWebhookRequest ¶

type IncomingWebhookRequest struct {
	Text        string             `json:"text"`
	Username    string             `json:"username"`
	IconURL     string             `json:"icon_url"`
	ChannelName string             `json:"channel"`
	Props       StringInterface    `json:"props"`
	Attachments []*SlackAttachment `json:"attachments"`
	Type        string             `json:"type"`
}

func (*IncomingWebhookRequest) ToJson ¶

func (o *IncomingWebhookRequest) ToJson() string

type InitialLoad ¶

type InitialLoad struct {
	User        *User             `json:"user"`
	TeamMembers []*TeamMember     `json:"team_members"`
	Teams       []*Team           `json:"teams"`
	Preferences Preferences       `json:"preferences"`
	ClientCfg   map[string]string `json:"client_cfg"`
	LicenseCfg  map[string]string `json:"license_cfg"`
	NoAccounts  bool              `json:"no_accounts"`
}

func InitialLoadFromJson ¶

func InitialLoadFromJson(data io.Reader) *InitialLoad

func (*InitialLoad) ToJson ¶

func (me *InitialLoad) ToJson() string

type Invites ¶

type Invites struct {
	Invites []map[string]string `json:"invites"`
}

func InvitesFromJson ¶

func InvitesFromJson(data io.Reader) *Invites

func (*Invites) ToEmailList ¶

func (o *Invites) ToEmailList() []string

func (*Invites) ToJson ¶

func (o *Invites) ToJson() string

type Job ¶

type Job struct {
	Id             string            `json:"id"`
	Type           string            `json:"type"`
	Priority       int64             `json:"priority"`
	CreateAt       int64             `json:"create_at"`
	StartAt        int64             `json:"start_at"`
	LastActivityAt int64             `json:"last_activity_at"`
	Status         string            `json:"status"`
	Progress       int64             `json:"progress"`
	Data           map[string]string `json:"data"`
}

func JobFromJson ¶

func JobFromJson(data io.Reader) *Job

func JobsFromJson ¶

func JobsFromJson(data io.Reader) []*Job

func (*Job) DataToJson ¶

func (js *Job) DataToJson() string

func (*Job) IsValid ¶

func (j *Job) IsValid() *AppError

func (*Job) ToJson ¶

func (js *Job) ToJson() string

type JobSettings ¶

type JobSettings struct {
	RunJobs      *bool
	RunScheduler *bool
}

func (*JobSettings) SetDefaults ¶

func (s *JobSettings) SetDefaults()

type LdapSettings ¶

type LdapSettings struct {
	// Basic
	Enable             *bool
	EnableSync         *bool
	LdapServer         *string
	LdapPort           *int
	ConnectionSecurity *string
	BaseDN             *string
	BindUsername       *string
	BindPassword       *string

	// Filtering
	UserFilter *string

	// User Mapping
	FirstNameAttribute *string
	LastNameAttribute  *string
	EmailAttribute     *string
	UsernameAttribute  *string
	NicknameAttribute  *string
	IdAttribute        *string
	PositionAttribute  *string

	// Synchronization
	SyncIntervalMinutes *int

	// Advanced
	SkipCertificateVerification *bool
	QueryTimeout                *int
	MaxPageSize                 *int

	// Customization
	LoginFieldName *string

	LoginButtonColor       *string
	LoginButtonBorderColor *string
	LoginButtonTextColor   *string
}

func (*LdapSettings) SetDefaults ¶

func (s *LdapSettings) SetDefaults()

type License ¶

type License struct {
	Id        string    `json:"id"`
	IssuedAt  int64     `json:"issued_at"`
	StartsAt  int64     `json:"starts_at"`
	ExpiresAt int64     `json:"expires_at"`
	Customer  *Customer `json:"customer"`
	Features  *Features `json:"features"`
}

func LicenseFromJson ¶

func LicenseFromJson(data io.Reader) *License

func NewTestLicense ¶

func NewTestLicense(features ...string) *License

NewTestLicense returns a license that expires in the future and has the given features.

func (*License) IsExpired ¶

func (l *License) IsExpired() bool

func (*License) IsStarted ¶

func (l *License) IsStarted() bool

func (*License) ToJson ¶

func (l *License) ToJson() string

type LicenseRecord ¶

type LicenseRecord struct {
	Id       string `json:"id"`
	CreateAt int64  `json:"create_at"`
	Bytes    string `json:"-"`
}

func (*LicenseRecord) IsValid ¶

func (lr *LicenseRecord) IsValid() *AppError

func (*LicenseRecord) PreSave ¶

func (lr *LicenseRecord) PreSave()

type LocalizationSettings ¶

type LocalizationSettings struct {
	DefaultServerLocale *string
	DefaultClientLocale *string
	AvailableLocales    *string
}

func (*LocalizationSettings) SetDefaults ¶

func (s *LocalizationSettings) SetDefaults()

type LogSettings ¶

type LogSettings struct {
	EnableConsole          bool
	ConsoleLevel           string
	ConsoleJson            *bool
	EnableFile             bool
	FileLevel              string
	FileJson               *bool
	FileLocation           string
	EnableWebhookDebugging bool
	EnableDiagnostics      *bool
}

func (*LogSettings) SetDefaults ¶

func (s *LogSettings) SetDefaults()

type Manifest ¶

type Manifest struct {
	// The id is a globally unique identifier that represents your plugin. Ids must be at least
	// 3 characters, at most 190 characters and must match ^[a-zA-Z0-9-_\.]+$.
	// Reverse-DNS notation using a name you control is a good option, e.g. "com.mycompany.myplugin".
	Id string `json:"id" yaml:"id"`

	// The name to be displayed for the plugin.
	Name string `json:"name,omitempty" yaml:"name,omitempty"`

	// A description of what your plugin is and does.
	Description string `json:"description,omitempty" yaml:"description,omitempty"`

	// A version number for your plugin. Semantic versioning is recommended: http://semver.org
	Version string `json:"version" yaml:"version"`

	// If your plugin extends the server, you'll need define backend.
	Backend *ManifestBackend `json:"backend,omitempty" yaml:"backend,omitempty"`

	// If your plugin extends the web app, you'll need to define webapp.
	Webapp *ManifestWebapp `json:"webapp,omitempty" yaml:"webapp,omitempty"`

	// To allow administrators to configure your plugin via the Mattermost system console, you can
	// provide your settings schema.
	SettingsSchema *PluginSettingsSchema `json:"settings_schema,omitempty" yaml:"settings_schema,omitempty"`
}

The plugin manifest defines the metadata required to load and present your plugin. The manifest file should be named plugin.json or plugin.yaml and placed in the top of your plugin bundle.

Example plugin.yaml:

id: com.mycompany.myplugin
name: My Plugin
description: This is my plugin. It does stuff.
backend:
    executable: myplugin
settings_schema:
    settings:
        - key: enable_extra_thing
          type: bool
          display_name: Enable Extra Thing
          help_text: When true, an extra thing will be enabled!
          default: false

func FindManifest ¶

func FindManifest(dir string) (manifest *Manifest, path string, err error)

FindManifest will find and parse the manifest in a given directory.

In all cases other than a does-not-exist error, path is set to the path of the manifest file that was found.

Manifests are JSON or YAML files named plugin.json, plugin.yaml, or plugin.yml.

func ManifestFromJson ¶

func ManifestFromJson(data io.Reader) *Manifest

func ManifestListFromJson ¶

func ManifestListFromJson(data io.Reader) []*Manifest

func (*Manifest) ClientManifest ¶

func (m *Manifest) ClientManifest() *Manifest

func (*Manifest) HasClient ¶

func (m *Manifest) HasClient() bool

func (*Manifest) ToJson ¶

func (m *Manifest) ToJson() string

type ManifestBackend ¶

type ManifestBackend struct {
	// The path to your executable binary. This should be relative to the root of your bundle and the
	// location of the manifest file.
	//
	// On Windows, this file must have a ".exe" extension.
	Executable string `json:"executable" yaml:"executable"`
}

type ManifestWebapp ¶

type ManifestWebapp struct {
	// The path to your webapp bundle. This should be relative to the root of your bundle and the
	// location of the manifest file.
	BundlePath string `json:"bundle_path" yaml:"bundle_path"`
}

type MessageExport ¶

type MessageExport struct {
	ChannelId          *string
	ChannelDisplayName *string
	ChannelType        *string

	UserId    *string
	UserEmail *string
	Username  *string

	PostId       *string
	PostCreateAt *int64
	PostMessage  *string
	PostType     *string
	PostFileIds  StringArray
}

type MessageExportSettings ¶

type MessageExportSettings struct {
	EnableExport        *bool
	ExportFormat        *string
	DailyRunTime        *string
	ExportFromTimestamp *int64
	BatchSize           *int

	// formatter-specific settings - these are only expected to be non-nil if ExportFormat is set to the associated format
	GlobalRelaySettings *GlobalRelayMessageExportSettings
}

func (*MessageExportSettings) SetDefaults ¶

func (s *MessageExportSettings) SetDefaults()

type MetricsSettings ¶

type MetricsSettings struct {
	Enable           *bool
	BlockProfileRate *int
	ListenAddress    *string
}

func (*MetricsSettings) SetDefaults ¶

func (s *MetricsSettings) SetDefaults()

type MfaSecret ¶

type MfaSecret struct {
	Secret string `json:"secret"`
	QRCode string `json:"qr_code"`
}

func MfaSecretFromJson ¶

func MfaSecretFromJson(data io.Reader) *MfaSecret

func (*MfaSecret) ToJson ¶

func (me *MfaSecret) ToJson() string

type NativeAppSettings ¶

type NativeAppSettings struct {
	AppDownloadLink        *string
	AndroidAppDownloadLink *string
	IosAppDownloadLink     *string
}

func (*NativeAppSettings) SetDefaults ¶

func (s *NativeAppSettings) SetDefaults()

type OAuthApp ¶

type OAuthApp struct {
	Id           string      `json:"id"`
	CreatorId    string      `json:"creator_id"`
	CreateAt     int64       `json:"create_at"`
	UpdateAt     int64       `json:"update_at"`
	ClientSecret string      `json:"client_secret"`
	Name         string      `json:"name"`
	Description  string      `json:"description"`
	IconURL      string      `json:"icon_url"`
	CallbackUrls StringArray `json:"callback_urls"`
	Homepage     string      `json:"homepage"`
	IsTrusted    bool        `json:"is_trusted"`
}

func OAuthAppFromJson ¶

func OAuthAppFromJson(data io.Reader) *OAuthApp

OAuthAppFromJson will decode the input and return a User

func OAuthAppListFromJson ¶

func OAuthAppListFromJson(data io.Reader) []*OAuthApp

func (*OAuthApp) Etag ¶

func (a *OAuthApp) Etag() string

Generate a valid strong etag so the browser can cache the results

func (*OAuthApp) IsValid ¶

func (a *OAuthApp) IsValid() *AppError

IsValid validates the app and returns an error if it isn't configured correctly.

func (*OAuthApp) IsValidRedirectURL ¶

func (a *OAuthApp) IsValidRedirectURL(url string) bool

func (*OAuthApp) PreSave ¶

func (a *OAuthApp) PreSave()

PreSave will set the Id and ClientSecret if missing. It will also fill in the CreateAt, UpdateAt times. It should be run before saving the app to the db.

func (*OAuthApp) PreUpdate ¶

func (a *OAuthApp) PreUpdate()

PreUpdate should be run before updating the app in the db.

func (*OAuthApp) Sanitize ¶

func (a *OAuthApp) Sanitize()

Remove any private data from the app object

func (*OAuthApp) ToJson ¶

func (a *OAuthApp) ToJson() string

ToJson convert a User to a json string

type OutgoingWebhook ¶

type OutgoingWebhook struct {
	Id           string      `json:"id"`
	Token        string      `json:"token"`
	CreateAt     int64       `json:"create_at"`
	UpdateAt     int64       `json:"update_at"`
	DeleteAt     int64       `json:"delete_at"`
	CreatorId    string      `json:"creator_id"`
	ChannelId    string      `json:"channel_id"`
	TeamId       string      `json:"team_id"`
	TriggerWords StringArray `json:"trigger_words"`
	TriggerWhen  int         `json:"trigger_when"`
	CallbackURLs StringArray `json:"callback_urls"`
	DisplayName  string      `json:"display_name"`
	Description  string      `json:"description"`
	ContentType  string      `json:"content_type"`
}

func OutgoingWebhookFromJson ¶

func OutgoingWebhookFromJson(data io.Reader) *OutgoingWebhook

func OutgoingWebhookListFromJson ¶

func OutgoingWebhookListFromJson(data io.Reader) []*OutgoingWebhook

func (*OutgoingWebhook) GetTriggerWord ¶

func (o *OutgoingWebhook) GetTriggerWord(word string, isExactMatch bool) (triggerWord string)

func (*OutgoingWebhook) IsValid ¶

func (o *OutgoingWebhook) IsValid() *AppError

func (*OutgoingWebhook) PreSave ¶

func (o *OutgoingWebhook) PreSave()

func (*OutgoingWebhook) PreUpdate ¶

func (o *OutgoingWebhook) PreUpdate()

func (*OutgoingWebhook) ToJson ¶

func (o *OutgoingWebhook) ToJson() string

func (*OutgoingWebhook) TriggerWordExactMatch ¶

func (o *OutgoingWebhook) TriggerWordExactMatch(word string) bool

func (*OutgoingWebhook) TriggerWordStartsWith ¶

func (o *OutgoingWebhook) TriggerWordStartsWith(word string) bool

type OutgoingWebhookPayload ¶

type OutgoingWebhookPayload struct {
	Token       string `json:"token"`
	TeamId      string `json:"team_id"`
	TeamDomain  string `json:"team_domain"`
	ChannelId   string `json:"channel_id"`
	ChannelName string `json:"channel_name"`
	Timestamp   int64  `json:"timestamp"`
	UserId      string `json:"user_id"`
	UserName    string `json:"user_name"`
	PostId      string `json:"post_id"`
	Text        string `json:"text"`
	TriggerWord string `json:"trigger_word"`
	FileIds     string `json:"file_ids"`
}

func (*OutgoingWebhookPayload) ToFormValues ¶

func (o *OutgoingWebhookPayload) ToFormValues() string

func (*OutgoingWebhookPayload) ToJSON ¶

func (o *OutgoingWebhookPayload) ToJSON() string

type OutgoingWebhookResponse ¶

type OutgoingWebhookResponse struct {
	Text         *string            `json:"text"`
	Username     string             `json:"username"`
	IconURL      string             `json:"icon_url"`
	Props        StringInterface    `json:"props"`
	Attachments  []*SlackAttachment `json:"attachments"`
	Type         string             `json:"type"`
	ResponseType string             `json:"response_type"`
}

func OutgoingWebhookResponseFromJson ¶

func OutgoingWebhookResponseFromJson(data io.Reader) *OutgoingWebhookResponse

func (*OutgoingWebhookResponse) ToJson ¶

func (o *OutgoingWebhookResponse) ToJson() string

type PasswordSettings ¶

type PasswordSettings struct {
	MinimumLength *int
	Lowercase     *bool
	Number        *bool
	Uppercase     *bool
	Symbol        *bool
}

func (*PasswordSettings) SetDefaults ¶

func (s *PasswordSettings) SetDefaults()

type Permission ¶

type Permission struct {
	Id          string `json:"id"`
	Name        string `json:"name"`
	Description string `json:"description"`
	Scope       string `json:"scope"`
}
var PERMISSION_ADD_REACTION *Permission
var PERMISSION_ADD_USER_TO_TEAM *Permission
var PERMISSION_ASSIGN_SYSTEM_ADMIN_ROLE *Permission
var PERMISSION_CREATE_DIRECT_CHANNEL *Permission
var PERMISSION_CREATE_GROUP_CHANNEL *Permission
var PERMISSION_CREATE_POST *Permission
var PERMISSION_CREATE_POST_EPHEMERAL *Permission
var PERMISSION_CREATE_POST_PUBLIC *Permission
var PERMISSION_CREATE_PRIVATE_CHANNEL *Permission
var PERMISSION_CREATE_PUBLIC_CHANNEL *Permission
var PERMISSION_CREATE_TEAM *Permission
var PERMISSION_CREATE_USER_ACCESS_TOKEN *Permission
var PERMISSION_DELETE_OTHERS_POSTS *Permission
var PERMISSION_DELETE_POST *Permission
var PERMISSION_DELETE_PRIVATE_CHANNEL *Permission
var PERMISSION_DELETE_PUBLIC_CHANNEL *Permission
var PERMISSION_EDIT_OTHERS_POSTS *Permission
var PERMISSION_EDIT_OTHER_USERS *Permission
var PERMISSION_EDIT_POST *Permission
var PERMISSION_GET_PUBLIC_LINK *Permission
var PERMISSION_IMPORT_TEAM *Permission
var PERMISSION_INVITE_USER *Permission
var PERMISSION_JOIN_PUBLIC_CHANNELS *Permission
var PERMISSION_LIST_TEAM_CHANNELS *Permission
var PERMISSION_LIST_USERS_WITHOUT_TEAM *Permission
var PERMISSION_MANAGE_CHANNEL_ROLES *Permission
var PERMISSION_MANAGE_JOBS *Permission
var PERMISSION_MANAGE_OAUTH *Permission
var PERMISSION_MANAGE_OTHERS_SLASH_COMMANDS *Permission
var PERMISSION_MANAGE_OTHERS_WEBHOOKS *Permission
var PERMISSION_MANAGE_PRIVATE_CHANNEL_MEMBERS *Permission
var PERMISSION_MANAGE_PRIVATE_CHANNEL_PROPERTIES *Permission
var PERMISSION_MANAGE_PUBLIC_CHANNEL_MEMBERS *Permission
var PERMISSION_MANAGE_PUBLIC_CHANNEL_PROPERTIES *Permission
var PERMISSION_MANAGE_ROLES *Permission
var PERMISSION_MANAGE_SLASH_COMMANDS *Permission
var PERMISSION_MANAGE_SYSTEM *Permission

General permission that encompasses all system admin functions in the future this could be broken up to allow access to some admin functions but not others

var PERMISSION_MANAGE_SYSTEM_WIDE_OAUTH *Permission
var PERMISSION_MANAGE_TEAM *Permission
var PERMISSION_MANAGE_TEAM_ROLES *Permission
var PERMISSION_MANAGE_WEBHOOKS *Permission
var PERMISSION_PERMANENT_DELETE_USER *Permission
var PERMISSION_READ_CHANNEL *Permission
var PERMISSION_READ_PUBLIC_CHANNEL *Permission
var PERMISSION_READ_USER_ACCESS_TOKEN *Permission
var PERMISSION_REMOVE_OTHERS_REACTIONS *Permission
var PERMISSION_REMOVE_REACTION *Permission
var PERMISSION_REMOVE_USER_FROM_TEAM *Permission
var PERMISSION_REVOKE_USER_ACCESS_TOKEN *Permission
var PERMISSION_UPLOAD_FILE *Permission
var PERMISSION_USE_SLASH_COMMANDS *Permission
var PERMISSION_VIEW_TEAM *Permission

type PluginInfo ¶

type PluginInfo struct {
	Manifest
	Prepackaged bool `json:"prepackaged"`
}

type PluginKeyValue ¶

type PluginKeyValue struct {
	PluginId string `json:"plugin_id"`
	Key      string `json:"key" db:"PKey"`
	Value    []byte `json:"value" db:"PValue"`
}

func (*PluginKeyValue) IsValid ¶

func (kv *PluginKeyValue) IsValid() *AppError

type PluginOption ¶

type PluginOption struct {
	// The display name for the option.
	DisplayName string `json:"display_name" yaml:"display_name"`

	// The string value for the option.
	Value string `json:"value" yaml:"value"`
}

type PluginSetting ¶

type PluginSetting struct {
	// The key that the setting will be assigned to in the configuration file.
	Key string `json:"key" yaml:"key"`

	// The display name for the setting.
	DisplayName string `json:"display_name" yaml:"display_name"`

	// The type of the setting.
	//
	// "bool" will result in a boolean true or false setting.
	//
	// "dropdown" will result in a string setting that allows the user to select from a list of
	// pre-defined options.
	//
	// "generated" will result in a string setting that is set to a random, cryptographically secure
	// string.
	//
	// "radio" will result in a string setting that allows the user to select from a short selection
	// of pre-defined options.
	//
	// "text" will result in a string setting that can be typed in manually.
	//
	// "username" will result in a text setting that will autocomplete to a username.
	Type string `json:"type" yaml:"type"`

	// The help text to display to the user.
	HelpText string `json:"help_text" yaml:"help_text"`

	// The help text to display alongside the "Regenerate" button for settings of the "generated" type.
	RegenerateHelpText string `json:"regenerate_help_text,omitempty" yaml:"regenerate_help_text,omitempty"`

	// The placeholder to display for "text", "generated" and "username" types when blank.
	Placeholder string `json:"placeholder" yaml:"placeholder"`

	// The default value of the setting.
	Default interface{} `json:"default" yaml:"default"`

	// For "radio" or "dropdown" settings, this is the list of pre-defined options that the user can choose
	// from.
	Options []*PluginOption `json:"options,omitempty" yaml:"options,omitempty"`
}

type PluginSettings ¶

type PluginSettings struct {
	Enable          *bool
	EnableUploads   *bool
	Directory       *string
	ClientDirectory *string
	Plugins         map[string]interface{}
	PluginStates    map[string]*PluginState
}

func (*PluginSettings) SetDefaults ¶

func (s *PluginSettings) SetDefaults()

type PluginSettingsSchema ¶

type PluginSettingsSchema struct {
	// Optional text to display above the settings.
	Header string `json:"header" yaml:"header"`

	// Optional text to display below the settings.
	Footer string `json:"footer" yaml:"footer"`

	// A list of setting definitions.
	Settings []*PluginSetting `json:"settings" yaml:"settings"`
}

type PluginState ¶

type PluginState struct {
	Enable bool
}

type PluginsResponse ¶

type PluginsResponse struct {
	Active   []*PluginInfo `json:"active"`
	Inactive []*PluginInfo `json:"inactive"`
}

func PluginsResponseFromJson ¶

func PluginsResponseFromJson(data io.Reader) *PluginsResponse

func (*PluginsResponse) ToJson ¶

func (m *PluginsResponse) ToJson() string

type Post ¶

type Post struct {
	Id         string `json:"id"`
	CreateAt   int64  `json:"create_at"`
	UpdateAt   int64  `json:"update_at"`
	EditAt     int64  `json:"edit_at"`
	DeleteAt   int64  `json:"delete_at"`
	IsPinned   bool   `json:"is_pinned"`
	UserId     string `json:"user_id"`
	ChannelId  string `json:"channel_id"`
	RootId     string `json:"root_id"`
	ParentId   string `json:"parent_id"`
	OriginalId string `json:"original_id"`

	Message string `json:"message"`

	// MessageSource will contain the message as submitted by the user if Message has been modified
	// by Mattermost for presentation (e.g if an image proxy is being used). It should be used to
	// populate edit boxes if present.
	MessageSource string `json:"message_source,omitempty" db:"-"`

	Type          string          `json:"type"`
	Props         StringInterface `json:"props"`
	Hashtags      string          `json:"hashtags"`
	Filenames     StringArray     `json:"filenames,omitempty"` // Deprecated, do not use this field any more
	FileIds       StringArray     `json:"file_ids,omitempty"`
	PendingPostId string          `json:"pending_post_id" db:"-"`
	HasReactions  bool            `json:"has_reactions,omitempty"`
}

func PostFromJson ¶

func PostFromJson(data io.Reader) *Post

func (*Post) AddProp ¶

func (o *Post) AddProp(key string, value interface{})

func (*Post) Attachments ¶

func (o *Post) Attachments() []*SlackAttachment

func (*Post) ChannelMentions ¶

func (o *Post) ChannelMentions() (names []string)

func (*Post) Etag ¶

func (o *Post) Etag() string

func (*Post) GenerateActionIds ¶

func (o *Post) GenerateActionIds()

func (*Post) GetAction ¶

func (o *Post) GetAction(id string) *PostAction

func (*Post) IsSystemMessage ¶

func (o *Post) IsSystemMessage() bool

func (*Post) IsValid ¶

func (o *Post) IsValid(maxPostSize int) *AppError

func (*Post) MakeNonNil ¶

func (o *Post) MakeNonNil()

func (*Post) Patch ¶

func (p *Post) Patch(patch *PostPatch)

func (*Post) PreCommit ¶

func (o *Post) PreCommit()

func (*Post) PreSave ¶

func (o *Post) PreSave()

func (*Post) SanitizeProps ¶

func (o *Post) SanitizeProps()

func (*Post) StripActionIntegrations ¶

func (o *Post) StripActionIntegrations()

func (*Post) ToJson ¶

func (o *Post) ToJson() string

func (*Post) ToUnsanitizedJson ¶

func (o *Post) ToUnsanitizedJson() string

func (*Post) WithRewrittenImageURLs ¶

func (o *Post) WithRewrittenImageURLs(f func(string) string) *Post

WithRewrittenImageURLs returns a new shallow copy of the post where the message has been rewritten via RewriteImageURLs.

type PostAction ¶

type PostAction struct {
	Id          string                 `json:"id"`
	Name        string                 `json:"name"`
	Integration *PostActionIntegration `json:"integration,omitempty"`
}

type PostActionIntegration ¶

type PostActionIntegration struct {
	URL     string          `json:"url,omitempty"`
	Context StringInterface `json:"context,omitempty"`
}

type PostActionIntegrationRequest ¶

type PostActionIntegrationRequest struct {
	UserId  string          `json:"user_id"`
	Context StringInterface `json:"context,omitempty"`
}

func (*PostActionIntegrationRequest) ToJson ¶

type PostActionIntegrationResponse ¶

type PostActionIntegrationResponse struct {
	Update        *Post  `json:"update"`
	EphemeralText string `json:"ephemeral_text"`
}

type PostEphemeral ¶

type PostEphemeral struct {
	UserID string `json:"user_id"`
	Post   *Post  `json:"post"`
}

func (*PostEphemeral) ToUnsanitizedJson ¶

func (o *PostEphemeral) ToUnsanitizedJson() string

type PostForIndexing ¶

type PostForIndexing struct {
	Post
	TeamId         string `json:"team_id"`
	ParentCreateAt *int64 `json:"parent_create_at"`
}

type PostList ¶

type PostList struct {
	Order []string         `json:"order"`
	Posts map[string]*Post `json:"posts"`
}

func NewPostList ¶

func NewPostList() *PostList

func PostListFromJson ¶

func PostListFromJson(data io.Reader) *PostList

func (*PostList) AddOrder ¶

func (o *PostList) AddOrder(id string)

func (*PostList) AddPost ¶

func (o *PostList) AddPost(post *Post)

func (*PostList) Etag ¶

func (o *PostList) Etag() string

func (*PostList) Extend ¶

func (o *PostList) Extend(other *PostList)

func (*PostList) IsChannelId ¶

func (o *PostList) IsChannelId(channelId string) bool

func (*PostList) MakeNonNil ¶

func (o *PostList) MakeNonNil()

func (*PostList) SortByCreateAt ¶

func (o *PostList) SortByCreateAt()

func (*PostList) StripActionIntegrations ¶

func (o *PostList) StripActionIntegrations()

func (*PostList) ToJson ¶

func (o *PostList) ToJson() string

func (*PostList) WithRewrittenImageURLs ¶

func (o *PostList) WithRewrittenImageURLs(f func(string) string) *PostList

type PostPatch ¶

type PostPatch struct {
	IsPinned     *bool            `json:"is_pinned"`
	Message      *string          `json:"message"`
	Props        *StringInterface `json:"props"`
	FileIds      *StringArray     `json:"file_ids"`
	HasReactions *bool            `json:"has_reactions"`
}

func PostPatchFromJson ¶

func PostPatchFromJson(data io.Reader) *PostPatch

func (*PostPatch) ToJson ¶

func (o *PostPatch) ToJson() string

func (*PostPatch) WithRewrittenImageURLs ¶

func (o *PostPatch) WithRewrittenImageURLs(f func(string) string) *PostPatch

type Preference ¶

type Preference struct {
	UserId   string `json:"user_id"`
	Category string `json:"category"`
	Name     string `json:"name"`
	Value    string `json:"value"`
}

func PreferenceFromJson ¶

func PreferenceFromJson(data io.Reader) *Preference

func (*Preference) IsValid ¶

func (o *Preference) IsValid() *AppError

func (*Preference) PreUpdate ¶

func (o *Preference) PreUpdate()

func (*Preference) ToJson ¶

func (o *Preference) ToJson() string

type Preferences ¶

type Preferences []Preference

func PreferencesFromJson ¶

func PreferencesFromJson(data io.Reader) (Preferences, error)

func (*Preferences) ToJson ¶

func (o *Preferences) ToJson() string

type PrivacySettings ¶

type PrivacySettings struct {
	ShowEmailAddress bool
	ShowFullName     bool
}

type PushNotification ¶

type PushNotification struct {
	Platform         string `json:"platform"`
	ServerId         string `json:"server_id"`
	DeviceId         string `json:"device_id"`
	Category         string `json:"category"`
	Sound            string `json:"sound"`
	Message          string `json:"message"`
	Badge            int    `json:"badge"`
	ContentAvailable int    `json:"cont_ava"`
	TeamId           string `json:"team_id"`
	ChannelId        string `json:"channel_id"`
	PostId           string `json:"post_id"`
	RootId           string `json:"root_id"`
	ChannelName      string `json:"channel_name"`
	Type             string `json:"type"`
	SenderId         string `json:"sender_id"`
	OverrideUsername string `json:"override_username"`
	OverrideIconUrl  string `json:"override_icon_url"`
	FromWebhook      string `json:"from_webhook"`
}

func PushNotificationFromJson ¶

func PushNotificationFromJson(data io.Reader) *PushNotification

func (*PushNotification) SetDeviceIdAndPlatform ¶

func (me *PushNotification) SetDeviceIdAndPlatform(deviceId string)

func (*PushNotification) ToJson ¶

func (me *PushNotification) ToJson() string

type PushResponse ¶

type PushResponse map[string]string

func NewErrorPushResponse ¶

func NewErrorPushResponse(message string) PushResponse

func NewOkPushResponse ¶

func NewOkPushResponse() PushResponse

func NewRemovePushResponse ¶

func NewRemovePushResponse() PushResponse

func PushResponseFromJson ¶

func PushResponseFromJson(data io.Reader) PushResponse

func (*PushResponse) ToJson ¶

func (me *PushResponse) ToJson() string

type RateLimitSettings ¶

type RateLimitSettings struct {
	Enable           *bool
	PerSec           *int
	MaxBurst         *int
	MemoryStoreSize  *int
	VaryByRemoteAddr *bool
	VaryByUser       *bool
	VaryByHeader     string
}

func (*RateLimitSettings) SetDefaults ¶

func (s *RateLimitSettings) SetDefaults()

type Reaction ¶

type Reaction struct {
	UserId    string `json:"user_id"`
	PostId    string `json:"post_id"`
	EmojiName string `json:"emoji_name"`
	CreateAt  int64  `json:"create_at"`
}

func ReactionFromJson ¶

func ReactionFromJson(data io.Reader) *Reaction

func ReactionsFromJson ¶

func ReactionsFromJson(data io.Reader) []*Reaction

func (*Reaction) IsValid ¶

func (o *Reaction) IsValid() *AppError

func (*Reaction) PreSave ¶

func (o *Reaction) PreSave()

func (*Reaction) ToJson ¶

func (o *Reaction) ToJson() string

type Response ¶

type Response struct {
	StatusCode    int
	Error         *AppError
	RequestId     string
	Etag          string
	ServerVersion string
	Header        http.Header
}

func BuildErrorResponse ¶

func BuildErrorResponse(r *http.Response, err *AppError) *Response

func BuildResponse ¶

func BuildResponse(r *http.Response) *Response

type ResponseMetadata ¶

type ResponseMetadata struct {
	StatusCode int
	Error      *AppError
	RequestId  string
	Etag       string
}

type Result ¶

type Result struct {
	RequestId string
	Etag      string
	Data      interface{}
}

type Role ¶

type Role struct {
	Id            string   `json:"id"`
	Name          string   `json:"name"`
	DisplayName   string   `json:"display_name"`
	Description   string   `json:"description"`
	CreateAt      int64    `json:"create_at"`
	UpdateAt      int64    `json:"update_at"`
	DeleteAt      int64    `json:"delete_at"`
	Permissions   []string `json:"permissions"`
	SchemeManaged bool     `json:"scheme_managed"`
}

func RoleFromJson ¶

func RoleFromJson(data io.Reader) *Role

func RoleListFromJson ¶

func RoleListFromJson(data io.Reader) []*Role

func (*Role) IsValid ¶

func (role *Role) IsValid() bool

func (*Role) IsValidWithoutId ¶

func (role *Role) IsValidWithoutId() bool

func (*Role) Patch ¶

func (o *Role) Patch(patch *RolePatch)

func (*Role) ToJson ¶

func (role *Role) ToJson() string

type RolePatch ¶

type RolePatch struct {
	Permissions *[]string `json:"permissions"`
}

func RolePatchFromJson ¶

func RolePatchFromJson(data io.Reader) *RolePatch

func (*RolePatch) ToJson ¶

func (r *RolePatch) ToJson() string

type SSOSettings ¶

type SSOSettings struct {
	Enable          bool
	Secret          string
	Id              string
	Scope           string
	AuthEndpoint    string
	TokenEndpoint   string
	UserApiEndpoint string
}

type SamlAuthRequest ¶

type SamlAuthRequest struct {
	Base64AuthRequest string
	URL               string
	RelayState        string
}

type SamlCertificateStatus ¶

type SamlCertificateStatus struct {
	IdpCertificateFile    bool `json:"idp_certificate_file"`
	PrivateKeyFile        bool `json:"private_key_file"`
	PublicCertificateFile bool `json:"public_certificate_file"`
}

func SamlCertificateStatusFromJson ¶

func SamlCertificateStatusFromJson(data io.Reader) *SamlCertificateStatus

func (*SamlCertificateStatus) ToJson ¶

func (s *SamlCertificateStatus) ToJson() string

type SamlSettings ¶

type SamlSettings struct {
	// Basic
	Enable             *bool
	EnableSyncWithLdap *bool

	Verify  *bool
	Encrypt *bool

	IdpUrl                      *string
	IdpDescriptorUrl            *string
	AssertionConsumerServiceURL *string

	ScopingIDPProviderId *string
	ScopingIDPName       *string

	IdpCertificateFile    *string
	PublicCertificateFile *string
	PrivateKeyFile        *string

	// User Mapping
	FirstNameAttribute *string
	LastNameAttribute  *string
	EmailAttribute     *string
	UsernameAttribute  *string
	NicknameAttribute  *string
	LocaleAttribute    *string
	PositionAttribute  *string

	LoginButtonText *string

	LoginButtonColor       *string
	LoginButtonBorderColor *string
	LoginButtonTextColor   *string
}

func (*SamlSettings) SetDefaults ¶

func (s *SamlSettings) SetDefaults()

type ScheduledTask ¶

type ScheduledTask struct {
	Name      string        `json:"name"`
	Interval  time.Duration `json:"interval"`
	Recurring bool          `json:"recurring"`
	// contains filtered or unexported fields
}

func CreateRecurringTask ¶

func CreateRecurringTask(name string, function TaskFunc, interval time.Duration) *ScheduledTask

func CreateTask ¶

func CreateTask(name string, function TaskFunc, timeToExecution time.Duration) *ScheduledTask

func (*ScheduledTask) Cancel ¶

func (task *ScheduledTask) Cancel()

func (*ScheduledTask) String ¶

func (task *ScheduledTask) String() string

type Scheduler ¶

type Scheduler interface {
	Name() string
	JobType() string
	Enabled(cfg *Config) bool
	NextScheduleTime(cfg *Config, now time.Time, pendingJobs bool, lastSuccessfulJob *Job) *time.Time
	ScheduleJob(cfg *Config, pendingJobs bool, lastSuccessfulJob *Job) (*Job, *AppError)
}

type SearchParams ¶

type SearchParams struct {
	Terms      string
	IsHashtag  bool
	InChannels []string
	FromUsers  []string
	OrTerms    bool
}

func ParseSearchParams ¶

func ParseSearchParams(text string) []*SearchParams

type SecurityBulletin ¶

type SecurityBulletin struct {
	Id               string `json:"id"`
	AppliesToVersion string `json:"applies_to_version"`
}

func SecurityBulletinFromJson ¶

func SecurityBulletinFromJson(data io.Reader) *SecurityBulletin

func (*SecurityBulletin) ToJson ¶

func (me *SecurityBulletin) ToJson() string

type SecurityBulletins ¶

type SecurityBulletins []SecurityBulletin

func SecurityBulletinsFromJson ¶

func SecurityBulletinsFromJson(data io.Reader) SecurityBulletins

func (SecurityBulletins) ToJson ¶

func (me SecurityBulletins) ToJson() string

type ServiceSettings ¶

type ServiceSettings struct {
	SiteURL                                           *string
	WebsocketURL                                      *string
	LicenseFileLocation                               *string
	ListenAddress                                     *string
	ConnectionSecurity                                *string
	TLSCertFile                                       *string
	TLSKeyFile                                        *string
	UseLetsEncrypt                                    *bool
	LetsEncryptCertificateCacheFile                   *string
	Forward80To443                                    *bool
	ReadTimeout                                       *int
	WriteTimeout                                      *int
	MaximumLoginAttempts                              *int
	GoroutineHealthThreshold                          *int
	GoogleDeveloperKey                                string
	EnableOAuthServiceProvider                        bool
	EnableIncomingWebhooks                            bool
	EnableOutgoingWebhooks                            bool
	EnableCommands                                    *bool
	EnableOnlyAdminIntegrations                       *bool
	EnablePostUsernameOverride                        bool
	EnablePostIconOverride                            bool
	EnableAPIv3                                       *bool
	EnableLinkPreviews                                *bool
	EnableTesting                                     bool
	EnableDeveloper                                   *bool
	EnableSecurityFixAlert                            *bool
	EnableInsecureOutgoingConnections                 *bool
	AllowedUntrustedInternalConnections               *string
	EnableMultifactorAuthentication                   *bool
	EnforceMultifactorAuthentication                  *bool
	EnableUserAccessTokens                            *bool
	AllowCorsFrom                                     *string
	AllowCookiesForSubdomains                         *bool
	SessionLengthWebInDays                            *int
	SessionLengthMobileInDays                         *int
	SessionLengthSSOInDays                            *int
	SessionCacheInMinutes                             *int
	SessionIdleTimeoutInMinutes                       *int
	WebsocketSecurePort                               *int
	WebsocketPort                                     *int
	WebserverMode                                     *string
	EnableCustomEmoji                                 *bool
	EnableEmojiPicker                                 *bool
	RestrictCustomEmojiCreation                       *string
	RestrictPostDelete                                *string
	AllowEditPost                                     *string
	PostEditTimeLimit                                 *int
	TimeBetweenUserTypingUpdatesMilliseconds          *int64
	EnablePostSearch                                  *bool
	EnableUserTypingMessages                          *bool
	EnableChannelViewedMessages                       *bool
	EnableUserStatuses                                *bool
	ExperimentalEnableAuthenticationTransfer          *bool
	ClusterLogTimeoutMilliseconds                     *int
	CloseUnusedDirectMessages                         *bool
	EnablePreviewFeatures                             *bool
	EnableTutorial                                    *bool
	ExperimentalEnableDefaultChannelLeaveJoinMessages *bool
	ExperimentalGroupUnreadChannels                   *string
	ImageProxyType                                    *string
	ImageProxyURL                                     *string
	ImageProxyOptions                                 *string
}

func (*ServiceSettings) SetDefaults ¶

func (s *ServiceSettings) SetDefaults()

type Session ¶

type Session struct {
	Id             string        `json:"id"`
	Token          string        `json:"token"`
	CreateAt       int64         `json:"create_at"`
	ExpiresAt      int64         `json:"expires_at"`
	LastActivityAt int64         `json:"last_activity_at"`
	UserId         string        `json:"user_id"`
	DeviceId       string        `json:"device_id"`
	Roles          string        `json:"roles"`
	IsOAuth        bool          `json:"is_oauth"`
	Props          StringMap     `json:"props"`
	TeamMembers    []*TeamMember `json:"team_members" db:"-"`
}

func SessionFromJson ¶

func SessionFromJson(data io.Reader) *Session

func SessionsFromJson ¶

func SessionsFromJson(data io.Reader) []*Session

func (*Session) AddProp ¶

func (me *Session) AddProp(key string, value string)

func (*Session) DeepCopy ¶

func (me *Session) DeepCopy() *Session

func (*Session) GetTeamByTeamId ¶

func (me *Session) GetTeamByTeamId(teamId string) *TeamMember

func (*Session) GetUserRoles ¶

func (me *Session) GetUserRoles() []string

func (*Session) IsExpired ¶

func (me *Session) IsExpired() bool

func (*Session) IsMobileApp ¶

func (me *Session) IsMobileApp() bool

func (*Session) PreSave ¶

func (me *Session) PreSave()

func (*Session) Sanitize ¶

func (me *Session) Sanitize()

func (*Session) SetExpireInDays ¶

func (me *Session) SetExpireInDays(days int)

func (*Session) ToJson ¶

func (me *Session) ToJson() string

type SlackAttachment ¶

type SlackAttachment struct {
	Id         int64                   `json:"id"`
	Fallback   string                  `json:"fallback"`
	Color      string                  `json:"color"`
	Pretext    string                  `json:"pretext"`
	AuthorName string                  `json:"author_name"`
	AuthorLink string                  `json:"author_link"`
	AuthorIcon string                  `json:"author_icon"`
	Title      string                  `json:"title"`
	TitleLink  string                  `json:"title_link"`
	Text       string                  `json:"text"`
	Fields     []*SlackAttachmentField `json:"fields"`
	ImageURL   string                  `json:"image_url"`
	ThumbURL   string                  `json:"thumb_url"`
	Footer     string                  `json:"footer"`
	FooterIcon string                  `json:"footer_icon"`
	Timestamp  interface{}             `json:"ts"` // This is either a string or an int64
	Actions    []*PostAction           `json:"actions,omitempty"`
}

func StringifySlackFieldValue ¶

func StringifySlackFieldValue(a []*SlackAttachment) []*SlackAttachment

type SlackAttachmentField ¶

type SlackAttachmentField struct {
	Title string      `json:"title"`
	Value interface{} `json:"value"`
	Short bool        `json:"short"`
}

type SqlSettings ¶

type SqlSettings struct {
	DriverName               *string
	DataSource               *string
	DataSourceReplicas       []string
	DataSourceSearchReplicas []string
	MaxIdleConns             *int
	MaxOpenConns             *int
	Trace                    bool
	AtRestEncryptKey         string
	QueryTimeout             *int
}

func (*SqlSettings) SetDefaults ¶

func (s *SqlSettings) SetDefaults()

type Status ¶

type Status struct {
	UserId         string `json:"user_id"`
	Status         string `json:"status"`
	Manual         bool   `json:"manual"`
	LastActivityAt int64  `json:"last_activity_at"`
	ActiveChannel  string `json:"-" db:"-"`
}

func StatusFromJson ¶

func StatusFromJson(data io.Reader) *Status

func StatusListFromJson ¶

func StatusListFromJson(data io.Reader) []*Status

func (*Status) ToJson ¶

func (o *Status) ToJson() string

type StringArray ¶

type StringArray []string

type StringInterface ¶

type StringInterface map[string]interface{}

type StringMap ¶

type StringMap map[string]string

func GetDefaultChannelNotifyProps ¶

func GetDefaultChannelNotifyProps() StringMap

type SuggestCommand ¶

type SuggestCommand struct {
	Suggestion  string `json:"suggestion"`
	Description string `json:"description"`
}

func SuggestCommandFromJson ¶

func SuggestCommandFromJson(data io.Reader) *SuggestCommand

func (*SuggestCommand) ToJson ¶

func (o *SuggestCommand) ToJson() string

type SupportSettings ¶

type SupportSettings struct {
	TermsOfServiceLink *string
	PrivacyPolicyLink  *string
	AboutLink          *string
	HelpLink           *string
	ReportAProblemLink *string
	SupportEmail       *string
}

func (*SupportSettings) SetDefaults ¶

func (s *SupportSettings) SetDefaults()

type SupportedTimezones ¶

type SupportedTimezones []string

func TimezonesFromJson ¶

func TimezonesFromJson(data io.Reader) SupportedTimezones

type SwitchRequest ¶

type SwitchRequest struct {
	CurrentService string `json:"current_service"`
	NewService     string `json:"new_service"`
	Email          string `json:"email"`
	Password       string `json:"password"`
	NewPassword    string `json:"new_password"`
	MfaCode        string `json:"mfa_code"`
	LdapId         string `json:"ldap_id"`
}

func SwitchRequestFromJson ¶

func SwitchRequestFromJson(data io.Reader) *SwitchRequest

func (*SwitchRequest) EmailToLdap ¶

func (o *SwitchRequest) EmailToLdap() bool

func (*SwitchRequest) EmailToOAuth ¶

func (o *SwitchRequest) EmailToOAuth() bool

func (*SwitchRequest) LdapToEmail ¶

func (o *SwitchRequest) LdapToEmail() bool

func (*SwitchRequest) OAuthToEmail ¶

func (o *SwitchRequest) OAuthToEmail() bool

func (*SwitchRequest) ToJson ¶

func (o *SwitchRequest) ToJson() string

type System ¶

type System struct {
	Name  string `json:"name"`
	Value string `json:"value"`
}

func SystemFromJson ¶

func SystemFromJson(data io.Reader) *System

func (*System) ToJson ¶

func (o *System) ToJson() string

type SystemAsymmetricSigningKey ¶

type SystemAsymmetricSigningKey struct {
	ECDSAKey *SystemECDSAKey `json:"ecdsa_key,omitempty"`
}

type SystemECDSAKey ¶

type SystemECDSAKey struct {
	Curve string   `json:"curve"`
	X     *big.Int `json:"x"`
	Y     *big.Int `json:"y"`
	D     *big.Int `json:"d,omitempty"`
}

type TaskFunc ¶

type TaskFunc func()

type Team ¶

type Team struct {
	Id                 string `json:"id"`
	CreateAt           int64  `json:"create_at"`
	UpdateAt           int64  `json:"update_at"`
	DeleteAt           int64  `json:"delete_at"`
	DisplayName        string `json:"display_name"`
	Name               string `json:"name"`
	Description        string `json:"description"`
	Email              string `json:"email"`
	Type               string `json:"type"`
	CompanyName        string `json:"company_name"`
	AllowedDomains     string `json:"allowed_domains"`
	InviteId           string `json:"invite_id"`
	AllowOpenInvite    bool   `json:"allow_open_invite"`
	LastTeamIconUpdate int64  `json:"last_team_icon_update,omitempty"`
}

func TeamFromJson ¶

func TeamFromJson(data io.Reader) *Team

func TeamListFromJson ¶

func TeamListFromJson(data io.Reader) []*Team

func (*Team) Etag ¶

func (o *Team) Etag() string

func (*Team) IsValid ¶

func (o *Team) IsValid() *AppError

func (*Team) Patch ¶

func (t *Team) Patch(patch *TeamPatch)

func (*Team) PreSave ¶

func (o *Team) PreSave()

func (*Team) PreUpdate ¶

func (o *Team) PreUpdate()

func (*Team) Sanitize ¶

func (o *Team) Sanitize()

func (*Team) ToJson ¶

func (o *Team) ToJson() string

type TeamMember ¶

type TeamMember struct {
	TeamId   string `json:"team_id"`
	UserId   string `json:"user_id"`
	Roles    string `json:"roles"`
	DeleteAt int64  `json:"delete_at"`
}

func TeamMemberFromJson ¶

func TeamMemberFromJson(data io.Reader) *TeamMember

func TeamMembersFromJson ¶

func TeamMembersFromJson(data io.Reader) []*TeamMember

func (*TeamMember) GetRoles ¶

func (o *TeamMember) GetRoles() []string

func (*TeamMember) IsValid ¶

func (o *TeamMember) IsValid() *AppError

func (*TeamMember) PreUpdate ¶

func (o *TeamMember) PreUpdate()

func (*TeamMember) ToJson ¶

func (o *TeamMember) ToJson() string

type TeamPatch ¶

type TeamPatch struct {
	DisplayName     *string `json:"display_name"`
	Description     *string `json:"description"`
	CompanyName     *string `json:"company_name"`
	InviteId        *string `json:"invite_id"`
	AllowOpenInvite *bool   `json:"allow_open_invite"`
}

func TeamPatchFromJson ¶

func TeamPatchFromJson(data io.Reader) *TeamPatch

func (*TeamPatch) ToJson ¶

func (t *TeamPatch) ToJson() string

type TeamSearch ¶

type TeamSearch struct {
	Term string `json:"term"`
}

func TeamSearchFromJson ¶

func TeamSearchFromJson(data io.Reader) *TeamSearch

TeamSearchFromJson decodes the input and returns a TeamSearch

func (*TeamSearch) ToJson ¶

func (c *TeamSearch) ToJson() string

ToJson convert a TeamSearch to json string

type TeamSettings ¶

type TeamSettings struct {
	SiteName                            string
	MaxUsersPerTeam                     *int
	EnableTeamCreation                  *bool
	EnableUserCreation                  bool
	EnableOpenServer                    *bool
	RestrictCreationToDomains           string
	EnableCustomBrand                   *bool
	CustomBrandText                     *string
	CustomDescriptionText               *string
	RestrictDirectMessage               *string
	RestrictTeamInvite                  *string
	RestrictPublicChannelManagement     *string
	RestrictPrivateChannelManagement    *string
	RestrictPublicChannelCreation       *string
	RestrictPrivateChannelCreation      *string
	RestrictPublicChannelDeletion       *string
	RestrictPrivateChannelDeletion      *string
	RestrictPrivateChannelManageMembers *string
	EnableXToLeaveChannelsFromLHS       *bool
	UserStatusAwayTimeout               *int64
	MaxChannelsPerTeam                  *int64
	MaxNotificationsPerChannel          *int64
	EnableConfirmNotificationsToChannel *bool
	TeammateNameDisplay                 *string
	ExperimentalEnableAutomaticReplies  *bool
	ExperimentalTownSquareIsReadOnly    *bool
	ExperimentalPrimaryTeam             *string
}

func (*TeamSettings) SetDefaults ¶

func (s *TeamSettings) SetDefaults()

type TeamStats ¶

type TeamStats struct {
	TeamId            string `json:"team_id"`
	TotalMemberCount  int64  `json:"total_member_count"`
	ActiveMemberCount int64  `json:"active_member_count"`
}

func TeamStatsFromJson ¶

func TeamStatsFromJson(data io.Reader) *TeamStats

func (*TeamStats) ToJson ¶

func (o *TeamStats) ToJson() string

type TeamUnread ¶

type TeamUnread struct {
	TeamId       string `json:"team_id"`
	MsgCount     int64  `json:"msg_count"`
	MentionCount int64  `json:"mention_count"`
}

func TeamUnreadFromJson ¶

func TeamUnreadFromJson(data io.Reader) *TeamUnread

func TeamsUnreadFromJson ¶

func TeamsUnreadFromJson(data io.Reader) []*TeamUnread

func (*TeamUnread) ToJson ¶

func (o *TeamUnread) ToJson() string

type ThemeSettings ¶

type ThemeSettings struct {
	EnableThemeSelection *bool
	DefaultTheme         *string
	AllowCustomThemes    *bool
	AllowedThemes        []string
}

func (*ThemeSettings) SetDefaults ¶

func (s *ThemeSettings) SetDefaults()

type TimezoneSettings ¶

type TimezoneSettings struct {
	SupportedTimezonesPath *string
}

func (*TimezoneSettings) SetDefaults ¶

func (s *TimezoneSettings) SetDefaults()

type Token ¶

type Token struct {
	Token    string
	CreateAt int64
	Type     string
	Extra    string
}

func NewToken ¶

func NewToken(tokentype, extra string) *Token

func (*Token) IsValid ¶

func (t *Token) IsValid() *AppError

type User ¶

type User struct {
	Id                 string    `json:"id"`
	CreateAt           int64     `json:"create_at,omitempty"`
	UpdateAt           int64     `json:"update_at,omitempty"`
	DeleteAt           int64     `json:"delete_at"`
	Username           string    `json:"username"`
	Password           string    `json:"password,omitempty"`
	AuthData           *string   `json:"auth_data,omitempty"`
	AuthService        string    `json:"auth_service"`
	Email              string    `json:"email"`
	EmailVerified      bool      `json:"email_verified,omitempty"`
	Nickname           string    `json:"nickname"`
	FirstName          string    `json:"first_name"`
	LastName           string    `json:"last_name"`
	Position           string    `json:"position"`
	Roles              string    `json:"roles"`
	AllowMarketing     bool      `json:"allow_marketing,omitempty"`
	Props              StringMap `json:"props,omitempty"`
	NotifyProps        StringMap `json:"notify_props,omitempty"`
	LastPasswordUpdate int64     `json:"last_password_update,omitempty"`
	LastPictureUpdate  int64     `json:"last_picture_update,omitempty"`
	FailedAttempts     int       `json:"failed_attempts,omitempty"`
	Locale             string    `json:"locale"`
	Timezone           StringMap `json:"timezone"`
	MfaActive          bool      `json:"mfa_active,omitempty"`
	MfaSecret          string    `json:"mfa_secret,omitempty"`
	LastActivityAt     int64     `db:"-" json:"last_activity_at,omitempty"`
}

func UserFromJson ¶

func UserFromJson(data io.Reader) *User

UserFromJson will decode the input and return a User

func UserListFromJson ¶

func UserListFromJson(data io.Reader) []*User

func (*User) AddNotifyProp ¶

func (u *User) AddNotifyProp(key string, value string)

func (*User) ClearNonProfileFields ¶

func (u *User) ClearNonProfileFields()

func (*User) DeepCopy ¶

func (u *User) DeepCopy() *User

func (*User) Etag ¶

func (u *User) Etag(showFullName, showEmail bool) string

Generate a valid strong etag so the browser can cache the results

func (*User) GetDisplayName ¶

func (u *User) GetDisplayName(nameFormat string) string

func (*User) GetFullName ¶

func (u *User) GetFullName() string

func (*User) GetRawRoles ¶

func (u *User) GetRawRoles() string

func (*User) GetRoles ¶

func (u *User) GetRoles() []string

func (*User) IsInRole ¶

func (u *User) IsInRole(inRole string) bool

Make sure you acually want to use this function. In context.go there are functions to check permissions This function should not be used to check permissions.

func (*User) IsLDAPUser ¶

func (u *User) IsLDAPUser() bool

func (*User) IsOAuthUser ¶

func (u *User) IsOAuthUser() bool

func (*User) IsSAMLUser ¶

func (u *User) IsSAMLUser() bool

func (*User) IsSSOUser ¶

func (u *User) IsSSOUser() bool

func (*User) IsValid ¶

func (u *User) IsValid() *AppError

IsValid validates the user and returns an error if it isn't configured correctly.

func (*User) MakeNonNil ¶

func (u *User) MakeNonNil()

func (*User) Patch ¶

func (u *User) Patch(patch *UserPatch)

func (*User) PreSave ¶

func (u *User) PreSave()

PreSave will set the Id and Username if missing. It will also fill in the CreateAt, UpdateAt times. It will also hash the password. It should be run before saving the user to the db.

func (*User) PreUpdate ¶

func (u *User) PreUpdate()

PreUpdate should be run before updating the user in the db.

func (*User) Sanitize ¶

func (u *User) Sanitize(options map[string]bool)

Remove any private data from the user object

func (*User) SanitizeProfile ¶

func (u *User) SanitizeProfile(options map[string]bool)

func (*User) SetDefaultNotifications ¶

func (u *User) SetDefaultNotifications()

func (*User) ToJson ¶

func (u *User) ToJson() string

ToJson convert a User to a json string

func (*User) UpdateMentionKeysFromUsername ¶

func (user *User) UpdateMentionKeysFromUsername(oldUsername string)

type UserAccessToken ¶

type UserAccessToken struct {
	Id          string `json:"id"`
	Token       string `json:"token,omitempty"`
	UserId      string `json:"user_id"`
	Description string `json:"description"`
	IsActive    bool   `json:"is_active"`
}

func UserAccessTokenFromJson ¶

func UserAccessTokenFromJson(data io.Reader) *UserAccessToken

func UserAccessTokenListFromJson ¶

func UserAccessTokenListFromJson(data io.Reader) []*UserAccessToken

func (*UserAccessToken) IsValid ¶

func (t *UserAccessToken) IsValid() *AppError

func (*UserAccessToken) PreSave ¶

func (t *UserAccessToken) PreSave()

func (*UserAccessToken) ToJson ¶

func (t *UserAccessToken) ToJson() string

type UserAccessTokenSearch ¶

type UserAccessTokenSearch struct {
	Term string `json:"term"`
}

func UserAccessTokenSearchFromJson ¶

func UserAccessTokenSearchFromJson(data io.Reader) *UserAccessTokenSearch

UserAccessTokenSearchJson decodes the input and returns a UserAccessTokenSearch

func (*UserAccessTokenSearch) ToJson ¶

func (c *UserAccessTokenSearch) ToJson() string

ToJson convert a UserAccessTokenSearch to json string

type UserAuth ¶

type UserAuth struct {
	Password    string  `json:"password,omitempty"`
	AuthData    *string `json:"auth_data,omitempty"`
	AuthService string  `json:"auth_service,omitempty"`
}

func UserAuthFromJson ¶

func UserAuthFromJson(data io.Reader) *UserAuth

func (*UserAuth) ToJson ¶

func (u *UserAuth) ToJson() string

type UserAutocomplete ¶

type UserAutocomplete struct {
	Users        []*User `json:"users"`
	OutOfChannel []*User `json:"out_of_channel,omitempty"`
}

func UserAutocompleteFromJson ¶

func UserAutocompleteFromJson(data io.Reader) *UserAutocomplete

func (*UserAutocomplete) ToJson ¶

func (o *UserAutocomplete) ToJson() string

type UserAutocompleteInChannel ¶

type UserAutocompleteInChannel struct {
	InChannel    []*User `json:"in_channel"`
	OutOfChannel []*User `json:"out_of_channel"`
}

func UserAutocompleteInChannelFromJson ¶

func UserAutocompleteInChannelFromJson(data io.Reader) *UserAutocompleteInChannel

func (*UserAutocompleteInChannel) ToJson ¶

func (o *UserAutocompleteInChannel) ToJson() string

type UserAutocompleteInTeam ¶

type UserAutocompleteInTeam struct {
	InTeam []*User `json:"in_team"`
}

func UserAutocompleteInTeamFromJson ¶

func UserAutocompleteInTeamFromJson(data io.Reader) *UserAutocompleteInTeam

func (*UserAutocompleteInTeam) ToJson ¶

func (o *UserAutocompleteInTeam) ToJson() string

type UserPatch ¶

type UserPatch struct {
	Username    *string   `json:"username"`
	Password    *string   `json:"password,omitempty"`
	Nickname    *string   `json:"nickname"`
	FirstName   *string   `json:"first_name"`
	LastName    *string   `json:"last_name"`
	Position    *string   `json:"position"`
	Email       *string   `json:"email"`
	Props       StringMap `json:"props,omitempty"`
	NotifyProps StringMap `json:"notify_props,omitempty"`
	Locale      *string   `json:"locale"`
	Timezone    StringMap `json:"timezone"`
}

func UserPatchFromJson ¶

func UserPatchFromJson(data io.Reader) *UserPatch

func (*UserPatch) ToJson ¶

func (u *UserPatch) ToJson() string

type UserSearch ¶

type UserSearch struct {
	Term           string `json:"term"`
	TeamId         string `json:"team_id"`
	NotInTeamId    string `json:"not_in_team_id"`
	InChannelId    string `json:"in_channel_id"`
	NotInChannelId string `json:"not_in_channel_id"`
	AllowInactive  bool   `json:"allow_inactive"`
	WithoutTeam    bool   `json:"without_team"`
}

func UserSearchFromJson ¶

func UserSearchFromJson(data io.Reader) *UserSearch

UserSearchFromJson will decode the input and return a User

func (*UserSearch) ToJson ¶

func (u *UserSearch) ToJson() string

ToJson convert a User to a json string

type WebSocketClient ¶

type WebSocketClient struct {
	Url             string          // The location of the server like "ws://localhost:8065"
	ApiUrl          string          // The api location of the server like "ws://localhost:8065/api/v3"
	ConnectUrl      string          // The websocket URL to connect to like "ws://localhost:8065/api/v3/path/to/websocket"
	Conn            *websocket.Conn // The WebSocket connection
	AuthToken       string          // The token used to open the WebSocket
	Sequence        int64           // The ever-incrementing sequence attached to each WebSocket action
	EventChannel    chan *WebSocketEvent
	ResponseChannel chan *WebSocketResponse
	ListenError     *AppError
}

func (*WebSocketClient) Close ¶

func (wsc *WebSocketClient) Close()

func (*WebSocketClient) Connect ¶

func (wsc *WebSocketClient) Connect() *AppError

func (*WebSocketClient) ConnectWithDialer ¶

func (wsc *WebSocketClient) ConnectWithDialer(dialer *websocket.Dialer) *AppError

func (*WebSocketClient) GetStatuses ¶

func (wsc *WebSocketClient) GetStatuses()

GetStatuses will return a map of string statuses using user id as the key

func (*WebSocketClient) GetStatusesByIds ¶

func (wsc *WebSocketClient) GetStatusesByIds(userIds []string)

GetStatusesByIds will fetch certain user statuses based on ids and return a map of string statuses using user id as the key

func (*WebSocketClient) Listen ¶

func (wsc *WebSocketClient) Listen()

func (*WebSocketClient) SendMessage ¶

func (wsc *WebSocketClient) SendMessage(action string, data map[string]interface{})

func (*WebSocketClient) UserTyping ¶

func (wsc *WebSocketClient) UserTyping(channelId, parentId string)

UserTyping will push a user_typing event out to all connected users who are in the specified channel

type WebSocketEvent ¶

type WebSocketEvent struct {
	Event     string                 `json:"event"`
	Data      map[string]interface{} `json:"data"`
	Broadcast *WebsocketBroadcast    `json:"broadcast"`
	Sequence  int64                  `json:"seq"`
	// contains filtered or unexported fields
}

func NewWebSocketEvent ¶

func NewWebSocketEvent(event, teamId, channelId, userId string, omitUsers map[string]bool) *WebSocketEvent

func WebSocketEventFromJson ¶

func WebSocketEventFromJson(data io.Reader) *WebSocketEvent

func (*WebSocketEvent) Add ¶

func (m *WebSocketEvent) Add(key string, value interface{})

func (*WebSocketEvent) EventType ¶

func (o *WebSocketEvent) EventType() string

func (*WebSocketEvent) IsValid ¶

func (o *WebSocketEvent) IsValid() bool

func (*WebSocketEvent) PrecomputeJSON ¶

func (m *WebSocketEvent) PrecomputeJSON()

PrecomputeJSON precomputes and stores the serialized JSON for all fields other than Sequence. This makes ToJson much more efficient when sending the same event to multiple connections.

func (*WebSocketEvent) ToJson ¶

func (o *WebSocketEvent) ToJson() string

type WebSocketMessage ¶

type WebSocketMessage interface {
	ToJson() string
	IsValid() bool
	EventType() string
}

type WebSocketRequest ¶

type WebSocketRequest struct {
	// Client-provided fields
	Seq    int64                  `json:"seq"`
	Action string                 `json:"action"`
	Data   map[string]interface{} `json:"data"`

	// Server-provided fields
	Session Session              `json:"-"`
	T       goi18n.TranslateFunc `json:"-"`
	Locale  string               `json:"-"`
}

func WebSocketRequestFromJson ¶

func WebSocketRequestFromJson(data io.Reader) *WebSocketRequest

func (*WebSocketRequest) ToJson ¶

func (o *WebSocketRequest) ToJson() string

type WebSocketResponse ¶

type WebSocketResponse struct {
	Status   string                 `json:"status"`
	SeqReply int64                  `json:"seq_reply,omitempty"`
	Data     map[string]interface{} `json:"data,omitempty"`
	Error    *AppError              `json:"error,omitempty"`
}

func NewWebSocketError ¶

func NewWebSocketError(seqReply int64, err *AppError) *WebSocketResponse

func NewWebSocketResponse ¶

func NewWebSocketResponse(status string, seqReply int64, data map[string]interface{}) *WebSocketResponse

func WebSocketResponseFromJson ¶

func WebSocketResponseFromJson(data io.Reader) *WebSocketResponse

func (*WebSocketResponse) Add ¶

func (m *WebSocketResponse) Add(key string, value interface{})

func (*WebSocketResponse) EventType ¶

func (o *WebSocketResponse) EventType() string

func (*WebSocketResponse) IsValid ¶

func (o *WebSocketResponse) IsValid() bool

func (*WebSocketResponse) ToJson ¶

func (o *WebSocketResponse) ToJson() string

type WebrtcInfoResponse ¶

type WebrtcInfoResponse struct {
	Token        string `json:"token"`
	GatewayUrl   string `json:"gateway_url"`
	StunUri      string `json:"stun_uri,omitempty"`
	TurnUri      string `json:"turn_uri,omitempty"`
	TurnPassword string `json:"turn_password,omitempty"`
	TurnUsername string `json:"turn_username,omitempty"`
}

func WebrtcInfoResponseFromJson ¶

func WebrtcInfoResponseFromJson(data io.Reader) *WebrtcInfoResponse

func (*WebrtcInfoResponse) ToJson ¶

func (o *WebrtcInfoResponse) ToJson() string

type WebrtcSettings ¶

type WebrtcSettings struct {
	Enable              *bool
	GatewayWebsocketUrl *string
	GatewayAdminUrl     *string
	GatewayAdminSecret  *string
	StunURI             *string
	TurnURI             *string
	TurnUsername        *string
	TurnSharedKey       *string
}

func (*WebrtcSettings) SetDefaults ¶

func (s *WebrtcSettings) SetDefaults()

type WebsocketBroadcast ¶

type WebsocketBroadcast struct {
	OmitUsers             map[string]bool `json:"omit_users"` // broadcast is omitted for users listed here
	UserId                string          `json:"user_id"`    // broadcast only occurs for this user
	ChannelId             string          `json:"channel_id"` // broadcast only occurs for users in this channel
	TeamId                string          `json:"team_id"`    // broadcast only occurs for users in this team
	ContainsSanitizedData bool            `json:"-"`
	ContainsSensitiveData bool            `json:"-"`
}

type Worker ¶

type Worker interface {
	Run()
	Stop()
	JobChannel() chan<- Job
}

Directories ¶

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL