jolicode / slack-php-api

:hash: PHP Slack Client based on the official OpenAPI specification
https://jolicode.github.io/slack-php-api/
MIT License
224 stars 56 forks source link

October 2020 api spec update #96

Closed xavierlacot closed 3 years ago

xavierlacot commented 3 years ago
xavierlacot commented 3 years ago

The Client has a new namespace: \JoliCode\Slack\Api\Runtime\Client\Client

Nope, the client is still the same class like before: \JoliCode\Slack\Api\Client, it simply extends \JoliCode\Slack\Api\Runtime\Client\Client

Let's try to list the new Endpoints

Here we go :smiley: Below, the list of the endpoint changes introduced since the last version:

change path description class
- /admin.apps.approve Approve an app for installation on a workspace. JoliCode\Slack\Api\Endpoint\AdminAppsApprove
- /admin.apps.approved.list List approved apps for an org or workspace. JoliCode\Slack\Api\Endpoint\AdminAppsApprovedList
- /admin.apps.requests.list List app requests for a team/workspace. JoliCode\Slack\Api\Endpoint\AdminAppsRequestsList
- /admin.apps.restrict Restrict an app for installation on a workspace. JoliCode\Slack\Api\Endpoint\AdminAppsRestrict
- /admin.apps.restricted.list List restricted apps for an org or workspace. JoliCode\Slack\Api\Endpoint\AdminAppsRestrictedList
added /admin.conversations.archive Archive a public or private channel. JoliCode\Slack\Api\Endpoint\AdminConversationsArchive
added /admin.conversations.convertToPrivate Convert a public channel to a private channel. JoliCode\Slack\Api\Endpoint\AdminConversationsConvertToPrivate
added /admin.conversations.create Create a public or private channel-based conversation. JoliCode\Slack\Api\Endpoint\AdminConversationsCreate
added /admin.conversations.delete Delete a public or private channel. JoliCode\Slack\Api\Endpoint\AdminConversationsDelete
added /admin.conversations.disconnectShared Disconnect a connected channel from one or more workspaces. JoliCode\Slack\Api\Endpoint\AdminConversationsDisconnectShared
added /admin.conversations.ekm.listOriginalConnectedChannelInfo List all disconnected channels—i.e., channels that were once connected to other workspaces and then disconnected—and the corresponding original channel IDs for key revocation with EKM. JoliCode\Slack\Api\Endpoint\AdminConversationsEkmListOriginalConnectedChannelInfo
added /admin.conversations.getConversationPrefs Get conversation preferences for a public or private channel. JoliCode\Slack\Api\Endpoint\AdminConversationsGetConversationPrefs
added /admin.conversations.getTeams Get all the workspaces a given public or private channel is connected to within this Enterprise org. JoliCode\Slack\Api\Endpoint\AdminConversationsGetTeams
added /admin.conversations.invite Invite a user to a public or private channel. JoliCode\Slack\Api\Endpoint\AdminConversationsInvite
added /admin.conversations.rename Rename a public or private channel. JoliCode\Slack\Api\Endpoint\AdminConversationsRename
added /admin.conversations.restrictAccess.addGroup Add an allowlist of IDP groups for accessing a channel JoliCode\Slack\Api\Endpoint\AdminConversationsRestrictAccessAddGroup
added /admin.conversations.restrictAccess.listGroups List all IDP Groups linked to a channel JoliCode\Slack\Api\Endpoint\AdminConversationsRestrictAccessListGroups
added /admin.conversations.restrictAccess.removeGroup Remove a linked IDP group linked from a private channel JoliCode\Slack\Api\Endpoint\AdminConversationsRestrictAccessRemoveGroup
added /admin.conversations.search Search for public or private channels in an Enterprise organization. JoliCode\Slack\Api\Endpoint\AdminConversationsSearch
added /admin.conversations.setConversationPrefs Set the posting permissions for a public or private channel. JoliCode\Slack\Api\Endpoint\AdminConversationsSetConversationPrefs
- /admin.conversations.setTeams Set the workspaces in an Enterprise grid org that connect to a public or private channel. JoliCode\Slack\Api\Endpoint\AdminConversationsSetTeams
added /admin.conversations.unarchive Unarchive a public or private channel. JoliCode\Slack\Api\Endpoint\AdminConversationsUnarchive
- /admin.emoji.add Add an emoji. JoliCode\Slack\Api\Endpoint\AdminEmojiAdd
- /admin.emoji.addAlias Add an emoji alias. JoliCode\Slack\Api\Endpoint\AdminEmojiAddAlias
- /admin.emoji.list List emoji for an Enterprise Grid organization. JoliCode\Slack\Api\Endpoint\AdminEmojiList
- /admin.emoji.remove Remove an emoji across an Enterprise Grid organization JoliCode\Slack\Api\Endpoint\AdminEmojiRemove
- /admin.emoji.rename Rename an emoji. JoliCode\Slack\Api\Endpoint\AdminEmojiRename
- /admin.inviteRequests.approve Approve a workspace invite request. JoliCode\Slack\Api\Endpoint\AdminInviteRequestsApprove
- /admin.inviteRequests.approved.list List all approved workspace invite requests. JoliCode\Slack\Api\Endpoint\AdminInviteRequestsApprovedList
- /admin.inviteRequests.denied.list List all denied workspace invite requests. JoliCode\Slack\Api\Endpoint\AdminInviteRequestsDeniedList
- /admin.inviteRequests.deny Deny a workspace invite request. JoliCode\Slack\Api\Endpoint\AdminInviteRequestsDeny
- /admin.inviteRequests.list List all pending workspace invite requests. JoliCode\Slack\Api\Endpoint\AdminInviteRequestsList
- /admin.teams.admins.list List all of the admins on a given workspace. JoliCode\Slack\Api\Endpoint\AdminTeamsAdminsList
- /admin.teams.create Create an Enterprise team. JoliCode\Slack\Api\Endpoint\AdminTeamsCreate
- /admin.teams.list List all teams on an Enterprise organization JoliCode\Slack\Api\Endpoint\AdminTeamsList
- /admin.teams.owners.list List all of the owners on a given workspace. JoliCode\Slack\Api\Endpoint\AdminTeamsOwnersList
- /admin.teams.settings.info Fetch information about settings in a workspace JoliCode\Slack\Api\Endpoint\AdminTeamsSettingsInfo
- /admin.teams.settings.setDefaultChannels Set the default channels of a workspace. JoliCode\Slack\Api\Endpoint\AdminTeamsSettingsSetDefaultChannels
- /admin.teams.settings.setDescription Set the description of a given workspace. JoliCode\Slack\Api\Endpoint\AdminTeamsSettingsSetDescription
- /admin.teams.settings.setDiscoverability An API method that allows admins to set the discoverability of a given workspace JoliCode\Slack\Api\Endpoint\AdminTeamsSettingsSetDiscoverability
- /admin.teams.settings.setIcon Sets the icon of a workspace. JoliCode\Slack\Api\Endpoint\AdminTeamsSettingsSetIcon
- /admin.teams.settings.setName Set the name of a given workspace. JoliCode\Slack\Api\Endpoint\AdminTeamsSettingsSetName
added /admin.usergroups.addChannels Add one or more default channels to an IDP group. JoliCode\Slack\Api\Endpoint\AdminUsergroupsAddChannels
added /admin.usergroups.addTeams Associate one or more default workspaces with an organization-wide IDP group. JoliCode\Slack\Api\Endpoint\AdminUsergroupsAddTeams
added /admin.usergroups.listChannels List the channels linked to an org-level IDP group (user group). JoliCode\Slack\Api\Endpoint\AdminUsergroupsListChannels
added /admin.usergroups.removeChannels Remove one or more default channels from an org-level IDP group (user group). JoliCode\Slack\Api\Endpoint\AdminUsergroupsRemoveChannels
- /admin.users.assign Add an Enterprise user to a workspace. JoliCode\Slack\Api\Endpoint\AdminUsersAssign
- /admin.users.invite Invite a user to a workspace. JoliCode\Slack\Api\Endpoint\AdminUsersInvite
- /admin.users.list List users on a workspace JoliCode\Slack\Api\Endpoint\AdminUsersList
- /admin.users.remove Remove a user from a workspace. JoliCode\Slack\Api\Endpoint\AdminUsersRemove
added /admin.users.session.invalidate Invalidate a single session for a user by session_id JoliCode\Slack\Api\Endpoint\AdminUsersSessionInvalidate
- /admin.users.session.reset Wipes all valid sessions on all devices for a given user JoliCode\Slack\Api\Endpoint\AdminUsersSessionReset
- /admin.users.setAdmin Set an existing guest, regular user, or owner to be an admin user. JoliCode\Slack\Api\Endpoint\AdminUsersSetAdmin
- /admin.users.setExpiration Set an expiration for a guest user JoliCode\Slack\Api\Endpoint\AdminUsersSetExpiration
- /admin.users.setOwner Set an existing guest, regular user, or admin user to be a workspace owner. JoliCode\Slack\Api\Endpoint\AdminUsersSetOwner
- /admin.users.setRegular Set an existing guest user, admin user, or owner to be a regular user. JoliCode\Slack\Api\Endpoint\AdminUsersSetRegular
- /api.test Checks API calling code. JoliCode\Slack\Api\Endpoint\ApiTest
added /apps.event.authorizations.list Get a list of authorizations for the given event context. Each authorization represents an app installation that the event is visible to. JoliCode\Slack\Api\Endpoint\AppsEventAuthorizationsList
- /apps.permissions.info Returns list of permissions this app has on a team. JoliCode\Slack\Api\Endpoint\AppsPermissionsInfo
- /apps.permissions.request Allows an app to request additional scopes JoliCode\Slack\Api\Endpoint\AppsPermissionsRequest
- /apps.permissions.resources.list Returns list of resource grants this app has on a team. JoliCode\Slack\Api\Endpoint\AppsPermissionsResourcesList
- /apps.permissions.scopes.list Returns list of scopes this app has on a team. JoliCode\Slack\Api\Endpoint\AppsPermissionsScopesList
- /apps.permissions.users.list Returns list of user grants and corresponding scopes this app has on a team. JoliCode\Slack\Api\Endpoint\AppsPermissionsUsersList
- /apps.permissions.users.request Enables an app to trigger a permissions modal to grant an app access to a user access scope. JoliCode\Slack\Api\Endpoint\AppsPermissionsUsersRequest
- /apps.uninstall Uninstalls your app from a workspace. JoliCode\Slack\Api\Endpoint\AppsUninstall
- /auth.revoke Revokes a token. JoliCode\Slack\Api\Endpoint\AuthRevoke
- /auth.test Checks authentication & identity. JoliCode\Slack\Api\Endpoint\AuthTest
- /bots.info Gets information about a bot user. JoliCode\Slack\Api\Endpoint\BotsInfo
added /calls.add Registers a new Call. JoliCode\Slack\Api\Endpoint\CallsAdd
added /calls.end Ends a Call. JoliCode\Slack\Api\Endpoint\CallsEnd
added /calls.info Returns information about a Call. JoliCode\Slack\Api\Endpoint\CallsInfo
added /calls.participants.add Registers new participants added to a Call. JoliCode\Slack\Api\Endpoint\CallsParticipantsAdd
added /calls.participants.remove Registers participants removed from a Call. JoliCode\Slack\Api\Endpoint\CallsParticipantsRemove
added /calls.update Updates information about a Call. JoliCode\Slack\Api\Endpoint\CallsUpdate
- /chat.delete Deletes a message. JoliCode\Slack\Api\Endpoint\ChatDelete
- /chat.deleteScheduledMessage Deletes a pending scheduled message from the queue. JoliCode\Slack\Api\Endpoint\ChatDeleteScheduledMessage
- /chat.getPermalink Retrieve a permalink URL for a specific extant message JoliCode\Slack\Api\Endpoint\ChatGetPermalink
- /chat.meMessage Share a me message into a channel. JoliCode\Slack\Api\Endpoint\ChatMeMessage
- /chat.postEphemeral Sends an ephemeral message to a user in a channel. JoliCode\Slack\Api\Endpoint\ChatPostEphemeral
- /chat.postMessage Sends a message to a channel. JoliCode\Slack\Api\Endpoint\ChatPostMessage
- /chat.scheduleMessage Schedules a message to be sent to a channel. JoliCode\Slack\Api\Endpoint\ChatScheduleMessage
- /chat.scheduledMessages.list Returns a list of scheduled messages. JoliCode\Slack\Api\Endpoint\ChatScheduledMessagesList
- /chat.unfurl Provide custom unfurl behavior for user-posted URLs JoliCode\Slack\Api\Endpoint\ChatUnfurl
- /chat.update Updates a message. JoliCode\Slack\Api\Endpoint\ChatUpdate
- /conversations.archive Archives a conversation. JoliCode\Slack\Api\Endpoint\ConversationsArchive
- /conversations.close Closes a direct message or multi-person direct message. JoliCode\Slack\Api\Endpoint\ConversationsClose
- /conversations.create Initiates a public or private channel-based conversation JoliCode\Slack\Api\Endpoint\ConversationsCreate
- /conversations.history Fetches a conversation's history of messages and events. JoliCode\Slack\Api\Endpoint\ConversationsHistory
- /conversations.info Retrieve information about a conversation. JoliCode\Slack\Api\Endpoint\ConversationsInfo
- /conversations.invite Invites users to a channel. JoliCode\Slack\Api\Endpoint\ConversationsInvite
- /conversations.join Joins an existing conversation. JoliCode\Slack\Api\Endpoint\ConversationsJoin
- /conversations.kick Removes a user from a conversation. JoliCode\Slack\Api\Endpoint\ConversationsKick
- /conversations.leave Leaves a conversation. JoliCode\Slack\Api\Endpoint\ConversationsLeave
- /conversations.list Lists all channels in a Slack team. JoliCode\Slack\Api\Endpoint\ConversationsList
added /conversations.mark Sets the read cursor in a channel. JoliCode\Slack\Api\Endpoint\ConversationsMark
- /conversations.members Retrieve members of a conversation. JoliCode\Slack\Api\Endpoint\ConversationsMembers
- /conversations.open Opens or resumes a direct message or multi-person direct message. JoliCode\Slack\Api\Endpoint\ConversationsOpen
- /conversations.rename Renames a conversation. JoliCode\Slack\Api\Endpoint\ConversationsRename
- /conversations.replies Retrieve a thread of messages posted to a conversation JoliCode\Slack\Api\Endpoint\ConversationsReplies
- /conversations.setPurpose Sets the purpose for a conversation. JoliCode\Slack\Api\Endpoint\ConversationsSetPurpose
- /conversations.setTopic Sets the topic for a conversation. JoliCode\Slack\Api\Endpoint\ConversationsSetTopic
- /conversations.unarchive Reverses conversation archival. JoliCode\Slack\Api\Endpoint\ConversationsUnarchive
- /dialog.open Open a dialog with a user JoliCode\Slack\Api\Endpoint\DialogOpen
- /dnd.endDnd Ends the current user's Do Not Disturb session immediately. JoliCode\Slack\Api\Endpoint\DndEndDnd
- /dnd.endSnooze Ends the current user's snooze mode immediately. JoliCode\Slack\Api\Endpoint\DndEndSnooze
- /dnd.info Retrieves a user's current Do Not Disturb status. JoliCode\Slack\Api\Endpoint\DndInfo
- /dnd.setSnooze Turns on Do Not Disturb mode for the current user, or changes its duration. JoliCode\Slack\Api\Endpoint\DndSetSnooze
- /dnd.teamInfo Retrieves the Do Not Disturb status for up to 50 users on a team. JoliCode\Slack\Api\Endpoint\DndTeamInfo
- /emoji.list Lists custom emoji for a team. JoliCode\Slack\Api\Endpoint\EmojiList
- /files.comments.delete Deletes an existing comment on a file. JoliCode\Slack\Api\Endpoint\FilesCommentsDelete
- /files.delete Deletes a file. JoliCode\Slack\Api\Endpoint\FilesDelete
- /files.info Gets information about a file. JoliCode\Slack\Api\Endpoint\FilesInfo
- /files.list List for a team, in a channel, or from a user with applied filters. JoliCode\Slack\Api\Endpoint\FilesList
- /files.remote.add Adds a file from a remote service JoliCode\Slack\Api\Endpoint\FilesRemoteAdd
- /files.remote.info Retrieve information about a remote file added to Slack JoliCode\Slack\Api\Endpoint\FilesRemoteInfo
- /files.remote.list Retrieve information about a remote file added to Slack JoliCode\Slack\Api\Endpoint\FilesRemoteList
- /files.remote.remove Remove a remote file. JoliCode\Slack\Api\Endpoint\FilesRemoteRemove
- /files.remote.share Share a remote file into a channel. JoliCode\Slack\Api\Endpoint\FilesRemoteShare
- /files.remote.update Updates an existing remote file. JoliCode\Slack\Api\Endpoint\FilesRemoteUpdate
- /files.revokePublicURL Revokes public/external sharing access for a file JoliCode\Slack\Api\Endpoint\FilesRevokePublicURL
- /files.sharedPublicURL Enables a file for public/external sharing. JoliCode\Slack\Api\Endpoint\FilesSharedPublicURL
- /files.upload Uploads or creates a file. JoliCode\Slack\Api\Endpoint\FilesUpload
- /migration.exchange For Enterprise Grid workspaces, map local user IDs to global user IDs JoliCode\Slack\Api\Endpoint\MigrationExchange
- /oauth.access Exchanges a temporary OAuth verifier code for an access token. JoliCode\Slack\Api\Endpoint\OauthAccess
- /oauth.token Exchanges a temporary OAuth verifier code for a workspace token. JoliCode\Slack\Api\Endpoint\OauthToken
- /oauth.v2.access Exchanges a temporary OAuth verifier code for an access token. JoliCode\Slack\Api\Endpoint\OauthV2Access
- /pins.add Pins an item to a channel. JoliCode\Slack\Api\Endpoint\PinsAdd
- /pins.list Lists items pinned to a channel. JoliCode\Slack\Api\Endpoint\PinsList
- /pins.remove Un-pins an item from a channel. JoliCode\Slack\Api\Endpoint\PinsRemove
- /reactions.add Adds a reaction to an item. JoliCode\Slack\Api\Endpoint\ReactionsAdd
- /reactions.get Gets reactions for an item. JoliCode\Slack\Api\Endpoint\ReactionsGet
- /reactions.list Lists reactions made by a user. JoliCode\Slack\Api\Endpoint\ReactionsList
- /reactions.remove Removes a reaction from an item. JoliCode\Slack\Api\Endpoint\ReactionsRemove
- /reminders.add Creates a reminder. JoliCode\Slack\Api\Endpoint\RemindersAdd
- /reminders.complete Marks a reminder as complete. JoliCode\Slack\Api\Endpoint\RemindersComplete
- /reminders.delete Deletes a reminder. JoliCode\Slack\Api\Endpoint\RemindersDelete
- /reminders.info Gets information about a reminder. JoliCode\Slack\Api\Endpoint\RemindersInfo
- /reminders.list Lists all reminders created by or for a given user. JoliCode\Slack\Api\Endpoint\RemindersList
- /rtm.connect Starts a Real Time Messaging session. JoliCode\Slack\Api\Endpoint\RtmConnect
- /search.messages Searches for messages matching a query. JoliCode\Slack\Api\Endpoint\SearchMessages
- /stars.add Adds a star to an item. JoliCode\Slack\Api\Endpoint\StarsAdd
- /stars.list Lists stars for a user. JoliCode\Slack\Api\Endpoint\StarsList
- /stars.remove Removes a star from an item. JoliCode\Slack\Api\Endpoint\StarsRemove
- /team.accessLogs Gets the access logs for the current team. JoliCode\Slack\Api\Endpoint\TeamAccessLogs
- /team.billableInfo Gets billable users information for the current team. JoliCode\Slack\Api\Endpoint\TeamBillableInfo
- /team.info Gets information about the current team. JoliCode\Slack\Api\Endpoint\TeamInfo
- /team.integrationLogs Gets the integration logs for the current team. JoliCode\Slack\Api\Endpoint\TeamIntegrationLogs
- /team.profile.get Retrieve a team's profile. JoliCode\Slack\Api\Endpoint\TeamProfileGet
- /usergroups.create Create a User Group JoliCode\Slack\Api\Endpoint\UsergroupsCreate
- /usergroups.disable Disable an existing User Group JoliCode\Slack\Api\Endpoint\UsergroupsDisable
- /usergroups.enable Enable a User Group JoliCode\Slack\Api\Endpoint\UsergroupsEnable
- /usergroups.list List all User Groups for a team JoliCode\Slack\Api\Endpoint\UsergroupsList
- /usergroups.update Update an existing User Group JoliCode\Slack\Api\Endpoint\UsergroupsUpdate
- /usergroups.users.list List all users in a User Group JoliCode\Slack\Api\Endpoint\UsergroupsUsersList
- /usergroups.users.update Update the list of users for a User Group JoliCode\Slack\Api\Endpoint\UsergroupsUsersUpdate
- /users.conversations List conversations the calling user may access. JoliCode\Slack\Api\Endpoint\UsersConversations
- /users.deletePhoto Delete the user profile photo JoliCode\Slack\Api\Endpoint\UsersDeletePhoto
- /users.getPresence Gets user presence information. JoliCode\Slack\Api\Endpoint\UsersGetPresence
- /users.identity Get a user's identity. JoliCode\Slack\Api\Endpoint\UsersIdentity
- /users.info Gets information about a user. JoliCode\Slack\Api\Endpoint\UsersInfo
- /users.list Lists all users in a Slack team. JoliCode\Slack\Api\Endpoint\UsersList
- /users.lookupByEmail Find a user with an email address. JoliCode\Slack\Api\Endpoint\UsersLookupByEmail
- /users.profile.get Retrieves a user's profile information. JoliCode\Slack\Api\Endpoint\UsersProfileGet
- /users.profile.set Set the profile information for a user. JoliCode\Slack\Api\Endpoint\UsersProfileSet
- /users.setActive Marked a user as active. Deprecated and non-functional. JoliCode\Slack\Api\Endpoint\UsersSetActive
- /users.setPhoto Set the user profile photo JoliCode\Slack\Api\Endpoint\UsersSetPhoto
- /users.setPresence Manually sets user presence. JoliCode\Slack\Api\Endpoint\UsersSetPresence
- /views.open Open a view for a user. JoliCode\Slack\Api\Endpoint\ViewsOpen
- /views.publish Publish a static view for a User. JoliCode\Slack\Api\Endpoint\ViewsPublish
- /views.push Push a view onto the stack of a root view. JoliCode\Slack\Api\Endpoint\ViewsPush
- /views.update Update an existing view. JoliCode\Slack\Api\Endpoint\ViewsUpdate
added /workflows.stepCompleted Indicate that an app's step in a workflow completed execution. JoliCode\Slack\Api\Endpoint\WorkflowsStepCompleted
added /workflows.stepFailed Indicate that an app's step in a workflow failed to execute. JoliCode\Slack\Api\Endpoint\WorkflowsStepFailed
added /workflows.updateStep Update the configuration for a workflow extension step. JoliCode\Slack\Api\Endpoint\WorkflowsUpdateStep
removed /channels.archive - -
removed /channels.create - -
removed /channels.history - -
removed /channels.info - -
removed /channels.invite - -
removed /channels.join - -
removed /channels.kick - -
removed /channels.leave - -
removed /channels.list - -
removed /channels.mark - -
removed /channels.rename - -
removed /channels.replies - -
removed /channels.setPurpose - -
removed /channels.setTopic - -
removed /channels.unarchive - -
removed /groups.archive - -
removed /groups.create - -
removed /groups.createChild - -
removed /groups.history - -
removed /groups.info - -
removed /groups.invite - -
removed /groups.kick - -
removed /groups.leave - -
removed /groups.list - -
removed /groups.mark - -
removed /groups.open - -
removed /groups.rename - -
removed /groups.replies - -
removed /groups.setPurpose - -
removed /groups.setTopic - -
removed /groups.unarchive - -
removed /im.close - -
removed /im.history - -
removed /im.list - -
removed /im.mark - -
removed /im.open - -
removed /im.replies - -
removed /mpim.close - -
removed /mpim.history - -
removed /mpim.list - -
removed /mpim.mark - -
removed /mpim.open - -
removed /mpim.replies - -

The new callstack property looks like a debug property from internal code at Slack, maybe we could remote it?

hmm, not sure it is a good idea to do this. Yes, it is obviously an internal debug property, but removing it from our spec would make the patch larger, with all the readibility constraints that it generates.

damienalexandre commented 3 years ago

Let's merge like this, I will try to test https://github.com/jolicode/slack-php-api/pull/96#discussion_r510188600 in another PR.

This is gonna be released later as a new major version. Thanks a lot @xavierlacot ! :tada: