# trigger

## Usage

`prism create trigger` is used to create and update the triggers YML configuration file.&#x20;

```
Usage: prism create trigger [OPTIONS]                                                                                               
                                                                                                                                     
 Create a triggers YML file at the TRIGGERS_YML_PATH in prism_project.py.                                                            
                                                                                                                                     
 Examples:                                                                                                                           
                                                                                                                                     
  • prism create trigger                                                                                                             
  • prism create trigger -v TRIGGERS_YML_PATH=/Users/.prism/triggers.yml                                                             
  • prism create trigger --context '{"TRIGGERS_YML_PATH": "/Users/.prism/triggers.yml"}'                                             
                                                                                                                                     
╭─ Options ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --type       -t  [function]               Trigger type. Default is function                                                       │
│ --log-level  -l  [info|warn|error|debug]  Set the log level                                                                       │
│ --full-tb                                 Show the full traceback when an error occurs                                            │
│ --vars       -v  TEXT                     Variables as key value pairs. These overwrite variables in prism_project.py. All values │
│                                           are intepreted as strings.                                                              │
│ --context        TEXT                     Context as a dictionary. Must be a valid JSON. These overwrite variables in             │
│                                           prism_project.py                                                                        │
│ --help                                    Show this message and exit.                                                             │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
```

Here's what `prism create trigger` does under the hood:

1. Parses the `prism_project.py` file and gets the `TRIGGERS_YML_PATH` value. If this value isn't specified, then it defaults to the project directory.
2. It checks to see if `TRIGGERS_YML_PATH` exists
   * If it doesn't, it creates a file at `TRIGGERS_YML_PATH` and populates it with a trigger of type `--type`
   * If it does, it then adds a profile of type `--type` to the existing file

## Example

Here's what the output will look like in Terminal (if there are no errors in the project):

```
$ prism create trigger --type function
--------------------------------------------------------------------------------
<HH:MM:SS> | INFO  | Running with prism v0.2.7...
<HH:MM:SS> | INFO  | Found project directory at /Users/my_first_project
 
<HH:MM:SS> | INFO  | RUNNING EVENT 'parsing prism_project.py'................................................ [RUN]
<HH:MM:SS> | INFO  | FINISHED EVENT 'parsing prism_project.py'............................................... [DONE in 0.03s]
 
<HH:MM:SS> | INFO  | Setting up triggers...
 
<HH:MM:SS> | INFO  | Done!
--------------------------------------------------------------------------------
$ 
```

Here's what the `triggers.yml` file looks like after running the above command:

```yaml
# triggers.yml

triggers:
  <trigger name here>:
    type: function
    function: <import path to function>  # make sure your project has access to this import path via SYS_PATH_CONF!
    kwargs:  # this is optional!
      arg1: value1
```

## Required arguments

Here are the required arguments you must specify with `trigger`:

* `--type` : Trigger type. As of now, only type `function` is supported.

## Optional arguments

Here are the optional arguments you can run with `trigger`:

* `--full-tb` : Display full traceback if errors arise at any stage of the pipeline
* `--log-level`: Log level, one of `info`, `warn`, `error`, or `critical`.
* `--vars`: Prism variables as key-value pairs `key=value`. These overwrite any variable definitions in `prism_project.py`. All values are read as strings.
* `--context` : Prism variables as JSON. Cannot co-exist with `--vars`. These overwrite any variable definitions in `prism_project.py`.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.runprism.com/v0.2.7/cli/create/trigger.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
