/*
 * 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 {
  CodePushDeploymentsPromoteOptionalParams,
  CodePushDeploymentsPromoteResponse,
  CodePushDeploymentsDeleteOptionalParams,
  CodePushDeploymentsGetOptionalParams,
  CodePushDeploymentsGetResponse,
  CodePushDeploymentsUpdateOptionalParams,
  CodePushDeploymentsListOptionalParams,
  CodePushDeploymentsListResponse,
  CodePushDeploymentsCreateOptionalParams,
  CodePushDeploymentsCreateResponse
} from "../models";

/** Interface representing a CodePushDeployments. */
export interface CodePushDeployments {
  /**
   * Promote one release (default latest one) from one deployment to another
   * @param deploymentName deployment name
   * @param promoteDeploymentName deployment name
   * @param ownerName The name of the owner
   * @param appName The name of the application
   * @param options The options parameters.
   */
  promote(
    deploymentName: string,
    promoteDeploymentName: string,
    ownerName: string,
    appName: string,
    options?: CodePushDeploymentsPromoteOptionalParams
  ): Promise<CodePushDeploymentsPromoteResponse>;
  /**
   * Deletes a CodePush Deployment for the given app
   * @param deploymentName deployment name
   * @param ownerName The name of the owner
   * @param appName The name of the application
   * @param options The options parameters.
   */
  delete(
    deploymentName: string,
    ownerName: string,
    appName: string,
    options?: CodePushDeploymentsDeleteOptionalParams
  ): Promise<void>;
  /**
   * Gets a CodePush Deployment for the given app
   * @param deploymentName deployment name
   * @param ownerName The name of the owner
   * @param appName The name of the application
   * @param options The options parameters.
   */
  get(
    deploymentName: string,
    ownerName: string,
    appName: string,
    options?: CodePushDeploymentsGetOptionalParams
  ): Promise<CodePushDeploymentsGetResponse>;
  /**
   * Modifies a CodePush Deployment for the given app
   * @param deploymentName deployment name
   * @param ownerName The name of the owner
   * @param appName The name of the application
   * @param name
   * @param options The options parameters.
   */
  update(
    deploymentName: string,
    ownerName: string,
    appName: string,
    name: string,
    options?: CodePushDeploymentsUpdateOptionalParams
  ): Promise<void>;
  /**
   * Gets a list of CodePush deployments for the given app
   * @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?: CodePushDeploymentsListOptionalParams
  ): Promise<CodePushDeploymentsListResponse>;
  /**
   * Creates a CodePush Deployment for the given app
   * @param ownerName The name of the owner
   * @param appName The name of the application
   * @param name
   * @param options The options parameters.
   */
  create(
    ownerName: string,
    appName: string,
    name: string,
    options?: CodePushDeploymentsCreateOptionalParams
  ): Promise<CodePushDeploymentsCreateResponse>;
}
