/*
 * Copyright (c) Microsoft Corporation.
 * Licensed under the MIT License.
 *
 * Code generated by Microsoft (R) AutoRest Code Generator.
 * Changes may cause incorrect behavior and will be lost if the code is regenerated.
 */

import { PagedAsyncIterableIterator } from "@azure/core-paging";
import { SimplePollerLike, OperationState } from "@azure/core-lro";
import {
  WorkflowTrigger,
  WorkflowTriggersListOptionalParams,
  WorkflowTriggersGetOptionalParams,
  WorkflowTriggersGetResponse,
  WorkflowTriggersListCallbackUrlOptionalParams,
  WorkflowTriggersListCallbackUrlResponse,
  WorkflowTriggersRunOptionalParams,
  WorkflowTriggersGetSchemaJsonOptionalParams,
  WorkflowTriggersGetSchemaJsonResponse
} from "../models";

/// <reference lib="esnext.asynciterable" />
/** Interface representing a WorkflowTriggers. */
export interface WorkflowTriggers {
  /**
   * Gets a list of workflow triggers.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Site name.
   * @param workflowName The workflow name.
   * @param options The options parameters.
   */
  list(
    resourceGroupName: string,
    name: string,
    workflowName: string,
    options?: WorkflowTriggersListOptionalParams
  ): PagedAsyncIterableIterator<WorkflowTrigger>;
  /**
   * Gets a workflow trigger.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Site name.
   * @param workflowName The workflow name.
   * @param triggerName The workflow trigger name.
   * @param options The options parameters.
   */
  get(
    resourceGroupName: string,
    name: string,
    workflowName: string,
    triggerName: string,
    options?: WorkflowTriggersGetOptionalParams
  ): Promise<WorkflowTriggersGetResponse>;
  /**
   * Get the callback URL for a workflow trigger.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Site name.
   * @param workflowName The workflow name.
   * @param triggerName The workflow trigger name.
   * @param options The options parameters.
   */
  listCallbackUrl(
    resourceGroupName: string,
    name: string,
    workflowName: string,
    triggerName: string,
    options?: WorkflowTriggersListCallbackUrlOptionalParams
  ): Promise<WorkflowTriggersListCallbackUrlResponse>;
  /**
   * Runs a workflow trigger.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Site name.
   * @param workflowName The workflow name.
   * @param triggerName The workflow trigger name.
   * @param options The options parameters.
   */
  beginRun(
    resourceGroupName: string,
    name: string,
    workflowName: string,
    triggerName: string,
    options?: WorkflowTriggersRunOptionalParams
  ): Promise<SimplePollerLike<OperationState<void>, void>>;
  /**
   * Runs a workflow trigger.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Site name.
   * @param workflowName The workflow name.
   * @param triggerName The workflow trigger name.
   * @param options The options parameters.
   */
  beginRunAndWait(
    resourceGroupName: string,
    name: string,
    workflowName: string,
    triggerName: string,
    options?: WorkflowTriggersRunOptionalParams
  ): Promise<void>;
  /**
   * Get the trigger schema as JSON.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Site name.
   * @param workflowName The workflow name.
   * @param triggerName The workflow trigger name.
   * @param options The options parameters.
   */
  getSchemaJson(
    resourceGroupName: string,
    name: string,
    workflowName: string,
    triggerName: string,
    options?: WorkflowTriggersGetSchemaJsonOptionalParams
  ): Promise<WorkflowTriggersGetSchemaJsonResponse>;
}
