/*
 * 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 {
  StoreReleasesGetRealTimeStatusByReleaseIdOptionalParams,
  StoreReleasesGetRealTimeStatusByReleaseIdResponse,
  StoreReleasesGetPublishErrorOptionalParams,
  StoreReleasesGetPublishErrorResponse,
  StoreReleasesGetOptionalParams,
  StoreReleasesGetResponse,
  StoreReleasesDeleteOptionalParams,
  StoreReleasesListOptionalParams,
  StoreReleasesListResponse,
  StoreReleasesGetLatestOptionalParams,
  StoreReleasesGetLatestResponse
} from "../models";

/** Interface representing a StoreReleases. */
export interface StoreReleases {
  /**
   * Return the Real time Status publishing of release from store.
   * @param storeName The name of the store
   * @param releaseId The id of the release
   * @param ownerName The name of the owner
   * @param appName The name of the application
   * @param options The options parameters.
   */
  getRealTimeStatusByReleaseId(
    storeName: string,
    releaseId: number,
    ownerName: string,
    appName: string,
    options?: StoreReleasesGetRealTimeStatusByReleaseIdOptionalParams
  ): Promise<StoreReleasesGetRealTimeStatusByReleaseIdResponse>;
  /**
   * Return the Error Details of release which failed in publishing.
   * @param storeName The name of the store
   * @param releaseId The id of the release
   * @param ownerName The name of the owner
   * @param appName The name of the application
   * @param options The options parameters.
   */
  getPublishError(
    storeName: string,
    releaseId: number,
    ownerName: string,
    appName: string,
    options?: StoreReleasesGetPublishErrorOptionalParams
  ): Promise<StoreReleasesGetPublishErrorResponse>;
  /**
   * Return releases published in a store for releaseId and storeId
   * @param storeName The name of the store
   * @param releaseId The name of the store
   * @param ownerName The name of the owner
   * @param appName The name of the application
   * @param options The options parameters.
   */
  get(
    storeName: string,
    releaseId: string,
    ownerName: string,
    appName: string,
    options?: StoreReleasesGetOptionalParams
  ): Promise<StoreReleasesGetResponse>;
  /**
   * delete the release with release Id
   * @param storeName The name of the store
   * @param releaseId The id of the release
   * @param ownerName The name of the owner
   * @param appName The name of the application
   * @param options The options parameters.
   */
  delete(
    storeName: string,
    releaseId: string,
    ownerName: string,
    appName: string,
    options?: StoreReleasesDeleteOptionalParams
  ): Promise<void>;
  /**
   * Return all releases published  in a store
   * @param storeName The name of the store
   * @param ownerName The name of the owner
   * @param appName The name of the application
   * @param options The options parameters.
   */
  list(
    storeName: string,
    ownerName: string,
    appName: string,
    options?: StoreReleasesListOptionalParams
  ): Promise<StoreReleasesListResponse>;
  /**
   * Returns the latest release published in a store.
   * @param storeName The name of the store
   * @param ownerName The name of the owner
   * @param appName The name of the application
   * @param options The options parameters.
   */
  getLatest(
    storeName: string,
    ownerName: string,
    appName: string,
    options?: StoreReleasesGetLatestOptionalParams
  ): Promise<StoreReleasesGetLatestResponse>;
}
