AuthMode

An enumeration that identifies which categories of authorized services Apps Script is able to
execute through a triggered function. These values are exposed in [triggered functions](https://developers.google.com/apps-script/understanding_triggers) as the `authMode`
property of the [event parameter](https://developers.google.com/apps-script/understanding_events), `e`. For
more information, see the [guide to the
authorization lifecycle for add-ons](https://developers.google.com/gsuite/add-ons/concepts/addon-authorization#authorization_modes).

To call an enum, you call its parent class, name, and property. For example, `
ScriptApp.AuthMode.CUSTOM_FUNCTION`.

```javascript
function onOpen(e) {
  const menu = SpreadsheetApp.getUi().createAddonMenu();
  if (e && e.authMode === ScriptApp.AuthMode.NONE) {
    // Add a normal menu item (works in all authorization modes).
    menu.addItem('Start workflow', 'startWorkflow');
  } else {
    // Add a menu item based on properties (doesn't work in AuthMode.NONE).
    const properties = PropertiesService.getDocumentProperties();
    const workflowStarted = properties.getProperty('workflowStarted');
    if (workflowStarted) {
      menu.addItem('Check workflow status', 'checkWorkflow');
    } else {
      menu.addItem('Start workflow', 'startWorkflow');
    }
    // Record analytics.
    UrlFetchApp.fetch('http://www.example.com/analytics?event=open');
  }
  menu.addToUi();
}
```

### Properties

| Property | Type | Description |
|---|---|---|
| `NONE` | `Enum` | A mode that does not allow access to any services that require authorization. This mode occurs when an add-on executes an `onOpen(e)` simple trigger, and the user has installed an add-on in a different document but the add-on has not been used in the current document. |
| `CUSTOM_FUNCTION` | `Enum` | A mode that allows access to a limited subset of services for use in custom spreadsheet functions. Some of these services --- including read-only access to Spreadsheet service --- normally require authorization, but are permitted without authorization when used in a custom function. Because custom functions do not include an event parameter, this value is never returned; it is documented only to demonstrate that custom functions run in their own authorization mode. |
| `LIMITED` | `Enum` | A mode that allows access to a limited subset of services. This mode occurs when an add-on or a script [bound](https://developers.google.com/apps-script/scripts_containers) to a document executes an `onOpen(e)` or `onEdit(e)` simple trigger, except in the case described for `NONE`. |
| `FULL` | `Enum` | A mode that allows access to all services that require authorization. This mode occurs when an add-on or a script executes as the result of any trigger other than the cases described for `LIMITED` or `NONE`. |