> ## Documentation Index > Fetch the complete documentation index at: https://docs.vastdata.com/llms.txt > Use this file to discover all available pages before exploring further. # List all Triggers with full type-specific details > Returns a list of all triggers with fully typed responses. Each trigger in the response is a discriminated union of ElementTriggerResponse or ScheduleTriggerResponse, with the 'type' field as discriminator. This replaces the deprecated GET /triggers endpoint which returns a flat, schema-less config object. ## OpenAPI ````json GET /triggers/all { "openapi": "3.0.3", "info": { "title": "VAST DataEngine API", "description": "Combined OpenAPI specification for Document360: Provisioning, Telemetries Query, Telemetries Collector, and shared common components.", "version": "1.4.0" }, "servers": [ { "url": "http://localhost:3000", "description": "Provisioning Service (Local development server)" }, { "url": "http://localhost:8080/query_telemetries", "description": "Telemetries Query Service (Local development server)" }, { "url": "http://localhost:8080/telemetries", "description": "Telemetries Collector Service (Local development server)" } ], "tags": [ { "name": "Provisioning Service v1.4.0", "description": "Provisioning Service API" }, { "name": "Provisioning Service v1.4.0 > dataEngine", "description": "Data Engine lifecycle" }, { "name": "Provisioning Service v1.4.0 > setup_provisioning", "description": "Deprecated provisioning setup" }, { "name": "Provisioning Service v1.4.0 > pipelines", "description": "Pipelines" }, { "name": "Provisioning Service v1.4.0 > pipelineRevisions", "description": "Pipeline revisions" }, { "name": "Provisioning Service v1.4.0 > functions", "description": "Functions" }, { "name": "Provisioning Service v1.4.0 > functionRevisions", "description": "Function revisions" }, { "name": "Provisioning Service v1.4.0 > functionRevisionsDeprecated", "description": "Deprecated function revision endpoints" }, { "name": "Provisioning Service v1.4.0 > triggers", "description": "Triggers" }, { "name": "Provisioning Service v1.4.0 > topics", "description": "Topics" }, { "name": "Provisioning Service v1.4.0 > containerRegistries", "description": "Container registries" }, { "name": "Provisioning Service v1.4.0 > kubernetesClusters", "description": "Kubernetes clusters" }, { "name": "Provisioning Service v1.4.0 > kubernetesSecrets", "description": "Kubernetes secrets" }, { "name": "Provisioning Service v1.4.0 > mtlsAuthenticationCredentials", "description": "mTLS authentication credentials" }, { "name": "Provisioning Service v1.4.0 > dashboard", "description": "Dashboard" }, { "name": "Provisioning Service v1.4.0 > reports", "description": "Saved reports" }, { "name": "Telemetries Collector Service v1.4.0", "description": "API for collecting OTEL signals (traces, logs and metrics)" }, { "name": "Telemetries Collector Service v1.4.0 > collect_telemetries", "description": "Collect OTEL signals" }, { "name": "Telemetries Query Service v1.4.0", "description": "API for querying traces, logs and metrics" }, { "name": "Telemetries Query Service v1.4.0 > query_telemetries", "description": "Query traces and logs" }, { "name": "Telemetries Query Service v1.4.0 > metrics", "description": "Query metrics" }, { "name": "Telemetries Query Service v1.4.0 > reports", "description": "Saved reports" } ], "paths": { "/triggers/all": { "get": { "summary": "List all Triggers with full type-specific details", "description": "Returns a list of all triggers with fully typed responses.\nEach trigger in the response is a discriminated union of ElementTriggerResponse\nor ScheduleTriggerResponse, with the 'type' field as discriminator.\nThis replaces the deprecated GET /triggers endpoint which returns a flat,\nschema-less config object.\n", "operationId": "listAllTriggers", "tags": [ "Provisioning Service v1.4.0 > triggers" ], "parameters": [ { "$ref": "#/components/parameters/Cursor" }, { "$ref": "#/components/parameters/Limit" }, { "$ref": "#/components/parameters/OrderBy" }, { "name": "guid", "in": "query", "required": false, "schema": { "type": "string" }, "description": "Filter by trigger GUID" }, { "name": "vrn", "in": "query", "required": false, "schema": { "type": "string" }, "description": "Filter by trigger VRN" }, { "name": "name", "in": "query", "required": false, "schema": { "type": "string" }, "description": "Filter by trigger name" }, { "name": "owner_name", "in": "query", "required": false, "schema": { "type": "string" }, "description": "Filter by owner name" }, { "name": "type", "in": "query", "required": false, "schema": { "$ref": "#/components/schemas/TriggerType" }, "description": "Filter by trigger type" }, { "name": "topic", "in": "query", "required": false, "schema": { "type": "string" }, "description": "Filter by topic VRN" }, { "name": "source_bucket_name", "in": "query", "required": false, "schema": { "type": "string" }, "description": "Filter by source bucket name (for Element triggers)" }, { "name": "status", "in": "query", "required": false, "schema": { "type": "string" }, "description": "Filter by trigger status" }, { "name": "created_after", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64" }, "description": "Filter triggers created after this timestamp (microseconds since epoch)" }, { "name": "created_before", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64" }, "description": "Filter triggers created before this timestamp (microseconds since epoch)" }, { "name": "updated_after", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64" }, "description": "Filter triggers updated after this timestamp (microseconds since epoch)" }, { "name": "updated_before", "in": "query", "required": false, "schema": { "type": "integer", "format": "int64" }, "description": "Filter triggers updated before this timestamp (microseconds since epoch)" } ], "responses": { "200": { "description": "A list of Triggers with full type-specific details", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TypedTriggersGetResponse" } } } }, "401": { "$ref": "#/components/responses/UnauthorizedError" }, "403": { "$ref": "#/components/responses/ForbiddenError" }, "500": { "$ref": "#/components/responses/InternalServerError" } } } } }, "components": { "parameters": { "Cursor": { "name": "cursor", "in": "query", "required": false, "schema": { "type": "string" } }, "Limit": { "name": "limit", "in": "query", "required": false, "schema": { "default": 100, "type": "integer" } }, "OrderBy": { "name": "order_by", "in": "query", "required": false, "schema": { "type": "string", "enum": [ "asc", "desc" ], "default": "asc" }, "description": "Sort order - ascending (asc) or descending (desc)" } }, "schemas": { "TriggerType": { "type": "string", "enum": [ "Element", "Schedule" ] }, "TypedTriggersGetResponse": { "type": "object", "properties": { "pagination": { "$ref": "#/components/schemas/Pagination" }, "data": { "type": "array", "items": { "$ref": "#/components/schemas/TypedTriggerResponse" } } }, "description": "Response schema for listing triggers with full type-specific details." }, "Pagination": { "allOf": [ { "type": "object", "properties": { "next_cursor": { "type": "string", "description": "The cursor for the next page" }, "previous_cursor": { "type": "string", "description": "The cursor for the last page" } } } ] }, "TypedTriggerResponse": { "description": "A discriminated union of all trigger response types. The 'type' field\nis used as the discriminator to determine which trigger type schema applies.\n", "type": "object", "required": [ "type" ], "properties": { "type": { "$ref": "#/components/schemas/TriggerType" } }, "oneOf": [ { "$ref": "#/components/schemas/ElementTriggerResponse" }, { "$ref": "#/components/schemas/ScheduleTriggerResponse" } ], "discriminator": { "propertyName": "type", "mapping": { "Element": "#/components/schemas/ElementTriggerResponse", "Schedule": "#/components/schemas/ScheduleTriggerResponse" } } }, "ErrorResponse": { "type": "object", "properties": { "detail": { "type": "string" }, "source": { "$ref": "#/components/schemas/ErrorSource" }, "code": { "type": "string", "description": "Optional machine-readable error code for clients to branch on instead of parsing `detail`." } } }, "ElementTriggerResponse": { "allOf": [ { "$ref": "#/components/schemas/Resource" }, { "$ref": "#/components/schemas/ElementTriggerCreate" }, { "type": "object", "required": [ "type" ], "properties": { "type": { "$ref": "#/components/schemas/TriggerType" }, "events": { "type": "array", "minItems": 1, "items": { "$ref": "#/components/schemas/TriggerEvent" } }, "source_bucket_name": { "type": "string", "description": "The bucket name of a VMS View. Relevant for Element Trigger", "example": "my-bucket" }, "topic": { "$ref": "#/components/schemas/VastRN" }, "status": { "$ref": "#/components/schemas/Status" } }, "description": "Response schema for element trigger operations with all fields populated." } ] }, "ScheduleTriggerResponse": { "allOf": [ { "$ref": "#/components/schemas/Resource" }, { "$ref": "#/components/schemas/ScheduleTriggerCreate" }, { "type": "object", "required": [ "type" ], "properties": { "type": { "$ref": "#/components/schemas/TriggerType" }, "topic": { "$ref": "#/components/schemas/VastRN" }, "status": { "$ref": "#/components/schemas/Status" } }, "description": "Response schema for schedule trigger operations with all fields populated." } ] }, "ErrorSource": { "type": "object", "description": "Represents the underlying problem that made Data Engine raise the error", "properties": { "source_type": { "type": "string", "description": "The component where the error happened", "example": "kubernetes | vms | vdb | registry" }, "source_name": { "type": "string", "description": "The name of the source compoenent", "example": "my-cluster" }, "inner_error": { "type": "string", "description": "The error message from the source component", "example": "Failed to connect to the cluster" } } }, "Resource": { "allOf": [ { "$ref": "#/components/schemas/ResourceCreate" }, { "type": "object", "properties": { "id": { "$ref": "#/components/schemas/ReadOnlyID" }, "guid": { "$ref": "#/components/schemas/ReadOnlyGUID" }, "tenant_guid": { "$ref": "#/components/schemas/TenantID" }, "owner": { "$ref": "#/components/schemas/UserID" }, "created_at": { "type": "string", "readOnly": true, "format": "date-time", "description": "Timestamp when the resource was created.", "example": "2024-12-25 15:30:00+00:00" }, "updated_at": { "type": "string", "readOnly": true, "format": "date-time", "description": "Timestamp when the resource was last updated.", "example": "2024-12-28 18:00:00+00:00" }, "vrn": { "$ref": "#/components/schemas/VastRN" } } } ], "description": "Extends ResourceCreate with read-only fields." }, "ElementTriggerCreate": { "allOf": [ { "$ref": "#/components/schemas/CommonTrigger" }, { "type": "object", "properties": { "config": { "$ref": "#/components/schemas/ElementTriggerConfig" }, "source_types": { "type": "array", "description": "Source types from which we want to trigger events. Relevant for Element Trigger", "items": { "$ref": "#/components/schemas/SourceType" }, "example": [ "S3" ] } }, "required": [ "config" ], "description": "Represents an element trigger entity.\nNote: While events and source_bucket_name are not marked as required in ElementTriggerConfig\n(for backward compatibility with deprecated APIs), the new explicit API endpoints validate\nthese fields at runtime in the controller layer.\n" } ] }, "TriggerEvent": { "type": "string", "description": "action the trigger listens to", "enum": [ "ObjectCreated:*", "ObjectRemoved:*", "ObjectTagging:Put", "ObjectTagging:Delete" ] }, "VastRN": { "type": "string", "description": "A logical path for resource grouping and policy assignment. The structure of the logical path is: vast:dataengine::\nwhere resource type is one of: triggers / functions / pipelines / topics / kubernetes-clusters / container-registries / mtls-authentication-credentials.\n", "example": "vast:dataengine:functions:foo" }, "Status": { "type": "string", "readOnly": true, "enum": [ "Ready", "InProgress", "Error", "Draft", "Deleting" ], "description": "Operational status of the object.", "example": "Ready" }, "ScheduleTriggerCreate": { "allOf": [ { "$ref": "#/components/schemas/CommonTrigger" }, { "type": "object", "properties": { "config": { "$ref": "#/components/schemas/ScheduleTriggerConfig" } }, "required": [ "config" ], "description": "Represents a schedule trigger entity." } ] }, "ResourceCreate": { "allOf": [ { "$ref": "#/components/schemas/ResourceUpdate" } ], "required": [ "name" ] }, "ReadOnlyID": { "type": "integer", "format": "int64", "readOnly": true, "description": "A globally unique identifier (ID) for the resource." }, "ReadOnlyGUID": { "type": "string", "readOnly": true, "format": "uuid", "description": "A globally unique identifier (GUID) for the resource.", "example": "a7f4aa24-a00d-4dc5-a113-2031eb8c2c79" }, "TenantID": { "$ref": "#/components/schemas/ReadOnlyGUID" }, "UserID": { "type": "object", "readOnly": true, "properties": { "id": { "type": "string", "description": "The unique identifier for the owner." }, "id_type": { "type": "string", "description": "The type of identifier for the owner.", "enum": [ "uid", "vid", "sid", "access_key", "sid_str", "login_name", "username" ] }, "name": { "type": "string", "description": "The presentable name of the owner" } }, "required": [ "id", "id_type" ], "description": "Represents the owner of the resource." }, "CommonTrigger": { "allOf": [ { "$ref": "#/components/schemas/ResourceCreate" }, { "type": "object", "properties": { "name": { "type": "string", "pattern": "^[a-z0-9-]+$", "description": "A name for the trigger. Must contain only lowercase letters, numbers, and hyphens.", "example": "my-trigger-name" }, "broker": { "$ref": "#/components/schemas/Broker" }, "topic_name": { "type": "string", "description": "The name of the topic in the broker. Used with broker field for automatic topic creation.", "example": "my-topic" }, "custom_extensions": { "type": "object", "description": "Custom key/value pairs to be passed as event output extensions. custom key must contain only lowercase letters and digits, start with a letter, and be 1-20 characters long" } }, "description": "Common properties for all trigger types." } ] }, "ElementTriggerConfig": { "type": "object", "properties": { "events": { "type": "array", "minItems": 1, "items": { "$ref": "#/components/schemas/TriggerEvent" }, "description": "Events that trigger the element trigger.\nTODO: Make this field required once deprecated POST/PUT /triggers APIs are removed.\n" }, "source_bucket_name": { "type": "string", "description": "The bucket name of a VMS View. Relevant for Element Trigger.\nTODO: Make this field required once deprecated POST/PUT /triggers APIs are removed.\n", "example": "my-bucket" }, "tag_filters": { "$ref": "#/components/schemas/TriggerFilters" }, "name_filters": { "$ref": "#/components/schemas/TriggerFilters" } } }, "SourceType": { "type": "string", "description": "The source protocol from which we want to trigger events. Relevant for Element Trigger", "enum": [ "S3", "NFS4" ] }, "ScheduleTriggerConfig": { "type": "object", "properties": { "cron_schedule": { "type": "string", "description": "Cron schedule for a Schedule Trigger.", "example": "*/15 * * * *" } }, "required": [ "cron_schedule" ] }, "ResourceUpdate": { "additionalProperties": false, "type": "object", "properties": { "name": { "type": "string", "description": "A name for the resource.", "example": "naomis-resource" }, "description": { "type": "string", "description": "A description of the resource.", "example": "A good and detailed description that makes everyone understand." }, "tags": { "type": "array", "maxItems": 32, "description": "Custom tags for organizing and categorizing resources in the GUI.", "items": { "type": "string" }, "example": [ "tagA", "tagB", "tagC" ] } }, "description": "Defines a shared group of attributes to be found in all API resources." }, "Broker": { "type": "object", "properties": { "type": { "$ref": "#/components/schemas/BrokerType" }, "url": { "type": "string", "deprecated": true, "description": "Deprecated. The broker URL is now resolved from VMS by broker name. This field is ignored for VMS-registered brokers and only used as a legacy fallback for brokers not yet registered in VMS. It will be removed in a future release.", "example": "https://kafka.example.com:6969" }, "name": { "type": "string", "description": "Broker name for external or Bucket (View) name for internal.", "example": "my-kafka-broker", "maxLength": 40 }, "is_accessible_to_data_engine": { "type": "boolean", "default": true, "description": "When true (default), the Data Engine will periodically validate that the broker is accessible. Set to false if the broker is not reachable from the Data Engine (e.g., external brokers behind firewalls)." } }, "required": [ "type", "name" ] }, "TriggerFilters": { "additionalProperties": false, "type": "object", "properties": { "prefixes": { "type": "array", "items": { "type": "string" } }, "suffixes": { "type": "array", "items": { "type": "string" } } } }, "BrokerType": { "type": "string", "enum": [ "External", "Internal" ] } }, "responses": { "UnauthorizedError": { "description": "Unauthorized", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "ForbiddenError": { "description": "Forbidden", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "InternalServerError": { "description": "Internal Server Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } } } } ````