import { ArmClient } from '../client/ArmClient.js'; import type { ScmClient } from '../utils/scm-client.js'; /** * Processed App Service summary. */ export interface AppServiceSummary { id: string; name: string; resourceGroup: string; location: string; state?: string; defaultHostName?: string; appServicePlanId?: string; runtime?: string; runtimeVersion?: string; operatingSystem: string; httpsOnly?: boolean; clientAffinityEnabled?: boolean; clientCertEnabled?: boolean; configuration?: { appSettings: Array<{ name: string; value: string; }>; connectionStrings: Array<{ name: string; type: string; value: string; }>; generalSettings: { alwaysOn?: boolean; http20Enabled?: boolean; minTlsVersion?: string; ftpsState?: string; }; }; identity?: { type: string; principalId?: string; tenantId?: string; }; } /** * Processed App Service Plan summary. */ export interface AppServicePlanSummary { id: string; name: string; resourceGroup: string; location: string; sku: { name: string; tier?: string; capacity?: number; }; kind?: string; workerCount?: number; numberOfSites?: number; reserved?: boolean; zoneRedundant?: boolean; } /** * Service for Azure App Service operations. */ export declare class AppServiceService { private client; private redactSecrets; private enableWrite; private scmClient?; constructor(client: ArmClient, options?: { redactSecrets?: boolean; enableWrite?: boolean; scmClient?: ScmClient; }); private checkWriteEnabled; /** * List all App Services (web apps) in the subscription or resource group. */ listAppServices(options?: { resourceGroup?: string; includeConfiguration?: boolean; }): Promise<{ appServices: AppServiceSummary[]; summary: { total: number; byState: Record; byRuntime: Record; }; }>; /** * Get detailed information about an App Service. */ getAppService(options: { name: string; resourceGroup?: string; includeConfiguration?: boolean; includeDeployments?: boolean; showValues?: boolean; }): Promise<{ appService: AppServiceSummary; deployments?: Array<{ id: string; status?: string; startTime?: string; endTime?: string; author?: string; message?: string; }>; }>; /** * List all App Service Plans. */ listAppServicePlans(options?: { resourceGroup?: string; }): Promise<{ plans: AppServicePlanSummary[]; summary: { total: number; byTier: Record; byKind: Record; }; }>; /** * Fetch recent logs from an App Service via Kudu SCM API. */ getAppServiceLogs(options: { name: string; resourceGroup?: string; logType?: 'docker' | 'stdout' | 'eventlog' | 'all'; maxLines?: number; }): Promise<{ appName: string; operatingSystem: string; logs: Array<{ type: string; content: string; source: string; }>; errors?: string[]; }>; /** * Restart an App Service. */ restartAppService(options: { name: string; resourceGroup?: string; }): Promise<{ success: boolean; appName: string; message: string; }>; /** * Stop a running App Service. */ stopAppService(options: { name: string; resourceGroup?: string; }): Promise<{ success: boolean; appName: string; previousState?: string; message: string; }>; /** * Start a stopped App Service. */ startAppService(options: { name: string; resourceGroup?: string; }): Promise<{ success: boolean; appName: string; previousState?: string; message: string; }>; /** * Update app settings or connection strings on an App Service. * Merges with existing settings — does not replace the full set. */ setAppServiceConfig(options: { name: string; resourceGroup?: string; appSettings?: Record; connectionStrings?: Record; removeSettings?: string[]; }): Promise<{ success: boolean; appName: string; updatedSettings: string[]; removedSettings: string[]; updatedConnectionStrings: string[]; }>; /** * Get app configuration (settings, connection strings). */ private getAppConfiguration; /** * Get recent deployments. */ private getDeployments; /** * Process a WebSite into an AppServiceSummary. */ private processWebSite; /** * Process an AppServicePlan. */ private processAppServicePlan; /** * Redact sensitive values. */ private redactValue; /** * Truncate text to a maximum number of lines. */ private truncateLines; } //# sourceMappingURL=AppServiceService.d.ts.map