azure-sdk-for-js/sdk/workloads/arm-workloads/review/arm-workloads.api.md

62 KiB

API Report File for "@azure/arm-workloads"

Do not edit this file. It is a report generated by API Extractor.


import * as coreAuth from '@azure/core-auth';
import * as coreClient from '@azure/core-client';
import { OperationState } from '@azure/core-lro';
import { PagedAsyncIterableIterator } from '@azure/core-paging';
import { SimplePollerLike } from '@azure/core-lro';

// @public
export type ActionType = string;

// @public
export interface ApplicationServerConfiguration {
    instanceCount: number;
    subnetId: string;
    virtualMachineConfiguration: VirtualMachineConfiguration;
}

// @public
export interface ApplicationServerFullResourceNames {
    availabilitySetName?: string;
    virtualMachines?: VirtualMachineResourceNames[];
}

// @public
export type ApplicationServerVirtualMachineType = string;

// @public
export interface ApplicationServerVmDetails {
    readonly storageDetails?: StorageInformation[];
    readonly type?: ApplicationServerVirtualMachineType;
    readonly virtualMachineId?: string;
}

// @public
export interface CentralServerConfiguration {
    instanceCount: number;
    subnetId: string;
    virtualMachineConfiguration: VirtualMachineConfiguration;
}

// @public
export interface CentralServerFullResourceNames {
    availabilitySetName?: string;
    loadBalancer?: LoadBalancerResourceNames;
    virtualMachines?: VirtualMachineResourceNames[];
}

// @public
export type CentralServerVirtualMachineType = string;

// @public
export interface CentralServerVmDetails {
    readonly storageDetails?: StorageInformation[];
    readonly type?: CentralServerVirtualMachineType;
    readonly virtualMachineId?: string;
}

// @public
export type ConfigurationType = string;

// @public
export interface CreateAndMountFileShareConfiguration extends FileShareConfiguration {
    configurationType: "CreateAndMount";
    resourceGroup?: string;
    storageAccountName?: string;
}

// @public
export type CreatedByType = string;

// @public
export interface DatabaseConfiguration {
    databaseType?: SAPDatabaseType;
    diskConfiguration?: DiskConfiguration;
    instanceCount: number;
    subnetId: string;
    virtualMachineConfiguration: VirtualMachineConfiguration;
}

// @public
export interface DatabaseServerFullResourceNames {
    availabilitySetName?: string;
    loadBalancer?: LoadBalancerResourceNames;
    virtualMachines?: VirtualMachineResourceNames[];
}

// @public
export interface DatabaseVmDetails {
    readonly status?: SAPVirtualInstanceStatus;
    readonly storageDetails?: StorageInformation[];
    readonly virtualMachineId?: string;
}

// @public
export interface DB2ProviderInstanceProperties extends ProviderSpecificProperties {
    dbName?: string;
    dbPassword?: string;
    dbPasswordUri?: string;
    dbPort?: string;
    dbUsername?: string;
    hostname?: string;
    providerType: "Db2";
    sapSid?: string;
    sslCertificateUri?: string;
    sslPreference?: SslPreference;
}

// @public
export interface DeployerVmPackages {
    storageAccountId?: string;
    url?: string;
}

// @public
export interface DeploymentConfiguration extends SAPConfiguration {
    appLocation?: string;
    configurationType: "Deployment";
    infrastructureConfiguration?: InfrastructureConfigurationUnion;
    softwareConfiguration?: SoftwareConfigurationUnion;
}

// @public
export interface DeploymentWithOSConfiguration extends SAPConfiguration {
    appLocation?: string;
    configurationType: "DeploymentWithOSConfig";
    infrastructureConfiguration?: InfrastructureConfigurationUnion;
    osSapConfiguration?: OsSapConfiguration;
    softwareConfiguration?: SoftwareConfigurationUnion;
}

// @public
export interface DiscoveryConfiguration extends SAPConfiguration {
    readonly appLocation?: string;
    centralServerVmId?: string;
    configurationType: "Discovery";
    managedRgStorageAccountName?: string;
}

// @public
export interface DiskConfiguration {
    diskVolumeConfigurations?: {
        [propertyName: string]: DiskVolumeConfiguration;
    };
}

// @public
export interface DiskDetails {
    diskTier?: string;
    iopsReadWrite?: number;
    maximumSupportedDiskCount?: number;
    mbpsReadWrite?: number;
    minimumSupportedDiskCount?: number;
    sizeGB?: number;
    sku?: DiskSku;
}

// @public
export interface DiskSku {
    name?: DiskSkuName;
}

// @public
export type DiskSkuName = string;

// @public
export interface DiskVolumeConfiguration {
    count?: number;
    sizeGB?: number;
    sku?: DiskSku;
}

// @public
export interface EnqueueReplicationServerProperties {
    readonly ersVersion?: EnqueueReplicationServerType;
    readonly health?: SAPHealthState;
    readonly hostname?: string;
    readonly instanceNo?: string;
    readonly ipAddress?: string;
    readonly kernelPatch?: string;
    readonly kernelVersion?: string;
}

// @public
export type EnqueueReplicationServerType = string;

// @public
export interface EnqueueServerProperties {
    readonly health?: SAPHealthState;
    readonly hostname?: string;
    readonly ipAddress?: string;
    readonly port?: number;
}

// @public
export interface ErrorAdditionalInfo {
    readonly info?: Record<string, unknown>;
    readonly type?: string;
}

// @public
export interface ErrorDefinition {
    readonly code?: string;
    readonly details?: ErrorDefinition[];
    readonly message?: string;
}

// @public
export interface ErrorDetail {
    readonly additionalInfo?: ErrorAdditionalInfo[];
    readonly code?: string;
    readonly details?: ErrorDetail[];
    readonly message?: string;
    readonly target?: string;
}

// @public
export interface ErrorInnerError {
    innerError?: ErrorModel;
}

// @public
export interface ErrorModel {
    readonly code?: string;
    readonly details?: ErrorModel[];
    readonly innerError?: ErrorInnerError;
    readonly message?: string;
    readonly target?: string;
}

// @public
export interface ErrorResponse {
    error?: ErrorDetail;
}

// @public
export interface ExternalInstallationSoftwareConfiguration extends SoftwareConfiguration {
    centralServerVmId?: string;
    softwareInstallationType: "External";
}

// @public
export interface FileShareConfiguration {
    configurationType: "Skip" | "CreateAndMount" | "Mount";
}

// @public (undocumented)
export type FileShareConfigurationUnion = FileShareConfiguration | SkipFileShareConfiguration | CreateAndMountFileShareConfiguration | MountFileShareConfiguration;

// @public
export interface GatewayServerProperties {
    readonly health?: SAPHealthState;
    readonly port?: number;
}

// @public
export function getContinuationToken(page: unknown): string | undefined;

// @public
export interface HanaDbProviderInstanceProperties extends ProviderSpecificProperties {
    dbName?: string;
    dbPassword?: string;
    dbPasswordUri?: string;
    dbUsername?: string;
    hostname?: string;
    instanceNumber?: string;
    providerType: "SapHana";
    sapSid?: string;
    sqlPort?: string;
    sslCertificateUri?: string;
    sslHostNameInCertificate?: string;
    sslPreference?: SslPreference;
}

// @public
export interface HighAvailabilityConfiguration {
    highAvailabilityType: SAPHighAvailabilityType;
}

// @public
export interface HighAvailabilitySoftwareConfiguration {
    fencingClientId: string;
    fencingClientPassword: string;
}

// @public
export interface ImageReference {
    offer?: string;
    publisher?: string;
    sku?: string;
    version?: string;
}

// @public
export interface InfrastructureConfiguration {
    appResourceGroup: string;
    deploymentType: "SingleServer" | "ThreeTier";
}

// @public (undocumented)
export type InfrastructureConfigurationUnion = InfrastructureConfiguration | SingleServerConfiguration | ThreeTierConfiguration;

// @public
export enum KnownActionType {
    Internal = "Internal"
}

// @public
export enum KnownApplicationServerVirtualMachineType {
    Active = "Active",
    Standby = "Standby",
    Unknown = "Unknown"
}

// @public
export enum KnownCentralServerVirtualMachineType {
    Ascs = "ASCS",
    ERS = "ERS",
    ERSInactive = "ERSInactive",
    Primary = "Primary",
    Secondary = "Secondary",
    Standby = "Standby",
    Unknown = "Unknown"
}

// @public
export enum KnownConfigurationType {
    CreateAndMount = "CreateAndMount",
    Mount = "Mount",
    Skip = "Skip"
}

// @public
export enum KnownCreatedByType {
    Application = "Application",
    Key = "Key",
    ManagedIdentity = "ManagedIdentity",
    User = "User"
}

// @public
export enum KnownDiskSkuName {
    PremiumLRS = "Premium_LRS",
    PremiumV2LRS = "PremiumV2_LRS",
    PremiumZRS = "Premium_ZRS",
    StandardLRS = "Standard_LRS",
    StandardSSDLRS = "StandardSSD_LRS",
    StandardSSDZRS = "StandardSSD_ZRS",
    UltraSSDLRS = "UltraSSD_LRS"
}

// @public
export enum KnownEnqueueReplicationServerType {
    EnqueueReplicator1 = "EnqueueReplicator1",
    EnqueueReplicator2 = "EnqueueReplicator2"
}

// @public
export enum KnownManagedServiceIdentityType {
    None = "None",
    UserAssigned = "UserAssigned"
}

// @public
export enum KnownNamingPatternType {
    FullResourceName = "FullResourceName"
}

// @public
export enum KnownOperationProperties {
    NotSpecified = "NotSpecified",
    System = "System",
    User = "User"
}

// @public
export enum KnownOrigin {
    System = "system",
    User = "user",
    UserSystem = "user,system"
}

// @public
export enum KnownOSType {
    Linux = "Linux",
    Windows = "Windows"
}

// @public
export enum KnownRoutingPreference {
    Default = "Default",
    RouteAll = "RouteAll"
}

// @public
export enum KnownSAPConfigurationType {
    Deployment = "Deployment",
    DeploymentWithOSConfig = "DeploymentWithOSConfig",
    Discovery = "Discovery"
}

// @public
export enum KnownSAPDatabaseScaleMethod {
    ScaleUp = "ScaleUp"
}

// @public
export enum KnownSAPDatabaseType {
    DB2 = "DB2",
    Hana = "HANA"
}

// @public
export enum KnownSAPDeploymentType {
    SingleServer = "SingleServer",
    ThreeTier = "ThreeTier"
}

// @public
export enum KnownSAPEnvironmentType {
    NonProd = "NonProd",
    Prod = "Prod"
}

// @public
export enum KnownSAPHealthState {
    Degraded = "Degraded",
    Healthy = "Healthy",
    Unhealthy = "Unhealthy",
    Unknown = "Unknown"
}

// @public
export enum KnownSAPHighAvailabilityType {
    AvailabilitySet = "AvailabilitySet",
    AvailabilityZone = "AvailabilityZone"
}

// @public
export enum KnownSapLandscapeMonitorProvisioningState {
    Accepted = "Accepted",
    Canceled = "Canceled",
    Created = "Created",
    Failed = "Failed",
    Succeeded = "Succeeded"
}

// @public
export enum KnownSAPProductType {
    ECC = "ECC",
    Other = "Other",
    S4Hana = "S4HANA"
}

// @public
export enum KnownSAPSoftwareInstallationType {
    External = "External",
    SAPInstallWithoutOSConfig = "SAPInstallWithoutOSConfig",
    ServiceInitiated = "ServiceInitiated"
}

// @public
export enum KnownSapVirtualInstanceProvisioningState {
    Creating = "Creating",
    Deleting = "Deleting",
    Failed = "Failed",
    Succeeded = "Succeeded",
    Updating = "Updating"
}

// @public
export enum KnownSAPVirtualInstanceState {
    DiscoveryFailed = "DiscoveryFailed",
    DiscoveryInProgress = "DiscoveryInProgress",
    DiscoveryPending = "DiscoveryPending",
    InfrastructureDeploymentFailed = "InfrastructureDeploymentFailed",
    InfrastructureDeploymentInProgress = "InfrastructureDeploymentInProgress",
    InfrastructureDeploymentPending = "InfrastructureDeploymentPending",
    RegistrationComplete = "RegistrationComplete",
    SoftwareDetectionFailed = "SoftwareDetectionFailed",
    SoftwareDetectionInProgress = "SoftwareDetectionInProgress",
    SoftwareInstallationFailed = "SoftwareInstallationFailed",
    SoftwareInstallationInProgress = "SoftwareInstallationInProgress",
    SoftwareInstallationPending = "SoftwareInstallationPending"
}

// @public
export enum KnownSAPVirtualInstanceStatus {
    Offline = "Offline",
    PartiallyRunning = "PartiallyRunning",
    Running = "Running",
    SoftShutdown = "SoftShutdown",
    Starting = "Starting",
    Stopping = "Stopping",
    Unavailable = "Unavailable"
}

// @public
export enum KnownSslPreference {
    Disabled = "Disabled",
    RootCertificate = "RootCertificate",
    ServerCertificate = "ServerCertificate"
}

// @public
export enum KnownWorkloadMonitorActionType {
    Internal = "Internal",
    NotSpecified = "NotSpecified"
}

// @public
export enum KnownWorkloadMonitorProvisioningState {
    Accepted = "Accepted",
    Creating = "Creating",
    Deleting = "Deleting",
    Failed = "Failed",
    Migrating = "Migrating",
    Succeeded = "Succeeded",
    Updating = "Updating"
}

// @public
export interface LinuxConfiguration extends OSConfiguration {
    disablePasswordAuthentication?: boolean;
    osType: "Linux";
    ssh?: SshConfiguration;
    sshKeyPair?: SshKeyPair;
}

// @public
export interface LoadBalancerDetails {
    readonly id?: string;
}

// @public
export interface LoadBalancerResourceNames {
    backendPoolNames?: string[];
    frontendIpConfigurationNames?: string[];
    healthProbeNames?: string[];
    loadBalancerName?: string;
}

// @public
export interface ManagedRGConfiguration {
    name?: string;
}

// @public
export type ManagedServiceIdentityType = string;

// @public
export interface MessageServerProperties {
    readonly health?: SAPHealthState;
    readonly hostname?: string;
    readonly httpPort?: number;
    readonly httpsPort?: number;
    readonly internalMsPort?: number;
    readonly ipAddress?: string;
    readonly msPort?: number;
}

// @public
export interface Monitor extends TrackedResource {
    appLocation?: string;
    readonly errors?: MonitorPropertiesErrors;
    identity?: UserAssignedServiceIdentity;
    logAnalyticsWorkspaceArmId?: string;
    managedResourceGroupConfiguration?: ManagedRGConfiguration;
    monitorSubnet?: string;
    readonly msiArmId?: string;
    readonly provisioningState?: WorkloadMonitorProvisioningState;
    routingPreference?: RoutingPreference;
    readonly storageAccountArmId?: string;
    zoneRedundancyPreference?: string;
}

// @public
export interface MonitorListResult {
    nextLink?: string;
    value?: Monitor[];
}

// @public
export interface MonitorPropertiesErrors extends ErrorModel {
}

// @public
export interface Monitors {
    beginCreate(resourceGroupName: string, monitorName: string, monitorParameter: Monitor, options?: MonitorsCreateOptionalParams): Promise<SimplePollerLike<OperationState<MonitorsCreateResponse>, MonitorsCreateResponse>>;
    beginCreateAndWait(resourceGroupName: string, monitorName: string, monitorParameter: Monitor, options?: MonitorsCreateOptionalParams): Promise<MonitorsCreateResponse>;
    beginDelete(resourceGroupName: string, monitorName: string, options?: MonitorsDeleteOptionalParams): Promise<SimplePollerLike<OperationState<MonitorsDeleteResponse>, MonitorsDeleteResponse>>;
    beginDeleteAndWait(resourceGroupName: string, monitorName: string, options?: MonitorsDeleteOptionalParams): Promise<MonitorsDeleteResponse>;
    get(resourceGroupName: string, monitorName: string, options?: MonitorsGetOptionalParams): Promise<MonitorsGetResponse>;
    list(options?: MonitorsListOptionalParams): PagedAsyncIterableIterator<Monitor>;
    listByResourceGroup(resourceGroupName: string, options?: MonitorsListByResourceGroupOptionalParams): PagedAsyncIterableIterator<Monitor>;
    update(resourceGroupName: string, monitorName: string, body: UpdateMonitorRequest, options?: MonitorsUpdateOptionalParams): Promise<MonitorsUpdateResponse>;
}

// @public
export interface MonitorsCreateOptionalParams extends coreClient.OperationOptions {
    resumeFrom?: string;
    updateIntervalInMs?: number;
}

// @public
export type MonitorsCreateResponse = Monitor;

// @public
export interface MonitorsDeleteOptionalParams extends coreClient.OperationOptions {
    resumeFrom?: string;
    updateIntervalInMs?: number;
}

// @public
export type MonitorsDeleteResponse = OperationStatusResult;

// @public
export interface MonitorsGetOptionalParams extends coreClient.OperationOptions {
}

// @public
export type MonitorsGetResponse = Monitor;

// @public
export interface MonitorsListByResourceGroupNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type MonitorsListByResourceGroupNextResponse = MonitorListResult;

// @public
export interface MonitorsListByResourceGroupOptionalParams extends coreClient.OperationOptions {
}

// @public
export type MonitorsListByResourceGroupResponse = MonitorListResult;

// @public
export interface MonitorsListNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type MonitorsListNextResponse = MonitorListResult;

// @public
export interface MonitorsListOptionalParams extends coreClient.OperationOptions {
}

// @public
export type MonitorsListResponse = MonitorListResult;

// @public
export interface MonitorsUpdateOptionalParams extends coreClient.OperationOptions {
}

// @public
export type MonitorsUpdateResponse = Monitor;

// @public
export interface MountFileShareConfiguration extends FileShareConfiguration {
    configurationType: "Mount";
    id: string;
    privateEndpointId: string;
}

// @public
export interface MsSqlServerProviderInstanceProperties extends ProviderSpecificProperties {
    dbPassword?: string;
    dbPasswordUri?: string;
    dbPort?: string;
    dbUsername?: string;
    hostname?: string;
    providerType: "MsSqlServer";
    sapSid?: string;
    sslCertificateUri?: string;
    sslPreference?: SslPreference;
}

// @public
export type NamingPatternType = string;

// @public
export interface NetworkConfiguration {
    isSecondaryIpEnabled?: boolean;
}

// @public
export interface NetworkInterfaceResourceNames {
    networkInterfaceName?: string;
}

// @public
export interface Operation {
    readonly actionType?: ActionType;
    display?: OperationDisplay;
    readonly isDataAction?: boolean;
    readonly name?: string;
    readonly origin?: Origin;
}

// @public
export interface OperationDisplay {
    readonly description?: string;
    readonly operation?: string;
    readonly provider?: string;
    readonly resource?: string;
}

// @public
export interface OperationListResult {
    readonly nextLink?: string;
    readonly value?: Operation[];
}

// @public
export type OperationProperties = string;

// @public
export interface Operations {
    list(options?: OperationsListOptionalParams): PagedAsyncIterableIterator<Operation>;
}

// @public
export interface OperationsContent extends Resource {
    actionType?: WorkloadMonitorActionType;
    display?: OperationsDefinitionDisplay;
    isDataAction?: boolean;
    namePropertiesName?: string;
    origin?: OperationProperties;
    properties?: any;
}

// @public
export interface OperationsDefinition {
    actionType?: WorkloadMonitorActionType;
    display: OperationsDefinitionDisplay;
    isDataAction?: boolean;
    name: string;
    origin?: OperationProperties;
    properties?: any;
}

// @public
export interface OperationsDefinitionArrayResponseWithContinuation {
    nextLink?: string;
    value?: OperationsDefinition[];
}

// @public
export interface OperationsDefinitionDisplay extends OperationsDisplayDefinition {
}

// @public
export interface OperationsDisplayDefinition {
    description: string;
    operation: string;
    provider: string;
    resource: string;
}

// @public
export interface OperationsListNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type OperationsListNextResponse = OperationListResult;

// @public
export interface OperationsListOptionalParams extends coreClient.OperationOptions {
}

// @public
export type OperationsListResponse = OperationListResult;

// @public
export interface OperationStatusResult {
    endTime?: Date;
    error?: ErrorDetail;
    id?: string;
    name?: string;
    operations?: OperationStatusResult[];
    percentComplete?: number;
    startTime?: Date;
    status: string;
}

// @public
export type Origin = string;

// @public
export interface OSConfiguration {
    osType: "Windows" | "Linux";
}

// @public (undocumented)
export type OSConfigurationUnion = OSConfiguration | WindowsConfiguration | LinuxConfiguration;

// @public
export interface OSProfile {
    adminPassword?: string;
    adminUsername?: string;
    osConfiguration?: OSConfigurationUnion;
}

// @public
export interface OsSapConfiguration {
    deployerVmPackages?: DeployerVmPackages;
    sapFqdn?: string;
}

// @public
export type OSType = string;

// @public
export interface PrometheusHaClusterProviderInstanceProperties extends ProviderSpecificProperties {
    clusterName?: string;
    hostname?: string;
    prometheusUrl?: string;
    providerType: "PrometheusHaCluster";
    sid?: string;
    sslCertificateUri?: string;
    sslPreference?: SslPreference;
}

// @public
export interface PrometheusOSProviderInstanceProperties extends ProviderSpecificProperties {
    prometheusUrl?: string;
    providerType: "PrometheusOS";
    sapSid?: string;
    sslCertificateUri?: string;
    sslPreference?: SslPreference;
}

// @public
export interface ProviderInstance extends ProxyResource {
    readonly errors?: ProviderInstancePropertiesErrors;
    identity?: UserAssignedServiceIdentity;
    providerSettings?: ProviderSpecificPropertiesUnion;
    readonly provisioningState?: WorkloadMonitorProvisioningState;
}

// @public
export interface ProviderInstanceListResult {
    nextLink?: string;
    value?: ProviderInstance[];
}

// @public
export interface ProviderInstancePropertiesErrors extends ErrorModel {
}

// @public
export interface ProviderInstances {
    beginCreate(resourceGroupName: string, monitorName: string, providerInstanceName: string, providerInstanceParameter: ProviderInstance, options?: ProviderInstancesCreateOptionalParams): Promise<SimplePollerLike<OperationState<ProviderInstancesCreateResponse>, ProviderInstancesCreateResponse>>;
    beginCreateAndWait(resourceGroupName: string, monitorName: string, providerInstanceName: string, providerInstanceParameter: ProviderInstance, options?: ProviderInstancesCreateOptionalParams): Promise<ProviderInstancesCreateResponse>;
    beginDelete(resourceGroupName: string, monitorName: string, providerInstanceName: string, options?: ProviderInstancesDeleteOptionalParams): Promise<SimplePollerLike<OperationState<ProviderInstancesDeleteResponse>, ProviderInstancesDeleteResponse>>;
    beginDeleteAndWait(resourceGroupName: string, monitorName: string, providerInstanceName: string, options?: ProviderInstancesDeleteOptionalParams): Promise<ProviderInstancesDeleteResponse>;
    get(resourceGroupName: string, monitorName: string, providerInstanceName: string, options?: ProviderInstancesGetOptionalParams): Promise<ProviderInstancesGetResponse>;
    list(resourceGroupName: string, monitorName: string, options?: ProviderInstancesListOptionalParams): PagedAsyncIterableIterator<ProviderInstance>;
}

// @public
export interface ProviderInstancesCreateOptionalParams extends coreClient.OperationOptions {
    resumeFrom?: string;
    updateIntervalInMs?: number;
}

// @public
export type ProviderInstancesCreateResponse = ProviderInstance;

// @public
export interface ProviderInstancesDeleteOptionalParams extends coreClient.OperationOptions {
    resumeFrom?: string;
    updateIntervalInMs?: number;
}

// @public
export type ProviderInstancesDeleteResponse = OperationStatusResult;

// @public
export interface ProviderInstancesGetOptionalParams extends coreClient.OperationOptions {
}

// @public
export type ProviderInstancesGetResponse = ProviderInstance;

// @public
export interface ProviderInstancesListNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type ProviderInstancesListNextResponse = ProviderInstanceListResult;

// @public
export interface ProviderInstancesListOptionalParams extends coreClient.OperationOptions {
}

// @public
export type ProviderInstancesListResponse = ProviderInstanceListResult;

// @public
export interface ProviderSpecificProperties {
    providerType: "SapHana" | "SapNetWeaver" | "PrometheusOS" | "Db2" | "PrometheusHaCluster" | "MsSqlServer";
}

// @public (undocumented)
export type ProviderSpecificPropertiesUnion = ProviderSpecificProperties | HanaDbProviderInstanceProperties | SapNetWeaverProviderInstanceProperties | PrometheusOSProviderInstanceProperties | DB2ProviderInstanceProperties | PrometheusHaClusterProviderInstanceProperties | MsSqlServerProviderInstanceProperties;

// @public
export interface ProxyResource extends Resource {
}

// @public
export interface Resource {
    readonly id?: string;
    readonly name?: string;
    readonly systemData?: SystemData;
    readonly type?: string;
}

// @public
export type RoutingPreference = string;

// @public
export interface SAPApplicationServerInstance extends TrackedResource {
    readonly errors?: SAPVirtualInstanceError;
    readonly gatewayPort?: number;
    readonly health?: SAPHealthState;
    readonly hostname?: string;
    readonly icmHttpPort?: number;
    readonly icmHttpsPort?: number;
    readonly instanceNo?: string;
    readonly ipAddress?: string;
    readonly kernelPatch?: string;
    readonly kernelVersion?: string;
    readonly loadBalancerDetails?: LoadBalancerDetails;
    readonly provisioningState?: SapVirtualInstanceProvisioningState;
    readonly status?: SAPVirtualInstanceStatus;
    readonly subnet?: string;
    readonly vmDetails?: ApplicationServerVmDetails[];
}

// @public
export interface SAPApplicationServerInstanceList {
    nextLink?: string;
    value?: SAPApplicationServerInstance[];
}

// @public
export interface SAPApplicationServerInstances {
    beginCreate(resourceGroupName: string, sapVirtualInstanceName: string, applicationInstanceName: string, options?: SAPApplicationServerInstancesCreateOptionalParams): Promise<SimplePollerLike<OperationState<SAPApplicationServerInstancesCreateResponse>, SAPApplicationServerInstancesCreateResponse>>;
    beginCreateAndWait(resourceGroupName: string, sapVirtualInstanceName: string, applicationInstanceName: string, options?: SAPApplicationServerInstancesCreateOptionalParams): Promise<SAPApplicationServerInstancesCreateResponse>;
    beginDelete(resourceGroupName: string, sapVirtualInstanceName: string, applicationInstanceName: string, options?: SAPApplicationServerInstancesDeleteOptionalParams): Promise<SimplePollerLike<OperationState<SAPApplicationServerInstancesDeleteResponse>, SAPApplicationServerInstancesDeleteResponse>>;
    beginDeleteAndWait(resourceGroupName: string, sapVirtualInstanceName: string, applicationInstanceName: string, options?: SAPApplicationServerInstancesDeleteOptionalParams): Promise<SAPApplicationServerInstancesDeleteResponse>;
    beginStartInstance(resourceGroupName: string, sapVirtualInstanceName: string, applicationInstanceName: string, options?: SAPApplicationServerInstancesStartInstanceOptionalParams): Promise<SimplePollerLike<OperationState<SAPApplicationServerInstancesStartInstanceResponse>, SAPApplicationServerInstancesStartInstanceResponse>>;
    beginStartInstanceAndWait(resourceGroupName: string, sapVirtualInstanceName: string, applicationInstanceName: string, options?: SAPApplicationServerInstancesStartInstanceOptionalParams): Promise<SAPApplicationServerInstancesStartInstanceResponse>;
    beginStopInstance(resourceGroupName: string, sapVirtualInstanceName: string, applicationInstanceName: string, options?: SAPApplicationServerInstancesStopInstanceOptionalParams): Promise<SimplePollerLike<OperationState<SAPApplicationServerInstancesStopInstanceResponse>, SAPApplicationServerInstancesStopInstanceResponse>>;
    beginStopInstanceAndWait(resourceGroupName: string, sapVirtualInstanceName: string, applicationInstanceName: string, options?: SAPApplicationServerInstancesStopInstanceOptionalParams): Promise<SAPApplicationServerInstancesStopInstanceResponse>;
    beginUpdate(resourceGroupName: string, sapVirtualInstanceName: string, applicationInstanceName: string, options?: SAPApplicationServerInstancesUpdateOptionalParams): Promise<SimplePollerLike<OperationState<SAPApplicationServerInstancesUpdateResponse>, SAPApplicationServerInstancesUpdateResponse>>;
    beginUpdateAndWait(resourceGroupName: string, sapVirtualInstanceName: string, applicationInstanceName: string, options?: SAPApplicationServerInstancesUpdateOptionalParams): Promise<SAPApplicationServerInstancesUpdateResponse>;
    get(resourceGroupName: string, sapVirtualInstanceName: string, applicationInstanceName: string, options?: SAPApplicationServerInstancesGetOptionalParams): Promise<SAPApplicationServerInstancesGetResponse>;
    list(resourceGroupName: string, sapVirtualInstanceName: string, options?: SAPApplicationServerInstancesListOptionalParams): PagedAsyncIterableIterator<SAPApplicationServerInstance>;
}

// @public
export interface SAPApplicationServerInstancesCreateOptionalParams extends coreClient.OperationOptions {
    body?: SAPApplicationServerInstance;
    resumeFrom?: string;
    updateIntervalInMs?: number;
}

// @public
export type SAPApplicationServerInstancesCreateResponse = SAPApplicationServerInstance;

// @public
export interface SAPApplicationServerInstancesDeleteOptionalParams extends coreClient.OperationOptions {
    resumeFrom?: string;
    updateIntervalInMs?: number;
}

// @public
export type SAPApplicationServerInstancesDeleteResponse = OperationStatusResult;

// @public
export interface SAPApplicationServerInstancesGetOptionalParams extends coreClient.OperationOptions {
}

// @public
export type SAPApplicationServerInstancesGetResponse = SAPApplicationServerInstance;

// @public
export interface SAPApplicationServerInstancesListNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type SAPApplicationServerInstancesListNextResponse = SAPApplicationServerInstanceList;

// @public
export interface SAPApplicationServerInstancesListOptionalParams extends coreClient.OperationOptions {
}

// @public
export type SAPApplicationServerInstancesListResponse = SAPApplicationServerInstanceList;

// @public
export interface SAPApplicationServerInstancesStartInstanceOptionalParams extends coreClient.OperationOptions {
    resumeFrom?: string;
    updateIntervalInMs?: number;
}

// @public
export type SAPApplicationServerInstancesStartInstanceResponse = OperationStatusResult;

// @public
export interface SAPApplicationServerInstancesStopInstanceOptionalParams extends coreClient.OperationOptions {
    body?: StopRequest;
    resumeFrom?: string;
    updateIntervalInMs?: number;
}

// @public
export type SAPApplicationServerInstancesStopInstanceResponse = OperationStatusResult;

// @public
export interface SAPApplicationServerInstancesUpdateOptionalParams extends coreClient.OperationOptions {
    body?: UpdateSAPApplicationInstanceRequest;
    resumeFrom?: string;
    updateIntervalInMs?: number;
}

// @public
export type SAPApplicationServerInstancesUpdateResponse = SAPApplicationServerInstance;

// @public
export interface SAPAvailabilityZoneDetailsOptionalParams extends coreClient.OperationOptions {
    sAPAvailabilityZoneDetails?: SAPAvailabilityZoneDetailsRequest;
}

// @public
export interface SAPAvailabilityZoneDetailsRequest {
    appLocation: string;
    databaseType: SAPDatabaseType;
    sapProduct: SAPProductType;
}

// @public
export type SAPAvailabilityZoneDetailsResponse = SAPAvailabilityZoneDetailsResult;

// @public
export interface SAPAvailabilityZoneDetailsResult {
    availabilityZonePairs?: SAPAvailabilityZonePair[];
}

// @public
export interface SAPAvailabilityZonePair {
    zoneA?: number;
    zoneB?: number;
}

// @public
export interface SAPCentralInstanceList {
    nextLink?: string;
    value?: SAPCentralServerInstance[];
}

// @public
export interface SAPCentralInstances {
    beginCreate(resourceGroupName: string, sapVirtualInstanceName: string, centralInstanceName: string, options?: SAPCentralInstancesCreateOptionalParams): Promise<SimplePollerLike<OperationState<SAPCentralInstancesCreateResponse>, SAPCentralInstancesCreateResponse>>;
    beginCreateAndWait(resourceGroupName: string, sapVirtualInstanceName: string, centralInstanceName: string, options?: SAPCentralInstancesCreateOptionalParams): Promise<SAPCentralInstancesCreateResponse>;
    beginDelete(resourceGroupName: string, sapVirtualInstanceName: string, centralInstanceName: string, options?: SAPCentralInstancesDeleteOptionalParams): Promise<SimplePollerLike<OperationState<SAPCentralInstancesDeleteResponse>, SAPCentralInstancesDeleteResponse>>;
    beginDeleteAndWait(resourceGroupName: string, sapVirtualInstanceName: string, centralInstanceName: string, options?: SAPCentralInstancesDeleteOptionalParams): Promise<SAPCentralInstancesDeleteResponse>;
    beginStartInstance(resourceGroupName: string, sapVirtualInstanceName: string, centralInstanceName: string, options?: SAPCentralInstancesStartInstanceOptionalParams): Promise<SimplePollerLike<OperationState<SAPCentralInstancesStartInstanceResponse>, SAPCentralInstancesStartInstanceResponse>>;
    beginStartInstanceAndWait(resourceGroupName: string, sapVirtualInstanceName: string, centralInstanceName: string, options?: SAPCentralInstancesStartInstanceOptionalParams): Promise<SAPCentralInstancesStartInstanceResponse>;
    beginStopInstance(resourceGroupName: string, sapVirtualInstanceName: string, centralInstanceName: string, options?: SAPCentralInstancesStopInstanceOptionalParams): Promise<SimplePollerLike<OperationState<SAPCentralInstancesStopInstanceResponse>, SAPCentralInstancesStopInstanceResponse>>;
    beginStopInstanceAndWait(resourceGroupName: string, sapVirtualInstanceName: string, centralInstanceName: string, options?: SAPCentralInstancesStopInstanceOptionalParams): Promise<SAPCentralInstancesStopInstanceResponse>;
    beginUpdate(resourceGroupName: string, sapVirtualInstanceName: string, centralInstanceName: string, options?: SAPCentralInstancesUpdateOptionalParams): Promise<SimplePollerLike<OperationState<SAPCentralInstancesUpdateResponse>, SAPCentralInstancesUpdateResponse>>;
    beginUpdateAndWait(resourceGroupName: string, sapVirtualInstanceName: string, centralInstanceName: string, options?: SAPCentralInstancesUpdateOptionalParams): Promise<SAPCentralInstancesUpdateResponse>;
    get(resourceGroupName: string, sapVirtualInstanceName: string, centralInstanceName: string, options?: SAPCentralInstancesGetOptionalParams): Promise<SAPCentralInstancesGetResponse>;
    list(resourceGroupName: string, sapVirtualInstanceName: string, options?: SAPCentralInstancesListOptionalParams): PagedAsyncIterableIterator<SAPCentralServerInstance>;
}

// @public
export interface SAPCentralInstancesCreateOptionalParams extends coreClient.OperationOptions {
    body?: SAPCentralServerInstance;
    resumeFrom?: string;
    updateIntervalInMs?: number;
}

// @public
export type SAPCentralInstancesCreateResponse = SAPCentralServerInstance;

// @public
export interface SAPCentralInstancesDeleteOptionalParams extends coreClient.OperationOptions {
    resumeFrom?: string;
    updateIntervalInMs?: number;
}

// @public
export type SAPCentralInstancesDeleteResponse = OperationStatusResult;

// @public
export interface SAPCentralInstancesGetOptionalParams extends coreClient.OperationOptions {
}

// @public
export type SAPCentralInstancesGetResponse = SAPCentralServerInstance;

// @public
export interface SAPCentralInstancesListNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type SAPCentralInstancesListNextResponse = SAPCentralInstanceList;

// @public
export interface SAPCentralInstancesListOptionalParams extends coreClient.OperationOptions {
}

// @public
export type SAPCentralInstancesListResponse = SAPCentralInstanceList;

// @public
export interface SAPCentralInstancesStartInstanceOptionalParams extends coreClient.OperationOptions {
    resumeFrom?: string;
    updateIntervalInMs?: number;
}

// @public
export type SAPCentralInstancesStartInstanceResponse = OperationStatusResult;

// @public
export interface SAPCentralInstancesStopInstanceOptionalParams extends coreClient.OperationOptions {
    body?: StopRequest;
    resumeFrom?: string;
    updateIntervalInMs?: number;
}

// @public
export type SAPCentralInstancesStopInstanceResponse = OperationStatusResult;

// @public
export interface SAPCentralInstancesUpdateOptionalParams extends coreClient.OperationOptions {
    body?: UpdateSAPCentralInstanceRequest;
    resumeFrom?: string;
    updateIntervalInMs?: number;
}

// @public
export type SAPCentralInstancesUpdateResponse = SAPCentralServerInstance;

// @public
export interface SAPCentralServerInstance extends TrackedResource {
    enqueueReplicationServerProperties?: EnqueueReplicationServerProperties;
    enqueueServerProperties?: EnqueueServerProperties;
    readonly errors?: SAPVirtualInstanceError;
    gatewayServerProperties?: GatewayServerProperties;
    readonly health?: SAPHealthState;
    readonly instanceNo?: string;
    readonly kernelPatch?: string;
    readonly kernelVersion?: string;
    readonly loadBalancerDetails?: LoadBalancerDetails;
    messageServerProperties?: MessageServerProperties;
    readonly provisioningState?: SapVirtualInstanceProvisioningState;
    readonly status?: SAPVirtualInstanceStatus;
    readonly subnet?: string;
    readonly vmDetails?: CentralServerVmDetails[];
}

// @public
export interface SAPConfiguration {
    configurationType: "Discovery" | "Deployment" | "DeploymentWithOSConfig";
}

// @public
export type SAPConfigurationType = string;

// @public (undocumented)
export type SAPConfigurationUnion = SAPConfiguration | DiscoveryConfiguration | DeploymentConfiguration | DeploymentWithOSConfiguration;

// @public
export interface SAPDatabaseInstance extends TrackedResource {
    readonly databaseSid?: string;
    readonly databaseType?: string;
    readonly errors?: SAPVirtualInstanceError;
    readonly ipAddress?: string;
    readonly loadBalancerDetails?: LoadBalancerDetails;
    readonly provisioningState?: SapVirtualInstanceProvisioningState;
    readonly status?: SAPVirtualInstanceStatus;
    readonly subnet?: string;
    readonly vmDetails?: DatabaseVmDetails[];
}

// @public
export interface SAPDatabaseInstanceList {
    nextLink?: string;
    value?: SAPDatabaseInstance[];
}

// @public
export interface SAPDatabaseInstances {
    beginCreate(resourceGroupName: string, sapVirtualInstanceName: string, databaseInstanceName: string, options?: SAPDatabaseInstancesCreateOptionalParams): Promise<SimplePollerLike<OperationState<SAPDatabaseInstancesCreateResponse>, SAPDatabaseInstancesCreateResponse>>;
    beginCreateAndWait(resourceGroupName: string, sapVirtualInstanceName: string, databaseInstanceName: string, options?: SAPDatabaseInstancesCreateOptionalParams): Promise<SAPDatabaseInstancesCreateResponse>;
    beginDelete(resourceGroupName: string, sapVirtualInstanceName: string, databaseInstanceName: string, options?: SAPDatabaseInstancesDeleteOptionalParams): Promise<SimplePollerLike<OperationState<SAPDatabaseInstancesDeleteResponse>, SAPDatabaseInstancesDeleteResponse>>;
    beginDeleteAndWait(resourceGroupName: string, sapVirtualInstanceName: string, databaseInstanceName: string, options?: SAPDatabaseInstancesDeleteOptionalParams): Promise<SAPDatabaseInstancesDeleteResponse>;
    beginStartInstance(resourceGroupName: string, sapVirtualInstanceName: string, databaseInstanceName: string, options?: SAPDatabaseInstancesStartInstanceOptionalParams): Promise<SimplePollerLike<OperationState<SAPDatabaseInstancesStartInstanceResponse>, SAPDatabaseInstancesStartInstanceResponse>>;
    beginStartInstanceAndWait(resourceGroupName: string, sapVirtualInstanceName: string, databaseInstanceName: string, options?: SAPDatabaseInstancesStartInstanceOptionalParams): Promise<SAPDatabaseInstancesStartInstanceResponse>;
    beginStopInstance(resourceGroupName: string, sapVirtualInstanceName: string, databaseInstanceName: string, options?: SAPDatabaseInstancesStopInstanceOptionalParams): Promise<SimplePollerLike<OperationState<SAPDatabaseInstancesStopInstanceResponse>, SAPDatabaseInstancesStopInstanceResponse>>;
    beginStopInstanceAndWait(resourceGroupName: string, sapVirtualInstanceName: string, databaseInstanceName: string, options?: SAPDatabaseInstancesStopInstanceOptionalParams): Promise<SAPDatabaseInstancesStopInstanceResponse>;
    beginUpdate(resourceGroupName: string, sapVirtualInstanceName: string, databaseInstanceName: string, options?: SAPDatabaseInstancesUpdateOptionalParams): Promise<SimplePollerLike<OperationState<SAPDatabaseInstancesUpdateResponse>, SAPDatabaseInstancesUpdateResponse>>;
    beginUpdateAndWait(resourceGroupName: string, sapVirtualInstanceName: string, databaseInstanceName: string, options?: SAPDatabaseInstancesUpdateOptionalParams): Promise<SAPDatabaseInstancesUpdateResponse>;
    get(resourceGroupName: string, sapVirtualInstanceName: string, databaseInstanceName: string, options?: SAPDatabaseInstancesGetOptionalParams): Promise<SAPDatabaseInstancesGetResponse>;
    list(resourceGroupName: string, sapVirtualInstanceName: string, options?: SAPDatabaseInstancesListOptionalParams): PagedAsyncIterableIterator<SAPDatabaseInstance>;
}

// @public
export interface SAPDatabaseInstancesCreateOptionalParams extends coreClient.OperationOptions {
    body?: SAPDatabaseInstance;
    resumeFrom?: string;
    updateIntervalInMs?: number;
}

// @public
export type SAPDatabaseInstancesCreateResponse = SAPDatabaseInstance;

// @public
export interface SAPDatabaseInstancesDeleteOptionalParams extends coreClient.OperationOptions {
    resumeFrom?: string;
    updateIntervalInMs?: number;
}

// @public
export type SAPDatabaseInstancesDeleteResponse = OperationStatusResult;

// @public
export interface SAPDatabaseInstancesGetOptionalParams extends coreClient.OperationOptions {
}

// @public
export type SAPDatabaseInstancesGetResponse = SAPDatabaseInstance;

// @public
export interface SAPDatabaseInstancesListNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type SAPDatabaseInstancesListNextResponse = SAPDatabaseInstanceList;

// @public
export interface SAPDatabaseInstancesListOptionalParams extends coreClient.OperationOptions {
}

// @public
export type SAPDatabaseInstancesListResponse = SAPDatabaseInstanceList;

// @public
export interface SAPDatabaseInstancesStartInstanceOptionalParams extends coreClient.OperationOptions {
    resumeFrom?: string;
    updateIntervalInMs?: number;
}

// @public
export type SAPDatabaseInstancesStartInstanceResponse = OperationStatusResult;

// @public
export interface SAPDatabaseInstancesStopInstanceOptionalParams extends coreClient.OperationOptions {
    body?: StopRequest;
    resumeFrom?: string;
    updateIntervalInMs?: number;
}

// @public
export type SAPDatabaseInstancesStopInstanceResponse = OperationStatusResult;

// @public
export interface SAPDatabaseInstancesUpdateOptionalParams extends coreClient.OperationOptions {
    body?: UpdateSAPDatabaseInstanceRequest;
    resumeFrom?: string;
    updateIntervalInMs?: number;
}

// @public
export type SAPDatabaseInstancesUpdateResponse = SAPDatabaseInstance;

// @public
export type SAPDatabaseScaleMethod = string;

// @public
export type SAPDatabaseType = string;

// @public
export type SAPDeploymentType = string;

// @public
export interface SAPDiskConfiguration {
    recommendedConfiguration?: DiskVolumeConfiguration;
    supportedConfigurations?: DiskDetails[];
}

// @public
export interface SAPDiskConfigurationsOptionalParams extends coreClient.OperationOptions {
    sAPDiskConfigurations?: SAPDiskConfigurationsRequest;
}

// @public
export interface SAPDiskConfigurationsRequest {
    appLocation: string;
    databaseType: SAPDatabaseType;
    dbVmSku: string;
    deploymentType: SAPDeploymentType;
    environment: SAPEnvironmentType;
    sapProduct: SAPProductType;
}

// @public
export type SAPDiskConfigurationsResponse = SAPDiskConfigurationsResult;

// @public
export interface SAPDiskConfigurationsResult {
    volumeConfigurations?: {
        [propertyName: string]: SAPDiskConfiguration;
    };
}

// @public
export type SAPEnvironmentType = string;

// @public
export type SAPHealthState = string;

// @public
export type SAPHighAvailabilityType = string;

// @public
export interface SAPInstallWithoutOSConfigSoftwareConfiguration extends SoftwareConfiguration {
    bomUrl: string;
    highAvailabilitySoftwareConfiguration?: HighAvailabilitySoftwareConfiguration;
    sapBitsStorageAccountId: string;
    softwareInstallationType: "SAPInstallWithoutOSConfig";
    softwareVersion: string;
}

// @public
export interface SapLandscapeMonitor extends ProxyResource {
    grouping?: SapLandscapeMonitorPropertiesGrouping;
    readonly provisioningState?: SapLandscapeMonitorProvisioningState;
    topMetricsThresholds?: SapLandscapeMonitorMetricThresholds[];
}

// @public
export interface SapLandscapeMonitorCreateOptionalParams extends coreClient.OperationOptions {
}

// @public
export type SapLandscapeMonitorCreateResponse = SapLandscapeMonitor;

// @public
export interface SapLandscapeMonitorDeleteOptionalParams extends coreClient.OperationOptions {
}

// @public
export interface SapLandscapeMonitorGetOptionalParams extends coreClient.OperationOptions {
}

// @public
export type SapLandscapeMonitorGetResponse = SapLandscapeMonitor;

// @public
export interface SapLandscapeMonitorListOptionalParams extends coreClient.OperationOptions {
}

// @public
export type SapLandscapeMonitorListResponse = SapLandscapeMonitorListResult;

// @public
export interface SapLandscapeMonitorListResult {
    nextLink?: string;
    value?: SapLandscapeMonitor[];
}

// @public
export interface SapLandscapeMonitorMetricThresholds {
    green?: number;
    name?: string;
    red?: number;
    yellow?: number;
}

// @public
export interface SapLandscapeMonitorOperations {
    create(resourceGroupName: string, monitorName: string, sapLandscapeMonitorParameter: SapLandscapeMonitor, options?: SapLandscapeMonitorCreateOptionalParams): Promise<SapLandscapeMonitorCreateResponse>;
    delete(resourceGroupName: string, monitorName: string, options?: SapLandscapeMonitorDeleteOptionalParams): Promise<void>;
    get(resourceGroupName: string, monitorName: string, options?: SapLandscapeMonitorGetOptionalParams): Promise<SapLandscapeMonitorGetResponse>;
    list(resourceGroupName: string, monitorName: string, options?: SapLandscapeMonitorListOptionalParams): Promise<SapLandscapeMonitorListResponse>;
    update(resourceGroupName: string, monitorName: string, sapLandscapeMonitorParameter: SapLandscapeMonitor, options?: SapLandscapeMonitorUpdateOptionalParams): Promise<SapLandscapeMonitorUpdateResponse>;
}

// @public
export interface SapLandscapeMonitorPropertiesGrouping {
    landscape?: SapLandscapeMonitorSidMapping[];
    sapApplication?: SapLandscapeMonitorSidMapping[];
}

// @public
export type SapLandscapeMonitorProvisioningState = string;

// @public
export interface SapLandscapeMonitorSidMapping {
    name?: string;
    topSid?: string[];
}

// @public
export interface SapLandscapeMonitorUpdateOptionalParams extends coreClient.OperationOptions {
}

// @public
export type SapLandscapeMonitorUpdateResponse = SapLandscapeMonitor;

// @public
export interface SapNetWeaverProviderInstanceProperties extends ProviderSpecificProperties {
    providerType: "SapNetWeaver";
    sapClientId?: string;
    sapHostFileEntries?: string[];
    sapHostname?: string;
    sapInstanceNr?: string;
    sapPassword?: string;
    sapPasswordUri?: string;
    sapPortNumber?: string;
    sapSid?: string;
    sapUsername?: string;
    sslCertificateUri?: string;
    sslPreference?: SslPreference;
}

// @public
export type SAPProductType = string;

// @public
export interface SAPSizingRecommendationRequest {
    appLocation: string;
    databaseType: SAPDatabaseType;
    dbMemory: number;
    dbScaleMethod?: SAPDatabaseScaleMethod;
    deploymentType: SAPDeploymentType;
    environment: SAPEnvironmentType;
    highAvailabilityType?: SAPHighAvailabilityType;
    sapProduct: SAPProductType;
    saps: number;
}

// @public
export interface SAPSizingRecommendationResult {
    deploymentType: "SingleServer" | "ThreeTier";
}

// @public (undocumented)
export type SAPSizingRecommendationResultUnion = SAPSizingRecommendationResult | SingleServerRecommendationResult | ThreeTierRecommendationResult;

// @public
export interface SAPSizingRecommendationsOptionalParams extends coreClient.OperationOptions {
    sAPSizingRecommendation?: SAPSizingRecommendationRequest;
}

// @public
export type SAPSizingRecommendationsResponse = SAPSizingRecommendationResultUnion;

// @public
export type SAPSoftwareInstallationType = string;

// @public
export interface SAPSupportedResourceSkusResult {
    supportedSkus?: SAPSupportedSku[];
}

// @public
export interface SAPSupportedSku {
    isAppServerCertified?: boolean;
    isDatabaseCertified?: boolean;
    vmSku?: string;
}

// @public
export interface SAPSupportedSkuOptionalParams extends coreClient.OperationOptions {
    sAPSupportedSku?: SAPSupportedSkusRequest;
}

// @public
export type SAPSupportedSkuResponse = SAPSupportedResourceSkusResult;

// @public
export interface SAPSupportedSkusRequest {
    appLocation: string;
    databaseType: SAPDatabaseType;
    deploymentType: SAPDeploymentType;
    environment: SAPEnvironmentType;
    highAvailabilityType?: SAPHighAvailabilityType;
    sapProduct: SAPProductType;
}

// @public
export interface SAPVirtualInstance extends TrackedResource {
    configuration: SAPConfigurationUnion;
    environment: SAPEnvironmentType;
    readonly errors?: SAPVirtualInstanceError;
    readonly health?: SAPHealthState;
    identity?: UserAssignedServiceIdentity;
    managedResourceGroupConfiguration?: ManagedRGConfiguration;
    readonly provisioningState?: SapVirtualInstanceProvisioningState;
    sapProduct: SAPProductType;
    readonly state?: SAPVirtualInstanceState;
    readonly status?: SAPVirtualInstanceStatus;
}

// @public
export interface SAPVirtualInstanceError {
    properties?: ErrorDefinition;
}

// @public
export interface SAPVirtualInstanceList {
    nextLink?: string;
    value?: SAPVirtualInstance[];
}

// @public
export type SapVirtualInstanceProvisioningState = string;

// @public
export interface SAPVirtualInstances {
    beginCreate(resourceGroupName: string, sapVirtualInstanceName: string, options?: SAPVirtualInstancesCreateOptionalParams): Promise<SimplePollerLike<OperationState<SAPVirtualInstancesCreateResponse>, SAPVirtualInstancesCreateResponse>>;
    beginCreateAndWait(resourceGroupName: string, sapVirtualInstanceName: string, options?: SAPVirtualInstancesCreateOptionalParams): Promise<SAPVirtualInstancesCreateResponse>;
    beginDelete(resourceGroupName: string, sapVirtualInstanceName: string, options?: SAPVirtualInstancesDeleteOptionalParams): Promise<SimplePollerLike<OperationState<SAPVirtualInstancesDeleteResponse>, SAPVirtualInstancesDeleteResponse>>;
    beginDeleteAndWait(resourceGroupName: string, sapVirtualInstanceName: string, options?: SAPVirtualInstancesDeleteOptionalParams): Promise<SAPVirtualInstancesDeleteResponse>;
    beginStart(resourceGroupName: string, sapVirtualInstanceName: string, options?: SAPVirtualInstancesStartOptionalParams): Promise<SimplePollerLike<OperationState<SAPVirtualInstancesStartResponse>, SAPVirtualInstancesStartResponse>>;
    beginStartAndWait(resourceGroupName: string, sapVirtualInstanceName: string, options?: SAPVirtualInstancesStartOptionalParams): Promise<SAPVirtualInstancesStartResponse>;
    beginStop(resourceGroupName: string, sapVirtualInstanceName: string, options?: SAPVirtualInstancesStopOptionalParams): Promise<SimplePollerLike<OperationState<SAPVirtualInstancesStopResponse>, SAPVirtualInstancesStopResponse>>;
    beginStopAndWait(resourceGroupName: string, sapVirtualInstanceName: string, options?: SAPVirtualInstancesStopOptionalParams): Promise<SAPVirtualInstancesStopResponse>;
    get(resourceGroupName: string, sapVirtualInstanceName: string, options?: SAPVirtualInstancesGetOptionalParams): Promise<SAPVirtualInstancesGetResponse>;
    listByResourceGroup(resourceGroupName: string, options?: SAPVirtualInstancesListByResourceGroupOptionalParams): PagedAsyncIterableIterator<SAPVirtualInstance>;
    listBySubscription(options?: SAPVirtualInstancesListBySubscriptionOptionalParams): PagedAsyncIterableIterator<SAPVirtualInstance>;
    update(resourceGroupName: string, sapVirtualInstanceName: string, options?: SAPVirtualInstancesUpdateOptionalParams): Promise<SAPVirtualInstancesUpdateResponse>;
}

// @public
export interface SAPVirtualInstancesCreateOptionalParams extends coreClient.OperationOptions {
    body?: SAPVirtualInstance;
    resumeFrom?: string;
    updateIntervalInMs?: number;
}

// @public
export type SAPVirtualInstancesCreateResponse = SAPVirtualInstance;

// @public
export interface SAPVirtualInstancesDeleteOptionalParams extends coreClient.OperationOptions {
    resumeFrom?: string;
    updateIntervalInMs?: number;
}

// @public
export type SAPVirtualInstancesDeleteResponse = OperationStatusResult;

// @public
export interface SAPVirtualInstancesGetOptionalParams extends coreClient.OperationOptions {
}

// @public
export type SAPVirtualInstancesGetResponse = SAPVirtualInstance;

// @public
export interface SAPVirtualInstancesListByResourceGroupNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type SAPVirtualInstancesListByResourceGroupNextResponse = SAPVirtualInstanceList;

// @public
export interface SAPVirtualInstancesListByResourceGroupOptionalParams extends coreClient.OperationOptions {
}

// @public
export type SAPVirtualInstancesListByResourceGroupResponse = SAPVirtualInstanceList;

// @public
export interface SAPVirtualInstancesListBySubscriptionNextOptionalParams extends coreClient.OperationOptions {
}

// @public
export type SAPVirtualInstancesListBySubscriptionNextResponse = SAPVirtualInstanceList;

// @public
export interface SAPVirtualInstancesListBySubscriptionOptionalParams extends coreClient.OperationOptions {
}

// @public
export type SAPVirtualInstancesListBySubscriptionResponse = SAPVirtualInstanceList;

// @public
export interface SAPVirtualInstancesStartOptionalParams extends coreClient.OperationOptions {
    resumeFrom?: string;
    updateIntervalInMs?: number;
}

// @public
export type SAPVirtualInstancesStartResponse = OperationStatusResult;

// @public
export interface SAPVirtualInstancesStopOptionalParams extends coreClient.OperationOptions {
    body?: StopRequest;
    resumeFrom?: string;
    updateIntervalInMs?: number;
}

// @public
export type SAPVirtualInstancesStopResponse = OperationStatusResult;

// @public
export type SAPVirtualInstanceState = string;

// @public
export type SAPVirtualInstanceStatus = string;

// @public
export interface SAPVirtualInstancesUpdateOptionalParams extends coreClient.OperationOptions {
    body?: UpdateSAPVirtualInstanceRequest;
}

// @public
export type SAPVirtualInstancesUpdateResponse = SAPVirtualInstance;

// @public
export interface ServiceInitiatedSoftwareConfiguration extends SoftwareConfiguration {
    bomUrl: string;
    highAvailabilitySoftwareConfiguration?: HighAvailabilitySoftwareConfiguration;
    sapBitsStorageAccountId: string;
    sapFqdn: string;
    softwareInstallationType: "ServiceInitiated";
    softwareVersion: string;
    sshPrivateKey: string;
}

// @public
export interface SharedStorageResourceNames {
    sharedStorageAccountName?: string;
    sharedStorageAccountPrivateEndPointName?: string;
}

// @public
export interface SingleServerConfiguration extends InfrastructureConfiguration {
    customResourceNames?: SingleServerCustomResourceNamesUnion;
    databaseType?: SAPDatabaseType;
    dbDiskConfiguration?: DiskConfiguration;
    deploymentType: "SingleServer";
    networkConfiguration?: NetworkConfiguration;
    subnetId: string;
    virtualMachineConfiguration: VirtualMachineConfiguration;
}

// @public
export interface SingleServerCustomResourceNames {
    namingPatternType: "FullResourceName";
}

// @public (undocumented)
export type SingleServerCustomResourceNamesUnion = SingleServerCustomResourceNames | SingleServerFullResourceNames;

// @public
export interface SingleServerFullResourceNames extends SingleServerCustomResourceNames {
    namingPatternType: "FullResourceName";
    virtualMachine?: VirtualMachineResourceNames;
}

// @public
export interface SingleServerRecommendationResult extends SAPSizingRecommendationResult {
    deploymentType: "SingleServer";
    vmSku?: string;
}

// @public
export interface SkipFileShareConfiguration extends FileShareConfiguration {
    configurationType: "Skip";
}

// @public
export interface SoftwareConfiguration {
    softwareInstallationType: "ServiceInitiated" | "SAPInstallWithoutOSConfig" | "External";
}

// @public (undocumented)
export type SoftwareConfigurationUnion = SoftwareConfiguration | ServiceInitiatedSoftwareConfiguration | SAPInstallWithoutOSConfigSoftwareConfiguration | ExternalInstallationSoftwareConfiguration;

// @public
export interface SshConfiguration {
    publicKeys?: SshPublicKey[];
}

// @public
export interface SshKeyPair {
    privateKey?: string;
    publicKey?: string;
}

// @public
export interface SshPublicKey {
    keyData?: string;
}

// @public
export type SslPreference = string;

// @public
export interface StopRequest {
    softStopTimeoutSeconds?: number;
}

// @public
export interface StorageConfiguration {
    transportFileShareConfiguration?: FileShareConfigurationUnion;
}

// @public
export interface StorageInformation {
    readonly id?: string;
}

// @public
export interface SystemData {
    createdAt?: Date;
    createdBy?: string;
    createdByType?: CreatedByType;
    lastModifiedAt?: Date;
    lastModifiedBy?: string;
    lastModifiedByType?: CreatedByType;
}

// @public
export interface Tags {
    tags?: {
        [propertyName: string]: string;
    };
}

// @public
export interface ThreeTierConfiguration extends InfrastructureConfiguration {
    applicationServer: ApplicationServerConfiguration;
    centralServer: CentralServerConfiguration;
    customResourceNames?: ThreeTierCustomResourceNamesUnion;
    databaseServer: DatabaseConfiguration;
    deploymentType: "ThreeTier";
    highAvailabilityConfig?: HighAvailabilityConfiguration;
    networkConfiguration?: NetworkConfiguration;
    storageConfiguration?: StorageConfiguration;
}

// @public
export interface ThreeTierCustomResourceNames {
    namingPatternType: "FullResourceName";
}

// @public (undocumented)
export type ThreeTierCustomResourceNamesUnion = ThreeTierCustomResourceNames | ThreeTierFullResourceNames;

// @public
export interface ThreeTierFullResourceNames extends ThreeTierCustomResourceNames {
    applicationServer?: ApplicationServerFullResourceNames;
    centralServer?: CentralServerFullResourceNames;
    databaseServer?: DatabaseServerFullResourceNames;
    namingPatternType: "FullResourceName";
    sharedStorage?: SharedStorageResourceNames;
}

// @public
export interface ThreeTierRecommendationResult extends SAPSizingRecommendationResult {
    applicationServerInstanceCount?: number;
    applicationServerVmSku?: string;
    centralServerInstanceCount?: number;
    centralServerVmSku?: string;
    databaseInstanceCount?: number;
    dbVmSku?: string;
    deploymentType: "ThreeTier";
}

// @public
export interface TrackedResource extends Resource {
    location: string;
    tags?: {
        [propertyName: string]: string;
    };
}

// @public
export interface UpdateMonitorRequest {
    identity?: UserAssignedServiceIdentity;
    tags?: {
        [propertyName: string]: string;
    };
}

// @public
export interface UpdateSAPApplicationInstanceRequest {
    tags?: {
        [propertyName: string]: string;
    };
}

// @public
export interface UpdateSAPCentralInstanceRequest {
    tags?: {
        [propertyName: string]: string;
    };
}

// @public
export interface UpdateSAPDatabaseInstanceRequest {
    tags?: {
        [propertyName: string]: string;
    };
}

// @public
export interface UpdateSAPVirtualInstanceRequest {
    identity?: UserAssignedServiceIdentity;
    tags?: {
        [propertyName: string]: string;
    };
}

// @public
export interface UserAssignedIdentity {
    readonly clientId?: string;
    readonly principalId?: string;
}

// @public
export interface UserAssignedServiceIdentity {
    type: ManagedServiceIdentityType;
    userAssignedIdentities?: {
        [propertyName: string]: UserAssignedIdentity;
    };
}

// @public
export interface VirtualMachineConfiguration {
    imageReference: ImageReference;
    osProfile: OSProfile;
    vmSize: string;
}

// @public
export interface VirtualMachineResourceNames {
    dataDiskNames?: {
        [propertyName: string]: string[];
    };
    hostName?: string;
    networkInterfaces?: NetworkInterfaceResourceNames[];
    osDiskName?: string;
    vmName?: string;
}

// @public
export interface WindowsConfiguration extends OSConfiguration {
    osType: "Windows";
}

// @public
export type WorkloadMonitorActionType = string;

// @public
export type WorkloadMonitorProvisioningState = string;

// @public (undocumented)
export class WorkloadsClient extends coreClient.ServiceClient {
    // (undocumented)
    $host: string;
    constructor(credentials: coreAuth.TokenCredential, subscriptionId: string, options?: WorkloadsClientOptionalParams);
    // (undocumented)
    apiVersion: string;
    // (undocumented)
    monitors: Monitors;
    // (undocumented)
    operations: Operations;
    // (undocumented)
    providerInstances: ProviderInstances;
    // (undocumented)
    sAPApplicationServerInstances: SAPApplicationServerInstances;
    sAPAvailabilityZoneDetails(location: string, options?: SAPAvailabilityZoneDetailsOptionalParams): Promise<SAPAvailabilityZoneDetailsResponse>;
    // (undocumented)
    sAPCentralInstances: SAPCentralInstances;
    // (undocumented)
    sAPDatabaseInstances: SAPDatabaseInstances;
    sAPDiskConfigurations(location: string, options?: SAPDiskConfigurationsOptionalParams): Promise<SAPDiskConfigurationsResponse>;
    // (undocumented)
    sapLandscapeMonitorOperations: SapLandscapeMonitorOperations;
    sAPSizingRecommendations(location: string, options?: SAPSizingRecommendationsOptionalParams): Promise<SAPSizingRecommendationsResponse>;
    sAPSupportedSku(location: string, options?: SAPSupportedSkuOptionalParams): Promise<SAPSupportedSkuResponse>;
    // (undocumented)
    sAPVirtualInstances: SAPVirtualInstances;
    // (undocumented)
    subscriptionId: string;
}

// @public
export interface WorkloadsClientOptionalParams extends coreClient.ServiceClientOptions {
    $host?: string;
    apiVersion?: string;
    endpoint?: string;
}

// (No @packageDocumentation comment for this package)