Setting the file. One moment. Deploy Schemas · Azure App Onboard · microsoft/azure-skills · Skills Docs24.10
Session Schemas
This file
- Number
- 24.21
- Position
- 21 of 67
- Type
- TypeScript
- Size
- 3 KB
- Lines
- 96
deploy/references/deploy-schemas.ts
TypeScript·96 lines·3 KB
;
11export type DeployHealingPhase = "validation" | "deployment";
12
13/** Tracks a resource group created during a healing attempt that is no longer
14 * the final deployment target. Surfaced at handoff for manual cleanup. */
15export interface OrphanResourceGroup {
16 /** Azure resource group name */
17 name: string;
18 /** Region where the RG was created */
19 region: string;
20 /** Which healing attempt created or targeted this RG */
21 healingAttempt: number;
22 /** Why this RG was abandoned (e.g., "region fallback to westus2") */
23 reason: string;
24}
25export type DeployHealingAction = "routed-to-scaffold" | "retried" | "surfaced-to-user";
26export type DeployHealingResult = "fixed" | "still-failing" | "blocked";
27
28export interface DeployHealingError {
29 source: string;
30 detail: string;
31 classification: DeployErrorClassification;
32}
33
34export interface DeployHealingAttempt {
35 attempt: number;
36 phase: DeployHealingPhase;
37 errors: DeployHealingError[];
38 action: DeployHealingAction;
39 result: DeployHealingResult;
40 /** Resource group targeted by this attempt — useful for audit and debugging */
41 resourceGroupName?: string;
42 /** True when this healing attempt changed the service type or region — requires re-approval */
43 planLevelChange?: boolean;
44 /** What changed: "service-type", "region", "sku" */
45 changeType?: "service-type" | "region" | "sku";
46 /** Original value before the change (e.g., "App Service B1 eastus") */
47 originalValue?: string;
48 /** New value after the change (e.g., "Container Apps Consumption eastus") */
49 newValue?: string;
50}
51
52// ─── deploy-result.json ──────────────────────────────────────────────────────
53
54export interface DeployEndpoint {
55 name: string;
56 url: string;
57 healthStatus: HealthStatus;
58}
59
60export interface DeployDuration {
61 startedUtc: string;
62 completedUtc: string;
63}
64
65export type DeployStatus = "in-progress" | "succeeded" | "failed";
66
67export type ResourceDeployStatus = "succeeded" | "failed" | "skipped";
68
69export interface ResourceResult {
70 resourceId: string;
71 type: string;
72 status: ResourceDeployStatus;
73 error?: string;
74}
75
76export interface DeployResult {
77 sessionId: string;
78 /** Azure subscription ID from context.json.azure.subscriptionId */
79 subscriptionId: string;
80 /** All ARM deployment names used during this session (initial + healing retries).
81 * First entry is the initial deployment; subsequent entries are from scope/RG changes. */
82 deploymentNames: string[];
83 resourceGroupName: string;
84 status: DeployStatus;
85 resourceIds: string[];
86 endpoints: DeployEndpoint[];
87 healthStatus: HealthStatus;
88 duration: DeployDuration;
89 warnings: string[];
90 partial: boolean;
91 resourceResults: readonly ResourceResult[];
92 /** RGs created during healing that are not the final deployment target.
93 * Surfaced at handoff (Step 9) with manual cleanup commands. */
94 orphanedResourceGroups: readonly OrphanResourceGroup[];
95 healingAttempts?: readonly DeployHealingAttempt[];
96}