/*
 * 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 {
  ExportConfigurationsEnableOptionalParams,
  ExportConfigurationsDisableOptionalParams,
  ExportConfigurationsGetOptionalParams,
  ExportConfigurationsGetResponse,
  PathsEhcfgaV01AppsOwnerNameAppNameExportConfigurationsExportConfigurationIdPatchRequestbodyContentApplicationJsonSchema,
  ExportConfigurationsPartialUpdateOptionalParams,
  ExportConfigurationsPartialUpdateResponse,
  ExportConfigurationsDeleteOptionalParams,
  ExportConfigurationsListOptionalParams,
  ExportConfigurationsListResponse,
  Paths1QllskkV01AppsOwnerNameAppNameExportConfigurationsPostRequestbodyContentApplicationJsonSchema,
  ExportConfigurationsCreateOptionalParams,
  ExportConfigurationsCreateResponse
} from "../models";

/** Interface representing a ExportConfigurations. */
export interface ExportConfigurations {
  /**
   * Enable export configuration.
   * @param exportConfigurationId The id of the export configuration.
   * @param ownerName The name of the owner
   * @param appName The name of the application
   * @param options The options parameters.
   */
  enable(
    exportConfigurationId: string,
    ownerName: string,
    appName: string,
    options?: ExportConfigurationsEnableOptionalParams
  ): Promise<void>;
  /**
   * Disable export configuration.
   * @param exportConfigurationId The id of the export configuration.
   * @param ownerName The name of the owner
   * @param appName The name of the application
   * @param options The options parameters.
   */
  disable(
    exportConfigurationId: string,
    ownerName: string,
    appName: string,
    options?: ExportConfigurationsDisableOptionalParams
  ): Promise<void>;
  /**
   * Get export configuration.
   * @param exportConfigurationId The id of the export configuration.
   * @param ownerName The name of the owner
   * @param appName The name of the application
   * @param options The options parameters.
   */
  get(
    exportConfigurationId: string,
    ownerName: string,
    appName: string,
    options?: ExportConfigurationsGetOptionalParams
  ): Promise<ExportConfigurationsGetResponse>;
  /**
   * Partially update export configuration.
   * @param exportConfigurationId The id of the export configuration.
   * @param ownerName The name of the owner
   * @param appName The name of the application
   * @param properties Export configurations.
   * @param options The options parameters.
   */
  partialUpdate(
    exportConfigurationId: string,
    ownerName: string,
    appName: string,
    properties: PathsEhcfgaV01AppsOwnerNameAppNameExportConfigurationsExportConfigurationIdPatchRequestbodyContentApplicationJsonSchema,
    options?: ExportConfigurationsPartialUpdateOptionalParams
  ): Promise<ExportConfigurationsPartialUpdateResponse>;
  /**
   * Delete export configuration.
   * @param exportConfigurationId The id of the export configuration.
   * @param ownerName The name of the owner
   * @param appName The name of the application
   * @param options The options parameters.
   */
  delete(
    exportConfigurationId: string,
    ownerName: string,
    appName: string,
    options?: ExportConfigurationsDeleteOptionalParams
  ): Promise<void>;
  /**
   * List export configurations.
   * @param ownerName The name of the owner
   * @param appName The name of the application
   * @param options The options parameters.
   */
  list(
    ownerName: string,
    appName: string,
    options?: ExportConfigurationsListOptionalParams
  ): Promise<ExportConfigurationsListResponse>;
  /**
   * Create new export configuration
   * @param ownerName The name of the owner
   * @param appName The name of the application
   * @param properties Export configurations.
   * @param options The options parameters.
   */
  create(
    ownerName: string,
    appName: string,
    properties: Paths1QllskkV01AppsOwnerNameAppNameExportConfigurationsPostRequestbodyContentApplicationJsonSchema,
    options?: ExportConfigurationsCreateOptionalParams
  ): Promise<ExportConfigurationsCreateResponse>;
}
