Skip to content

Commit d4bf2cc

Browse files
YoYoJaglecaros
authored andcommitted
API Cleanup initial pass(merge sqush jugonzales/agents-optimization-v2preview) (Azure#43927)
* rebase to /feature/foundry-release and merge sqush jugonzales/agents-optimization-v2preview * resolve missing file * address comment for minValue of max_candidates * address comments of OptimizationInlineDatasetInput.type * address coment of OptimizationJobListItem
1 parent ab2e4a9 commit d4bf2cc

9 files changed

Lines changed: 1744 additions & 4839 deletions

File tree

specification/ai-foundry/data-plane/Foundry/openapi3/v1/microsoft-foundry-openapi3.json

Lines changed: 589 additions & 1412 deletions
Large diffs are not rendered by default.

specification/ai-foundry/data-plane/Foundry/openapi3/v1/microsoft-foundry-openapi3.yaml

Lines changed: 212 additions & 790 deletions
Large diffs are not rendered by default.

specification/ai-foundry/data-plane/Foundry/openapi3/virtual-public-preview/microsoft-foundry-openapi3.json

Lines changed: 589 additions & 1412 deletions
Large diffs are not rendered by default.

specification/ai-foundry/data-plane/Foundry/openapi3/virtual-public-preview/microsoft-foundry-openapi3.yaml

Lines changed: 212 additions & 790 deletions
Large diffs are not rendered by default.

specification/ai-foundry/data-plane/Foundry/src/agents-optimization/models.tsp

Lines changed: 120 additions & 199 deletions
Large diffs are not rendered by default.

specification/ai-foundry/data-plane/Foundry/src/agents-optimization/routes.tsp

Lines changed: 21 additions & 201 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ namespace Azure.AI.Projects;
1515

1616
const AgentOptimizationRequiredPreviews = #{
1717
conditional_previews: #[
18-
FoundryFeaturesOptInKeys.agents_optimization_v1_preview
18+
FoundryFeaturesOptInKeys.agents_optimization_v2_preview
1919
],
2020
};
2121

@@ -28,55 +28,31 @@ const AgentOptimizationRequiredPreviews = #{
2828
#suppress "@azure-tools/typespec-azure-core/long-running-polling-operation-required" "LRO polling is handled by the client via Operation-Location"
2929
@tag("AgentOptimizationJobs")
3030
interface AgentOptimizationJobs {
31-
/**
32-
* Creates an agent optimization job and returns the queued job.
33-
* Honors `Operation-Id` for idempotent retry.
34-
*/
35-
@summary("Create an agent optimization job")
31+
@summary("Creates an agent optimization job.")
32+
@doc("Create an optimization job. Returns 201 with the queued job. Honours `Operation-Id` for idempotent retry.")
3633
@route("agent_optimization_jobs")
3734
@extension("x-ms-foundry-meta", AgentOptimizationRequiredPreviews)
38-
@post
39-
create is FoundryDataPlanePreviewOperation<
40-
FoundryFeaturesOptInKeys.agents_optimization_v1_preview,
41-
{
42-
...WithOperationId;
43-
44-
@doc("The optimization job inputs.")
45-
@body
46-
inputs: OptimizationJobInputs;
47-
},
48-
JobCreatedResponse<OptimizationJob>
35+
create is postJobPreview<
36+
FoundryFeaturesOptInKeys.agents_optimization_v2_preview,
37+
OptimizationJob
4938
>;
5039

51-
/**
52-
* Retrieves the specified agent optimization job.
53-
* Returns 202 while the job is in progress and 200 after it reaches a terminal state.
54-
*/
55-
@summary("Get an agent optimization job")
40+
@summary("Get info about an agent optimization job.")
41+
@doc("Get an optimization job by id.")
5642
@route("agent_optimization_jobs/{jobId}")
5743
@extension("x-ms-foundry-meta", AgentOptimizationRequiredPreviews)
58-
@get
59-
get is FoundryDataPlanePreviewOperation<
60-
FoundryFeaturesOptInKeys.agents_optimization_v1_preview,
61-
{
62-
/** The ID of the job. */
63-
@path jobId: string;
64-
},
65-
OptimizationJob & {
66-
@statusCode _: 200 | 202;
67-
@header("Retry-After") retryAfter?: int32;
68-
}
44+
get is queryJobStatusPreview<
45+
FoundryFeaturesOptInKeys.agents_optimization_v2_preview,
46+
OptimizationJob
6947
>;
7048

71-
/**
72-
* Returns agent optimization jobs with cursor pagination and optional lifecycle or agent filters.
73-
*/
74-
@summary("List agent optimization jobs")
49+
@summary("Returns a list of agent optimization jobs.")
50+
@doc("List optimization jobs. Supports cursor pagination and optional status / agent_name filters.")
7551
@route("agent_optimization_jobs")
7652
@extension("x-ms-foundry-meta", AgentOptimizationRequiredPreviews)
7753
list is listJobsPreview<
78-
FoundryFeaturesOptInKeys.agents_optimization_v1_preview,
79-
OptimizationJob,
54+
FoundryFeaturesOptInKeys.agents_optimization_v2_preview,
55+
OptimizationJobListItem,
8056
{
8157
@doc("Filter to jobs in this lifecycle state.")
8258
@query
@@ -88,175 +64,19 @@ interface AgentOptimizationJobs {
8864
}
8965
>;
9066

91-
/**
92-
* Requests cancellation of the specified agent optimization job.
93-
* The operation remains idempotent after the job reaches a terminal state.
94-
*/
95-
@summary("Cancel an agent optimization job")
67+
@summary("Cancels an agent optimization job.")
68+
@doc("Request cancellation of a running or queued job. Returns an error if the job is already in a terminal state.")
9669
@route("agent_optimization_jobs/{jobId}:cancel")
9770
@extension("x-ms-foundry-meta", AgentOptimizationRequiredPreviews)
9871
cancel is cancelJobPreview<
99-
FoundryFeaturesOptInKeys.agents_optimization_v1_preview,
72+
FoundryFeaturesOptInKeys.agents_optimization_v2_preview,
10073
OptimizationJob
10174
>;
10275

103-
/**
104-
* Deletes the specified agent optimization job and its candidate artifacts.
105-
* Cancels the job first when it is still in a non-terminal state.
106-
*/
107-
@summary("Delete an agent optimization job")
76+
@summary("Deletes an agent optimization job.")
77+
@doc("Delete the job and its candidate artifacts. Cancels first if non-terminal.")
10878
@route("agent_optimization_jobs/{jobId}")
10979
@extension("x-ms-foundry-meta", AgentOptimizationRequiredPreviews)
110-
@delete
111-
delete is FoundryDataPlanePreviewOperation<
112-
FoundryFeaturesOptInKeys.agents_optimization_v1_preview,
113-
{
114-
@doc("The ID of the job to delete.")
115-
@path
116-
jobId: string;
117-
118-
@doc("When true, force-delete even if the job is in a non-terminal state.")
119-
@query
120-
force?: boolean;
121-
},
122-
NoContentResponse
123-
>;
124-
125-
// ---------------------------------------------------------------------------
126-
// Candidate sub-resource operations
127-
// ---------------------------------------------------------------------------
128-
129-
/**
130-
* Returns the candidates produced by the specified optimization job.
131-
*/
132-
@summary("List optimization job candidates")
133-
@route("agent_optimization_jobs/{jobId}/candidates")
134-
@extension("x-ms-foundry-meta", AgentOptimizationRequiredPreviews)
135-
@get
136-
@list
137-
listCandidates is FoundryDataPlanePreviewOperation<
138-
FoundryFeaturesOptInKeys.agents_optimization_v1_preview,
139-
{
140-
@doc("The optimization job id.")
141-
@path
142-
jobId: string;
80+
delete is deleteJobPreview<FoundryFeaturesOptInKeys.agents_optimization_v2_preview>;
14381

144-
...CommonPageQueryParameters;
145-
},
146-
AgentsPagedResult<OptimizationCandidate>
147-
>;
148-
149-
/**
150-
* Retrieves metadata, manifest information, and promotion details for the specified candidate.
151-
*/
152-
@summary("Get an optimization candidate")
153-
@route("agent_optimization_jobs/{jobId}/candidates/{candidateId}")
154-
@extension("x-ms-foundry-meta", AgentOptimizationRequiredPreviews)
155-
@get
156-
getCandidate is FoundryDataPlanePreviewOperation<
157-
FoundryFeaturesOptInKeys.agents_optimization_v1_preview,
158-
{
159-
@doc("The optimization job id.")
160-
@path
161-
jobId: string;
162-
163-
@doc("The candidate id.")
164-
@path
165-
candidateId: string;
166-
},
167-
CandidateMetadata
168-
>;
169-
170-
/**
171-
* Retrieves the deploy configuration JSON for the specified candidate.
172-
* Clients can use it to compose `agents.create_version(...)` requests.
173-
*/
174-
@summary("Get an optimization candidate config")
175-
@route("agent_optimization_jobs/{jobId}/candidates/{candidateId}/config")
176-
@extension("x-ms-foundry-meta", AgentOptimizationRequiredPreviews)
177-
@get
178-
getCandidateConfig is FoundryDataPlanePreviewOperation<
179-
FoundryFeaturesOptInKeys.agents_optimization_v1_preview,
180-
{
181-
@doc("The optimization job id.")
182-
@path
183-
jobId: string;
184-
185-
@doc("The candidate id.")
186-
@path
187-
candidateId: string;
188-
},
189-
CandidateDeployConfig
190-
>;
191-
192-
/**
193-
* Retrieves full per-task evaluation results for the specified candidate.
194-
*/
195-
@summary("Get optimization candidate results")
196-
@route("agent_optimization_jobs/{jobId}/candidates/{candidateId}/results")
197-
@extension("x-ms-foundry-meta", AgentOptimizationRequiredPreviews)
198-
@get
199-
getCandidateResults is FoundryDataPlanePreviewOperation<
200-
FoundryFeaturesOptInKeys.agents_optimization_v1_preview,
201-
{
202-
@doc("The optimization job id.")
203-
@path
204-
jobId: string;
205-
206-
@doc("The candidate id.")
207-
@path
208-
candidateId: string;
209-
},
210-
CandidateResults
211-
>;
212-
213-
/**
214-
* Streams the specified file from the candidate's blob directory.
215-
*/
216-
@summary("Get an optimization candidate file")
217-
@route("agent_optimization_jobs/{jobId}/candidates/{candidateId}/files")
218-
@extension("x-ms-foundry-meta", AgentOptimizationRequiredPreviews)
219-
@get
220-
getCandidateFile is FoundryDataPlanePreviewOperation<
221-
FoundryFeaturesOptInKeys.agents_optimization_v1_preview,
222-
{
223-
@doc("The optimization job id.")
224-
@path
225-
jobId: string;
226-
227-
@doc("The candidate id.")
228-
@path
229-
candidateId: string;
230-
231-
@doc("Relative path of the file to download (e.g. 'files/examples.jsonl').")
232-
@query
233-
path: string;
234-
},
235-
bytes
236-
>;
237-
238-
/**
239-
* Promotes the specified candidate and records the deployment timestamp and target agent version.
240-
*/
241-
@summary("Promote an optimization candidate")
242-
@route("agent_optimization_jobs/{jobId}/candidates/{candidateId}:promote")
243-
@extension("x-ms-foundry-meta", AgentOptimizationRequiredPreviews)
244-
@post
245-
promoteCandidate is FoundryDataPlanePreviewOperation<
246-
FoundryFeaturesOptInKeys.agents_optimization_v1_preview,
247-
{
248-
@doc("The optimization job id.")
249-
@path
250-
jobId: string;
251-
252-
@doc("The candidate id to promote.")
253-
@path
254-
candidateId: string;
255-
256-
@doc("Promotion details.")
257-
@body
258-
candidate_request: PromoteCandidateRequest;
259-
},
260-
PromoteCandidateResponse
261-
>;
26282
}

specification/ai-foundry/data-plane/Foundry/src/sdk-common/beta-ops-relocation-agents.tsp

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -68,24 +68,3 @@ interface Agents {}
6868
@@clientLocation(Azure.AI.Projects.AgentOptimizationJobs.list, Agents);
6969
@@clientLocation(Azure.AI.Projects.AgentOptimizationJobs.cancel, Agents);
7070
@@clientLocation(Azure.AI.Projects.AgentOptimizationJobs.delete, Agents);
71-
@@clientLocation(
72-
Azure.AI.Projects.AgentOptimizationJobs.listCandidates,
73-
Agents
74-
);
75-
@@clientLocation(Azure.AI.Projects.AgentOptimizationJobs.getCandidate, Agents);
76-
@@clientLocation(
77-
Azure.AI.Projects.AgentOptimizationJobs.getCandidateConfig,
78-
Agents
79-
);
80-
@@clientLocation(
81-
Azure.AI.Projects.AgentOptimizationJobs.getCandidateResults,
82-
Agents
83-
);
84-
@@clientLocation(
85-
Azure.AI.Projects.AgentOptimizationJobs.getCandidateFile,
86-
Agents
87-
);
88-
@@clientLocation(
89-
Azure.AI.Projects.AgentOptimizationJobs.promoteCandidate,
90-
Agents
91-
);

specification/ai-foundry/data-plane/Foundry/src/sdk-python-js-azure-ai-projects/client.tsp

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -192,19 +192,6 @@ using Azure.AI.Projects;
192192
@@clientName(AgentOptimizationJobs.list, "listOptimizationJobs");
193193
@@clientName(AgentOptimizationJobs.cancel, "cancelOptimizationJob");
194194
@@clientName(AgentOptimizationJobs.delete, "deleteOptimizationJob");
195-
@@clientName(
196-
AgentOptimizationJobs.listCandidates,
197-
"listOptimizationCandidates"
198-
);
199-
@@clientName(AgentOptimizationJobs.getCandidate, "getOptimizationCandidate");
200-
@@clientName(
201-
AgentOptimizationJobs.getCandidateConfig,
202-
"getOptimizationCandidateConfig"
203-
);
204-
@@clientName(
205-
AgentOptimizationJobs.getCandidateResults,
206-
"getOptimizationCandidateResults"
207-
);
208195

209196
// DatasetItem model has a property `response_items?: OpenAI.OutputItem[]`. It is used
210197
// to define Agent optimization request. If emitted as-is, it pulls in a lot of

specification/ai-foundry/data-plane/Foundry/src/servicepatterns.tsp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ union FoundryFeaturesOptInKeys {
106106
skills_v1_preview: "Skills=V1Preview",
107107
data_generation_jobs_v1_preview: "DataGenerationJobs=V1Preview",
108108
models_v1_preview: "Models=V1Preview",
109-
agents_optimization_v1_preview: "AgentsOptimization=V1Preview",
109+
agents_optimization_v2_preview: "AgentsOptimization=V2Preview",
110110
}
111111

112112
alias WithRequiredFoundryPreviewHeader<RequiredPreviewOptInHeader extends

0 commit comments

Comments
 (0)