/*
 * 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 {
  DataGetResourceProvisioningOptionalParams,
  DataGetResourceProvisioningResponse,
  DataPostResourceProvisioningOptionalParams,
  DataPostResourceProvisioningResponse,
  DataGetOverviewOptionalParams,
  DataGetOverviewResponse,
  DataCheckNameExistsOptionalParams,
  DataCheckNameExistsResponse
} from "../models";

/** Interface representing a Data. */
export interface Data {
  /**
   * test
   * @param ownerName The name of the owner
   * @param appName The name of the application
   * @param options The options parameters.
   */
  getResourceProvisioning(
    ownerName: string,
    appName: string,
    options?: DataGetResourceProvisioningOptionalParams
  ): Promise<DataGetResourceProvisioningResponse>;
  /**
   * Creates Cosmos DB or attaches an existing one
   * @param aCAuthorizationARM test
   * @param ownerName The name of the owner
   * @param appName The name of the application
   * @param options The options parameters.
   */
  postResourceProvisioning(
    aCAuthorizationARM: string,
    ownerName: string,
    appName: string,
    options?: DataPostResourceProvisioningOptionalParams
  ): Promise<DataPostResourceProvisioningResponse>;
  /**
   * Gets general data about the provisioned database
   * @param aCAuthorizationARM ARM access token.
   * @param ownerName The name of the owner
   * @param appName The name of the application
   * @param options The options parameters.
   */
  getOverview(
    aCAuthorizationARM: string,
    ownerName: string,
    appName: string,
    options?: DataGetOverviewOptionalParams
  ): Promise<DataGetOverviewResponse>;
  /**
   * Checks that the Azure Cosmos DB account name already exists. A valid account name may contain only
   * lowercase letters, numbers, and the '-' character, and must be between 3 and 31 characters.
   * @param aCAuthorizationARM ARM token
   * @param accountName Account Name
   * @param ownerName The name of the owner
   * @param appName The name of the application
   * @param options The options parameters.
   */
  checkNameExists(
    aCAuthorizationARM: string,
    accountName: string,
    ownerName: string,
    appName: string,
    options?: DataCheckNameExistsOptionalParams
  ): Promise<DataCheckNameExistsResponse>;
}
