Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Providing Enterprise API Event Types

DZone's Guide to

Providing Enterprise API Event Types

When API event types are done right, they provide a pretty interesting list of events to tune into and turn into streams when the right amount of volume is present.

· Integration Zone ·
Free Resource

The State of API Integration 2018: Get Cloud Elements’ report for the most comprehensive breakdown of the API integration industry’s past, present, and future.

Augmenting yesterday's story about user events across a platform being a common event-driven API pattern we are seeing, we also thought Box's use of premium events for their user events API was worth showcasing. We haven't seen too many APIs who have begun grouping their API event types, let alone having premium API, enterprise API, or another tier of API event types available.

The event types Box makes available are definitely higher level administrative style events, investing in event-driven architecture to help manage an entire platform. Box is focused on documents, but the approach to defining an enterprise tier of API event types applies universally. Providing a pretty interesting list of events to tune into, and turn into streams when the right amount of volume is present.

- GROUP_ADD_USER - Added user to group
- NEW_USER - Created user
- GROUP_CREATION - Created new group
- GROUP_DELETION - Deleted group
- DELETE_USER - Deleted user
- GROUP_EDITED - Edited group
- EDIT_USER - Edited user
- GROUP_REMOVE_USER - Removed user from group
- ADMIN_LOGIN - Admin login
- ADD_DEVICE_ASSOCIATION - Added device association
- CHANGE_FOLDER_PERMISSION - Edit the permissions on a folder
- FAILED_LOGIN - Failed login
- LOGIN - Login
- REMOVE_DEVICE_ASSOCIATION - Removed device association
- DEVICE_TRUST_CHECK_FAILED - Device Trust check failed
- TERMS_OF_SERVICE_AGREE - Agreed to terms
- TERMS_OF_SERVICE_REJECT - Rejected terms
- FILE_MARKED_MALICIOUS - Virus found on a file. Event is only received by enterprises that have opted in to be notified.
- COPY - Copied
- DELETE - Deleted
- DOWNLOAD - Downloaded
- EDIT - Edited
- LOCK - Locked
- MOVE - Moved
- PREVIEW - Previewed
- RENAME - A file or folder name or description is changed.
- STORAGE_EXPIRATION - Set file auto-delete
- UNDELETE - Undeleted
- UNLOCK - Unlocked
- UPLOAD - Uploaded
- SHARE - Enabled shared links
- ITEM_SHARED_UPDATE - Share links settings updated
- UPDATE_SHARE_EXPIRATION - Extend shared link expiration
- SHARE_EXPIRATION - Set shared link expiration
- UNSHARE - Unshared links
- COLLABORATION_ACCEPT - Accepted invites
- COLLABORATION_ROLE_CHANGE - Changed user roles
- UPDATE_COLLABORATION_EXPIRATION - Extend collaborator expiration
- COLLABORATION_REMOVE - Removed collaborators
- COLLABORATION_INVITE - Invited
- COLLABORATION_EXPIRATION - Set collaborator expiration
- ITEM_SYNC - Synced folder
- ITEM_UNSYNC - Un-synced folder
- ADD_LOGIN_ACTIVITY_DEVICE - A user is logging in from a device we haven't seen before
- REMOVE_LOGIN_ACTIVITY_DEVICE - We invalidated a user session associated with an app
- USER_AUTHENTICATE_OAUTH2_ACCESS_TOKEN_CREATE - An OAuth 2.0 access token has been created
- CHANGE_ADMIN_ROLE - When an admin role changes for a user
- CONTENT_WORKFLOW_UPLOAD_POLICY_VIOLATION - A collaborator violated an admin-set upload policy
- METADATA_INSTANCE_CREATE - Creation of metadata instance
- METADATA_INSTANCE_UPDATE - Update of metadata instance
- METADATA_INSTANCE_DELETE - Deletion of metadata instance
- TASK_ASSIGNMENT_UPDATE - Update of a task assignment
- TASK_ASSIGNMENT_CREATE - A task assignment is created
- TASK_ASSIGNMENT_DELETE - A task assignment is deleted
- TASK_CREATE - A task is created
- COMMENT_CREATE - A comment is created on a file
- COMMENT_DELETE - A comment is deleted on a file
- GROUP_ADD_ITEM - An item is added to a group
- DATA_RETENTION_REMOVE_RETENTION - Retention is removed
- DATA_RETENTION_CREATE_RETENTION - Retention is created
- RETENTION_POLICY_ASSIGNMENT_ADD - A retention policy assignment is added
- LEGAL_HOLD_ASSIGNMENT_CREATE - A legal hold assignment is created
- LEGAL_HOLD_ASSIGNMENT_DELETE - A legal hold assignment is deleted
- LEGAL_HOLD_POLICY_DELETE - A legal hold policy is deleted
- CONTENT_WORKFLOW_SHARING_POLICY_VIOLATION - There is a sharing policy violation
- APPLICATION_PUBLIC_KEY_ADDED - An application public key is added
- APPLICATION_PUBLIC_KEY_DELETED - An application public key is deleted
- CONTENT_WORKFLOW_POLICY_ADD - A content policy is added
- CONTENT_WORKFLOW_AUTOMATION_ADD - An automation is added
- CONTENT_WORKFLOW_AUTOMATION_DELETE - An automation is deleted
- EMAIL_ALIAS_CONFIRM - A user email alias is confirmed
- EMAIL_ALIAS_REMOVE - A user email alias is removed
- WATERMARK_LABEL_CREATE - A watermark is added to a file
- WATERMARK_LABEL_DELETE - A watermark is removed from a file
- ACCESS_GRANTED - A user has granted Box access to their account
- ACCESS_REVOKED - A user has revoked Box access to their account
- METADATA_TEMPLATE_CREATE - Creation of metadata template instance
- METADATA_TEMPLATE_UPDATE - Update of metadata template instance
- METADATA_TEMPLATE_DELETE - Deletion of metadata template instance
- ITEM_OPEN - Item was opened
- ITEM_MODIFY - Item was modified
- CONTENT_WORKFLOW_ABNORMAL_DOWNLOAD_ACTIVITY - When a policy set in the Admin console is triggered
- GROUP_REMOVE_ITEM - Folders were removed from a group in the Admin console
- GROUP_ADD_ITEM - Folders were added to a group in the Admin console

Every API platform should allow for this level of access to events occurring across all resources. Some of these event types are very document focused, but the level of granularity that Box provides offers a pretty interesting blueprint for staying in tune with what is happening across operations. Keeping you in tune with what activity is occurring, and providing some pretty valuable signals that can be used to trigger the pushing of data, notifications, and executing other tasks based upon whatever is going on.

Box provides a valuable list of event types to illustrate the events that can occur via a platform, but it also provides an interesting look at offering premium or enterprise-grade event types - offering a more valuable set of event signals for application developers and administrators to tune into. We'll be further breaking down the event types we've found on Box, as well as other platforms in future posts. We are really finding some interesting patterns of event types that are tuning into the authentication, terms of service, licensing, and other unusual areas--providing an expanding event-driven approach to the technology, business, and legal side of operating a platform.

Your API is not enough. Learn why (and how) leading SaaS providers are turning their products into platforms with API integration in the ebook, Build Platforms, Not Products from Cloud Elements.

Topics:
integration ,api eventing ,api integration ,data integration ,enterprise api

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}