diff --git a/.github/package-lock.json b/.github/package-lock.json index d343326809f2..6a8a741a79d9 100644 --- a/.github/package-lock.json +++ b/.github/package-lock.json @@ -4679,9 +4679,9 @@ } }, "node_modules/zod": { - "version": "4.0.14", - "resolved": "https://registry.npmjs.org/zod/-/zod-4.0.14.tgz", - "integrity": "sha512-nGFJTnJN6cM2v9kXL+SOBq3AtjQby3Mv5ySGFof5UGRHrRioSJ5iG680cYNjE/yWk671nROcpPj4hAS8nyLhSw==", + "version": "4.0.15", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.0.15.tgz", + "integrity": "sha512-2IVHb9h4Mt6+UXkyMs0XbfICUh1eUrlJJAOupBHUhLRnKkruawyDddYRCs0Eizt900ntIMk9/4RksYl+FgSpcQ==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/colinhacks" diff --git a/.github/shared/src/git.js b/.github/shared/src/git.js new file mode 100644 index 000000000000..9ab7cab1d2d6 --- /dev/null +++ b/.github/shared/src/git.js @@ -0,0 +1,11 @@ +// @ts-check + +/** + * Returns true if a string is a possible full git SHA (40 hex chars, case insensitive) + * + * @param {string} string + * @returns {boolean} + */ +export function isFullGitSha(string) { + return /^[0-9a-f]{40}$/i.test(string); +} diff --git a/.github/shared/test/examples.js b/.github/shared/test/examples.js index 12336f56be2f..d8924c0183d7 100644 --- a/.github/shared/test/examples.js +++ b/.github/shared/test/examples.js @@ -1,5 +1,7 @@ // @ts-check +export const fullGitSha = "abc123abc123abc123abc123abc123abc123abc1"; + export const swaggerHandWritten = JSON.stringify("foo"); export const swaggerTypeSpecGenerated = JSON.stringify({ diff --git a/.github/shared/test/git.test.js b/.github/shared/test/git.test.js new file mode 100644 index 000000000000..d5e08121e2a4 --- /dev/null +++ b/.github/shared/test/git.test.js @@ -0,0 +1,25 @@ +// @ts-check + +import { describe, expect, it } from "vitest"; +import { isFullGitSha } from "../src/git"; +import { fullGitSha } from "./examples"; + +describe("git", () => { + it.each([ + [undefined, false], + [null, false], + ["", false], + // Short SHAs of 7 chars are not valid + ["abc1234", false], + // Invalid hex chars + ["aBcDeG0189".repeat(4), false], + ["aBcDe 0189".repeat(4), false], + ["aBcDe_0189".repeat(4), false], + // Valid + ["aBcDeF0189".repeat(4), true], + [fullGitSha, true], + ])("isFullGitSha(%o) => %o", (string, result) => { + // @ts-expect-error Testing invalid input types + expect(isFullGitSha(string)).toBe(result); + }); +}); diff --git a/.github/workflows/_reusable-set-check-status.yaml b/.github/workflows/_reusable-set-check-status.yaml index 9798dce2a0a2..1f4c1779f964 100644 --- a/.github/workflows/_reusable-set-check-status.yaml +++ b/.github/workflows/_reusable-set-check-status.yaml @@ -68,6 +68,13 @@ jobs: '${{ inputs.overriding_label }}' ); + - if: ${{ always() && steps.set-status.outputs.head_sha }} + name: Upload artifact with head SHA + uses: ./.github/actions/add-empty-artifact + with: + name: head-sha + value: ${{ steps.set-status.outputs.head_sha }} + - if: ${{ always() && steps.set-status.outputs.issue_number }} name: Upload artifact with issue number uses: ./.github/actions/add-empty-artifact diff --git a/.github/workflows/arm-auto-signoff.yaml b/.github/workflows/arm-auto-signoff.yaml index ca099c309749..75cd6f1edfcd 100644 --- a/.github/workflows/arm-auto-signoff.yaml +++ b/.github/workflows/arm-auto-signoff.yaml @@ -1,20 +1,18 @@ name: ARM Auto SignOff on: - issue_comment: - types: - - edited # Must run on pull_request_target instead of pull_request, since the latter cannot trigger on # labels from bot accounts in fork PRs. pull_request_target is also more similar to the other - # triggers "issue_comment" and "workflow_run" -- they are all privileged# and run in the target - # branch and repo -- which simplifies implementation. + # trigger "workflow_run" -- they are both privileged and run in the target branch and repo -- + # which simplifies implementation. pull_request_target: types: # Depends on labels, so must re-evaluate whenever a relevant label is manually added or removed. - labeled - unlabeled workflow_run: - workflows: ["ARM Incremental TypeSpec"] + workflows: + ["ARM Incremental TypeSpec", "Swagger Avocado - Set Status", "Swagger LintDiff - Set Status"] types: [completed] permissions: @@ -28,9 +26,8 @@ jobs: arm-auto-signoff: name: ARM Auto SignOff + # workflow_run - already filtered by triggers above # pull_request_target:labeled - filter to only the input and output labels - # issue_comment:edited - filter to only PR comments containing "next steps to merge", - # a signal that checks like "Swagger LintDiff" or "Swagger Avocado" status may have changed if: | github.event_name == 'workflow_run' || (github.event_name == 'pull_request_target' && @@ -41,10 +38,7 @@ jobs: github.event.label.name == 'ARMReview' || github.event.label.name == 'ARMSignedOff' || github.event.label.name == 'NotReadyForARMReview' || - github.event.label.name == 'SuppressionReviewRequired')) || - (github.event_name == 'issue_comment' && - github.event.issue.pull_request && - contains(github.event.comment.body, 'next steps to merge')) + github.event.label.name == 'SuppressionReviewRequired')) runs-on: ubuntu-24.04 @@ -97,15 +91,28 @@ jobs: # Convert "add/remove" to "true/false" value: "${{ fromJson(steps.get-label-action.outputs.result).labelAction == 'add' }}" + # Required for consumers to identify the head SHA associated with this workflow run. + # Output can be trusted, because it was uploaded from a workflow that is trusted, + # because "issue_comment", and "workflow_run" only trigger on workflows in the default branch. + # Consumers should verify the "event_name" before attempting to extract from the artifact name. + - if: | + always() && + (github.event_name == 'issue_comment' || github.event_name == 'workflow_run') && + fromJson(steps.get-label-action.outputs.result).headSha + name: Upload artifact with head SHA + uses: ./.github/actions/add-empty-artifact + with: + name: "head-sha" + value: "${{ fromJson(steps.get-label-action.outputs.result).headSha }}" + # Required for consumers to identify the PR associated with this workflow run. # Output can be trusted, because it was uploaded from a workflow that is trusted, # because "issue_comment", and "workflow_run" only trigger on workflows in the default branch. # Consumers should verify the "event_name" before attempting to extract from the artifact name. - if: | - (github.event_name == 'issue_comment' || - github.event_name == 'workflow_run') && - (fromJson(steps.get-label-action.outputs.result).labelAction == 'add' || - fromJson(steps.get-label-action.outputs.result).labelAction == 'remove') + always() && + (github.event_name == 'issue_comment' || github.event_name == 'workflow_run') && + fromJson(steps.get-label-action.outputs.result).issueNumber > 0 name: Upload artifact with issue number uses: ./.github/actions/add-empty-artifact with: diff --git a/.github/workflows/breaking-change-add-label-artifacts.yaml b/.github/workflows/breaking-change-add-label-artifacts.yaml index 6a19dd711c5c..cd09686c4bcd 100644 --- a/.github/workflows/breaking-change-add-label-artifacts.yaml +++ b/.github/workflows/breaking-change-add-label-artifacts.yaml @@ -62,6 +62,13 @@ jobs: name: "${{ steps.get-label-actions.outputs.versioningReviewLabelName }}" value: "${{ steps.get-label-actions.outputs.versioningReviewLabelValue == 'true' }}" + - if: ${{ always() && steps.get-label-actions.outputs.head_sha }} + name: Upload artifact with head SHA + uses: ./.github/actions/add-empty-artifact + with: + name: head-sha + value: ${{ steps.get-label-actions.outputs.head_sha }} + - if: ${{ always() && steps.get-label-actions.outputs.issue_number > 0 }} name: Upload artifact with issue number uses: ./.github/actions/add-empty-artifact diff --git a/.github/workflows/sdk-breaking-change-labels.yaml b/.github/workflows/sdk-breaking-change-labels.yaml index cd8c226aa196..dc0bca7f4ffa 100644 --- a/.github/workflows/sdk-breaking-change-labels.yaml +++ b/.github/workflows/sdk-breaking-change-labels.yaml @@ -58,10 +58,14 @@ jobs: # Convert "add/remove" to "true/false" value: "${{ fromJson(steps.get-label-and-action.outputs.result).labelAction == 'add' }}" - - if: | - ((fromJson(steps.get-label-and-action.outputs.result).labelAction == 'add' || - fromJson(steps.get-label-and-action.outputs.result).labelAction == 'remove') && - fromJson(steps.get-label-and-action.outputs.result).issueNumber > 0) + - if: ${{ always() && fromJson(steps.get-label-and-action.outputs.result).headSha }} + name: Upload artifact with issue number + uses: ./.github/actions/add-empty-artifact + with: + name: "head-sha" + value: "${{ fromJson(steps.get-label-and-action.outputs.result).headSha }}" + + - if: ${{ always() && fromJson(steps.get-label-and-action.outputs.result).issueNumber > 0 }} name: Upload artifact with issue number uses: ./.github/actions/add-empty-artifact with: diff --git a/.github/workflows/spec-gen-sdk-status.yml b/.github/workflows/spec-gen-sdk-status.yml index e1bb91ab37ae..faaaf71bbbf7 100644 --- a/.github/workflows/spec-gen-sdk-status.yml +++ b/.github/workflows/spec-gen-sdk-status.yml @@ -48,6 +48,13 @@ jobs: (await import('${{ github.workspace }}/.github/workflows/src/spec-gen-sdk-status.js')).default; return await setStatus({ github, context, core }); + - if: ${{ always() && steps.sdk-validation-status.outputs.head_sha }} + name: Upload artifact with head SHA + uses: ./.github/actions/add-empty-artifact + with: + name: head-sha + value: ${{ steps.sdk-validation-status.outputs.head_sha }} + - if: ${{ always() && steps.sdk-validation-status.outputs.issue_number }} name: Upload artifact with issue number uses: ./.github/actions/add-empty-artifact diff --git a/.github/workflows/src/arm-auto-signoff.js b/.github/workflows/src/arm-auto-signoff.js index 2d20956f2557..6c6ac7d9b1ff 100644 --- a/.github/workflows/src/arm-auto-signoff.js +++ b/.github/workflows/src/arm-auto-signoff.js @@ -1,7 +1,8 @@ // @ts-check import { setEquals } from "../../shared/src/equality.js"; -import { PER_PAGE_MAX } from "../../shared/src/github.js"; +import { CommitStatusState, PER_PAGE_MAX } from "../../shared/src/github.js"; +import { byDate, invert } from "../../shared/src/sort.js"; import { extractInputs } from "./context.js"; import { LabelAction } from "./label.js"; @@ -33,20 +34,23 @@ export default async function getLabelAction({ github, context, core }) { * @param {string} params.head_sha * @param {(import("@octokit/core").Octokit & import("@octokit/plugin-rest-endpoint-methods/dist-types/types.js").Api & { paginate: import("@octokit/plugin-paginate-rest").PaginateInterface; })} params.github * @param {typeof import("@actions/core")} params.core - * @returns {Promise<{labelAction: LabelAction, issueNumber: number}>} + * @returns {Promise<{labelAction: LabelAction, headSha: string, issueNumber: number}>} */ export async function getLabelActionImpl({ owner, repo, issue_number, head_sha, github, core }) { const labelActions = { [LabelAction.None]: { labelAction: LabelAction.None, + headSha: head_sha, issueNumber: issue_number, }, [LabelAction.Add]: { labelAction: LabelAction.Add, + headSha: head_sha, issueNumber: issue_number, }, [LabelAction.Remove]: { labelAction: LabelAction.Remove, + headSha: head_sha, issueNumber: issue_number, }, }; @@ -139,52 +143,63 @@ export async function getLabelActionImpl({ owner, repo, issue_number, head_sha, return removeAction; } - const checkRuns = await github.paginate(github.rest.checks.listForRef, { + const statuses = await github.paginate(github.rest.repos.listCommitStatusesForRef, { owner: owner, repo: repo, ref: head_sha, per_page: PER_PAGE_MAX, }); - const requiredCheckNames = ["Swagger LintDiff", "Swagger Avocado"]; + core.info("Statuses:"); + statuses.forEach((status) => { + core.info(`- ${status.context}: ${status.state}`); + }); + + const requiredStatusNames = ["Swagger LintDiff", "Swagger Avocado"]; /** - * @type {typeof checkRuns.check_runs} + * @type {typeof statuses} */ - let requiredCheckRuns = []; - - for (const checkName of requiredCheckNames) { - const matchingRuns = checkRuns.filter((run) => run.name === checkName); - - if (matchingRuns.length > 1) { - throw new Error(`Unexpected number of checks named '${checkName}': ${matchingRuns.length}`); - } - - const matchingRun = matchingRuns.length === 1 ? matchingRuns[0] : undefined; - - core.info( - `${checkName}: Status='${matchingRun?.status}', Conclusion='${matchingRun?.conclusion}'`, - ); - - if (matchingRun && matchingRun.status === "completed" && matchingRun.conclusion !== "success") { - core.info(`Check '${checkName}' did not succeed`); + let requiredStatuses = []; + + for (const statusName of requiredStatusNames) { + // The "statuses" array may contain multiple statuses with the same "context" (aka "name"), + // but different states and update times. We only care about the latest. + const matchingStatuses = statuses + .filter((status) => status.context.toLowerCase() === statusName.toLowerCase()) + .sort(invert(byDate((status) => status.updated_at))); + + // undefined if matchingStatuses.length === 0 (which is OK) + const matchingStatus = matchingStatuses[0]; + + core.info(`${statusName}: State='${matchingStatus?.state}'`); + + if ( + matchingStatus && + (matchingStatus.state === CommitStatusState.ERROR || + matchingStatus.state === CommitStatusState.FAILURE) + ) { + core.info(`Status '${matchingStatus}' did not succeed`); return removeAction; } - if (matchingRun) { - requiredCheckRuns.push(matchingRun); + if (matchingStatus) { + requiredStatuses.push(matchingStatus); } } if ( - setEquals(new Set(requiredCheckRuns.map((run) => run.name)), new Set(requiredCheckNames)) && - requiredCheckRuns.every((run) => run.status === "completed" && run.conclusion === "success") + setEquals( + new Set(requiredStatuses.map((status) => status.context)), + new Set(requiredStatusNames), + ) && + requiredStatuses.every((status) => status.state === CommitStatusState.SUCCESS) ) { core.info("All requirements met for auto-signoff"); return labelActions[LabelAction.Add]; } - // If any checks are missing or not completed, no-op to prevent frequent remove/add label as checks re-run - core.info("One or more checks are still in-progress"); + // If any statuses are missing or pending, no-op to prevent frequent remove/add label as checks re-run + core.info("One or more statuses are still pending"); return labelActions[LabelAction.None]; } diff --git a/.github/workflows/src/breaking-change-add-label-artifacts.js b/.github/workflows/src/breaking-change-add-label-artifacts.js index a66fb1a9693d..639b2bd0131b 100644 --- a/.github/workflows/src/breaking-change-add-label-artifacts.js +++ b/.github/workflows/src/breaking-change-add-label-artifacts.js @@ -74,6 +74,7 @@ export default async function getLabelActions({ github, context, core }) { }) ).map((a) => a.name); + core.setOutput("head_sha", head_sha); core.setOutput("issue_number", issue_number); if ( diff --git a/.github/workflows/src/context.js b/.github/workflows/src/context.js index 6ef60b4d2993..6a88034ea045 100644 --- a/.github/workflows/src/context.js +++ b/.github/workflows/src/context.js @@ -1,5 +1,6 @@ // @ts-check +import { isFullGitSha } from "../../shared/src/git.js"; import { PER_PAGE_MAX } from "../../shared/src/github.js"; import { rateLimitHook } from "./github.js"; import { getIssueNumber } from "./issues.js"; @@ -98,11 +99,14 @@ export async function extractInputs(github, context, core) { ); let issue_number = NaN; + let head_sha = ""; if ( payload.workflow_run.event === "pull_request" || payload.workflow_run.event == "pull_request_target" ) { + head_sha = payload.workflow_run.head_sha; + // Other properties on payload.workflow_run should be the same for both pull_request and pull_request_target. // Extract the issue number from the payload itself, or by passing the head_sha to an API. @@ -126,7 +130,6 @@ export async function extractInputs(github, context, core) { // Owner and repo for the PR head (at least one should differ from base for fork PRs) const head_owner = payload.workflow_run.head_repository.owner.login; const head_repo = payload.workflow_run.head_repository.name; - const head_sha = payload.workflow_run.head_sha; /** @type {PullRequest[]} */ let pullRequests = []; @@ -203,19 +206,32 @@ export async function extractInputs(github, context, core) { core.info(`artifactNames: ${JSON.stringify(artifactNames)}`); for (const artifactName of artifactNames) { - // If artifactName has format "issue-number=positive-integer", set issue_number=value - // Else, if artifactName has format "issue-number=other-string", warn and set issue_number=NaN - // - Workflows should probably only set "issue-number" to positive integers, but sometimes set it to "null" - // Else, if artifactName does not start with "issue-number=", ignore it + // If artifactName has format "head-sha=valid-full-sha", set head_sha=value + // Else, if artifactName has format "head-sha=other-string", warn and set head_sha="" + // Else, if artifactName has format "issue-number=positive-integer", set issue_number=value + // Else, if artifactName has format "issue-number=other-string", warn and set issue_number=NaN + // - Workflows should probably only set "issue-number" to positive integers, but sometimes set it to "null" + // Else, if artifactName does not start with "head-sha=" or "issue-number=", ignore it const firstEquals = artifactName.indexOf("="); if (firstEquals !== -1) { const key = artifactName.substring(0, firstEquals); - if (key === "issue-number") { + if (key === "head-sha") { + const value = artifactName.substring(firstEquals + 1); + if (isFullGitSha(value)) { + head_sha = value; + } else { + // Producers must ensure they only set head-sha to valid full git SHA + throw new Error(`head-sha is not a valid full git SHA: '${value}'`); + } + continue; + } else if (key === "issue-number") { const value = artifactName.substring(firstEquals + 1); const parsedValue = Number.parseInt(value); if (parsedValue > 0) { issue_number = parsedValue; } else { + // TODO: Consider throwing instead of warning. May need to handle `issue-number=null|undefined`, + // but invalid integers should throw. core.info(`Invalid issue-number: '${value}' parsed to '${parsedValue}'`); issue_number = NaN; } @@ -223,6 +239,11 @@ export async function extractInputs(github, context, core) { } } } + if (!head_sha) { + core.info( + `Could not find 'head-sha' artifact, which is required to associate the triggering workflow run with the head SHA of a PR`, + ); + } if (!issue_number) { core.info( `Could not find 'issue-number' artifact, which is required to associate the triggering workflow run with a PR`, @@ -237,8 +258,8 @@ export async function extractInputs(github, context, core) { inputs = { owner: payload.workflow_run.repository.owner.login, repo: payload.workflow_run.repository.name, - head_sha: payload.workflow_run.head_sha, - issue_number: issue_number, + head_sha, + issue_number, run_id: payload.workflow_run.id, }; } else if (context.eventName === "check_run") { diff --git a/.github/workflows/src/set-status.js b/.github/workflows/src/set-status.js index 30b2f064d255..f30e71368ae1 100644 --- a/.github/workflows/src/set-status.js +++ b/.github/workflows/src/set-status.js @@ -1,5 +1,6 @@ // @ts-check +import { isFullGitSha } from "../../shared/src/git.js"; import { CheckConclusion, CheckStatus, @@ -71,10 +72,14 @@ export async function setStatusImpl({ requiredStatusName, overridingLabel, }) { + if (!isFullGitSha(head_sha)) { + throw new Error(`head_sha is not a valid full git SHA: '${head_sha}'`); + } + core.setOutput("head_sha", head_sha); + if (!Number.isInteger(issue_number) || issue_number <= 0) { throw new Error(`issue_number must be a positive integer: ${issue_number}`); } - core.setOutput("issue_number", issue_number); // TODO: Try to extract labels from context (when available) to avoid unnecessary API call diff --git a/.github/workflows/src/spec-gen-sdk-status.js b/.github/workflows/src/spec-gen-sdk-status.js index a4c8770c3089..3a176e57bef9 100644 --- a/.github/workflows/src/spec-gen-sdk-status.js +++ b/.github/workflows/src/spec-gen-sdk-status.js @@ -57,6 +57,7 @@ export async function setSpecGenSdkStatusImpl({ issue_number, }) { const statusName = "SDK Validation Status"; + core.setOutput("head_sha", head_sha); core.setOutput("issue_number", issue_number); const checks = await github.paginate(github.rest.checks.listForRef, { owner, diff --git a/.github/workflows/src/summarize-checks/summarize-checks.js b/.github/workflows/src/summarize-checks/summarize-checks.js index 7678f5d5b011..05b4ec8f79ea 100644 --- a/.github/workflows/src/summarize-checks/summarize-checks.js +++ b/.github/workflows/src/summarize-checks/summarize-checks.js @@ -19,11 +19,12 @@ */ // #region imports/constants -import { extractInputs } from "../context.js"; -// import { commentOrUpdate } from "../comment.js"; import { execFile } from "../../../shared/src/exec.js"; import { CheckConclusion, PER_PAGE_MAX } from "../../../shared/src/github.js"; import { intersect } from "../../../shared/src/set.js"; +import { byDate, invert } from "../../../shared/src/sort.js"; +import { commentOrUpdate } from "../comment.js"; +import { extractInputs } from "../context.js"; import { brChRevApproval, getViolatedRequiredLabelsRules, @@ -57,7 +58,7 @@ import path from "path"; * @typedef {Object} CheckRunData * @property {string} name * @property {string} status - * @property {string} conclusion + * @property {string | null} conclusion * @property {CheckMetadata} checkInfo */ @@ -140,7 +141,8 @@ const FYI_CHECK_NAMES = [ "Swagger BreakingChange", "Swagger PrettierCheck", ]; -const AUTOMATED_CHECK_NAME = "[TEST-IGNORE] Automated merging requirements met"; +const AUTOMATED_CHECK_NAME = "Automated merging requirements met"; +const IMPACT_CHECK_NAME = "Summarize PR Impact"; const NEXT_STEPS_COMMENT_ID = "NextStepsToMerge"; /** @type {CheckMetadata[]} */ @@ -397,24 +399,24 @@ export async function summarizeChecksImpl( for (const label of labelContext.toRemove) { core.info(`Removing label: ${label} from ${owner}/${repo}#${issue_number}.`); - // await github.rest.issues.removeLabel({ - // owner: owner, - // repo: repo, - // issue_number: issue_number, - // name: label, - // }); + await github.rest.issues.removeLabel({ + owner: owner, + repo: repo, + issue_number: issue_number, + name: label, + }); } if (labelContext.toAdd.size > 0) { core.info( `Adding labels: ${Array.from(labelContext.toAdd).join(", ")} to ${owner}/${repo}#${issue_number}.`, ); - // await github.rest.issues.addLabels({ - // owner: owner, - // repo: repo, - // issue_number: issue_number, - // labels: Array.from(labelContext.toAdd), - // }); + await github.rest.issues.addLabels({ + owner: owner, + repo: repo, + issue_number: issue_number, + labels: Array.from(labelContext.toAdd), + }); } // adjust labelNames based on labelsToAdd/labelsToRemove @@ -441,20 +443,21 @@ export async function summarizeChecksImpl( `Updating comment '${NEXT_STEPS_COMMENT_ID}' on ${owner}/${repo}#${issue_number} with body: ${commentBody}`, ); // this will remain commented until we're comfortable with the change. - // await commentOrUpdate( - // { github, context, core }, - // owner, - // repo, - // issue_number, - // commentName, - // commentBody - // ) + await commentOrUpdate( + github, + core, + owner, + repo, + issue_number, + commentBody, + NEXT_STEPS_COMMENT_ID, + ); // finally, update the "Automated merging requirements met" commit status await updateCommitStatus(github, core, owner, repo, head_sha, automatedChecksMet); core.info( - `Summarize checks has identified that status of "[TEST-IGNORE] Automated merging requirements met" commit status should be updated to: ${JSON.stringify(automatedChecksMet)}.`, + `Summarize checks has identified that status of "${AUTOMATED_CHECK_NAME}" commit status should be updated to: ${JSON.stringify(automatedChecksMet)}.`, ); } @@ -568,129 +571,24 @@ export function updateLabels(existingLabels, impactAssessment) { // #endregion // #region checks - -/** - * A GraphQL query to GitHub API that returns all check runs for given commit, with "isRequired" field for given PR. - * - * If you want to see example response, copy the query body into this: - * https://docs.github.com/en/graphql/overview/explorer - * Example inputs: - * resourceUrl: "https://github.com/test-repo-billy/azure-rest-api-specs/commit/c2789c5bde1b3f4fa34f76a8eeaaed479df23c4d" - * prNumber: 2996 - * - * Reference: - * https://docs.github.com/en/graphql/reference/queries#resource - * https://docs.github.com/en/graphql/guides/using-global-node-ids#3-do-a-direct-node-lookup-in-graphql - * https://docs.github.com/en/graphql/reference/objects#checkrun - * Rate limit: - * https://docs.github.com/en/graphql/overview/resource-limitations#rate-limit - * https://docs.github.com/en/graphql/reference/objects#ratelimit - * - * Note: here, for "checkRuns(first: ..)", maybe we should add a filter that filters to LATEST, per: - * https://docs.github.com/en/graphql/reference/input-objects#checkrunfilter - * https://docs.github.com/en/graphql/reference/enums#checkruntype - **/ /** - * Fetch all check suites for a commit with pagination - * @param {import('@actions/github-script').AsyncFunctionArguments['github']} github - * @param {typeof import("@actions/core")} core - * @param {string} owner - * @param {string} repo - * @param {string} sha - * @param {number} prNumber - * @returns {Promise} Complete GraphQL response with all check suites + * Extracts required status check context names from GitHub branch rules response. + * @param {import('@octokit/rest').RestEndpointMethodTypes['repos']['getBranchRules']['response']} checkResponseObj - The GitHub branch rules API response object + * @returns {string[]} Array of required status check context names (e.g., ["license/cla", "Swagger LintDiff"]) */ -async function getAllCheckSuites(github, core, owner, repo, sha, prNumber) { - // First, get the total count using REST API to avoid expensive GraphQL if there are too many suites - const { data: checkSuitesResponse } = await github.rest.checks.listSuitesForRef({ - owner, - repo, - ref: sha, - per_page: 1, // We only need the count, not the actual data - }); - - const totalCheckSuites = checkSuitesResponse.total_count; - - // Bail if too many check suites to avoid burning GraphQL rate limits - if (totalCheckSuites > 500) { - throw new Error( - `Too many check suites (${totalCheckSuites}) for ${owner}/${repo}#${prNumber}@${sha}. Summarize-Checks ending with error to avoid exhausting graphQL resources.`, - ); - } else { - core.info(`Found ${totalCheckSuites} total check suites`); - } - - // Now proceed with GraphQL pagination - const resourceUrl = `https://github.com/${owner}/${repo}/commit/${sha}`; - let allCheckSuites = []; - let hasNextPage = true; - let cursor = null; - let lastResponse = null; - - while (hasNextPage) { - /** @type {string} */ - const query = ` - { - resource(url: "${resourceUrl}") { - ... on Commit { - checkSuites(first: 100${cursor ? `, after: "${cursor}"` : ""}) { - pageInfo { - hasNextPage - endCursor - } - nodes { - workflowRun { - id - databaseId - workflow { - name - } - } - checkRuns(first: 100) { - nodes { - name - status - conclusion - isRequired(pullRequestNumber: ${prNumber}) - } - } - } - } - } - } - rateLimit { - limit - cost - used - remaining - resetAt - } +export function getRequiredChecksFromBranchRuleOutput(checkResponseObj) { + const requiredChecks = []; + + // Look through all rules for required_status_checks type + for (const rule of checkResponseObj.data) { + if (rule.type === "required_status_checks" && rule.parameters?.required_status_checks) { + for (const statusCheck of rule.parameters.required_status_checks) { + requiredChecks.push(statusCheck.context); } - `; - - /** @type {any} */ - const response = await github.graphql(query); - lastResponse = response; - core.info(`GraphQL Rate Limit Information: ${JSON.stringify(response.rateLimit)}`); - - if (response.resource?.checkSuites?.nodes) { - allCheckSuites.push(...response.resource.checkSuites.nodes); - hasNextPage = response.resource.checkSuites.pageInfo.hasNextPage; - cursor = response.resource.checkSuites.pageInfo.endCursor; - } else { - hasNextPage = false; } } - // Return a response object that matches the original structure - return { - resource: { - checkSuites: { - nodes: allCheckSuites, - }, - }, - rateLimit: lastResponse?.rateLimit, - }; + return requiredChecks; } /** @@ -714,10 +612,8 @@ export async function getCheckRunTuple( ) { // This function was originally a version of getRequiredAndFyiAndAutomatedMergingRequirementsMetCheckRuns // but has been simplified for clarity and purpose. - /** @type {CheckRunData[]} */ - let reqCheckRuns = []; - /** @type {CheckRunData[]} */ - let fyiCheckRuns = []; + /** @type {string[]} */ + let requiredCheckNames = []; /** @type {number | undefined} */ let impactAssessmentWorkflowRun = undefined; @@ -725,11 +621,152 @@ export async function getCheckRunTuple( /** @type { import("./labelling.js").ImpactAssessment | undefined } */ let impactAssessment = undefined; - const response = await getAllCheckSuites(github, core, owner, repo, head_sha, prNumber); - core.info(`GraphQL Rate Limit Information: ${JSON.stringify(response.rateLimit)}`); + const allCheckRuns = await github.paginate(github.rest.checks.listForRef, { + owner: owner, + repo: repo, + ref: head_sha, + per_page: PER_PAGE_MAX, + }); + + const allCommitStatuses = await github.paginate(github.rest.repos.listCommitStatusesForRef, { + owner: owner, + repo: repo, + ref: head_sha, + per_page: PER_PAGE_MAX, + }); + + // Process allCheckRuns and allCommitStatuses into unified CheckRunData array + // all checks will be considered as "FYI" until we have an impact assessment, so we can + // determine the target branch, and from there pull branch protect rulesets to ensure we + // are marking the required checks correctly. + /** @type {Array} */ + const allChecks = []; + + allCheckRuns.forEach((checkRun) => { + allChecks.push({ + name: checkRun.name, + status: checkRun.status, + conclusion: checkRun.conclusion || null, + checkInfo: getCheckInfo(checkRun.name), + // Store original object for date sorting + _originalData: checkRun, + _source: "checkRun", + }); + }); + + allCommitStatuses.forEach((status) => { + // Map commit status state to check run conclusion + let conclusion = null; + let checkStatus = "completed"; + + switch (status.state) { + case "success": + conclusion = "success"; + break; + case "failure": + conclusion = "failure"; + break; + case "error": + conclusion = "failure"; + break; + case "pending": + checkStatus = "in_progress"; + conclusion = null; + break; + } + + allChecks.push({ + name: status.context, + status: checkStatus, + conclusion: conclusion, + checkInfo: getCheckInfo(status.context), + // Store original object for date sorting and data access + _originalData: status, + _source: "commitStatus", + }); + }); + + // Group by name and take the latest for each + const checksByName = new Map(); + + allChecks.forEach((check) => { + const name = check.name; + if (!checksByName.has(name)) { + checksByName.set(name, []); + } + checksByName.get(name).push(check); + }); + + // For each group, sort by date (newest first) and take the first one + const unifiedCheckRuns = []; + for (const [, checks] of checksByName) { + // Sort by date - newest first using invert(byDate(...)) + const sortedChecks = checks.sort( + invert( + byDate((check) => { + if (check._source === "checkRun") { + // Check runs have started_at, completed_at, etc. Use the most recent available date + return ( + check._originalData.completed_at || + check._originalData.started_at || + check._originalData.created_at + ); + } else { + // Commit statuses have created_at and updated_at + return check._originalData.updated_at || check._originalData.created_at; + } + }), + ), + ); - [reqCheckRuns, fyiCheckRuns, impactAssessmentWorkflowRun] = - extractRunsFromGraphQLResponse(response); + const latestCheck = sortedChecks[0]; + + // just handling both names for ease of integration testing + if ( + (latestCheck.name === "[TEST-IGNORE] Summarize PR Impact" || + latestCheck.name === IMPACT_CHECK_NAME) && + latestCheck.status === "completed" && + latestCheck.conclusion === "success" + ) { + const workflowRuns = await github.paginate(github.rest.actions.listWorkflowRunsForRepo, { + owner, + repo, + head_sha: head_sha, + check_suite_id: latestCheck._originalData.check_suite.id, + per_page: PER_PAGE_MAX, + }); + + if (workflowRuns.length === 0) { + core.warning( + `No workflow runs found for check suite ID: ${latestCheck._originalData.check_suite.id}`, + ); + } else { + // Sort by updated_at to get the most recent run + const sortedRuns = workflowRuns.sort( + (a, b) => new Date(b.updated_at).getTime() - new Date(a.updated_at).getTime(), + ); + impactAssessmentWorkflowRun = sortedRuns[0].id; + + if (workflowRuns.length > 1) { + core.info( + `Found ${workflowRuns.length} workflow runs for check suite ID: ${latestCheck._originalData.check_suite.id}, using most recent: ${sortedRuns[0].id}`, + ); + } + } + } + + // Create clean CheckRunData without temporary properties + unifiedCheckRuns.push({ + name: latestCheck.name, + status: latestCheck.status, + conclusion: latestCheck.conclusion, + checkInfo: latestCheck.checkInfo, + }); + } + + core.info( + `Processed ${allCheckRuns.length} check runs and ${allCommitStatuses.length} commit statuses into ${unifiedCheckRuns.length} unified checks`, + ); if (impactAssessmentWorkflowRun) { core.info( @@ -742,13 +779,34 @@ export async function getCheckRunTuple( repo, impactAssessmentWorkflowRun, ); + + const branchRules = await github.rest.repos.getBranchRules({ + owner: owner, + repo: repo, + branch: impactAssessment.targetBranch, + }); + + if (branchRules) { + requiredCheckNames = getRequiredChecksFromBranchRuleOutput(branchRules).filter( + // "Automated merging requirements met" may be required in repo settings, to ensure PRs cannot be merged unless + // it's passing. However, it must be excluded from our list of requiredCheckNames, since it's status is set + // by our own workflow. If this check isn't excluded, it creates a deadlock where it can never be set. + (checkName) => checkName !== AUTOMATED_CHECK_NAME, + ); + } + } else { + requiredCheckNames = [IMPACT_CHECK_NAME, "[TEST-IGNORE] Summarize PR Impact"]; } - const filteredReqCheckRuns = reqCheckRuns.filter( - (checkRun) => !excludedCheckNames.includes(checkRun.name), + const filteredReqCheckRuns = unifiedCheckRuns.filter( + (checkRun) => + !excludedCheckNames.includes(checkRun.name) && requiredCheckNames.includes(checkRun.name), ); - const filteredFyiCheckRuns = fyiCheckRuns.filter( - (checkRun) => !excludedCheckNames.includes(checkRun.name), + const filteredFyiCheckRuns = unifiedCheckRuns.filter( + (checkRun) => + !excludedCheckNames.includes(checkRun.name) && + !requiredCheckNames.includes(checkRun.name) && + FYI_CHECK_NAMES.includes(checkRun.name), ); return [filteredReqCheckRuns, filteredFyiCheckRuns, impactAssessment]; @@ -775,76 +833,6 @@ export function checkRunIsSuccessful(checkRun) { return conclusion === "success" || conclusion === "neutral"; } -/** - * @param {any} response - GraphQL response data - * @returns {[CheckRunData[], CheckRunData[], number | undefined]} - */ -export function extractRunsFromGraphQLResponse(response) { - /** @type {CheckRunData[]} */ - const reqCheckRuns = []; - /** @type {CheckRunData[]} */ - const fyiCheckRuns = []; - - /** @type {number | undefined} */ - let impactAssessmentWorkflowRun = undefined; - - // Define the automated merging requirements check name - - if (response.resource?.checkSuites?.nodes) { - response.resource.checkSuites.nodes.forEach( - /** @param {{ workflowRun?: WorkflowRunInfo, checkRuns?: { nodes?: any[] } }} checkSuiteNode */ - (checkSuiteNode) => { - if (checkSuiteNode.checkRuns?.nodes) { - checkSuiteNode.checkRuns.nodes.forEach((checkRunNode) => { - if (checkRunNode.isRequired) { - reqCheckRuns.push({ - name: checkRunNode.name, - status: checkRunNode.status, - conclusion: checkRunNode.conclusion, - checkInfo: getCheckInfo(checkRunNode.name), - }); - } - // Note the "else" here. It means that: - // A GH check will be bucketed into "failing FYI check run" if: - // - It is failing - // - AND it is is NOT marked as 'required' in GitHub branch policy - // - AND it is marked as 'FYI' in this file's FYI_CHECK_NAMES array - else if (FYI_CHECK_NAMES.includes(checkRunNode.name)) { - fyiCheckRuns.push({ - name: checkRunNode.name, - status: checkRunNode.status, - conclusion: checkRunNode.conclusion, - checkInfo: getCheckInfo(checkRunNode.name), - }); - } - }); - } - }, - ); - } - - // extract the ImpactAssessment check run if it is completed and successful - if (response.resource?.checkSuites?.nodes) { - response.resource.checkSuites.nodes.forEach( - /** @param {{ workflowRun?: WorkflowRunInfo, checkRuns?: { nodes?: any[] } }} checkSuiteNode */ - (checkSuiteNode) => { - if (checkSuiteNode.checkRuns?.nodes) { - checkSuiteNode.checkRuns.nodes.forEach((checkRunNode) => { - if ( - checkRunNode.name === "[TEST-IGNORE] Summarize PR Impact" && - checkRunNode.status?.toLowerCase() === "completed" && - checkRunNode.conclusion?.toLowerCase() === "success" - ) { - // Assign numeric databaseId, not the string node ID - impactAssessmentWorkflowRun = checkSuiteNode.workflowRun?.databaseId; - } - }); - } - }, - ); - } - return [reqCheckRuns, fyiCheckRuns, impactAssessmentWorkflowRun]; -} /** * Get metadata for a specific check from our index. * @param {string} checkName @@ -1131,55 +1119,51 @@ function buildViolatedLabelRulesNextStepsText(violatedRequiredLabelsRules) { * @param {string} owner * @param {string} repo * @param {number} runId - The workflow run databaseId - * @returns {Promise} The parsed job summary data + * @returns {Promise} The parsed job summary data */ export async function getImpactAssessment(github, core, owner, repo, runId) { - try { - // List artifacts for provided workflow run - const artifacts = await github.rest.actions.listWorkflowRunArtifacts({ - owner, - repo, - run_id: runId, - }); + // List artifacts for provided workflow run + const artifacts = await github.rest.actions.listWorkflowRunArtifacts({ + owner, + repo, + run_id: runId, + }); - // Find the job-summary artifact - const jobSummaryArtifact = artifacts.data.artifacts.find( - (artifact) => artifact.name === "job-summary", - ); + // Find the job-summary artifact + const jobSummaryArtifact = artifacts.data.artifacts.find( + (artifact) => artifact.name === "job-summary", + ); - if (!jobSummaryArtifact) { - core.info("No job-summary artifact found"); - return undefined; - } + if (!jobSummaryArtifact) { + throw new Error( + `Unable to find job-summary artifact for run ID: ${runId}. This should never happen, as this section of code should only run with a valid runId.`, + ); + } - // Download the artifact as a zip archive - const download = await github.rest.actions.downloadArtifact({ - owner, - repo, - artifact_id: jobSummaryArtifact.id, - archive_format: "zip", - }); + // Download the artifact as a zip archive + const download = await github.rest.actions.downloadArtifact({ + owner, + repo, + artifact_id: jobSummaryArtifact.id, + archive_format: "zip", + }); - core.info(`Successfully downloaded job-summary artifact ID: ${jobSummaryArtifact.id}`); - - // Write zip buffer to temp file and extract JSON - const tmpZip = path.join(process.env.RUNNER_TEMP || os.tmpdir(), `job-summary-${runId}.zip`); - // Convert ArrayBuffer to Buffer - // Convert ArrayBuffer (download.data) to Node Buffer - const arrayBuffer = /** @type {ArrayBuffer} */ (download.data); - const zipBuffer = Buffer.from(new Uint8Array(arrayBuffer)); - await fs.writeFile(tmpZip, zipBuffer); - // Extract JSON content from zip archive - const { stdout: jsonContent } = await execFile("unzip", ["-p", tmpZip]); - await fs.unlink(tmpZip); - - /** @type {import("./labelling.js").ImpactAssessment} */ - // todo: we need to zod this to ensure the structure is correct, however we do not have zod installed at time of run - const impact = JSON.parse(jsonContent); - return impact; - } catch (/** @type {any} */ error) { - core.error(`Failed to download job summary artifact: ${error.message}`); - return undefined; - } + core.info(`Successfully downloaded job-summary artifact ID: ${jobSummaryArtifact.id}`); + + // Write zip buffer to temp file and extract JSON + const tmpZip = path.join(process.env.RUNNER_TEMP || os.tmpdir(), `job-summary-${runId}.zip`); + // Convert ArrayBuffer to Buffer + // Convert ArrayBuffer (download.data) to Node Buffer + const arrayBuffer = /** @type {ArrayBuffer} */ (download.data); + const zipBuffer = Buffer.from(new Uint8Array(arrayBuffer)); + await fs.writeFile(tmpZip, zipBuffer); + // Extract JSON content from zip archive + const { stdout: jsonContent } = await execFile("unzip", ["-p", tmpZip]); + await fs.unlink(tmpZip); + + /** @type {import("./labelling.js").ImpactAssessment} */ + // todo: we need to zod this to ensure the structure is correct, however we do not have zod installed at time of run + const impact = JSON.parse(jsonContent); + return impact; } // #endregion diff --git a/.github/workflows/summarize-checks.yaml b/.github/workflows/summarize-checks.yaml index a1d066b1df0d..8f644caa3813 100644 --- a/.github/workflows/summarize-checks.yaml +++ b/.github/workflows/summarize-checks.yaml @@ -1,11 +1,11 @@ -name: "[TEST-IGNORE] Summarize Checks" +name: "Summarize Checks" on: workflow_run: workflows: - - "\\[TEST-IGNORE\\] Swagger SemanticValidation - Set Status" - - "\\[TEST-IGNORE\\] Swagger ModelValidation - Set Status" - - "\\[TEST-IGNORE\\] Summarize PR Impact" + - "Swagger SemanticValidation - Set Status" + - "Swagger ModelValidation - Set Status" + - "Summarize PR Impact" - "Swagger Avocado - Set Status" - "Swagger LintDiff - Set Status" - "SDK Validation Status" @@ -30,7 +30,7 @@ permissions: jobs: run-summarize-checks: if: ${{ github.event_name == 'pull_request_target' || github.event.workflow_run.conclusion != 'skipped' }} - name: "[TEST-IGNORE] Summarize Checks" + name: "Summarize Checks" runs-on: ubuntu-24.04 steps: diff --git a/.github/workflows/summarize-impact.yaml b/.github/workflows/summarize-impact.yaml index df9045055c50..4e82b60c78ee 100644 --- a/.github/workflows/summarize-impact.yaml +++ b/.github/workflows/summarize-impact.yaml @@ -1,4 +1,4 @@ -name: "[TEST-IGNORE] Summarize PR Impact" +name: "Summarize PR Impact" on: pull_request @@ -8,7 +8,7 @@ permissions: jobs: impact: - name: "[TEST-IGNORE] Summarize PR Impact" + name: "Summarize PR Impact" runs-on: ubuntu-24.04 steps: diff --git a/.github/workflows/swagger-modelvalidation-code.yaml b/.github/workflows/swagger-modelvalidation-code.yaml index 9ab3b15471ee..8e5bba0c8b09 100644 --- a/.github/workflows/swagger-modelvalidation-code.yaml +++ b/.github/workflows/swagger-modelvalidation-code.yaml @@ -1,4 +1,4 @@ -name: "[TEST-IGNORE] Swagger ModelValidation - Analyze Code" +name: "Swagger ModelValidation - Analyze Code" on: pull_request @@ -7,7 +7,7 @@ permissions: jobs: oav: - name: "[TEST-IGNORE] Swagger ModelValidation - Analyze Code" + name: "Swagger ModelValidation - Analyze Code" runs-on: ubuntu-24.04 steps: diff --git a/.github/workflows/swagger-modelvalidation-status.yaml b/.github/workflows/swagger-modelvalidation-status.yaml index 7310b1c94f6e..3f76adb23fd1 100644 --- a/.github/workflows/swagger-modelvalidation-status.yaml +++ b/.github/workflows/swagger-modelvalidation-status.yaml @@ -1,4 +1,4 @@ -name: "[TEST-IGNORE] Swagger ModelValidation - Set Status" +name: "Swagger ModelValidation - Set Status" on: # Must run on pull_request_target instead of pull_request, since the latter cannot trigger on @@ -15,7 +15,7 @@ on: - labeled - unlabeled workflow_run: - workflows: ["\\[TEST-IGNORE\\] Swagger ModelValidation - Analyze Code"] + workflows: ["Swagger ModelValidation - Analyze Code"] types: [completed] permissions: @@ -30,6 +30,6 @@ jobs: name: Set ModelValidation Status uses: ./.github/workflows/_reusable-set-check-status.yaml with: - monitored_workflow_name: "[TEST-IGNORE] Swagger ModelValidation - Analyze Code" - required_check_name: "[TEST-IGNORE] Swagger ModelValidation" + monitored_workflow_name: "Swagger ModelValidation - Analyze Code" + required_check_name: "Swagger ModelValidation" overriding_label: "Approved-ModelValidation" diff --git a/.github/workflows/swagger-semanticvalidation-code.yaml b/.github/workflows/swagger-semanticvalidation-code.yaml index ffe0464d4ff2..540c54de140b 100644 --- a/.github/workflows/swagger-semanticvalidation-code.yaml +++ b/.github/workflows/swagger-semanticvalidation-code.yaml @@ -1,4 +1,4 @@ -name: "[TEST-IGNORE] Swagger SemanticValidation - Analyze Code" +name: "Swagger SemanticValidation - Analyze Code" on: pull_request @@ -7,7 +7,7 @@ permissions: jobs: oav: - name: "[TEST-IGNORE] Swagger SemanticValidation - Analyze Code" + name: "Swagger SemanticValidation - Analyze Code" runs-on: ubuntu-24.04 steps: diff --git a/.github/workflows/swagger-semanticvalidation-status.yaml b/.github/workflows/swagger-semanticvalidation-status.yaml index 1166cb44ba20..62f432524f17 100644 --- a/.github/workflows/swagger-semanticvalidation-status.yaml +++ b/.github/workflows/swagger-semanticvalidation-status.yaml @@ -1,4 +1,4 @@ -name: "[TEST-IGNORE] Swagger SemanticValidation - Set Status" +name: "Swagger SemanticValidation - Set Status" on: # Must run on pull_request_target instead of pull_request, since the latter cannot trigger on @@ -15,7 +15,7 @@ on: - labeled - unlabeled workflow_run: - workflows: ["\\[TEST-IGNORE\\] Swagger SemanticValidation - Analyze Code"] + workflows: ["Swagger SemanticValidation - Analyze Code"] types: [completed] permissions: @@ -30,6 +30,6 @@ jobs: name: Set SemanticValidation Status uses: ./.github/workflows/_reusable-set-check-status.yaml with: - monitored_workflow_name: "[TEST-IGNORE] Swagger SemanticValidation - Analyze Code" - required_check_name: "[TEST-IGNORE] Swagger SemanticValidation" + monitored_workflow_name: "Swagger SemanticValidation - Analyze Code" + required_check_name: "Swagger SemanticValidation" overriding_label: "Approved-SemanticValidation" diff --git a/.github/workflows/test/arm-auto-signoff.test.js b/.github/workflows/test/arm-auto-signoff.test.js index c27801369f36..d354f08b54bf 100644 --- a/.github/workflows/test/arm-auto-signoff.test.js +++ b/.github/workflows/test/arm-auto-signoff.test.js @@ -1,4 +1,5 @@ import { describe, expect, it } from "vitest"; +import { CommitStatusState } from "../../shared/src/github.js"; import { getLabelActionImpl } from "../src/arm-auto-signoff.js"; import { LabelAction } from "../src/label.js"; import { createMockCore, createMockGithub as createMockGithubBase } from "./mocks.js"; @@ -78,7 +79,7 @@ describe("getLabelActionImpl", () => { github: github, core: core, }), - ).resolves.toEqual({ labelAction: LabelAction.None, issueNumber: 123 }); + ).resolves.toEqual({ labelAction: LabelAction.None, headSha: "abc123", issueNumber: 123 }); }); it("removes label if not incremental typespec", async () => { @@ -96,7 +97,7 @@ describe("getLabelActionImpl", () => { github: github, core: core, }), - ).resolves.toEqual({ labelAction: LabelAction.Remove, issueNumber: 123 }); + ).resolves.toEqual({ labelAction: LabelAction.Remove, headSha: "abc123", issueNumber: 123 }); }); it("no-ops if incremental typespec in progress", async () => { @@ -123,7 +124,7 @@ describe("getLabelActionImpl", () => { github: github, core: core, }), - ).resolves.toEqual({ labelAction: LabelAction.None, issueNumber: 123 }); + ).resolves.toEqual({ labelAction: LabelAction.None, headSha: "abc123", issueNumber: 123 }); }); it("removes label if no runs of incremental typespec", async () => { @@ -146,7 +147,7 @@ describe("getLabelActionImpl", () => { github: github, core: core, }), - ).resolves.toEqual({ labelAction: LabelAction.Remove, issueNumber: 123 }); + ).resolves.toEqual({ labelAction: LabelAction.Remove, headSha: "abc123", issueNumber: 123 }); }); it("uses latest run of incremental typespec", async () => { @@ -184,7 +185,7 @@ describe("getLabelActionImpl", () => { github: github, core: core, }), - ).resolves.toEqual({ labelAction: LabelAction.Remove, issueNumber: 123 }); + ).resolves.toEqual({ labelAction: LabelAction.Remove, headSha: "abc123", issueNumber: 123 }); }); it.each([ @@ -207,7 +208,7 @@ describe("getLabelActionImpl", () => { github: github, core: core, }), - ).resolves.toEqual({ labelAction: LabelAction.Remove, issueNumber: 123 }); + ).resolves.toEqual({ labelAction: LabelAction.Remove, headSha: "abc123", issueNumber: 123 }); }); it.each(["Swagger Avocado", "Swagger LintDiff"])( @@ -218,16 +219,13 @@ describe("getLabelActionImpl", () => { github.rest.issues.listLabelsOnIssue.mockResolvedValue({ data: [{ name: "ARMAutoSignedOff" }, { name: "ARMReview" }], }); - github.rest.checks.listForRef.mockResolvedValue({ - data: { - check_runs: [ - { - name: check, - status: "completed", - conclusion: "failure", - }, - ], - }, + github.rest.repos.listCommitStatusesForRef.mockResolvedValue({ + data: [ + { + context: check, + state: CommitStatusState.FAILURE, + }, + ], }); await expect( @@ -239,33 +237,58 @@ describe("getLabelActionImpl", () => { github: github, core: core, }), - ).resolves.toEqual({ labelAction: LabelAction.Remove, issueNumber: 123 }); + ).resolves.toEqual({ labelAction: LabelAction.Remove, headSha: "abc123", issueNumber: 123 }); }, ); - it("thows if multiple runs for same check", async () => { + it.each([ + [CommitStatusState.ERROR, ["ARMReview", "ARMAutoSignedOff"]], + [CommitStatusState.FAILURE, ["ARMReview", "ARMAutoSignedOff"]], + [CommitStatusState.PENDING, ["ARMReview"]], + [CommitStatusState.SUCCESS, ["ARMReview"]], + ])("uses latest status if multiple (%o)", async (state, labels) => { const github = createMockGithub({ incrementalTypeSpec: true }); github.rest.issues.listLabelsOnIssue.mockResolvedValue({ - data: [{ name: "ARMReview" }], + data: labels.map((l) => ({ + name: l, + })), }); - github.rest.checks.listForRef.mockResolvedValue({ - data: { - check_runs: [ - { - name: "Swagger LintDiff", - status: "in_progress", - conclusion: null, - }, - { - name: "Swagger LintDiff", - status: "in_progress", - conclusion: null, - }, - ], - }, + github.rest.repos.listCommitStatusesForRef.mockResolvedValue({ + data: [ + { + context: "Swagger Avocado", + state: CommitStatusState.SUCCESS, + updated_at: "2025-01-01", + }, + { + context: "Swagger LintDiff", + state: CommitStatusState.PENDING, + updated_at: "2025-01-01", + }, + { + context: "Swagger LintDiff", + state, + updated_at: "2025-01-02", + }, + ], }); + + let expectedAction; + switch (state) { + case CommitStatusState.ERROR: + case CommitStatusState.FAILURE: + expectedAction = LabelAction.Remove; + break; + case CommitStatusState.SUCCESS: + expectedAction = LabelAction.Add; + break; + case CommitStatusState.PENDING: + expectedAction = LabelAction.None; + break; + } + await expect( getLabelActionImpl({ owner: "TestOwner", @@ -275,7 +298,7 @@ describe("getLabelActionImpl", () => { github: github, core: core, }), - ).rejects.toThrow(); + ).resolves.toEqual({ labelAction: expectedAction, headSha: "abc123", issueNumber: 123 }); }); it("no-ops if check not found or not completed", async () => { @@ -285,10 +308,8 @@ describe("getLabelActionImpl", () => { data: [{ name: "ARMReview" }], }); - github.rest.checks.listForRef.mockResolvedValue({ - data: { - check_runs: [], - }, + github.rest.repos.listCommitStatusesForRef.mockResolvedValue({ + data: [], }); await expect( getLabelActionImpl({ @@ -299,18 +320,10 @@ describe("getLabelActionImpl", () => { github: github, core: core, }), - ).resolves.toEqual({ labelAction: LabelAction.None, issueNumber: 123 }); + ).resolves.toEqual({ labelAction: LabelAction.None, headSha: "abc123", issueNumber: 123 }); - github.rest.checks.listForRef.mockResolvedValue({ - data: { - check_runs: [ - { - name: "Swagger LintDiff", - status: "in_progress", - conclusion: null, - }, - ], - }, + github.rest.repos.listCommitStatusesForRef.mockResolvedValue({ + data: [{ context: "Swagger LintDiff", state: CommitStatusState.PENDING }], }); await expect( getLabelActionImpl({ @@ -321,7 +334,7 @@ describe("getLabelActionImpl", () => { github: github, core: core, }), - ).resolves.toEqual({ labelAction: LabelAction.None, issueNumber: 123 }); + ).resolves.toEqual({ labelAction: LabelAction.None, headSha: "abc123", issueNumber: 123 }); }); it("adds label if incremental tsp, labels match, and check succeeded", async () => { @@ -330,21 +343,17 @@ describe("getLabelActionImpl", () => { github.rest.issues.listLabelsOnIssue.mockResolvedValue({ data: [{ name: "ARMReview" }], }); - github.rest.checks.listForRef.mockResolvedValue({ - data: { - check_runs: [ - { - name: "Swagger LintDiff", - status: "completed", - conclusion: "success", - }, - { - name: "Swagger Avocado", - status: "completed", - conclusion: "success", - }, - ], - }, + github.rest.repos.listCommitStatusesForRef.mockResolvedValue({ + data: [ + { + context: "Swagger LintDiff", + state: CommitStatusState.SUCCESS, + }, + { + context: "Swagger Avocado", + state: CommitStatusState.SUCCESS, + }, + ], }); await expect( @@ -356,6 +365,6 @@ describe("getLabelActionImpl", () => { github: github, core: core, }), - ).resolves.toEqual({ labelAction: LabelAction.Add, issueNumber: 123 }); + ).resolves.toEqual({ labelAction: LabelAction.Add, headSha: "abc123", issueNumber: 123 }); }); }); diff --git a/.github/workflows/test/breaking-change-add-label-artifacts.test.js b/.github/workflows/test/breaking-change-add-label-artifacts.test.js index 2055f3915fdc..b46d486f88f6 100644 --- a/.github/workflows/test/breaking-change-add-label-artifacts.test.js +++ b/.github/workflows/test/breaking-change-add-label-artifacts.test.js @@ -74,6 +74,7 @@ describe("breaking-change-add-label-artifacts", () => { ]; const expectStandardOutputs = (breakingChangeValue, versioningValue) => { + expect(mockCore.setOutput).toHaveBeenCalledWith("head_sha", mockInputs.head_sha); expect(mockCore.setOutput).toHaveBeenCalledWith("issue_number", mockInputs.issue_number); expect(mockCore.setOutput).toHaveBeenCalledWith( "breakingChangeReviewLabelName", diff --git a/.github/workflows/test/context.test.js b/.github/workflows/test/context.test.js index f76bcd6c17ec..0dd2ec11a3a2 100644 --- a/.github/workflows/test/context.test.js +++ b/.github/workflows/test/context.test.js @@ -1,5 +1,6 @@ import { describe, expect, it } from "vitest"; import { PER_PAGE_MAX } from "../../shared/src/github.js"; +import { fullGitSha } from "../../shared/test/examples.js"; import { extractInputs } from "../src/context.js"; import { createMockCore, createMockGithub } from "./mocks.js"; @@ -275,6 +276,32 @@ describe("extractInputs", () => { }); expect(github.rest.search.issuesAndPullRequests).toHaveBeenCalled(); + + // Simulate REST API throwing error, which should be handled, log a warning, and then + // treat like any other scenario with no pull requests. + github.rest.repos.listPullRequestsAssociatedWithCommit.mockRejectedValue( + new Error("test-error"), + ); + + await expect(extractInputs(github, context, createMockCore())).resolves.toEqual({ + owner: "TestRepoOwnerLogin", + repo: "TestRepoName", + head_sha: "abc123", + issue_number: 789, + run_id: 456, + }); + + // Simulate REST API throwing object, which should be handled, log a warning, and then + // treat like any other scenario with no pull requests. + github.rest.repos.listPullRequestsAssociatedWithCommit.mockRejectedValue("test-error"); + + await expect(extractInputs(github, context, createMockCore())).resolves.toEqual({ + owner: "TestRepoOwnerLogin", + repo: "TestRepoName", + head_sha: "abc123", + issue_number: 789, + run_id: 456, + }); } else if (numPullRequests === 1 || numPullRequests === 2) { // Second PR is to a different repo, so expect same behavior with or without it await expect(extractInputs(github, context, createMockCore())).resolves.toEqual({ @@ -307,7 +334,7 @@ describe("extractInputs", () => { it("workflow_run:completed:workflow_run", async () => { const github = createMockGithub(); github.rest.actions.listWorkflowRunArtifacts.mockResolvedValue({ - data: { artifacts: [{ name: "issue-number=123" }] }, + data: { artifacts: [{ name: "issue-number=123" }, { name: `head-sha=${fullGitSha}` }] }, }); const context = { @@ -316,7 +343,7 @@ describe("extractInputs", () => { action: "completed", workflow_run: { event: "workflow_run", - head_sha: "abc123", + head_sha: "def456", id: 456, repository: { name: "TestRepoName", @@ -331,18 +358,27 @@ describe("extractInputs", () => { await expect(extractInputs(github, context, createMockCore())).resolves.toEqual({ owner: "TestRepoOwnerLogin", repo: "TestRepoName", - head_sha: "abc123", + head_sha: fullGitSha, issue_number: 123, run_id: 456, }); + github.rest.actions.listWorkflowRunArtifacts.mockResolvedValue({ + data: { artifacts: [{ name: "head-sha=not-full-git-sha" }] }, + }); + await expect( + extractInputs(github, context, createMockCore()), + ).rejects.toThrowErrorMatchingInlineSnapshot( + `[Error: head-sha is not a valid full git SHA: 'not-full-git-sha']`, + ); + github.rest.actions.listWorkflowRunArtifacts.mockResolvedValue({ data: { artifacts: [{ name: "issue-number=not-a-number" }] }, }); await expect(extractInputs(github, context, createMockCore())).resolves.toEqual({ owner: "TestRepoOwnerLogin", repo: "TestRepoName", - head_sha: "abc123", + head_sha: "", issue_number: NaN, run_id: 456, }); @@ -353,7 +389,7 @@ describe("extractInputs", () => { await expect(extractInputs(github, context, createMockCore())).resolves.toEqual({ owner: "TestRepoOwnerLogin", repo: "TestRepoName", - head_sha: "abc123", + head_sha: "", issue_number: NaN, run_id: 456, }); @@ -364,7 +400,7 @@ describe("extractInputs", () => { await expect(extractInputs(github, context, createMockCore())).resolves.toEqual({ owner: "TestRepoOwnerLogin", repo: "TestRepoName", - head_sha: "abc123", + head_sha: "", issue_number: NaN, run_id: 456, }); @@ -387,7 +423,7 @@ describe("extractInputs", () => { it("workflow_run:completed:check_run", async () => { const github = createMockGithub(); github.rest.actions.listWorkflowRunArtifacts.mockResolvedValue({ - data: { artifacts: [] }, + data: { artifacts: [{ name: `head-sha=${fullGitSha}` }] }, }); const context = { @@ -396,7 +432,7 @@ describe("extractInputs", () => { action: "completed", workflow_run: { event: "check_run", - head_sha: "abc123", + head_sha: "def456", id: 456, repository: { name: "TestRepoName", @@ -408,13 +444,10 @@ describe("extractInputs", () => { }, }; - github.rest.actions.listWorkflowRunArtifacts.mockResolvedValue({ - data: { artifacts: [] }, - }); await expect(extractInputs(github, context, createMockCore())).resolves.toEqual({ owner: "TestRepoOwnerLogin", repo: "TestRepoName", - head_sha: "abc123", + head_sha: fullGitSha, issue_number: NaN, run_id: 456, }); diff --git a/.github/workflows/test/mocks.js b/.github/workflows/test/mocks.js index b576ed4d3d71..2260f5675e44 100644 --- a/.github/workflows/test/mocks.js +++ b/.github/workflows/test/mocks.js @@ -33,6 +33,7 @@ export function createMockGithub() { }, repos: { createCommitStatus: vi.fn(), + listCommitStatusesForRef: vi.fn().mockResolvedValue({ data: [] }), listPullRequestsAssociatedWithCommit: vi.fn().mockResolvedValue({ data: [], }), diff --git a/.github/workflows/test/set-status.test.js b/.github/workflows/test/set-status.test.js index a14ed5898db0..26d506caa4fa 100644 --- a/.github/workflows/test/set-status.test.js +++ b/.github/workflows/test/set-status.test.js @@ -1,9 +1,9 @@ // @ts-check import { beforeEach, describe, expect, it } from "vitest"; -import { setStatusImpl } from "../src/set-status.js"; - import { CheckConclusion, CheckStatus, CommitStatusState } from "../../shared/src/github.js"; +import { fullGitSha } from "../../shared/test/examples.js"; +import { setStatusImpl } from "../src/set-status.js"; import { createMockCore, createMockGithub } from "./mocks.js"; describe("setStatusImpl", () => { @@ -16,17 +16,20 @@ describe("setStatusImpl", () => { }); it("throws if inputs null", async () => { - await expect(setStatusImpl({})).rejects.toThrow(); + // @ts-expect-error Testing invalid input type + await expect(setStatusImpl({})).rejects.toMatchInlineSnapshot( + `[Error: head_sha is not a valid full git SHA: 'undefined']`, + ); }); - it("throws when issue_number is null", async () => { + it.each([null, undefined, "", "abc123"])("throws when head_sha is %o", async (head_sha) => { await expect( setStatusImpl({ owner: "test-owner", repo: "test-repo", - head_sha: "test-head-sha", // @ts-expect-error - Testing invalid input - issue_number: null, + head_sha, + issue_number: 123, target_url: "https://test.com/set_status_url", github, core, @@ -34,68 +37,17 @@ describe("setStatusImpl", () => { requiredStatusName: "test-status", overridingLabel: "test-label", }), - ).rejects.toThrow("issue_number must be a positive integer"); + ).rejects.toThrow("head_sha is not a valid full git SHA"); }); - it("throws when issue_number is undefined", async () => { + it.each([null, undefined, NaN, 0, -1])("throws when issue_number is %o", async (issue_number) => { await expect( setStatusImpl({ owner: "test-owner", repo: "test-repo", - head_sha: "test-head-sha", + head_sha: fullGitSha, // @ts-expect-error - Testing invalid input - issue_number: undefined, - target_url: "https://test.com/set_status_url", - github, - core, - monitoredWorkflowName: "test-workflow", - requiredStatusName: "test-status", - overridingLabel: "test-label", - }), - ).rejects.toThrow("issue_number must be a positive integer"); - }); - - it("throws when issue_number is NaN", async () => { - await expect( - setStatusImpl({ - owner: "test-owner", - repo: "test-repo", - head_sha: "test-head-sha", - issue_number: NaN, - target_url: "https://test.com/set_status_url", - github, - core, - monitoredWorkflowName: "test-workflow", - requiredStatusName: "test-status", - overridingLabel: "test-label", - }), - ).rejects.toThrow("issue_number must be a positive integer"); - }); - - it("throws when issue_number is zero", async () => { - await expect( - setStatusImpl({ - owner: "test-owner", - repo: "test-repo", - head_sha: "test-head-sha", - issue_number: 0, - target_url: "https://test.com/set_status_url", - github, - core, - monitoredWorkflowName: "test-workflow", - requiredStatusName: "test-status", - overridingLabel: "test-label", - }), - ).rejects.toThrow("issue_number must be a positive integer"); - }); - - it("throws when issue_number is negative", async () => { - await expect( - setStatusImpl({ - owner: "test-owner", - repo: "test-repo", - head_sha: "test-head-sha", - issue_number: -1, + issue_number, target_url: "https://test.com/set_status_url", github, core, @@ -115,7 +67,7 @@ describe("setStatusImpl", () => { setStatusImpl({ owner: "test-owner", repo: "test-repo", - head_sha: "test-head-sha", + head_sha: fullGitSha, issue_number: 123, target_url: "https://test.com/set_status_url", github, @@ -129,7 +81,7 @@ describe("setStatusImpl", () => { expect(github.rest.repos.createCommitStatus).toBeCalledWith({ owner: "test-owner", repo: "test-repo", - sha: "test-head-sha", + sha: fullGitSha, state: CommitStatusState.SUCCESS, context: "[TEST-IGNORE] Swagger Avocado", description: "Found label 'Approved-Avocado'", @@ -146,7 +98,7 @@ describe("setStatusImpl", () => { setStatusImpl({ owner: "test-owner", repo: "test-repo", - head_sha: "test-head-sha", + head_sha: fullGitSha, issue_number: 123, target_url: "https://test.com/set_status_url", github, @@ -161,12 +113,15 @@ describe("setStatusImpl", () => { expect(github.rest.repos.createCommitStatus).toBeCalledWith({ owner: "test-owner", repo: "test-repo", - sha: "test-head-sha", + sha: fullGitSha, state: CommitStatusState.SUCCESS, context: "[TEST-IGNORE] Swagger BreakingChange", description: "Found label 'BreakingChange-Approved-Benign'", target_url: "https://test.com/set_status_url", }); + + expect(core.setOutput).toBeCalledWith("head_sha", fullGitSha); + expect(core.setOutput).toBeCalledWith("issue_number", 123); }); it("handles comma-separated labels with whitespace", async () => { @@ -178,7 +133,7 @@ describe("setStatusImpl", () => { setStatusImpl({ owner: "test-owner", repo: "test-repo", - head_sha: "test-head-sha", + head_sha: fullGitSha, issue_number: 123, target_url: "https://test.com/set_status_url", github, @@ -193,7 +148,7 @@ describe("setStatusImpl", () => { expect(github.rest.repos.createCommitStatus).toBeCalledWith({ owner: "test-owner", repo: "test-repo", - sha: "test-head-sha", + sha: fullGitSha, state: CommitStatusState.SUCCESS, context: "[TEST-IGNORE] Swagger BreakingChange", description: "Found label 'BreakingChange-Approved-UserImpact'", @@ -210,7 +165,7 @@ describe("setStatusImpl", () => { setStatusImpl({ owner: "test-owner", repo: "test-repo", - head_sha: "test-head-sha", + head_sha: fullGitSha, issue_number: 123, target_url: "https://test.com/set_status_url", github, @@ -224,7 +179,7 @@ describe("setStatusImpl", () => { expect(github.rest.repos.createCommitStatus).toBeCalledWith({ owner: "test-owner", repo: "test-repo", - sha: "test-head-sha", + sha: fullGitSha, state: CommitStatusState.SUCCESS, context: "[TEST-IGNORE] Swagger BreakingChange", description: "Found label 'BreakingChange-Approved-Security'", @@ -245,7 +200,7 @@ describe("setStatusImpl", () => { setStatusImpl({ owner: "test-owner", repo: "test-repo", - head_sha: "test-head-sha", + head_sha: fullGitSha, issue_number: 123, target_url: "https://test.com/set_status_url", github, @@ -260,7 +215,7 @@ describe("setStatusImpl", () => { expect(github.rest.repos.createCommitStatus).toBeCalledWith({ owner: "test-owner", repo: "test-repo", - sha: "test-head-sha", + sha: fullGitSha, state: CommitStatusState.PENDING, context: "[TEST-IGNORE] Swagger BreakingChange", target_url: "https://test.com/set_status_url", @@ -280,7 +235,7 @@ describe("setStatusImpl", () => { setStatusImpl({ owner: "test-owner", repo: "test-repo", - head_sha: "test-head-sha", + head_sha: fullGitSha, issue_number: 123, target_url: "https://test.com/set_status_url", github, @@ -294,7 +249,7 @@ describe("setStatusImpl", () => { expect(github.rest.repos.createCommitStatus).toBeCalledWith({ owner: "test-owner", repo: "test-repo", - sha: "test-head-sha", + sha: fullGitSha, state: CommitStatusState.PENDING, context: "[TEST-IGNORE] Swagger BreakingChange", target_url: "https://test.com/set_status_url", @@ -373,7 +328,7 @@ describe("setStatusImpl", () => { setStatusImpl({ owner: "test-owner", repo: "test-repo", - head_sha: "test-head-sha", + head_sha: fullGitSha, issue_number: 123, target_url: "https://test.com/set_status_url", github, @@ -387,7 +342,7 @@ describe("setStatusImpl", () => { expect(github.rest.repos.createCommitStatus).toBeCalledWith({ owner: "test-owner", repo: "test-repo", - sha: "test-head-sha", + sha: fullGitSha, state: commitStatusState, context: "[TEST-IGNORE] Swagger Avocado", target_url: targetUrl, diff --git a/.github/workflows/test/spec-gen-sdk-status.test.js b/.github/workflows/test/spec-gen-sdk-status.test.js index 6ac0ad303da9..edb3f10be70e 100644 --- a/.github/workflows/test/spec-gen-sdk-status.test.js +++ b/.github/workflows/test/spec-gen-sdk-status.test.js @@ -79,6 +79,7 @@ describe("spec-gen-sdk-status", () => { target_url: "https://example.com", github: mockGithub, core: mockCore, + issue_number: 123, }); // Verify the right status was set @@ -90,6 +91,9 @@ describe("spec-gen-sdk-status", () => { state: "pending", }), ); + + expect(mockCore.setOutput).toBeCalledWith("head_sha", "testSha"); + expect(mockCore.setOutput).toBeCalledWith("issue_number", 123); }); it("should set success status when all checks are completed successfully", async () => { diff --git a/.github/workflows/test/summarize-checks/fixtures/RawGraphQLResponse.json b/.github/workflows/test/summarize-checks/fixtures/RawGraphQLResponse.json index 002bee336055..16d0e10c03c5 100644 --- a/.github/workflows/test/summarize-checks/fixtures/RawGraphQLResponse.json +++ b/.github/workflows/test/summarize-checks/fixtures/RawGraphQLResponse.json @@ -339,13 +339,13 @@ "id": "WFR_kwLOAlSEjc8AAAAD3GhuLA", "databaseId": 16582733356, "workflow": { - "name": "[TEST-IGNORE] Summarize PR Impact" + "name": "Summarize PR Impact" } }, "checkRuns": { "nodes": [ { - "name": "[TEST-IGNORE] Summarize PR Impact", + "name": "Summarize PR Impact", "status": "COMPLETED", "conclusion": "SUCCESS", "isRequired": false diff --git a/.github/workflows/test/summarize-checks/summarize-checks.test.js b/.github/workflows/test/summarize-checks/summarize-checks.test.js index 08a46096cb8a..250d1ccea676 100644 --- a/.github/workflows/test/summarize-checks/summarize-checks.test.js +++ b/.github/workflows/test/summarize-checks/summarize-checks.test.js @@ -3,7 +3,6 @@ import { describe, expect, it } from "vitest"; import { processArmReviewLabels } from "../../src/summarize-checks/labelling.js"; import { createNextStepsComment, - extractRunsFromGraphQLResponse, getCheckInfo, getCheckRunTuple, getExistingLabels, @@ -105,6 +104,7 @@ describe("Summarize Checks Integration Tests", () => { pr.base.ref, requiredCheckRuns, fyiCheckRuns, + impactAssessment !== undefined, ); const actualLabels = [...labelContext.toAdd, ...labelContext.present]; @@ -146,7 +146,7 @@ describe("Summarize Checks Unit Tests", () => { const expectedOutput = [ expectedComment, { - name: "[TEST-IGNORE] Automated merging requirements met", + name: "Automated merging requirements met", result: "FAILURE", summary: "❌ This PR cannot be merged because some requirements are not met. See the details.", @@ -256,7 +256,7 @@ describe("Summarize Checks Unit Tests", () => { const expectedOutput = [ '

Next Steps to Merge

✅ All automated merging requirements have been met! To get your PR merged, see aka.ms/azsdk/specreview/merge.', { - name: "[TEST-IGNORE] Automated merging requirements met", + name: "Automated merging requirements met", result: "SUCCESS", summary: `✅ All automated merging requirements have been met.
To merge this PR, refer to aka.ms/azsdk/specreview/merge.
For help, consult comments on this PR and see [aka.ms/azsdk/pr-getting-help](https://aka.ms/azsdk/pr-getting-help).`, }, @@ -283,7 +283,7 @@ describe("Summarize Checks Unit Tests", () => { const expectedOutput = [ '

Next Steps to Merge

✅ All automated merging requirements have been met! To get your PR merged, see aka.ms/azsdk/specreview/merge.', { - name: "[TEST-IGNORE] Automated merging requirements met", + name: "Automated merging requirements met", result: "SUCCESS", summary: `✅ All automated merging requirements have been met.
To merge this PR, refer to aka.ms/azsdk/specreview/merge.
For help, consult comments on this PR and see [aka.ms/azsdk/pr-getting-help](https://aka.ms/azsdk/pr-getting-help).`, }, @@ -391,7 +391,7 @@ describe("Summarize Checks Unit Tests", () => { const expectedOutput = [ "

Next Steps to Merge

⌛ Please wait. Next steps to merge this PR are being evaluated by automation. ⌛", { - name: "[TEST-IGNORE] Automated merging requirements met", + name: "Automated merging requirements met", result: "pending", summary: "The requirements for merging this PR are still being evaluated. Please wait.", }, @@ -499,7 +499,7 @@ describe("Summarize Checks Unit Tests", () => { const expectedOutput = [ "

Next Steps to Merge

⌛ Please wait. Next steps to merge this PR are being evaluated by automation. ⌛", { - name: "[TEST-IGNORE] Automated merging requirements met", + name: "Automated merging requirements met", result: "pending", summary: "The requirements for merging this PR are still being evaluated. Please wait.", }, @@ -564,7 +564,7 @@ describe("Summarize Checks Unit Tests", () => { const expectedOutput = [ '

Next Steps to Merge

✅ All automated merging requirements have been met! To get your PR merged, see aka.ms/azsdk/specreview/merge.', { - name: "[TEST-IGNORE] Automated merging requirements met", + name: "Automated merging requirements met", result: "SUCCESS", summary: `✅ All automated merging requirements have been met.
To merge this PR, refer to aka.ms/azsdk/specreview/merge.
For help, consult comments on this PR and see [aka.ms/azsdk/pr-getting-help](https://aka.ms/azsdk/pr-getting-help).`, }, @@ -635,7 +635,7 @@ describe("Summarize Checks Unit Tests", () => { const expectedOutput = [ '

Next Steps to Merge

✅ All automated merging requirements have been met! To get your PR merged, see aka.ms/azsdk/specreview/merge.', { - name: "[TEST-IGNORE] Automated merging requirements met", + name: "Automated merging requirements met", result: "SUCCESS", summary: `✅ All automated merging requirements have been met.
To merge this PR, refer to aka.ms/azsdk/specreview/merge.
For help, consult comments on this PR and see [aka.ms/azsdk/pr-getting-help](https://aka.ms/azsdk/pr-getting-help).`, }, @@ -691,7 +691,7 @@ describe("Summarize Checks Unit Tests", () => { const expectedOutput = [ "

Next Steps to Merge

⌛ Please wait. Next steps to merge this PR are being evaluated by automation. ⌛", { - name: "[TEST-IGNORE] Automated merging requirements met", + name: "Automated merging requirements met", result: "pending", summary: "The requirements for merging this PR are still being evaluated. Please wait.", }, @@ -739,7 +739,7 @@ describe("Summarize Checks Unit Tests", () => { const expectedOutput = [ "

Next Steps to Merge

⌛ Please wait. Next steps to merge this PR are being evaluated by automation. ⌛", { - name: "[TEST-IGNORE] Automated merging requirements met", + name: "Automated merging requirements met", result: "pending", summary: "The requirements for merging this PR are still being evaluated. Please wait.", }, @@ -784,7 +784,7 @@ describe("Summarize Checks Unit Tests", () => { const targetBranch = "main"; const labelNames = []; const expectedCheckOutput = { - name: "[TEST-IGNORE] Automated merging requirements met", + name: "Automated merging requirements met", result: "FAILURE", summary: "❌ This PR cannot be merged because some requirements are not met. See the details.", @@ -827,7 +827,7 @@ describe("Summarize Checks Unit Tests", () => { const labelNames = []; const fyiCheckRuns = []; const expectedCheckOutput = { - name: "[TEST-IGNORE] Automated merging requirements met", + name: "Automated merging requirements met", result: "FAILURE", summary: "❌ This PR cannot be merged because some requirements are not met. See the details.", @@ -854,22 +854,6 @@ describe("Summarize Checks Unit Tests", () => { expect(automatedCheckOutput).toEqual(expectedCheckOutput); }); - - it("should extract check info from raw check response data", async () => { - const expectedCheckRunId = 16582733356; - const response = await import("./fixtures/RawGraphQLResponse.json", { - assert: { type: "json" }, - }); - const [requiredCheckRuns, fyiCheckRuns, impactAssessmentWorkflowId] = - await extractRunsFromGraphQLResponse(response); - - expect(requiredCheckRuns).toBeDefined(); - expect(fyiCheckRuns).toBeDefined(); - expect(impactAssessmentWorkflowId).toBeDefined(); - expect(requiredCheckRuns.length).toEqual(11); - expect(fyiCheckRuns.length).toEqual(0); - expect(impactAssessmentWorkflowId).toEqual(expectedCheckRunId); - }); }); describe("update labels", () => { diff --git a/.github/workflows/typespec-migration-validation.yaml b/.github/workflows/typespec-migration-validation.yaml index 2536989fe082..fa40fc303303 100644 --- a/.github/workflows/typespec-migration-validation.yaml +++ b/.github/workflows/typespec-migration-validation.yaml @@ -10,7 +10,7 @@ permissions: jobs: typespec-migration-validation: name: TypeSpec Migration Validation - if: contains(github.event.pull_request.labels.*.name, 'typespec-conversion-w1') || contains(github.event.pull_request.labels.*.name, 'typespec-conversion-w2') + if: contains(github.event.pull_request.labels.*.name, 'typespec-conversion-w1') || contains(github.event.pull_request.labels.*.name, 'typespec-conversion-w2') || contains(github.event.pull_request.labels.*.name, 'typespec-conversion-w3') runs-on: ubuntu-24.04 steps: @@ -23,5 +23,5 @@ jobs: - name: Run TypeSpec Migration Validation run: | - ./eng/tools/typespec-migration-validation/scripts/download-main.ps1 -Verbose -callValidation $true + ./eng/tools/typespec-migration-validation/scripts/download-main.ps1 -Verbose -reportFile $env:GITHUB_STEP_SUMMARY shell: pwsh diff --git a/.github/workflows/watch-breakingchange-crossversion.yaml b/.github/workflows/watch-breakingchange-crossversion.yaml deleted file mode 100644 index 41fa9752c676..000000000000 --- a/.github/workflows/watch-breakingchange-crossversion.yaml +++ /dev/null @@ -1,27 +0,0 @@ -# Use ~ to sort the workflow to the bottom of the list -name: "~Watch - Breaking Change(Cross-Version)" - -on: - # check_suite is preferred over check_run to avoid triggering on all check - # runs. In some cases, check_run must be used in testing environments. - check_suite: - types: completed - - workflow_run: - types: completed - workflows: - - "\\[TEST-IGNORE\\] Breaking Change(Cross-Version) - Set Status" - -permissions: - actions: read - checks: read - contents: read - statuses: read - -jobs: - BreakingChangeCrossVersion: - name: Watch Breaking Change(Cross-Version) - uses: ./.github/workflows/_reusable-verify-run-status.yaml - with: - check_run_name: "Breaking Change(Cross-Version)" - commit_status_name: "[TEST-IGNORE] Breaking Change(Cross-Version)" diff --git a/.github/workflows/watch-breakingchange.yaml b/.github/workflows/watch-breakingchange.yaml deleted file mode 100644 index 50978f8a475b..000000000000 --- a/.github/workflows/watch-breakingchange.yaml +++ /dev/null @@ -1,27 +0,0 @@ -# Use ~ to sort the workflow to the bottom of the list -name: "~Watch - BreakingChange" - -on: - # check_suite is preferred over check_run to avoid triggering on all check - # runs. In some cases, check_run must be used in testing environments. - check_suite: - types: completed - - workflow_run: - types: completed - workflows: - - "\\[TEST-IGNORE\\] Swagger BreakingChange - Set Status" - -permissions: - actions: read - checks: read - contents: read - statuses: read - -jobs: - BreakingChange: - name: Watch BreakingChange - uses: ./.github/workflows/_reusable-verify-run-status.yaml - with: - check_run_name: "Swagger BreakingChange" - commit_status_name: "[TEST-IGNORE] Swagger BreakingChange" diff --git a/.github/workflows/watch-modelvalidation.yaml b/.github/workflows/watch-modelvalidation.yaml index ba3ff8165018..1332e682072e 100644 --- a/.github/workflows/watch-modelvalidation.yaml +++ b/.github/workflows/watch-modelvalidation.yaml @@ -24,4 +24,4 @@ jobs: uses: ./.github/workflows/_reusable-verify-run-status.yaml with: check_run_name: "Swagger ModelValidation" - workflow_name: "[TEST-IGNORE] Swagger ModelValidation" + workflow_name: "Swagger ModelValidation" diff --git a/.github/workflows/watch-semanticvalidation.yaml b/.github/workflows/watch-semanticvalidation.yaml index 757e55e367d6..d63d123f2341 100644 --- a/.github/workflows/watch-semanticvalidation.yaml +++ b/.github/workflows/watch-semanticvalidation.yaml @@ -24,4 +24,4 @@ jobs: uses: ./.github/workflows/_reusable-verify-run-status.yaml with: check_run_name: "Swagger SemanticValidation" - workflow_name: "[TEST-IGNORE] Swagger SemanticValidation" + workflow_name: "Swagger SemanticValidation" diff --git a/eng/common/TestResources/New-TestResources.ps1 b/eng/common/TestResources/New-TestResources.ps1 index 078991250e64..03410278dd3a 100755 --- a/eng/common/TestResources/New-TestResources.ps1 +++ b/eng/common/TestResources/New-TestResources.ps1 @@ -353,15 +353,12 @@ try { # Make sure the provisioner OID is set so we can pass it through to the deployment. if (!$ProvisionerApplicationId -and !$ProvisionerApplicationOid) { if ($context.Account.Type -eq 'User') { - # Support corp tenant and TME tenant user id lookups - $user = Get-AzADUser -Mail $context.Account.Id - if ($null -eq $user -or !$user.Id) { - $user = Get-AzADUser -UserPrincipalName $context.Account.Id - } - if ($null -eq $user -or !$user.Id) { + # HomeAccountId format is '.' + $userAccountId = (Get-AzContext).Account.ExtendedProperties.HomeAccountId.Split('.')[0] + if ($null -eq $userAccountId) { throw "Failed to find entra object ID for the current user" } - $ProvisionerApplicationOid = $user.Id + $ProvisionerApplicationOid = $userAccountId } elseif ($context.Account.Type -eq 'ServicePrincipal') { $sp = Get-AzADServicePrincipal -ApplicationId $context.Account.Id $ProvisionerApplicationOid = $sp.Id @@ -431,17 +428,14 @@ try { Write-Warning "The specified TestApplicationId '$TestApplicationId' will be ignored when -ServicePrincipalAutth is not set." } - # Support corp tenant and TME tenant user id lookups - $userAccount = (Get-AzADUser -Mail (Get-AzContext).Account.Id) - if ($null -eq $userAccount -or !$userAccount.Id) { - $userAccount = (Get-AzADUser -UserPrincipalName (Get-AzContext).Account) - } - if ($null -eq $userAccount -or !$userAccount.Id) { + $userAccountName = (Get-AzContext).Account.Id + # HomeAccountId format is '.' + $userAccountId = (Get-AzContext).Account.ExtendedProperties.HomeAccountId.Split('.')[0] + if ($null -eq $userAccountId) { throw "Failed to find entra object ID for the current user" } - $TestApplicationOid = $userAccount.Id + $TestApplicationOid = $userAccountId $TestApplicationId = $testApplicationOid - $userAccountName = $userAccount.UserPrincipalName Log "User authentication with user '$userAccountName' ('$TestApplicationId') will be used." } # If user has specified -ServicePrincipalAuth diff --git a/eng/pipelines/spec-gen-sdk.yml b/eng/pipelines/spec-gen-sdk.yml index 0b5b5e849d6e..d324b28067ea 100644 --- a/eng/pipelines/spec-gen-sdk.yml +++ b/eng/pipelines/spec-gen-sdk.yml @@ -25,11 +25,11 @@ parameters: - 'stable' default: 'beta' displayName: 'SDK release type' - - name: SkipPullRequestCreation + - name: CreatePullRequest type: boolean default: false - displayName: 'Skip SDK pull request creation' - + displayName: 'Create SDK pull request' + trigger: none extends: @@ -42,4 +42,4 @@ extends: ConfigPath: ${{ parameters.ConfigPath }} ApiVersion: ${{ parameters.ApiVersion }} SdkReleaseType: ${{ parameters.SdkReleaseType }} - SkipPullRequestCreation: ${{ parameters.SkipPullRequestCreation }} + CreatePullRequest: ${{ parameters.CreatePullRequest }} diff --git a/eng/pipelines/templates/stages/archetype-spec-gen-sdk.yml b/eng/pipelines/templates/stages/archetype-spec-gen-sdk.yml index 764f9e421e0b..9fd98f9ed3da 100644 --- a/eng/pipelines/templates/stages/archetype-spec-gen-sdk.yml +++ b/eng/pipelines/templates/stages/archetype-spec-gen-sdk.yml @@ -22,7 +22,7 @@ parameters: type: string default: '' displayName: 'SDK release type' - - name: SkipPullRequestCreation + - name: CreatePullRequest type: boolean default: false - name: SpecBatchTypes @@ -171,6 +171,11 @@ stages: sdk_gen_info="$sdk_gen_info API Version: ${{ parameters.ApiVersion }}, SDK Release Type: ${{ parameters.SdkReleaseType }}," fi sdk_gen_info="$sdk_gen_info and CommitSHA: '$updatedSpecRepoCommit' in SpecRepo: '${{ parameters.SpecRepoUrl }}'" + + if [ "$(Build.Reason)" = "Manual" ]; then + sdk_gen_info="$sdk_gen_info Pipeline run: $(System.CollectionUri)$(System.TeamProject)/_build/results?buildId=$(Build.BuildId)" + sdk_gen_info="$sdk_gen_info Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release." + fi echo "##vso[task.setvariable variable=GeneratedSDKInformation]$sdk_gen_info" echo "$sdk_gen_info" @@ -200,7 +205,7 @@ stages: ArtifactPath: $(StagedArtifactsFolder) CustomCondition: and(succeededOrFailed(), ne(variables['StagedArtifactsFolder'], '')) - - ${{ if and(eq(variables['System.TeamProject'], 'internal'), eq(parameters.SkipPullRequestCreation, false), ne(variables['Build.Reason'], 'PullRequest')) }}: + - ${{ if and(eq(variables['System.TeamProject'], 'internal'), eq(parameters.CreatePullRequest, true), ne(variables['Build.Reason'], 'PullRequest')) }}: - template: /eng/common/pipelines/templates/steps/git-push-changes.yml parameters: BaseRepoBranch: $(PrBranch)-$(Build.BuildId) diff --git a/eng/tools/spec-gen-sdk-runner/src/command-helpers.ts b/eng/tools/spec-gen-sdk-runner/src/command-helpers.ts index 0cb2a9c53bf9..fc42f69a1b4b 100644 --- a/eng/tools/spec-gen-sdk-runner/src/command-helpers.ts +++ b/eng/tools/spec-gen-sdk-runner/src/command-helpers.ts @@ -320,6 +320,7 @@ export function generateArtifact( const artifactInfo: SpecGenSdkArtifactInfo = { language: commandInput.sdkLanguage, result, + headSha: commandInput.specCommitSha, prNumber: commandInput.prNumber, labelAction: hasBreakingChange, isSpecGenSdkCheckRequired, diff --git a/eng/tools/spec-gen-sdk-runner/src/types.ts b/eng/tools/spec-gen-sdk-runner/src/types.ts index 3df7258b96c2..7cdbee04afa6 100644 --- a/eng/tools/spec-gen-sdk-runner/src/types.ts +++ b/eng/tools/spec-gen-sdk-runner/src/types.ts @@ -44,6 +44,7 @@ export type VsoLogs = Map< export interface SpecGenSdkArtifactInfo { language: string; result: string; + headSha: string; prNumber?: string; labelAction?: boolean; isSpecGenSdkCheckRequired: boolean; @@ -93,7 +94,7 @@ export const SpecGenSdkRequiredSettings: Record = { }, "azure-sdk-for-net": { dataPlane: false, - managementPlane: true, + managementPlane: false, }, "azure-sdk-for-python": { dataPlane: true, diff --git a/eng/tools/spec-gen-sdk-runner/test/command-helpers.test.ts b/eng/tools/spec-gen-sdk-runner/test/command-helpers.test.ts index 0a8bff456782..be8adf2a1321 100644 --- a/eng/tools/spec-gen-sdk-runner/test/command-helpers.test.ts +++ b/eng/tools/spec-gen-sdk-runner/test/command-helpers.test.ts @@ -421,8 +421,9 @@ describe("commands.ts", () => { runMode: "", localSpecRepoPath: "", localSdkRepoPath: "", + prNumber: "123", sdkRepoName: "", - specCommitSha: "", + specCommitSha: "abc123", specRepoHttpsUrl: "", }; const mockResult = "succeeded"; @@ -457,6 +458,8 @@ describe("commands.ts", () => { { language: "azure-sdk-for-js", result: "succeeded", + headSha: "abc123", + prNumber: "123", labelAction: false, isSpecGenSdkCheckRequired: false, apiViewRequestData: [], @@ -586,6 +589,7 @@ describe("commands.ts", () => { { language: "azure-sdk-for-go", result: "succeeded", + headSha: "", labelAction: false, isSpecGenSdkCheckRequired: false, // This should be false when sdkGenerationExecuted is false apiViewRequestData: [], @@ -604,8 +608,8 @@ describe("commands.ts", () => { expect(result).toBe(true); const result2 = getRequiredSettingValue(true, true, "azure-sdk-for-net"); - // When hasTypeSpecProjects is true, .NET SDK follows normal rules (managementPlane: true) - expect(result2).toBe(true); + // .NET SDK set (managementPlane: false) + expect(result2).toBe(false); }); test("should return dataPlane setting when hasManagementPlaneSpecs is false", () => { @@ -616,6 +620,10 @@ describe("commands.ts", () => { const result2 = getRequiredSettingValue(false, true, "azure-sdk-for-js"); // Based on the constants in types.ts, JS SDK does not require check for data plane expect(result2).toBe(false); + + const result3 = getRequiredSettingValue(false, true, "azure-sdk-for-net"); + // .NET SDK set (dataplane: false) + expect(result3).toBe(false); }); test("should return false for azure-sdk-for-net when hasTypeSpecProjects is false", () => { diff --git a/eng/tools/typespec-migration-validation/scripts/download-main.ps1 b/eng/tools/typespec-migration-validation/scripts/download-main.ps1 index be60fe389cb4..0a7b1edcb220 100644 --- a/eng/tools/typespec-migration-validation/scripts/download-main.ps1 +++ b/eng/tools/typespec-migration-validation/scripts/download-main.ps1 @@ -1,6 +1,6 @@ param( [string]$swaggerPath, - [string]$callValidation = $false + [string]$reportFile = $null ) . $PSScriptRoot/../../../scripts/ChangedFiles-Functions.ps1 @@ -95,11 +95,11 @@ if ($swaggerPath.StartsWith("specification")) { $swaggerPath = Join-Path $repoRoot $swaggerPath } -if ($callValidation -eq $true) { - Write-Host "Executing TypeSpec migration validation..." - npx tsmv $swaggerInMain $swaggerPath +if ([string]::IsNullOrEmpty($reportFile)) { + Write-Host "Your next command: npx tsmv $swaggerInMain $swaggerPath --outputFolder {outputFolder}" } -else { - Write-Host "Your next command: npx tsmv $swaggerInMain $swaggerPath {outputFolder}" +else { + Write-Host "Executing TypeSpec migration validation..." + npx tsmv $swaggerInMain $swaggerPath --reportFile $reportFile } diff --git a/eng/tools/typespec-migration-validation/src/commonType.ts b/eng/tools/typespec-migration-validation/src/commonType.ts new file mode 100644 index 000000000000..723301fc98f7 --- /dev/null +++ b/eng/tools/typespec-migration-validation/src/commonType.ts @@ -0,0 +1,56 @@ +import path from 'path'; +import { readFileContent } from './helper.js'; +import { OpenAPI2Document, OpenAPI2Schema } from '@azure-tools/typespec-autorest'; +import { isRef } from './compare.js'; + +export function getCommonTypeDefinition(refPath: string): [OpenAPI2Schema, OpenAPI2Document] | undefined { + const commonTypeInfo = getCommonTypeInfo(refPath); + if (!commonTypeInfo) { + return undefined; + } + const [filePath, definitionName] = commonTypeInfo; + const fileContent = readCommonTypeFile(filePath); + const commonTypeDefinition = fileContent.definitions?.[definitionName]; + if (!commonTypeDefinition) { + return undefined; + } + return [resolveCommonTypeDefinition(commonTypeDefinition, fileContent), fileContent]; +} + +// For all the properties, we need to inline its type if is a reference to another common type, because we cannot resolve it outside the common type file +function resolveCommonTypeDefinition(commonTypeDefinition: OpenAPI2Schema, fileContent: OpenAPI2Document): OpenAPI2Schema { + for (const property in commonTypeDefinition.properties) { + const propertySchema = commonTypeDefinition.properties[property]; + if (isRef(propertySchema)) { + const refPath = propertySchema.$ref; + if (!refPath.startsWith('#/definitions/')) { + console.warn(`Reference ${propertySchema.$ref} is not a local definition, skipping.`); + continue; + } + const refDefinitionName = refPath.replace('#/definitions/', ''); + const refDefinitionSchema = fileContent.definitions?.[refDefinitionName]; + commonTypeDefinition.properties[property] = refDefinitionSchema ? resolveCommonTypeDefinition(refDefinitionSchema, fileContent) : propertySchema; + } + } + return commonTypeDefinition; +} + +function getCommonTypeInfo(refPath: string): [string, string] | undefined { + const matchResult = refPath.match(/\/common-types\/resource-management\/(v\d)\/(.*)#\/definitions\/(.*)/); + if (!matchResult) { + return undefined; + } + const [, version, fileName, definitionName] = matchResult; + return [path.join(process.cwd(), '..', '..', '..', 'specification', 'common-types', 'resource-management', version, fileName), definitionName]; +} + +const commonTypeFileCache: Record = {}; +function readCommonTypeFile(filePath: string): OpenAPI2Document { + if (commonTypeFileCache[filePath]) { + return commonTypeFileCache[filePath]; + } + const fileContent = readFileContent(filePath); + const jsonContent: OpenAPI2Document = JSON.parse(fileContent); + commonTypeFileCache[filePath] = jsonContent; + return jsonContent; +} \ No newline at end of file diff --git a/eng/tools/typespec-migration-validation/src/compare.ts b/eng/tools/typespec-migration-validation/src/compare.ts index 4ba24e4587d5..114fc134853f 100644 --- a/eng/tools/typespec-migration-validation/src/compare.ts +++ b/eng/tools/typespec-migration-validation/src/compare.ts @@ -1,4 +1,5 @@ -import { HttpMethod, OpenAPI2Document, OpenAPI2Operation, OpenAPI2Response, Refable } from "@azure-tools/typespec-autorest"; +import { HttpMethod, OpenAPI2Document, OpenAPI2Operation, OpenAPI2Response, OpenAPI2Schema, OpenAPI2SchemaProperty, Ref, Refable } from "@azure-tools/typespec-autorest"; +import { getCommonTypeDefinition } from "./commonType.js"; interface Diff { before: any; @@ -21,16 +22,188 @@ interface PathDiff extends Diff { type: "path" | "parameters" | "pageable" | "longrunning" | "finalstate" | "finalresult" | "responses" | "response"; } -export function printPathDiff(diff: PathDiff): string { - return `| ${diff.type} | ${diff.level} | The ${diff.type} of operation "${diff.operationId}" changed: ${JSON.stringify(diff.before)} -> ${JSON.stringify(diff.after)} |\n`; +/** + * properties: the property names of the definition should be the same + * property: the property should have same schema + * required: the required properties of the definition should be the same + */ +interface DefinitionDiff extends Diff { + name: string; + propertyName?: string; + changeType?: string; + type: "properties" | "property" | "required"; +} + +export function printDiff(diff: PathDiff | DefinitionDiff): string { + if ("operationId" in diff) { + return `| ${diff.type} | ${diff.level} | ${getPathDiffMessage(diff)} ${JSON.stringify(diff.before)} -> ${JSON.stringify(diff.after)} |\n`; + } else { + return `| ${diff.type} | ${diff.level} | ${getDefinitionDiffMessage(diff)} ${JSON.stringify(diff.before)} -> ${JSON.stringify(diff.after)} |\n`; + } } -export function compareDocuments(oldDocument: OpenAPI2Document, newDocument: OpenAPI2Document) { - const diffs: PathDiff[] = []; +function getPathDiffMessage(diff: PathDiff): string { + switch (diff.type) { + case "path": + return `The path for operation "${diff.operationId}" changed:`; + case "parameters": + return `The number of parameters for operation "${diff.operationId}" changed:`; + case "pageable": + return `The pageable for operation "${diff.operationId}" changed:`; + case "longrunning": + return `The long-running status for operation "${diff.operationId}" changed:`; + case "finalstate": + return `The final state for operation "${diff.operationId}" changed:`; + case "finalresult": + return `The final result schema for operation "${diff.operationId}" changed:`; + case "responses": + return `The response codes for operation "${diff.operationId}" changed:`; + case "response": + return `The response schema for operation "${diff.operationId}" changed:`; + default: + return `The ${diff.type} for operation "${diff.operationId}" changed:`; + } +} + +function getDefinitionDiffMessage(diff: DefinitionDiff): string { + switch (diff.type) { + case "properties": + return `The property names of definition "${diff.name}" changed:`; + case "property": + return `The ${diff.changeType} of property "${diff.propertyName}" in definition "${diff.name}" changed:`; + case "required": + return `The required properties of definition "${diff.name}" changed:`; + } +} + +export function compareDocuments(oldDocument: OpenAPI2Document, newDocument: OpenAPI2Document): (PathDiff | DefinitionDiff)[] { + const diffs: (PathDiff | DefinitionDiff)[] = []; diffs.push(...comparePaths(oldDocument, newDocument)); + + // If not exists in the new document, it might be an orphaned definition previously + for (const definition in newDocument.definitions ?? {}) { + // If not exists in old document, it might be an anonymous definition previously + if (oldDocument.definitions?.[definition]) { + diffs.push(...compareNamedDefinition(oldDocument.definitions[definition], oldDocument, newDocument.definitions![definition], newDocument, definition)); + } + } return diffs; } +const definitionNameCache: Set = new Set(); +function compareNamedDefinition(oldDefinition: OpenAPI2Schema, oldDocument: OpenAPI2Document, newDefinition: OpenAPI2Schema, newDocument: OpenAPI2Document, name: string): DefinitionDiff[] { + if (definitionNameCache.has(name)) { + console.warn(`Definition "${name}" has been compared before, skipping.`); + return []; + } + definitionNameCache.add(name); + + const diffs: DefinitionDiff[] = []; + + const oldRequired = oldDefinition.required || []; + const newRequired = newDefinition.required || []; + + if (oldRequired.length !== newRequired.length || + !oldRequired.every(item => newRequired.includes(item)) || + !newRequired.every(item => oldRequired.includes(item))) { + diffs.push({ + before: oldRequired, + after: newRequired, + name, + type: "required", + level: "warning", + }); + } + + const oldProperties = getAllProperties(oldDefinition, oldDocument); + const sortedOldProperties = Object.keys(oldProperties).sort().reduce((obj: Record, key) => { + obj[key] = oldProperties[key]; + return obj; + }, {}); + + const newProperties = getAllProperties(newDefinition, newDocument); + const sortedNewProperties = Object.keys(newProperties).sort().reduce((obj: Record, key) => { + obj[key] = newProperties[key]; + return obj; + }, {}); + + // First check if the properties are the same + const oldKeys = Object.keys(sortedOldProperties); + const newKeys = Object.keys(sortedNewProperties); + if (oldKeys.length !== newKeys.length) { + // Check if newKeys has exactly one more key and it's systemData + const isSystemDataOnlyDifference = newKeys.length === oldKeys.length + 1 && + newKeys.filter(key => !oldKeys.includes(key)).length === 1 && + newKeys.filter(key => !oldKeys.includes(key))[0] === 'systemData'; + + diffs.push({ + before: oldKeys, + after: newKeys, + name, + type: "properties", + level: isSystemDataOnlyDifference ? "warning" : "error" + }); + } + for (const key of oldKeys) { + if (!newKeys.includes(key)) { + diffs.push({ + before: oldKeys, + after: newKeys, + name, + type: "properties", + level: "error" + }); + } + } + for (const key of newKeys) { + if (!oldKeys.includes(key)) { + // Check if the only additional key is systemData + const additionalKeys = newKeys.filter(k => !oldKeys.includes(k)); + const isOnlySystemData = additionalKeys.length === 1 && additionalKeys[0] === 'systemData'; + + diffs.push({ + before: oldKeys, + after: newKeys, + name, + type: "properties", + level: isOnlySystemData ? "warning" : "error" + }); + } + } + + // Then check if the property types are the same + for (const key of oldKeys) { + const oldProperty = sortedOldProperties[key]; + const newProperty = sortedNewProperties[key]; + diffs.push(...compareDefinitionProperty(oldProperty, newProperty, oldDocument, newDocument, key, name)); + } + + return diffs; +} + +function compareDefinitionProperty(oldProperty: OpenAPI2SchemaProperty, newProperty: OpenAPI2SchemaProperty, oldDocument: OpenAPI2Document, newDocument: OpenAPI2Document, propertyName: string, modelName: string): DefinitionDiff[] { + const oldPropertySchema = resolveCommonType(oldProperty); + const newPropertySchema = resolveCommonType(newProperty); + if (isRef(oldPropertySchema) && isRef(newPropertySchema)) { + if (oldPropertySchema.$ref !== newPropertySchema.$ref) { + return [{ + before: oldPropertySchema.$ref, + after: newPropertySchema.$ref, + name: modelName, + propertyName, + type: "property", + changeType: "reference", + level: "warning" + }]; + } + } + else if (!isRef(oldPropertySchema) && !isRef(newPropertySchema)) { + return compareNamedDefinition(oldPropertySchema, oldDocument, newPropertySchema, newDocument, `${modelName}.${propertyName}`); + } + + return []; +} + function comparePaths(oldDocument: OpenAPI2Document, newDocument: OpenAPI2Document): PathDiff[] { const oldOperations = organizeOperationById(oldDocument); const newOperations = organizeOperationById(newDocument); @@ -46,7 +219,9 @@ function comparePaths(oldDocument: OpenAPI2Document, newDocument: OpenAPI2Docume level: "error" }); } - pathDiffs.push(...compareOperation(oldOperations[operationId][1], newOperations[operationId][1], operationId)); + else { + pathDiffs.push(...compareOperation(oldOperations[operationId][1], newOperations[operationId][1], operationId)); + } } for (const operationId in newOperations) { if (!oldOperations[operationId]) { @@ -189,7 +364,7 @@ function compareLongRunning(oldOperation: OpenAPI2Operation, newOperation: OpenA level: "error" }); } - } + } return pathDiffs; } @@ -202,7 +377,7 @@ function getResponseSchema(response: Refable | undefined): str return undefined; } - + function organizeOperationById(document: OpenAPI2Document): Record { function isHttpMethod(key: string): key is HttpMethod { @@ -218,14 +393,14 @@ function organizeOperationById(document: OpenAPI2Document): Record = {}; + + const operationMap: Record = {}; if (!document.paths) { return operationMap; } for (const route in document.paths) { - const pathItem = document.paths[route]; + const pathItem = document.paths[route]; for (const verb in pathItem) { if (isHttpMethod(verb)) { const operation = pathItem[verb]; @@ -235,7 +410,62 @@ function organizeOperationById(document: OpenAPI2Document): Record = {}): Record { + for (const baseSchema of schema.allOf ?? []) { + if (isRef(baseSchema)) { + const refPath = baseSchema.$ref; + const commonTypeDefinition = getCommonTypeDefinition(refPath); + if (commonTypeDefinition) { + getAllProperties(commonTypeDefinition[0], commonTypeDefinition[1], properties); + } + else { + const baseDefinition = getLocalDefinition(refPath, document); + if (baseDefinition) { + getAllProperties(baseDefinition, document, properties); + } + } + } + else { + if (baseSchema.properties) { + for (const key in baseSchema.properties) { + properties[key] = baseSchema.properties[key]; + } + } + } + } + + if (schema.properties) { + for (const key in schema.properties) { + properties[key] = schema.properties[key]; + } + } + return properties; +} + +function resolveCommonType(property: OpenAPI2SchemaProperty): OpenAPI2SchemaProperty { + if (isRef(property)) { + const { $ref, ...propertyWithoutRef } = property; + const commonTypeDefinition = getCommonTypeDefinition($ref); + if (commonTypeDefinition) { + return { ...propertyWithoutRef, ...commonTypeDefinition[0] }; + } + } + + return property; +} + +function getLocalDefinition(refPath: string, document: OpenAPI2Document): OpenAPI2Schema | undefined { + const definitionName = refPath.split("/").pop(); + if (!document.definitions || !document.definitions[definitionName!]) { + console.warn(`Reference to ${definitionName} cannot be found, skipping.`); + } + return document.definitions?.[definitionName!]; +} + +export function isRef(value: Refable): value is Ref { + return (value as Ref).$ref !== undefined; +} \ No newline at end of file diff --git a/eng/tools/typespec-migration-validation/src/index.ts b/eng/tools/typespec-migration-validation/src/index.ts index bed181f7fe63..f9f92e155f90 100644 --- a/eng/tools/typespec-migration-validation/src/index.ts +++ b/eng/tools/typespec-migration-validation/src/index.ts @@ -18,7 +18,8 @@ import { formatDifferenceReport, formatModifiedValuesReport, } from "./summary.js"; -import { compareDocuments, printPathDiff } from "./compare.js"; +import { compareDocuments, printDiff } from "./compare.js"; +import { writeFile } from "fs/promises"; function parseArguments() { return yargs(hideBin(process.argv)) @@ -50,6 +51,14 @@ function parseArguments() { "Compare two swagger specs", ) .example("$0 oldSpecPath newSpecPath", "Compare using positional arguments") + .example( + "$0 --oldPath ./old-spec --newPath ./new-spec --reportFile ./custom-report.md", + "Compare specs with custom report file", + ) + .example( + "$0 --oldPath ./old-spec --newPath ./new-spec --outputFolder ./validation-results", + "Compare specs with custom output folder", + ) .example( "$0 add-ignore --path \"paths['/api/resource'].put.parameters[0].required__added\" --outputFolder ./results", "Add a path to ignore file", @@ -68,6 +77,11 @@ function parseArguments() { alias: "out", describe: "Output folder for analysis results", type: "string", + }) + .option("reportFile", { + alias: "r", + describe: "Path to the report file", + type: "string", }) .option("ignoreDescription", { description: "Ignore description differences", @@ -95,9 +109,6 @@ function parseArguments() { if (!argv.newPath && positional.length > 1) { argv.newPath = positional[1]!.toString(); } - if (!argv.outputFolder && positional.length > 2) { - argv.outputFolder = positional[2]!.toString(); - } if (!argv.oldPath || !argv.newPath) { throw new Error("Both oldPath and newPath are required"); @@ -155,7 +166,7 @@ export async function main() { // If using add-ignore command, the command handler will exit the process - const { oldPath, newPath, outputFolder, ignoreDescription, ignorePathCase } = args; + const { oldPath, newPath, reportFile, outputFolder, ignoreDescription, ignorePathCase } = args; configuration.ignoreDescription = ignoreDescription; if (ignorePathCase !== undefined) { configuration.ignorePathCase = ignorePathCase; @@ -207,7 +218,7 @@ export async function main() { outputMarkdown += "| Type | Level | Message |\n"; outputMarkdown += "| ---- | ----- | ------- |\n"; for (const diff of compareResult) { - outputMarkdown += printPathDiff(diff); + outputMarkdown += printDiff(diff); } console.log(outputMarkdown); } @@ -261,7 +272,10 @@ export async function main() { ); } } - else { + else if (reportFile) { + if (compareResult.length > 0) { + await writeFile(reportFile, outputMarkdown); + } if (compareResult.filter((x) => x.level === "error").length > 0) { logError("Differences found. Please fix the issues before proceeding."); process.exit(1); diff --git a/package-lock.json b/package-lock.json index 7d9ed0e2e45c..840c4200b338 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,7 +7,7 @@ "name": "azure-rest-api-specs", "devDependencies": { "@autorest/openapi-to-typespec": "0.11.5", - "@azure-tools/spec-gen-sdk": "~0.9.0", + "@azure-tools/spec-gen-sdk": "~0.9.1", "@azure-tools/specs-shared": "file:.github/shared", "@azure-tools/typespec-apiview": "0.7.2", "@azure-tools/typespec-autorest": "0.58.1", @@ -15,8 +15,8 @@ "@azure-tools/typespec-azure-portal-core": "0.58.0", "@azure-tools/typespec-azure-resource-manager": "0.58.1", "@azure-tools/typespec-azure-rulesets": "0.58.0", - "@azure-tools/typespec-client-generator-cli": "0.26.1", - "@azure-tools/typespec-client-generator-core": "0.58.1", + "@azure-tools/typespec-client-generator-cli": "0.27.0", + "@azure-tools/typespec-client-generator-core": "0.58.2", "@azure-tools/typespec-liftr-base": "0.8.0", "@azure/avocado": "^0.9.1", "@typespec/compiler": "1.2.1", @@ -1008,9 +1008,9 @@ "link": true }, "node_modules/@azure-tools/spec-gen-sdk": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@azure-tools/spec-gen-sdk/-/spec-gen-sdk-0.9.0.tgz", - "integrity": "sha512-Xjtkxq5EK/di2mTtPGoiSXuhHVhKpu5jNp1Fbx8VbBBuM+tV9BqN+nOe88VRzo5YAvCZArjstoFWu2TVTTm4rQ==", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@azure-tools/spec-gen-sdk/-/spec-gen-sdk-0.9.1.tgz", + "integrity": "sha512-H6hDGHtbHWl/dldB+y5wrYtx965kYNleDEWFjWvMIS29yYwDCljlo9AAadLCmlXvi46ksXh2nePYxBjeTafv9A==", "dev": true, "license": "MIT", "dependencies": { @@ -1175,9 +1175,9 @@ } }, "node_modules/@azure-tools/typespec-client-generator-cli": { - "version": "0.26.1", - "resolved": "https://registry.npmjs.org/@azure-tools/typespec-client-generator-cli/-/typespec-client-generator-cli-0.26.1.tgz", - "integrity": "sha512-HM+MfBHDk1ynyoQASppcj+3a1hKAIMKD8HJ172/OF47QsWjBXFnywhwsVbJkw4ap/lb4TOvK406NsEpACJqguQ==", + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/@azure-tools/typespec-client-generator-cli/-/typespec-client-generator-cli-0.27.0.tgz", + "integrity": "sha512-m1XQdbA8WdMKcv+f2ehfgGXPm+Br6Rneqa1Rmvi4kNHO2Bs1pvsCUiD+2hh0DD7t78pkcQ0bJLzeU35kzblo3g==", "dev": true, "license": "MIT", "dependencies": { @@ -1205,9 +1205,9 @@ } }, "node_modules/@azure-tools/typespec-client-generator-core": { - "version": "0.58.1", - "resolved": "https://registry.npmjs.org/@azure-tools/typespec-client-generator-core/-/typespec-client-generator-core-0.58.1.tgz", - "integrity": "sha512-55MudCh3ma4A7PAAveqDqXbLV6iO3CpAqN9MaTcPhxIlS3z1FZnhA/gDnRO/ubTNbKJym4F7vxYBe551lbdUWQ==", + "version": "0.58.2", + "resolved": "https://registry.npmjs.org/@azure-tools/typespec-client-generator-core/-/typespec-client-generator-core-0.58.2.tgz", + "integrity": "sha512-8kR5TUt4SBF/JmYRxIGYpPA00cRl0TEI6R01jC8vlYEdI28HezPbsXrN9atFXucZKtbqGTwe9hH8Mmfv7nvjJA==", "dev": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 7da76ff3d6e9..47c819d04a94 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "azure-rest-api-specs", "devDependencies": { - "@azure-tools/spec-gen-sdk": "~0.9.0", + "@azure-tools/spec-gen-sdk": "~0.9.1", "@azure-tools/specs-shared": "file:.github/shared", "@azure-tools/typespec-apiview": "0.7.2", "@azure-tools/typespec-autorest": "0.58.1", @@ -9,8 +9,8 @@ "@azure-tools/typespec-azure-portal-core": "0.58.0", "@azure-tools/typespec-azure-resource-manager": "0.58.1", "@azure-tools/typespec-azure-rulesets": "0.58.0", - "@azure-tools/typespec-client-generator-cli": "0.26.1", - "@azure-tools/typespec-client-generator-core": "0.58.1", + "@azure-tools/typespec-client-generator-cli": "0.27.0", + "@azure-tools/typespec-client-generator-core": "0.58.2", "@azure-tools/typespec-liftr-base": "0.8.0", "@autorest/openapi-to-typespec": "0.11.5", "@azure/avocado": "^0.9.1", diff --git a/specification/ai/Azure.AI.Agents/tspconfig.yaml b/specification/ai/Azure.AI.Agents/tspconfig.yaml index 2a947e04ed1a..fd27206b7475 100644 --- a/specification/ai/Azure.AI.Agents/tspconfig.yaml +++ b/specification/ai/Azure.AI.Agents/tspconfig.yaml @@ -35,10 +35,11 @@ options: model-namespace: false api-version: "2025-05-15-preview" "@azure-tools/typespec-ts": + package-dir: "ai-agents" api-version: "v1" - generateTest: true - generateMetadata: false - packageDetails: + generate-test: true + generate-metadata: false + package-details: name: "@azure/ai-agents" flavor: azure linter: diff --git a/specification/ai/DocumentIntelligence/tspconfig.yaml b/specification/ai/DocumentIntelligence/tspconfig.yaml index 7e8a6bfa2480..e4f7893743b1 100644 --- a/specification/ai/DocumentIntelligence/tspconfig.yaml +++ b/specification/ai/DocumentIntelligence/tspconfig.yaml @@ -55,6 +55,7 @@ options: "@azure-tools/typespec-ts": title: DocumentIntelligence package-dir: "ai-document-intelligence-rest" + is-modular-library: false generate-metadata: true package-details: name: "@azure-rest/ai-document-intelligence" diff --git a/specification/ai/Face/tspconfig.yaml b/specification/ai/Face/tspconfig.yaml index ad848f823699..c4e495d4f940 100644 --- a/specification/ai/Face/tspconfig.yaml +++ b/specification/ai/Face/tspconfig.yaml @@ -32,6 +32,7 @@ options: "@azure-tools/typespec-ts": package-dir: "ai-vision-face-rest" generate-metadata: true + is-modular-library: false flavor: azure package-details: name: "@azure-rest/ai-vision-face" diff --git a/specification/ai/HealthInsights/HealthInsights.RadiologyInsights/tspconfig.yaml b/specification/ai/HealthInsights/HealthInsights.RadiologyInsights/tspconfig.yaml index 040385536712..f62f73e90577 100644 --- a/specification/ai/HealthInsights/HealthInsights.RadiologyInsights/tspconfig.yaml +++ b/specification/ai/HealthInsights/HealthInsights.RadiologyInsights/tspconfig.yaml @@ -58,6 +58,7 @@ options: package-dir: "health-insights-radiologyinsights-rest" emitter-output-dir: "{js-sdk-folder}/sdk/{service-directory-name}/health-insights-cancerprofiling-rest" generate-metadata: true + is-modular-library: false package-details: name: "@azure-rest/health-insights-radiologyinsights" flavor: azure diff --git a/specification/ai/ImageAnalysis/tspconfig.yaml b/specification/ai/ImageAnalysis/tspconfig.yaml index 927167d792d6..bcc6f458c07b 100644 --- a/specification/ai/ImageAnalysis/tspconfig.yaml +++ b/specification/ai/ImageAnalysis/tspconfig.yaml @@ -38,6 +38,7 @@ options: flavor: azure "@azure-tools/typespec-ts": package-dir: "ai-vision-image-analysis-rest" + is-modular-library: false package-details: name: "@azure-rest/ai-vision-image-analysis" flavor: azure diff --git a/specification/apicenter/ApiCenter.DataApi/tspconfig.yaml b/specification/apicenter/ApiCenter.DataApi/tspconfig.yaml index 3a437cf5de1e..c9ae534b80b3 100644 --- a/specification/apicenter/ApiCenter.DataApi/tspconfig.yaml +++ b/specification/apicenter/ApiCenter.DataApi/tspconfig.yaml @@ -27,6 +27,7 @@ options: "@azure-tools/typespec-ts": package-dir: "azure-apicenter-rest" generate-metadata: true + is-modular-library: false flavor: azure package-details: name: "@azure-rest/azure-apicenter-rest" diff --git a/specification/app/Microsoft.App.DynamicSessions/examples/2024-10-02-preview/CodeExecution_Execute_Async_Completed.json b/specification/app/Microsoft.App.DynamicSessions/examples/2024-10-02-preview/CodeExecution_Execute_Async_Completed.json index 2696e7645e79..1e0cf45c6c31 100644 --- a/specification/app/Microsoft.App.DynamicSessions/examples/2024-10-02-preview/CodeExecution_Execute_Async_Completed.json +++ b/specification/app/Microsoft.App.DynamicSessions/examples/2024-10-02-preview/CodeExecution_Execute_Async_Completed.json @@ -13,7 +13,7 @@ } }, "responses": { - "202": { + "200": { "headers": { "operation-id": "testExecutionId", "Operation-Location": "operation-location-uri" diff --git a/specification/app/Microsoft.App.DynamicSessions/examples/2024-10-02-preview/CodeExecution_Execute_Async_Running.json b/specification/app/Microsoft.App.DynamicSessions/examples/2024-10-02-preview/CodeExecution_Execute_Async_Running.json index 5425b09956df..040f0364096e 100644 --- a/specification/app/Microsoft.App.DynamicSessions/examples/2024-10-02-preview/CodeExecution_Execute_Async_Running.json +++ b/specification/app/Microsoft.App.DynamicSessions/examples/2024-10-02-preview/CodeExecution_Execute_Async_Running.json @@ -13,7 +13,7 @@ } }, "responses": { - "202": { + "200": { "headers": { "operation-id": "testExecutionId", "Operation-Location": "operation-location-uri" diff --git a/specification/app/Microsoft.App.DynamicSessions/examples/2024-10-02-preview/CodeExecution_Execute_Sync.json b/specification/app/Microsoft.App.DynamicSessions/examples/2024-10-02-preview/CodeExecution_Execute_Sync.json index 8eef84622944..59d2c272664b 100644 --- a/specification/app/Microsoft.App.DynamicSessions/examples/2024-10-02-preview/CodeExecution_Execute_Sync.json +++ b/specification/app/Microsoft.App.DynamicSessions/examples/2024-10-02-preview/CodeExecution_Execute_Sync.json @@ -12,7 +12,7 @@ } }, "responses": { - "202": { + "200": { "headers": { "operation-id": "testExecutionId", "Operation-Location": "operation-location-uri" @@ -20,7 +20,7 @@ "body": { "id": "testExecutionId", "identifier": "testSessionIdentifier", - "executionType": "Asynchronous", + "executionType": "Synchronous", "status": "Succeeded", "result": { "stdout": "63/n", diff --git a/specification/app/Microsoft.App.DynamicSessions/examples/2025-02-02-preview/CodeExecution_Execute_Async_Completed.json b/specification/app/Microsoft.App.DynamicSessions/examples/2025-02-02-preview/CodeExecution_Execute_Async_Completed.json index 3287e7ec3bad..d8e265260e6a 100644 --- a/specification/app/Microsoft.App.DynamicSessions/examples/2025-02-02-preview/CodeExecution_Execute_Async_Completed.json +++ b/specification/app/Microsoft.App.DynamicSessions/examples/2025-02-02-preview/CodeExecution_Execute_Async_Completed.json @@ -13,7 +13,7 @@ } }, "responses": { - "202": { + "200": { "headers": { "operation-id": "testExecutionId", "Operation-Location": "operation-location-uri" diff --git a/specification/app/Microsoft.App.DynamicSessions/examples/2025-02-02-preview/CodeExecution_Execute_Async_Running.json b/specification/app/Microsoft.App.DynamicSessions/examples/2025-02-02-preview/CodeExecution_Execute_Async_Running.json index 72d7bfa157d1..37f7615ea031 100644 --- a/specification/app/Microsoft.App.DynamicSessions/examples/2025-02-02-preview/CodeExecution_Execute_Async_Running.json +++ b/specification/app/Microsoft.App.DynamicSessions/examples/2025-02-02-preview/CodeExecution_Execute_Async_Running.json @@ -13,7 +13,7 @@ } }, "responses": { - "202": { + "200": { "headers": { "operation-id": "testExecutionId", "Operation-Location": "operation-location-uri" diff --git a/specification/app/Microsoft.App.DynamicSessions/examples/2025-02-02-preview/CodeExecution_Execute_Sync.json b/specification/app/Microsoft.App.DynamicSessions/examples/2025-02-02-preview/CodeExecution_Execute_Sync.json index b91407fa5392..21226d732791 100644 --- a/specification/app/Microsoft.App.DynamicSessions/examples/2025-02-02-preview/CodeExecution_Execute_Sync.json +++ b/specification/app/Microsoft.App.DynamicSessions/examples/2025-02-02-preview/CodeExecution_Execute_Sync.json @@ -12,7 +12,7 @@ } }, "responses": { - "202": { + "200": { "headers": { "operation-id": "testExecutionId", "Operation-Location": "operation-location-uri" @@ -20,7 +20,7 @@ "body": { "id": "testExecutionId", "identifier": "testSessionIdentifier", - "executionType": "Asynchronous", + "executionType": "Synchronous", "status": "Succeeded", "result": { "stdout": "63/n", diff --git a/specification/app/Microsoft.App.DynamicSessions/routes.tsp b/specification/app/Microsoft.App.DynamicSessions/routes.tsp index 22e033be63f2..b9fa83380fb5 100644 --- a/specification/app/Microsoft.App.DynamicSessions/routes.tsp +++ b/specification/app/Microsoft.App.DynamicSessions/routes.tsp @@ -25,23 +25,20 @@ alias CodeExecutionTraits = BaseOperationTraits & alias CodeExecutionOperations = Azure.Core.ResourceOperations; interface CodeExecution { - #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "No suitable standard operation found." @doc("Execute code in a session.") @route("/executions") - @pollingOperation(CodeExecution.get) - execute is Foundations.Operation< + execute is RpcOperation< { - ...SessionIdentifier; ...ExecutionOperationIdHeader; @doc("The request to execute code.") @body codeExecutionRequest: SessionCodeExecutionRequest; }, - AcceptedResponse & - SessionCodeExecutionResource & + SessionCodeExecutionResource & ExecutionOperationIdHeader & - Foundations.LongRunningStatusLocation + Foundations.LongRunningStatusLocation, + CodeExecutionTraits >; @doc("Get the code execution result.") diff --git a/specification/app/data-plane/Microsoft.App.DynamicSessions/preview/2024-10-02-preview/DynamicSessions.json b/specification/app/data-plane/Microsoft.App.DynamicSessions/preview/2024-10-02-preview/DynamicSessions.json index 28ce2a5d7f85..b4db1f21f3d5 100644 --- a/specification/app/data-plane/Microsoft.App.DynamicSessions/preview/2024-10-02-preview/DynamicSessions.json +++ b/specification/app/data-plane/Microsoft.App.DynamicSessions/preview/2024-10-02-preview/DynamicSessions.json @@ -61,10 +61,10 @@ "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/SessionIdentifier" + "$ref": "#/parameters/ExecutionOperationIdHeader" }, { - "$ref": "#/parameters/ExecutionOperationIdHeader" + "$ref": "#/parameters/SessionIdentifier" }, { "name": "codeExecutionRequest", @@ -77,8 +77,8 @@ } ], "responses": { - "202": { - "description": "The request has been accepted for processing, but processing has not yet completed.", + "200": { + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/SessionCodeExecutionResource" }, diff --git a/specification/app/data-plane/Microsoft.App.DynamicSessions/preview/2024-10-02-preview/examples/CodeExecution_Execute_Async_Completed.json b/specification/app/data-plane/Microsoft.App.DynamicSessions/preview/2024-10-02-preview/examples/CodeExecution_Execute_Async_Completed.json index 2696e7645e79..1e0cf45c6c31 100644 --- a/specification/app/data-plane/Microsoft.App.DynamicSessions/preview/2024-10-02-preview/examples/CodeExecution_Execute_Async_Completed.json +++ b/specification/app/data-plane/Microsoft.App.DynamicSessions/preview/2024-10-02-preview/examples/CodeExecution_Execute_Async_Completed.json @@ -13,7 +13,7 @@ } }, "responses": { - "202": { + "200": { "headers": { "operation-id": "testExecutionId", "Operation-Location": "operation-location-uri" diff --git a/specification/app/data-plane/Microsoft.App.DynamicSessions/preview/2024-10-02-preview/examples/CodeExecution_Execute_Async_Running.json b/specification/app/data-plane/Microsoft.App.DynamicSessions/preview/2024-10-02-preview/examples/CodeExecution_Execute_Async_Running.json index 5425b09956df..040f0364096e 100644 --- a/specification/app/data-plane/Microsoft.App.DynamicSessions/preview/2024-10-02-preview/examples/CodeExecution_Execute_Async_Running.json +++ b/specification/app/data-plane/Microsoft.App.DynamicSessions/preview/2024-10-02-preview/examples/CodeExecution_Execute_Async_Running.json @@ -13,7 +13,7 @@ } }, "responses": { - "202": { + "200": { "headers": { "operation-id": "testExecutionId", "Operation-Location": "operation-location-uri" diff --git a/specification/app/data-plane/Microsoft.App.DynamicSessions/preview/2024-10-02-preview/examples/CodeExecution_Execute_Sync.json b/specification/app/data-plane/Microsoft.App.DynamicSessions/preview/2024-10-02-preview/examples/CodeExecution_Execute_Sync.json index 8eef84622944..59d2c272664b 100644 --- a/specification/app/data-plane/Microsoft.App.DynamicSessions/preview/2024-10-02-preview/examples/CodeExecution_Execute_Sync.json +++ b/specification/app/data-plane/Microsoft.App.DynamicSessions/preview/2024-10-02-preview/examples/CodeExecution_Execute_Sync.json @@ -12,7 +12,7 @@ } }, "responses": { - "202": { + "200": { "headers": { "operation-id": "testExecutionId", "Operation-Location": "operation-location-uri" @@ -20,7 +20,7 @@ "body": { "id": "testExecutionId", "identifier": "testSessionIdentifier", - "executionType": "Asynchronous", + "executionType": "Synchronous", "status": "Succeeded", "result": { "stdout": "63/n", diff --git a/specification/app/data-plane/Microsoft.App.DynamicSessions/preview/2025-02-02-preview/DynamicSessions.json b/specification/app/data-plane/Microsoft.App.DynamicSessions/preview/2025-02-02-preview/DynamicSessions.json index b42e830a7eb8..8316882ab3f0 100644 --- a/specification/app/data-plane/Microsoft.App.DynamicSessions/preview/2025-02-02-preview/DynamicSessions.json +++ b/specification/app/data-plane/Microsoft.App.DynamicSessions/preview/2025-02-02-preview/DynamicSessions.json @@ -61,10 +61,10 @@ "$ref": "#/parameters/Azure.Core.Foundations.ApiVersionParameter" }, { - "$ref": "#/parameters/SessionIdentifier" + "$ref": "#/parameters/ExecutionOperationIdHeader" }, { - "$ref": "#/parameters/ExecutionOperationIdHeader" + "$ref": "#/parameters/SessionIdentifier" }, { "name": "codeExecutionRequest", @@ -77,8 +77,8 @@ } ], "responses": { - "202": { - "description": "The request has been accepted for processing, but processing has not yet completed.", + "200": { + "description": "The request has succeeded.", "schema": { "$ref": "#/definitions/SessionCodeExecutionResource" }, diff --git a/specification/app/data-plane/Microsoft.App.DynamicSessions/preview/2025-02-02-preview/examples/CodeExecution_Execute_Async_Completed.json b/specification/app/data-plane/Microsoft.App.DynamicSessions/preview/2025-02-02-preview/examples/CodeExecution_Execute_Async_Completed.json index 3287e7ec3bad..d8e265260e6a 100644 --- a/specification/app/data-plane/Microsoft.App.DynamicSessions/preview/2025-02-02-preview/examples/CodeExecution_Execute_Async_Completed.json +++ b/specification/app/data-plane/Microsoft.App.DynamicSessions/preview/2025-02-02-preview/examples/CodeExecution_Execute_Async_Completed.json @@ -13,7 +13,7 @@ } }, "responses": { - "202": { + "200": { "headers": { "operation-id": "testExecutionId", "Operation-Location": "operation-location-uri" diff --git a/specification/app/data-plane/Microsoft.App.DynamicSessions/preview/2025-02-02-preview/examples/CodeExecution_Execute_Async_Running.json b/specification/app/data-plane/Microsoft.App.DynamicSessions/preview/2025-02-02-preview/examples/CodeExecution_Execute_Async_Running.json index 72d7bfa157d1..37f7615ea031 100644 --- a/specification/app/data-plane/Microsoft.App.DynamicSessions/preview/2025-02-02-preview/examples/CodeExecution_Execute_Async_Running.json +++ b/specification/app/data-plane/Microsoft.App.DynamicSessions/preview/2025-02-02-preview/examples/CodeExecution_Execute_Async_Running.json @@ -13,7 +13,7 @@ } }, "responses": { - "202": { + "200": { "headers": { "operation-id": "testExecutionId", "Operation-Location": "operation-location-uri" diff --git a/specification/app/data-plane/Microsoft.App.DynamicSessions/preview/2025-02-02-preview/examples/CodeExecution_Execute_Sync.json b/specification/app/data-plane/Microsoft.App.DynamicSessions/preview/2025-02-02-preview/examples/CodeExecution_Execute_Sync.json index b91407fa5392..21226d732791 100644 --- a/specification/app/data-plane/Microsoft.App.DynamicSessions/preview/2025-02-02-preview/examples/CodeExecution_Execute_Sync.json +++ b/specification/app/data-plane/Microsoft.App.DynamicSessions/preview/2025-02-02-preview/examples/CodeExecution_Execute_Sync.json @@ -12,7 +12,7 @@ } }, "responses": { - "202": { + "200": { "headers": { "operation-id": "testExecutionId", "Operation-Location": "operation-location-uri" @@ -20,7 +20,7 @@ "body": { "id": "testExecutionId", "identifier": "testSessionIdentifier", - "executionType": "Asynchronous", + "executionType": "Synchronous", "status": "Succeeded", "result": { "stdout": "63/n", diff --git a/specification/appconfiguration/AppConfiguration/tspconfig.yaml b/specification/appconfiguration/AppConfiguration/tspconfig.yaml index 72115c369b2b..d582e38162fd 100644 --- a/specification/appconfiguration/AppConfiguration/tspconfig.yaml +++ b/specification/appconfiguration/AppConfiguration/tspconfig.yaml @@ -31,6 +31,7 @@ options: "@azure-tools/typespec-ts": package-dir: "azure-appconfiguration-rest" generate-metadata: true + is-modular-library: false package-details: name: "@azure-rest/azure-appconfiguration" description: "Azure App Configuration" diff --git a/specification/applicationinsights/ApplicationInsights.LiveMetrics/tspconfig.yaml b/specification/applicationinsights/ApplicationInsights.LiveMetrics/tspconfig.yaml index 3848644a809a..72b1d29fd853 100644 --- a/specification/applicationinsights/ApplicationInsights.LiveMetrics/tspconfig.yaml +++ b/specification/applicationinsights/ApplicationInsights.LiveMetrics/tspconfig.yaml @@ -28,6 +28,7 @@ options: "@azure-tools/typespec-ts": package-dir: "livemetrics-rest" generate-metadata: true + is-modular-library: false package-details: name: "@azure-rest/livemetrics" description: "LiveMetrics Service" diff --git a/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/client.tsp b/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/client.tsp new file mode 100644 index 000000000000..368572d86e6c --- /dev/null +++ b/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/client.tsp @@ -0,0 +1,6 @@ +import "./main.tsp"; +import "@azure-tools/typespec-client-generator-core"; + +using Azure.ClientGenerator.Core; + +@@clientName(Microsoft.AzureStackHCI, "AzureStackHCIVmClient", "python"); diff --git a/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/tspconfig.yaml b/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/tspconfig.yaml index d405a644ceab..fa4cb8c396cc 100644 --- a/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/tspconfig.yaml +++ b/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/tspconfig.yaml @@ -1,3 +1,6 @@ +parameters: + "service-dir": + default: "sdk/azurestackhcivm" emit: - "@azure-tools/typespec-autorest" options: @@ -9,6 +12,23 @@ options: # `arm-resource-flattening` is only used for back-compat for specs existed on July 2024. All new service spec should NOT use this flag arm-resource-flattening: true output-file: "{azure-resource-provider-folder}/{service-name}/StackHCIVM/{version-status}/{version}/stackhcivm.json" + "@azure-tools/typespec-python": + service-dir: "sdk/azurestackhci" + package-dir: "azure-mgmt-azurestackhcivm" + namespace: "azure.mgmt.azurestackhcivm" + flavor: "azure" + generate-test: true + generate-sample: true + "@azure-tools/typespec-go": + service-dir: "sdk/resourcemanager/azurestackhci" + package-dir: "armazurestackhcivm" + module: "github.com/Azure/azure-sdk-for-go/{service-dir}/{package-dir}" + fix-const-stuttering: true + flavor: "azure" + generate-samples: true + generate-fakes: true + head-as-boolean: true + inject-spans: true linter: extends: - "@azure-tools/typespec-azure-rulesets/resource-manager" diff --git a/specification/azurestackhci/cspell.yaml b/specification/azurestackhci/cspell.yaml index 8135591b2919..1b64deda2e8c 100644 --- a/specification/azurestackhci/cspell.yaml +++ b/specification/azurestackhci/cspell.yaml @@ -27,6 +27,8 @@ words: - vhds - vhdx - wdac + - azurestackhcivm + - armazurestackhcivm overrides: - filename: >- **/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/models.tsp diff --git a/specification/batch/Azure.Batch/tspconfig.yaml b/specification/batch/Azure.Batch/tspconfig.yaml index c751266b4d36..9e779ffd0963 100644 --- a/specification/batch/Azure.Batch/tspconfig.yaml +++ b/specification/batch/Azure.Batch/tspconfig.yaml @@ -50,6 +50,7 @@ options: generate-sample: false "@azure-tools/typespec-ts": package-dir: "batch-rest" + is-modular-library: false package-details: name: "@azure-rest/batch" description: "Batch Service Rest Level Client" diff --git a/specification/cognitiveservices/AnomalyDetector/tspconfig.yaml b/specification/cognitiveservices/AnomalyDetector/tspconfig.yaml index 423bd8f8bd70..be73e0f02aa4 100644 --- a/specification/cognitiveservices/AnomalyDetector/tspconfig.yaml +++ b/specification/cognitiveservices/AnomalyDetector/tspconfig.yaml @@ -40,6 +40,7 @@ options: "@azure-tools/typespec-ts": emitter-output-dir: "{js-sdk-folder}/sdk/{service-directory-name}/ai-anomaly-detector-rest" generate-metadata: true + is-modular-library: false package-dir: "ai-anomaly-detector-rest" package-details: name: "@azure-rest/ai-anomaly-detector" diff --git a/specification/cognitiveservices/ContentSafety/tspconfig.yaml b/specification/cognitiveservices/ContentSafety/tspconfig.yaml index 06d4d8534d1b..5224245abf0c 100644 --- a/specification/cognitiveservices/ContentSafety/tspconfig.yaml +++ b/specification/cognitiveservices/ContentSafety/tspconfig.yaml @@ -32,6 +32,7 @@ options: model-namespace: false "@azure-tools/typespec-ts": package-dir: "ai-content-safety-rest" + is-modular-library: false package-details: name: "@azure-rest/ai-content-safety" version: "1.0.0" diff --git a/specification/communication/Communication.JobRouter/tspconfig.yaml b/specification/communication/Communication.JobRouter/tspconfig.yaml index e4a89978db93..f92d79a33e8a 100644 --- a/specification/communication/Communication.JobRouter/tspconfig.yaml +++ b/specification/communication/Communication.JobRouter/tspconfig.yaml @@ -60,6 +60,7 @@ options: "@azure-tools/typespec-ts": emitter-output-dir: "{js-sdk-folder}/sdk/{service-directory-name}/communication-job-router-rest" package-dir: "communication-job-router-rest" + is-modular-library: false package-details: name: "@azure-rest/communication-job-router" description: "Azure client library for Azure Communication Job Router services" diff --git a/specification/communication/Communication.Messages/tspconfig.yaml b/specification/communication/Communication.Messages/tspconfig.yaml index 916c414a50e7..46b11cd1d2c7 100644 --- a/specification/communication/Communication.Messages/tspconfig.yaml +++ b/specification/communication/Communication.Messages/tspconfig.yaml @@ -58,6 +58,7 @@ options: flavor: azure "@azure-tools/typespec-ts": package-dir: "communication-messages-rest" + is-modular-library: false package-details: name: "@azure-rest/communication-messages" description: "Azure client library for Azure Communication Messages services" diff --git a/specification/confidentialledger/Microsoft.CodeTransparency/tspconfig.yaml b/specification/confidentialledger/Microsoft.CodeTransparency/tspconfig.yaml index 890c5b7fd516..cc4c1a00982a 100644 --- a/specification/confidentialledger/Microsoft.CodeTransparency/tspconfig.yaml +++ b/specification/confidentialledger/Microsoft.CodeTransparency/tspconfig.yaml @@ -17,7 +17,6 @@ options: namespace: "azure.codetransparency" package-mode: "dataplane" package-pprint-name: "Code Transparency Service" - models-mode: none generate-test: true generate-sample: true "@azure-tools/typespec-csharp": @@ -32,6 +31,7 @@ options: "@azure-tools/typespec-ts": flavor: azure package-dir: "codetransparency-rest" + is-modular-library: false package-details: name: "@azure-rest/codetransparency" description: "Code Transparency Service" diff --git a/specification/databoxedge/resource-manager/readme.python.md b/specification/databoxedge/resource-manager/readme.python.md index 7b078ae704df..16c063ba73e2 100644 --- a/specification/databoxedge/resource-manager/readme.python.md +++ b/specification/databoxedge/resource-manager/readme.python.md @@ -2,54 +2,18 @@ These settings apply only when `--python` is specified on the command line. Please also specify `--python-sdks-folder=`. -Use `--python-mode=update` if you already have a setup.py and just want to update the code itself. ``` yaml $(python) +title: DataBoxEdgeManagementClient azure-arm: true license-header: MICROSOFT_MIT_NO_VERSION -namespace: azure.mgmt.databoxedge package-name: azure-mgmt-databoxedge -title: DataBoxEdgeManagementClient -description: The DataBoxEdge Client. +namespace: azure.mgmt.databoxedge package-version: 1.0.0b1 clear-output-folder: true -no-namespace-folders: true -``` - -### Python multi-api - -Generate all API versions currently shipped for this package - -```yaml $(python) -multiapi: true -default-api-version: "2019-08-01" -batch: - - tag: package-2021-02-01-preview - - tag: package-2019-08 - - multiapiscript: true -``` - -``` yaml $(multiapiscript) -output-folder: $(python-sdks-folder)/databoxedge/azure-mgmt-databoxedge/azure/mgmt/databoxedge/ -perform-load: false ``` -### Tag: package-2021-02-01-preview and python - -These settings apply only when `--tag=package-2021-02-01-preview --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2021-02-01-preview' && $(python) -namespace: azure.mgmt.databoxedge.v2021_02_01_preview -output-folder: $(python-sdks-folder)/databoxedge/azure-mgmt-databoxedge/azure/mgmt/databoxedge/v2021_02_01_preview -``` - -### Tag: package-2019-08 and python - -These settings apply only when `--tag=package-2019-08 --python` is specified on the command line. -Please also specify `--python-sdks-folder=`. - -``` yaml $(tag) == 'package-2019-08' && $(python) -namespace: azure.mgmt.databoxedge.v2019_08_01 -output-folder: $(python-sdks-folder)/databoxedge/azure-mgmt-databoxedge/azure/mgmt/databoxedge/v2019_08_01 +``` yaml $(python) +no-namespace-folders: true +output-folder: $(python-sdks-folder)/databoxedge/azure-mgmt-databoxedge/azure/mgmt/databoxedge ``` diff --git a/specification/devcenter/DevCenter/tspconfig.yaml b/specification/devcenter/DevCenter/tspconfig.yaml index 98429b622047..04b31081bbf9 100644 --- a/specification/devcenter/DevCenter/tspconfig.yaml +++ b/specification/devcenter/DevCenter/tspconfig.yaml @@ -33,6 +33,7 @@ options: title: "Azure Developer DevCenter" package-dir: "developer-devcenter-rest" generate-metadata: true + is-modular-library: false package-details: name: "@azure-rest/developer-devcenter" description: "Azure Developer DevCenter Client" diff --git a/specification/edgeorder/EdgeOrder.Management/AddressResource.tsp b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/AddressResource.tsp similarity index 100% rename from specification/edgeorder/EdgeOrder.Management/AddressResource.tsp rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/AddressResource.tsp diff --git a/specification/edgeorder/EdgeOrder.Management/OrderItemResource.tsp b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/OrderItemResource.tsp similarity index 100% rename from specification/edgeorder/EdgeOrder.Management/OrderItemResource.tsp rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/OrderItemResource.tsp diff --git a/specification/edgeorder/EdgeOrder.Management/OrderResource.tsp b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/OrderResource.tsp similarity index 100% rename from specification/edgeorder/EdgeOrder.Management/OrderResource.tsp rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/OrderResource.tsp diff --git a/specification/edgeorder/EdgeOrder.Management/back-compatible.tsp b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/back-compatible.tsp similarity index 100% rename from specification/edgeorder/EdgeOrder.Management/back-compatible.tsp rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/back-compatible.tsp diff --git a/specification/edgeorder/EdgeOrder.Management/examples/2024-02-01/CancelOrderItem.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/examples/2024-02-01/CancelOrderItem.json similarity index 100% rename from specification/edgeorder/EdgeOrder.Management/examples/2024-02-01/CancelOrderItem.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/examples/2024-02-01/CancelOrderItem.json diff --git a/specification/edgeorder/EdgeOrder.Management/examples/2024-02-01/CreateAddress.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/examples/2024-02-01/CreateAddress.json similarity index 100% rename from specification/edgeorder/EdgeOrder.Management/examples/2024-02-01/CreateAddress.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/examples/2024-02-01/CreateAddress.json diff --git a/specification/edgeorder/EdgeOrder.Management/examples/2024-02-01/CreateOrderItem.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/examples/2024-02-01/CreateOrderItem.json similarity index 100% rename from specification/edgeorder/EdgeOrder.Management/examples/2024-02-01/CreateOrderItem.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/examples/2024-02-01/CreateOrderItem.json diff --git a/specification/edgeorder/EdgeOrder.Management/examples/2024-02-01/DeleteAddressByName.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/examples/2024-02-01/DeleteAddressByName.json similarity index 100% rename from specification/edgeorder/EdgeOrder.Management/examples/2024-02-01/DeleteAddressByName.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/examples/2024-02-01/DeleteAddressByName.json diff --git a/specification/edgeorder/EdgeOrder.Management/examples/2024-02-01/DeleteOrderItemByName.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/examples/2024-02-01/DeleteOrderItemByName.json similarity index 100% rename from specification/edgeorder/EdgeOrder.Management/examples/2024-02-01/DeleteOrderItemByName.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/examples/2024-02-01/DeleteOrderItemByName.json diff --git a/specification/edgeorder/EdgeOrder.Management/examples/2024-02-01/GetAddressByName.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/examples/2024-02-01/GetAddressByName.json similarity index 100% rename from specification/edgeorder/EdgeOrder.Management/examples/2024-02-01/GetAddressByName.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/examples/2024-02-01/GetAddressByName.json diff --git a/specification/edgeorder/EdgeOrder.Management/examples/2024-02-01/GetOrderByName.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/examples/2024-02-01/GetOrderByName.json similarity index 100% rename from specification/edgeorder/EdgeOrder.Management/examples/2024-02-01/GetOrderByName.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/examples/2024-02-01/GetOrderByName.json diff --git a/specification/edgeorder/EdgeOrder.Management/examples/2024-02-01/GetOrderItemByName.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/examples/2024-02-01/GetOrderItemByName.json similarity index 100% rename from specification/edgeorder/EdgeOrder.Management/examples/2024-02-01/GetOrderItemByName.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/examples/2024-02-01/GetOrderItemByName.json diff --git a/specification/edgeorder/EdgeOrder.Management/examples/2024-02-01/ListAddressesAtResourceGroupLevel.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/examples/2024-02-01/ListAddressesAtResourceGroupLevel.json similarity index 100% rename from specification/edgeorder/EdgeOrder.Management/examples/2024-02-01/ListAddressesAtResourceGroupLevel.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/examples/2024-02-01/ListAddressesAtResourceGroupLevel.json diff --git a/specification/edgeorder/EdgeOrder.Management/examples/2024-02-01/ListAddressesAtSubscriptionLevel.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/examples/2024-02-01/ListAddressesAtSubscriptionLevel.json similarity index 100% rename from specification/edgeorder/EdgeOrder.Management/examples/2024-02-01/ListAddressesAtSubscriptionLevel.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/examples/2024-02-01/ListAddressesAtSubscriptionLevel.json diff --git a/specification/edgeorder/EdgeOrder.Management/examples/2024-02-01/ListConfigurations.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/examples/2024-02-01/ListConfigurations.json similarity index 100% rename from specification/edgeorder/EdgeOrder.Management/examples/2024-02-01/ListConfigurations.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/examples/2024-02-01/ListConfigurations.json diff --git a/specification/edgeorder/EdgeOrder.Management/examples/2024-02-01/ListOperations.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/examples/2024-02-01/ListOperations.json similarity index 100% rename from specification/edgeorder/EdgeOrder.Management/examples/2024-02-01/ListOperations.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/examples/2024-02-01/ListOperations.json diff --git a/specification/edgeorder/EdgeOrder.Management/examples/2024-02-01/ListOrderAtResourceGroupLevel.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/examples/2024-02-01/ListOrderAtResourceGroupLevel.json similarity index 100% rename from specification/edgeorder/EdgeOrder.Management/examples/2024-02-01/ListOrderAtResourceGroupLevel.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/examples/2024-02-01/ListOrderAtResourceGroupLevel.json diff --git a/specification/edgeorder/EdgeOrder.Management/examples/2024-02-01/ListOrderAtSubscriptionLevel.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/examples/2024-02-01/ListOrderAtSubscriptionLevel.json similarity index 100% rename from specification/edgeorder/EdgeOrder.Management/examples/2024-02-01/ListOrderAtSubscriptionLevel.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/examples/2024-02-01/ListOrderAtSubscriptionLevel.json diff --git a/specification/edgeorder/EdgeOrder.Management/examples/2024-02-01/ListOrderItemsAtResourceGroupLevel.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/examples/2024-02-01/ListOrderItemsAtResourceGroupLevel.json similarity index 100% rename from specification/edgeorder/EdgeOrder.Management/examples/2024-02-01/ListOrderItemsAtResourceGroupLevel.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/examples/2024-02-01/ListOrderItemsAtResourceGroupLevel.json diff --git a/specification/edgeorder/EdgeOrder.Management/examples/2024-02-01/ListOrderItemsAtSubscriptionLevel.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/examples/2024-02-01/ListOrderItemsAtSubscriptionLevel.json similarity index 100% rename from specification/edgeorder/EdgeOrder.Management/examples/2024-02-01/ListOrderItemsAtSubscriptionLevel.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/examples/2024-02-01/ListOrderItemsAtSubscriptionLevel.json diff --git a/specification/edgeorder/EdgeOrder.Management/examples/2024-02-01/ListProductFamilies.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/examples/2024-02-01/ListProductFamilies.json similarity index 100% rename from specification/edgeorder/EdgeOrder.Management/examples/2024-02-01/ListProductFamilies.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/examples/2024-02-01/ListProductFamilies.json diff --git a/specification/edgeorder/EdgeOrder.Management/examples/2024-02-01/ListProductFamiliesMetadata.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/examples/2024-02-01/ListProductFamiliesMetadata.json similarity index 100% rename from specification/edgeorder/EdgeOrder.Management/examples/2024-02-01/ListProductFamiliesMetadata.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/examples/2024-02-01/ListProductFamiliesMetadata.json diff --git a/specification/edgeorder/EdgeOrder.Management/examples/2024-02-01/ReturnOrderItem.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/examples/2024-02-01/ReturnOrderItem.json similarity index 100% rename from specification/edgeorder/EdgeOrder.Management/examples/2024-02-01/ReturnOrderItem.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/examples/2024-02-01/ReturnOrderItem.json diff --git a/specification/edgeorder/EdgeOrder.Management/examples/2024-02-01/UpdateAddress.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/examples/2024-02-01/UpdateAddress.json similarity index 100% rename from specification/edgeorder/EdgeOrder.Management/examples/2024-02-01/UpdateAddress.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/examples/2024-02-01/UpdateAddress.json diff --git a/specification/edgeorder/EdgeOrder.Management/examples/2024-02-01/UpdateOrderItem.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/examples/2024-02-01/UpdateOrderItem.json similarity index 100% rename from specification/edgeorder/EdgeOrder.Management/examples/2024-02-01/UpdateOrderItem.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/examples/2024-02-01/UpdateOrderItem.json diff --git a/specification/edgeorder/EdgeOrder.Management/main.tsp b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/main.tsp similarity index 100% rename from specification/edgeorder/EdgeOrder.Management/main.tsp rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/main.tsp diff --git a/specification/edgeorder/EdgeOrder.Management/models.tsp b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/models.tsp similarity index 100% rename from specification/edgeorder/EdgeOrder.Management/models.tsp rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/models.tsp diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2020-12-01-preview/edgeorder.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2020-12-01-preview/edgeorder.json similarity index 90% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2020-12-01-preview/edgeorder.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2020-12-01-preview/edgeorder.json index 6571d677e5c9..eefd91844ef3 100644 --- a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2020-12-01-preview/edgeorder.json +++ b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2020-12-01-preview/edgeorder.json @@ -30,20 +30,20 @@ ], "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" } ], "responses": { "200": { "description": "Success", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/OperationListResult" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/OperationListResult" } }, "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -72,10 +72,10 @@ ], "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "$filter", @@ -102,7 +102,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -131,10 +131,10 @@ ], "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "$expand", @@ -170,7 +170,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -199,10 +199,10 @@ ], "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "$skipToken", @@ -231,7 +231,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -260,10 +260,10 @@ ], "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "$skipToken", @@ -283,7 +283,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -312,10 +312,10 @@ ], "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "$skipToken", @@ -335,7 +335,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -364,10 +364,10 @@ ], "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "$filter", @@ -401,7 +401,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -430,13 +430,13 @@ ], "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "$filter", @@ -463,7 +463,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -495,13 +495,13 @@ "$ref": "#/parameters/addressNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" } ], "responses": { @@ -514,7 +514,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -541,13 +541,13 @@ "$ref": "#/parameters/addressNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "addressResource", @@ -572,7 +572,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -600,13 +600,13 @@ "$ref": "#/parameters/addressNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" } ], "responses": { @@ -622,7 +622,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -650,13 +650,13 @@ "$ref": "#/parameters/addressNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "If-Match", @@ -688,7 +688,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -715,13 +715,13 @@ ], "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "$skipToken", @@ -741,7 +741,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -773,16 +773,16 @@ "$ref": "#/parameters/orderNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/LocationParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/LocationParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" } ], "responses": { @@ -795,7 +795,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -821,13 +821,13 @@ ], "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "$filter", @@ -861,7 +861,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -893,13 +893,13 @@ "$ref": "#/parameters/orderItemNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "$expand", @@ -919,7 +919,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -946,13 +946,13 @@ "$ref": "#/parameters/orderItemNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "orderItemResource", @@ -977,7 +977,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -1005,13 +1005,13 @@ "$ref": "#/parameters/orderItemNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" } ], "responses": { @@ -1027,7 +1027,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -1055,13 +1055,13 @@ "$ref": "#/parameters/orderItemNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "If-Match", @@ -1093,7 +1093,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -1123,13 +1123,13 @@ "$ref": "#/parameters/orderItemNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "cancellationReason", @@ -1151,7 +1151,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -1180,13 +1180,13 @@ "$ref": "#/parameters/orderItemNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "returnOrderItemDetails", @@ -1208,7 +1208,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -1265,7 +1265,7 @@ "type": "object", "allOf": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/TrackedResource" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/TrackedResource" } ], "properties": { @@ -1275,7 +1275,7 @@ "x-ms-client-flatten": true }, "systemData": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/systemData", + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/systemData", "description": "Represents resource creation and update time", "readOnly": true } @@ -2247,7 +2247,7 @@ "type": "object", "allOf": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ProxyResource" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ProxyResource" } ], "properties": { @@ -2257,7 +2257,7 @@ "x-ms-client-flatten": true }, "systemData": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/systemData", + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/systemData", "description": "Represents resource creation and update time", "readOnly": true } @@ -2456,7 +2456,7 @@ "readOnly": true }, "error": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorDetail", + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorDetail", "description": "Top level error for the job.", "readOnly": true } @@ -2499,7 +2499,7 @@ "type": "object", "allOf": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/TrackedResource" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/TrackedResource" } ], "properties": { @@ -2509,7 +2509,7 @@ "x-ms-client-flatten": true }, "systemData": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/systemData", + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/systemData", "description": "Represents resource creation and update time", "readOnly": true } diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2020-12-01-preview/examples/CancelOrderItem.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2020-12-01-preview/examples/CancelOrderItem.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2020-12-01-preview/examples/CancelOrderItem.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2020-12-01-preview/examples/CancelOrderItem.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2020-12-01-preview/examples/CreateAddress.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2020-12-01-preview/examples/CreateAddress.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2020-12-01-preview/examples/CreateAddress.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2020-12-01-preview/examples/CreateAddress.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2020-12-01-preview/examples/CreateOrderItem.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2020-12-01-preview/examples/CreateOrderItem.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2020-12-01-preview/examples/CreateOrderItem.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2020-12-01-preview/examples/CreateOrderItem.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2020-12-01-preview/examples/DeleteAddressByName.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2020-12-01-preview/examples/DeleteAddressByName.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2020-12-01-preview/examples/DeleteAddressByName.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2020-12-01-preview/examples/DeleteAddressByName.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2020-12-01-preview/examples/DeleteOrderItemByName.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2020-12-01-preview/examples/DeleteOrderItemByName.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2020-12-01-preview/examples/DeleteOrderItemByName.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2020-12-01-preview/examples/DeleteOrderItemByName.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2020-12-01-preview/examples/GetAddressByName.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2020-12-01-preview/examples/GetAddressByName.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2020-12-01-preview/examples/GetAddressByName.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2020-12-01-preview/examples/GetAddressByName.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2020-12-01-preview/examples/GetOrderByName.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2020-12-01-preview/examples/GetOrderByName.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2020-12-01-preview/examples/GetOrderByName.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2020-12-01-preview/examples/GetOrderByName.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2020-12-01-preview/examples/GetOrderItemByName.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2020-12-01-preview/examples/GetOrderItemByName.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2020-12-01-preview/examples/GetOrderItemByName.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2020-12-01-preview/examples/GetOrderItemByName.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2020-12-01-preview/examples/ListAddressesAtResourceGroupLevel.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2020-12-01-preview/examples/ListAddressesAtResourceGroupLevel.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2020-12-01-preview/examples/ListAddressesAtResourceGroupLevel.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2020-12-01-preview/examples/ListAddressesAtResourceGroupLevel.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2020-12-01-preview/examples/ListAddressesAtSubscriptionLevel.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2020-12-01-preview/examples/ListAddressesAtSubscriptionLevel.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2020-12-01-preview/examples/ListAddressesAtSubscriptionLevel.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2020-12-01-preview/examples/ListAddressesAtSubscriptionLevel.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2020-12-01-preview/examples/ListConfigurations.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2020-12-01-preview/examples/ListConfigurations.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2020-12-01-preview/examples/ListConfigurations.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2020-12-01-preview/examples/ListConfigurations.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2020-12-01-preview/examples/ListOperations.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2020-12-01-preview/examples/ListOperations.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2020-12-01-preview/examples/ListOperations.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2020-12-01-preview/examples/ListOperations.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2020-12-01-preview/examples/ListOrderAtResourceGroupLevel.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2020-12-01-preview/examples/ListOrderAtResourceGroupLevel.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2020-12-01-preview/examples/ListOrderAtResourceGroupLevel.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2020-12-01-preview/examples/ListOrderAtResourceGroupLevel.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2020-12-01-preview/examples/ListOrderAtSubscriptionLevel.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2020-12-01-preview/examples/ListOrderAtSubscriptionLevel.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2020-12-01-preview/examples/ListOrderAtSubscriptionLevel.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2020-12-01-preview/examples/ListOrderAtSubscriptionLevel.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2020-12-01-preview/examples/ListOrderItemsAtResourceGroupLevel.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2020-12-01-preview/examples/ListOrderItemsAtResourceGroupLevel.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2020-12-01-preview/examples/ListOrderItemsAtResourceGroupLevel.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2020-12-01-preview/examples/ListOrderItemsAtResourceGroupLevel.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2020-12-01-preview/examples/ListOrderItemsAtSubscriptionLevel.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2020-12-01-preview/examples/ListOrderItemsAtSubscriptionLevel.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2020-12-01-preview/examples/ListOrderItemsAtSubscriptionLevel.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2020-12-01-preview/examples/ListOrderItemsAtSubscriptionLevel.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2020-12-01-preview/examples/ListProductFamilies.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2020-12-01-preview/examples/ListProductFamilies.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2020-12-01-preview/examples/ListProductFamilies.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2020-12-01-preview/examples/ListProductFamilies.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2020-12-01-preview/examples/ListProductFamiliesMetadata.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2020-12-01-preview/examples/ListProductFamiliesMetadata.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2020-12-01-preview/examples/ListProductFamiliesMetadata.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2020-12-01-preview/examples/ListProductFamiliesMetadata.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2020-12-01-preview/examples/ReturnOrderItem.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2020-12-01-preview/examples/ReturnOrderItem.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2020-12-01-preview/examples/ReturnOrderItem.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2020-12-01-preview/examples/ReturnOrderItem.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2020-12-01-preview/examples/UpdateAddress.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2020-12-01-preview/examples/UpdateAddress.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2020-12-01-preview/examples/UpdateAddress.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2020-12-01-preview/examples/UpdateAddress.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2020-12-01-preview/examples/UpdateOrderItem.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2020-12-01-preview/examples/UpdateOrderItem.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2020-12-01-preview/examples/UpdateOrderItem.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2020-12-01-preview/examples/UpdateOrderItem.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2022-05-01-preview/edgeorder.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2022-05-01-preview/edgeorder.json similarity index 91% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2022-05-01-preview/edgeorder.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2022-05-01-preview/edgeorder.json index e2b57d2af467..476060676316 100644 --- a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2022-05-01-preview/edgeorder.json +++ b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2022-05-01-preview/edgeorder.json @@ -30,20 +30,20 @@ ], "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" } ], "responses": { "200": { "description": "The supported operations list.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/OperationListResult" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/OperationListResult" } }, "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -72,10 +72,10 @@ ], "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "$filter", @@ -110,7 +110,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -139,10 +139,10 @@ ], "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "$skipToken", @@ -171,7 +171,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -200,10 +200,10 @@ ], "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "$expand", @@ -239,7 +239,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -268,10 +268,10 @@ ], "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "$filter", @@ -313,7 +313,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -342,10 +342,10 @@ ], "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "$skipToken", @@ -373,7 +373,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -402,10 +402,10 @@ ], "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "$skipToken", @@ -425,7 +425,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -454,13 +454,13 @@ ], "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "$filter", @@ -495,7 +495,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -524,16 +524,16 @@ ], "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { "$ref": "#/parameters/addressNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" } ], "responses": { @@ -546,7 +546,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -570,16 +570,16 @@ ], "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { "$ref": "#/parameters/addressNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "addressResource", @@ -604,7 +604,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -629,16 +629,16 @@ ], "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { "$ref": "#/parameters/addressNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" } ], "responses": { @@ -660,7 +660,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -685,16 +685,16 @@ ], "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { "$ref": "#/parameters/addressNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "If-Match", @@ -732,7 +732,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -759,19 +759,19 @@ ], "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/LocationParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/LocationParameter" }, { "$ref": "#/parameters/orderNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" } ], "responses": { @@ -784,7 +784,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -810,13 +810,13 @@ ], "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "$filter", @@ -858,7 +858,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -887,16 +887,16 @@ ], "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { "$ref": "#/parameters/orderItemNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "$expand", @@ -916,7 +916,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -940,16 +940,16 @@ ], "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { "$ref": "#/parameters/orderItemNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "orderItemResource", @@ -974,7 +974,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -999,16 +999,16 @@ ], "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { "$ref": "#/parameters/orderItemNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" } ], "responses": { @@ -1030,7 +1030,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -1055,16 +1055,16 @@ ], "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { "$ref": "#/parameters/orderItemNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "If-Match", @@ -1102,7 +1102,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -1129,16 +1129,16 @@ ], "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { "$ref": "#/parameters/orderItemNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "cancellationReason", @@ -1160,7 +1160,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -1186,16 +1186,16 @@ ], "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { "$ref": "#/parameters/orderItemNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "returnOrderItemDetails", @@ -1223,7 +1223,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -1250,13 +1250,13 @@ ], "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "$skipToken", @@ -1284,7 +1284,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -1390,7 +1390,7 @@ "type": "object", "allOf": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/TrackedResource" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/TrackedResource" } ], "properties": { @@ -1400,7 +1400,7 @@ "x-ms-client-flatten": true }, "systemData": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/systemData", + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/systemData", "description": "Represents resource creation and update time.", "readOnly": true } @@ -2963,7 +2963,7 @@ "x-ms-identifiers": [] }, "error": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorDetail", + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorDetail", "description": "Top level error for the job.", "readOnly": true } @@ -3006,7 +3006,7 @@ "type": "object", "allOf": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/TrackedResource" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/TrackedResource" } ], "properties": { @@ -3016,7 +3016,7 @@ "x-ms-client-flatten": true }, "systemData": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/systemData", + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/systemData", "description": "Represents resource creation and update time.", "readOnly": true } @@ -3142,7 +3142,7 @@ "type": "object", "allOf": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ProxyResource" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ProxyResource" } ], "properties": { @@ -3152,7 +3152,7 @@ "x-ms-client-flatten": true }, "systemData": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/systemData", + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/systemData", "description": "Represents resource creation and update time.", "readOnly": true } diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2022-05-01-preview/examples/CancelOrderItem.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2022-05-01-preview/examples/CancelOrderItem.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2022-05-01-preview/examples/CancelOrderItem.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2022-05-01-preview/examples/CancelOrderItem.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2022-05-01-preview/examples/CreateAddress.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2022-05-01-preview/examples/CreateAddress.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2022-05-01-preview/examples/CreateAddress.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2022-05-01-preview/examples/CreateAddress.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2022-05-01-preview/examples/CreateOrderItem.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2022-05-01-preview/examples/CreateOrderItem.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2022-05-01-preview/examples/CreateOrderItem.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2022-05-01-preview/examples/CreateOrderItem.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2022-05-01-preview/examples/DeleteAddressByName.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2022-05-01-preview/examples/DeleteAddressByName.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2022-05-01-preview/examples/DeleteAddressByName.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2022-05-01-preview/examples/DeleteAddressByName.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2022-05-01-preview/examples/DeleteOrderItemByName.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2022-05-01-preview/examples/DeleteOrderItemByName.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2022-05-01-preview/examples/DeleteOrderItemByName.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2022-05-01-preview/examples/DeleteOrderItemByName.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2022-05-01-preview/examples/GetAddressByName.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2022-05-01-preview/examples/GetAddressByName.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2022-05-01-preview/examples/GetAddressByName.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2022-05-01-preview/examples/GetAddressByName.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2022-05-01-preview/examples/GetOrderByName.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2022-05-01-preview/examples/GetOrderByName.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2022-05-01-preview/examples/GetOrderByName.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2022-05-01-preview/examples/GetOrderByName.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2022-05-01-preview/examples/GetOrderItemByName.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2022-05-01-preview/examples/GetOrderItemByName.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2022-05-01-preview/examples/GetOrderItemByName.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2022-05-01-preview/examples/GetOrderItemByName.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2022-05-01-preview/examples/ListAddressesAtResourceGroupLevel.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2022-05-01-preview/examples/ListAddressesAtResourceGroupLevel.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2022-05-01-preview/examples/ListAddressesAtResourceGroupLevel.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2022-05-01-preview/examples/ListAddressesAtResourceGroupLevel.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2022-05-01-preview/examples/ListAddressesAtSubscriptionLevel.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2022-05-01-preview/examples/ListAddressesAtSubscriptionLevel.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2022-05-01-preview/examples/ListAddressesAtSubscriptionLevel.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2022-05-01-preview/examples/ListAddressesAtSubscriptionLevel.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2022-05-01-preview/examples/ListConfigurations.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2022-05-01-preview/examples/ListConfigurations.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2022-05-01-preview/examples/ListConfigurations.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2022-05-01-preview/examples/ListConfigurations.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2022-05-01-preview/examples/ListOperations.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2022-05-01-preview/examples/ListOperations.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2022-05-01-preview/examples/ListOperations.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2022-05-01-preview/examples/ListOperations.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2022-05-01-preview/examples/ListOrderAtResourceGroupLevel.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2022-05-01-preview/examples/ListOrderAtResourceGroupLevel.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2022-05-01-preview/examples/ListOrderAtResourceGroupLevel.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2022-05-01-preview/examples/ListOrderAtResourceGroupLevel.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2022-05-01-preview/examples/ListOrderAtSubscriptionLevel.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2022-05-01-preview/examples/ListOrderAtSubscriptionLevel.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2022-05-01-preview/examples/ListOrderAtSubscriptionLevel.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2022-05-01-preview/examples/ListOrderAtSubscriptionLevel.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2022-05-01-preview/examples/ListOrderItemsAtResourceGroupLevel.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2022-05-01-preview/examples/ListOrderItemsAtResourceGroupLevel.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2022-05-01-preview/examples/ListOrderItemsAtResourceGroupLevel.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2022-05-01-preview/examples/ListOrderItemsAtResourceGroupLevel.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2022-05-01-preview/examples/ListOrderItemsAtSubscriptionLevel.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2022-05-01-preview/examples/ListOrderItemsAtSubscriptionLevel.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2022-05-01-preview/examples/ListOrderItemsAtSubscriptionLevel.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2022-05-01-preview/examples/ListOrderItemsAtSubscriptionLevel.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2022-05-01-preview/examples/ListProductFamilies.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2022-05-01-preview/examples/ListProductFamilies.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2022-05-01-preview/examples/ListProductFamilies.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2022-05-01-preview/examples/ListProductFamilies.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2022-05-01-preview/examples/ListProductFamiliesMetadata.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2022-05-01-preview/examples/ListProductFamiliesMetadata.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2022-05-01-preview/examples/ListProductFamiliesMetadata.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2022-05-01-preview/examples/ListProductFamiliesMetadata.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2022-05-01-preview/examples/ReturnOrderItem.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2022-05-01-preview/examples/ReturnOrderItem.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2022-05-01-preview/examples/ReturnOrderItem.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2022-05-01-preview/examples/ReturnOrderItem.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2022-05-01-preview/examples/UpdateAddress.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2022-05-01-preview/examples/UpdateAddress.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2022-05-01-preview/examples/UpdateAddress.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2022-05-01-preview/examples/UpdateAddress.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2022-05-01-preview/examples/UpdateOrderItem.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2022-05-01-preview/examples/UpdateOrderItem.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/preview/2022-05-01-preview/examples/UpdateOrderItem.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/preview/2022-05-01-preview/examples/UpdateOrderItem.json diff --git a/specification/edgeorder/resource-manager/readme.az.md b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/readme.az.md similarity index 100% rename from specification/edgeorder/resource-manager/readme.az.md rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/readme.az.md diff --git a/specification/edgeorder/resource-manager/readme.go.md b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/readme.go.md similarity index 100% rename from specification/edgeorder/resource-manager/readme.go.md rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/readme.go.md diff --git a/specification/edgeorder/resource-manager/readme.md b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/readme.md similarity index 87% rename from specification/edgeorder/resource-manager/readme.md rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/readme.md index ba6edfdad611..8e538cdc2a62 100644 --- a/specification/edgeorder/resource-manager/readme.md +++ b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/readme.md @@ -38,7 +38,7 @@ These settings apply only when `--tag=package-2024-02` is specified on the comma ```yaml $(tag) == 'package-2024-02' input-file: - - Microsoft.EdgeOrder/stable/2024-02-01/edgeorder.json + - stable/2024-02-01/edgeorder.json ``` ### Tag: package-2022-05-preview @@ -46,7 +46,7 @@ These settings apply only when `--tag=package-2022-05-preview` is specified on t ``` yaml $(tag) == 'package-2022-05-preview' input-file: -- Microsoft.EdgeOrder/preview/2022-05-01-preview/edgeorder.json +- preview/2022-05-01-preview/edgeorder.json ``` --- @@ -57,7 +57,7 @@ These settings apply only when `--tag=package-2021-12` is specified on the comma ``` yaml $(tag) == 'package-2021-12' input-file: -- Microsoft.EdgeOrder/stable/2021-12-01/edgeorder.json +- stable/2021-12-01/edgeorder.json ``` --- @@ -68,7 +68,7 @@ These settings apply only when `--tag=package-2020-12-preview` is specified on t ``` yaml $(tag) == 'package-2020-12-preview' input-file: -- Microsoft.EdgeOrder/preview/2020-12-01-preview/edgeorder.json +- preview/2020-12-01-preview/edgeorder.json ``` --- diff --git a/specification/edgeorder/resource-manager/readme.python.md b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/readme.python.md similarity index 100% rename from specification/edgeorder/resource-manager/readme.python.md rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/readme.python.md diff --git a/specification/edgeorder/EdgeOrder.Management/routes.tsp b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/routes.tsp similarity index 100% rename from specification/edgeorder/EdgeOrder.Management/routes.tsp rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/routes.tsp diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2021-12-01/edgeorder.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2021-12-01/edgeorder.json similarity index 90% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2021-12-01/edgeorder.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2021-12-01/edgeorder.json index a4c097c8a5d3..166b97129952 100644 --- a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2021-12-01/edgeorder.json +++ b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2021-12-01/edgeorder.json @@ -30,20 +30,20 @@ ], "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" } ], "responses": { "200": { "description": "Success", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/OperationListResult" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/OperationListResult" } }, "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -72,10 +72,10 @@ ], "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "$filter", @@ -102,7 +102,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -131,10 +131,10 @@ ], "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "$expand", @@ -170,7 +170,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -199,10 +199,10 @@ ], "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "$skipToken", @@ -231,7 +231,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -260,10 +260,10 @@ ], "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "$skipToken", @@ -283,7 +283,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -312,10 +312,10 @@ ], "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "$skipToken", @@ -335,7 +335,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -364,10 +364,10 @@ ], "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "$filter", @@ -401,7 +401,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -430,13 +430,13 @@ ], "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "$filter", @@ -463,7 +463,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -495,13 +495,13 @@ "$ref": "#/parameters/addressNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" } ], "responses": { @@ -514,7 +514,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -541,13 +541,13 @@ "$ref": "#/parameters/addressNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "addressResource", @@ -572,7 +572,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -600,13 +600,13 @@ "$ref": "#/parameters/addressNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" } ], "responses": { @@ -622,7 +622,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -650,13 +650,13 @@ "$ref": "#/parameters/addressNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "If-Match", @@ -688,7 +688,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -715,13 +715,13 @@ ], "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "$skipToken", @@ -741,7 +741,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -773,16 +773,16 @@ "$ref": "#/parameters/orderNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/LocationParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/LocationParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" } ], "responses": { @@ -795,7 +795,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -821,13 +821,13 @@ ], "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "$filter", @@ -861,7 +861,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -893,13 +893,13 @@ "$ref": "#/parameters/orderItemNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "$expand", @@ -919,7 +919,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -946,13 +946,13 @@ "$ref": "#/parameters/orderItemNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "orderItemResource", @@ -977,7 +977,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -1005,13 +1005,13 @@ "$ref": "#/parameters/orderItemNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" } ], "responses": { @@ -1027,7 +1027,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -1055,13 +1055,13 @@ "$ref": "#/parameters/orderItemNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "If-Match", @@ -1093,7 +1093,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -1123,13 +1123,13 @@ "$ref": "#/parameters/orderItemNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "cancellationReason", @@ -1151,7 +1151,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -1180,13 +1180,13 @@ "$ref": "#/parameters/orderItemNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" }, { "name": "returnOrderItemDetails", @@ -1208,7 +1208,7 @@ "default": { "description": "Error response describing reason for operation failure.", "schema": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" } } }, @@ -1293,7 +1293,7 @@ "type": "object", "allOf": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/TrackedResource" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/TrackedResource" } ], "properties": { @@ -1303,7 +1303,7 @@ "x-ms-client-flatten": true }, "systemData": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/systemData", + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/systemData", "description": "Represents resource creation and update time", "readOnly": true } @@ -2275,7 +2275,7 @@ "type": "object", "allOf": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ProxyResource" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ProxyResource" } ], "properties": { @@ -2285,7 +2285,7 @@ "x-ms-client-flatten": true }, "systemData": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/systemData", + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/systemData", "description": "Represents resource creation and update time", "readOnly": true } @@ -2484,7 +2484,7 @@ "readOnly": true }, "error": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorDetail", + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorDetail", "description": "Top level error for the job.", "readOnly": true } @@ -2527,7 +2527,7 @@ "type": "object", "allOf": [ { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/TrackedResource" + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/TrackedResource" } ], "properties": { @@ -2537,7 +2537,7 @@ "x-ms-client-flatten": true }, "systemData": { - "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/systemData", + "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/systemData", "description": "Represents resource creation and update time", "readOnly": true } diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2021-12-01/examples/CancelOrderItem.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2021-12-01/examples/CancelOrderItem.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2021-12-01/examples/CancelOrderItem.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2021-12-01/examples/CancelOrderItem.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2021-12-01/examples/CreateAddress.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2021-12-01/examples/CreateAddress.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2021-12-01/examples/CreateAddress.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2021-12-01/examples/CreateAddress.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2021-12-01/examples/CreateOrderItem.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2021-12-01/examples/CreateOrderItem.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2021-12-01/examples/CreateOrderItem.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2021-12-01/examples/CreateOrderItem.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2021-12-01/examples/DeleteAddressByName.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2021-12-01/examples/DeleteAddressByName.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2021-12-01/examples/DeleteAddressByName.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2021-12-01/examples/DeleteAddressByName.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2021-12-01/examples/DeleteOrderItemByName.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2021-12-01/examples/DeleteOrderItemByName.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2021-12-01/examples/DeleteOrderItemByName.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2021-12-01/examples/DeleteOrderItemByName.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2021-12-01/examples/GetAddressByName.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2021-12-01/examples/GetAddressByName.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2021-12-01/examples/GetAddressByName.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2021-12-01/examples/GetAddressByName.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2021-12-01/examples/GetOrderByName.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2021-12-01/examples/GetOrderByName.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2021-12-01/examples/GetOrderByName.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2021-12-01/examples/GetOrderByName.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2021-12-01/examples/GetOrderItemByName.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2021-12-01/examples/GetOrderItemByName.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2021-12-01/examples/GetOrderItemByName.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2021-12-01/examples/GetOrderItemByName.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2021-12-01/examples/ListAddressesAtResourceGroupLevel.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2021-12-01/examples/ListAddressesAtResourceGroupLevel.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2021-12-01/examples/ListAddressesAtResourceGroupLevel.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2021-12-01/examples/ListAddressesAtResourceGroupLevel.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2021-12-01/examples/ListAddressesAtSubscriptionLevel.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2021-12-01/examples/ListAddressesAtSubscriptionLevel.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2021-12-01/examples/ListAddressesAtSubscriptionLevel.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2021-12-01/examples/ListAddressesAtSubscriptionLevel.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2021-12-01/examples/ListConfigurations.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2021-12-01/examples/ListConfigurations.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2021-12-01/examples/ListConfigurations.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2021-12-01/examples/ListConfigurations.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2021-12-01/examples/ListOperations.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2021-12-01/examples/ListOperations.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2021-12-01/examples/ListOperations.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2021-12-01/examples/ListOperations.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2021-12-01/examples/ListOrderAtResourceGroupLevel.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2021-12-01/examples/ListOrderAtResourceGroupLevel.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2021-12-01/examples/ListOrderAtResourceGroupLevel.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2021-12-01/examples/ListOrderAtResourceGroupLevel.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2021-12-01/examples/ListOrderAtSubscriptionLevel.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2021-12-01/examples/ListOrderAtSubscriptionLevel.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2021-12-01/examples/ListOrderAtSubscriptionLevel.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2021-12-01/examples/ListOrderAtSubscriptionLevel.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2021-12-01/examples/ListOrderItemsAtResourceGroupLevel.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2021-12-01/examples/ListOrderItemsAtResourceGroupLevel.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2021-12-01/examples/ListOrderItemsAtResourceGroupLevel.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2021-12-01/examples/ListOrderItemsAtResourceGroupLevel.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2021-12-01/examples/ListOrderItemsAtSubscriptionLevel.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2021-12-01/examples/ListOrderItemsAtSubscriptionLevel.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2021-12-01/examples/ListOrderItemsAtSubscriptionLevel.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2021-12-01/examples/ListOrderItemsAtSubscriptionLevel.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2021-12-01/examples/ListProductFamilies.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2021-12-01/examples/ListProductFamilies.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2021-12-01/examples/ListProductFamilies.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2021-12-01/examples/ListProductFamilies.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2021-12-01/examples/ListProductFamiliesMetadata.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2021-12-01/examples/ListProductFamiliesMetadata.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2021-12-01/examples/ListProductFamiliesMetadata.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2021-12-01/examples/ListProductFamiliesMetadata.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2021-12-01/examples/ReturnOrderItem.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2021-12-01/examples/ReturnOrderItem.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2021-12-01/examples/ReturnOrderItem.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2021-12-01/examples/ReturnOrderItem.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2021-12-01/examples/UpdateAddress.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2021-12-01/examples/UpdateAddress.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2021-12-01/examples/UpdateAddress.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2021-12-01/examples/UpdateAddress.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2021-12-01/examples/UpdateOrderItem.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2021-12-01/examples/UpdateOrderItem.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2021-12-01/examples/UpdateOrderItem.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2021-12-01/examples/UpdateOrderItem.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2024-02-01/edgeorder.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2024-02-01/edgeorder.json similarity index 92% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2024-02-01/edgeorder.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2024-02-01/edgeorder.json index 7ba4a52627a7..31c474b6e596 100644 --- a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2024-02-01/edgeorder.json +++ b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2024-02-01/edgeorder.json @@ -62,20 +62,20 @@ "description": "List the operations for the provider", "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/OperationListResult" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/OperationListResult" } }, "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" } } }, @@ -98,10 +98,10 @@ "description": "List all the addresses available under the subscription.", "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { "name": "$filter", @@ -136,7 +136,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" } } }, @@ -156,10 +156,10 @@ "description": "List configurations for the given product family, product line and product for the given subscription.", "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { "name": "$skipToken", @@ -188,7 +188,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" } } }, @@ -208,10 +208,10 @@ "description": "List product families for the given subscription.", "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { "name": "$expand", @@ -247,7 +247,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" } } }, @@ -270,10 +270,10 @@ "description": "List order items at subscription level.", "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { "name": "$filter", @@ -315,7 +315,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" } } }, @@ -335,10 +335,10 @@ "description": "List orders at subscription level.", "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { "name": "$skipToken", @@ -366,7 +366,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" } } }, @@ -386,10 +386,10 @@ "description": "List product families metadata for the given subscription.", "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { "name": "$skipToken", @@ -409,7 +409,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" } } }, @@ -432,13 +432,13 @@ "description": "List all the addresses available under the given resource group.", "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "$filter", @@ -473,7 +473,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" } } }, @@ -496,13 +496,13 @@ "description": "Get information about the specified address.", "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "addressName", @@ -525,7 +525,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" } } }, @@ -543,13 +543,13 @@ "description": "Create a new address with the specified parameters. Existing address cannot be updated with this API and should\ninstead be updated with the Update address API.", "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "addressName", @@ -595,7 +595,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" } } }, @@ -617,13 +617,13 @@ "description": "Update the properties of an existing address.", "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "addressName", @@ -676,7 +676,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" } } }, @@ -698,13 +698,13 @@ "description": "Delete an address.", "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "addressName", @@ -738,7 +738,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" } } }, @@ -762,16 +762,16 @@ "description": "Get an order.", "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/LocationParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/LocationParameter" }, { "name": "orderName", @@ -791,7 +791,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" } } }, @@ -811,13 +811,13 @@ "description": "List order items at resource group level.", "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "$filter", @@ -859,7 +859,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" } } }, @@ -882,13 +882,13 @@ "description": "Get an order item.", "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "orderItemName", @@ -918,7 +918,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" } } }, @@ -936,13 +936,13 @@ "description": "Create an order item. Existing order item cannot be updated with this api and should instead be updated with the Update order item\nAPI.", "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "orderItemName", @@ -988,7 +988,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" } } }, @@ -1010,13 +1010,13 @@ "description": "Update the properties of an existing order item.", "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "orderItemName", @@ -1069,7 +1069,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" } } }, @@ -1091,13 +1091,13 @@ "description": "Delete an order item.", "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "orderItemName", @@ -1131,7 +1131,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" } } }, @@ -1155,13 +1155,13 @@ "description": "Cancel order item.", "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "orderItemName", @@ -1193,7 +1193,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" } } }, @@ -1213,13 +1213,13 @@ "description": "Return order item.", "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "orderItemName", @@ -1262,7 +1262,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" } } }, @@ -1283,13 +1283,13 @@ "description": "List orders at resource group level.", "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "$skipToken", @@ -1317,7 +1317,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" } } }, @@ -1469,7 +1469,7 @@ ], "allOf": [ { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/TrackedResource" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/TrackedResource" } ] }, @@ -3107,7 +3107,7 @@ "x-ms-identifiers": [] }, "error": { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorDetail", + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorDetail", "description": "Top level error for the job.", "readOnly": true } @@ -3183,7 +3183,7 @@ ], "allOf": [ { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/TrackedResource" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/TrackedResource" } ] }, @@ -3388,7 +3388,7 @@ ], "allOf": [ { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + "$ref": "../../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" } ] }, @@ -3876,7 +3876,7 @@ "type": "object", "description": "User Assigned Identities", "additionalProperties": { - "$ref": "../../../../../common-types/resource-management/v5/managedidentity.json#/definitions/UserAssignedIdentity", + "$ref": "../../../../../../common-types/resource-management/v5/managedidentity.json#/definitions/UserAssignedIdentity", "x-nullable": true } } diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2024-02-01/examples/CancelOrderItem.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2024-02-01/examples/CancelOrderItem.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2024-02-01/examples/CancelOrderItem.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2024-02-01/examples/CancelOrderItem.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2024-02-01/examples/CreateAddress.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2024-02-01/examples/CreateAddress.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2024-02-01/examples/CreateAddress.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2024-02-01/examples/CreateAddress.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2024-02-01/examples/CreateOrderItem.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2024-02-01/examples/CreateOrderItem.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2024-02-01/examples/CreateOrderItem.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2024-02-01/examples/CreateOrderItem.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2024-02-01/examples/DeleteAddressByName.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2024-02-01/examples/DeleteAddressByName.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2024-02-01/examples/DeleteAddressByName.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2024-02-01/examples/DeleteAddressByName.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2024-02-01/examples/DeleteOrderItemByName.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2024-02-01/examples/DeleteOrderItemByName.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2024-02-01/examples/DeleteOrderItemByName.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2024-02-01/examples/DeleteOrderItemByName.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2024-02-01/examples/GetAddressByName.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2024-02-01/examples/GetAddressByName.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2024-02-01/examples/GetAddressByName.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2024-02-01/examples/GetAddressByName.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2024-02-01/examples/GetOrderByName.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2024-02-01/examples/GetOrderByName.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2024-02-01/examples/GetOrderByName.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2024-02-01/examples/GetOrderByName.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2024-02-01/examples/GetOrderItemByName.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2024-02-01/examples/GetOrderItemByName.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2024-02-01/examples/GetOrderItemByName.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2024-02-01/examples/GetOrderItemByName.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2024-02-01/examples/ListAddressesAtResourceGroupLevel.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2024-02-01/examples/ListAddressesAtResourceGroupLevel.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2024-02-01/examples/ListAddressesAtResourceGroupLevel.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2024-02-01/examples/ListAddressesAtResourceGroupLevel.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2024-02-01/examples/ListAddressesAtSubscriptionLevel.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2024-02-01/examples/ListAddressesAtSubscriptionLevel.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2024-02-01/examples/ListAddressesAtSubscriptionLevel.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2024-02-01/examples/ListAddressesAtSubscriptionLevel.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2024-02-01/examples/ListConfigurations.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2024-02-01/examples/ListConfigurations.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2024-02-01/examples/ListConfigurations.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2024-02-01/examples/ListConfigurations.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2024-02-01/examples/ListOperations.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2024-02-01/examples/ListOperations.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2024-02-01/examples/ListOperations.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2024-02-01/examples/ListOperations.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2024-02-01/examples/ListOrderAtResourceGroupLevel.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2024-02-01/examples/ListOrderAtResourceGroupLevel.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2024-02-01/examples/ListOrderAtResourceGroupLevel.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2024-02-01/examples/ListOrderAtResourceGroupLevel.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2024-02-01/examples/ListOrderAtSubscriptionLevel.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2024-02-01/examples/ListOrderAtSubscriptionLevel.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2024-02-01/examples/ListOrderAtSubscriptionLevel.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2024-02-01/examples/ListOrderAtSubscriptionLevel.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2024-02-01/examples/ListOrderItemsAtResourceGroupLevel.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2024-02-01/examples/ListOrderItemsAtResourceGroupLevel.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2024-02-01/examples/ListOrderItemsAtResourceGroupLevel.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2024-02-01/examples/ListOrderItemsAtResourceGroupLevel.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2024-02-01/examples/ListOrderItemsAtSubscriptionLevel.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2024-02-01/examples/ListOrderItemsAtSubscriptionLevel.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2024-02-01/examples/ListOrderItemsAtSubscriptionLevel.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2024-02-01/examples/ListOrderItemsAtSubscriptionLevel.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2024-02-01/examples/ListProductFamilies.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2024-02-01/examples/ListProductFamilies.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2024-02-01/examples/ListProductFamilies.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2024-02-01/examples/ListProductFamilies.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2024-02-01/examples/ListProductFamiliesMetadata.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2024-02-01/examples/ListProductFamiliesMetadata.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2024-02-01/examples/ListProductFamiliesMetadata.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2024-02-01/examples/ListProductFamiliesMetadata.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2024-02-01/examples/ReturnOrderItem.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2024-02-01/examples/ReturnOrderItem.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2024-02-01/examples/ReturnOrderItem.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2024-02-01/examples/ReturnOrderItem.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2024-02-01/examples/UpdateAddress.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2024-02-01/examples/UpdateAddress.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2024-02-01/examples/UpdateAddress.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2024-02-01/examples/UpdateAddress.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2024-02-01/examples/UpdateOrderItem.json b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2024-02-01/examples/UpdateOrderItem.json similarity index 100% rename from specification/edgeorder/resource-manager/Microsoft.EdgeOrder/stable/2024-02-01/examples/UpdateOrderItem.json rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/stable/2024-02-01/examples/UpdateOrderItem.json diff --git a/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/suppressions.yaml b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/suppressions.yaml new file mode 100644 index 000000000000..7f2d32de2569 --- /dev/null +++ b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/suppressions.yaml @@ -0,0 +1,9 @@ +- tool: TypeSpecRequirement + path: ./preview/2020-12-01-preview/*.json + reason: Brownfield service not ready to migrate +- tool: TypeSpecRequirement + path: ./preview/2022-05-01-preview/*.json + reason: Brownfield service not ready to migrate +- tool: TypeSpecRequirement + path: ./stable/2021-12-01/*.json + reason: Brownfield service not ready to migrate diff --git a/specification/edgeorder/EdgeOrder.Management/tspconfig.yaml b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/tspconfig.yaml similarity index 89% rename from specification/edgeorder/EdgeOrder.Management/tspconfig.yaml rename to specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/tspconfig.yaml index 5e36ddd8e8c0..cd3eae3e8cdc 100644 --- a/specification/edgeorder/EdgeOrder.Management/tspconfig.yaml +++ b/specification/edgeorder/resource-manager/Microsoft.EdgeOrder/EdgeOrder/tspconfig.yaml @@ -7,9 +7,10 @@ options: "@azure-tools/typespec-autorest": use-read-only-status-schema: true omit-unreachable-types: true - emitter-output-dir: "{project-root}/.." + emitter-output-dir: "{project-root}" + output-file: "{version-status}/{version}/edgeorder.json" azure-resource-provider-folder: "resource-manager" - output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/edgeorder.json" + arm-types-dir: "{project-root}/../../../../common-types/resource-management" examples-dir: "{project-root}/examples" "@azure-tools/typespec-csharp": flavor: azure diff --git a/specification/healthdataaiservices/HealthDataAIServices.DeidServices/tspconfig.yaml b/specification/healthdataaiservices/HealthDataAIServices.DeidServices/tspconfig.yaml index 3b684fc2a988..ea5cc52a3fa9 100644 --- a/specification/healthdataaiservices/HealthDataAIServices.DeidServices/tspconfig.yaml +++ b/specification/healthdataaiservices/HealthDataAIServices.DeidServices/tspconfig.yaml @@ -31,6 +31,7 @@ options: package-dir: "health-deidentification-rest" title: DeidentificationClient generate-metadata: true + is-modular-library: false package-details: name: "@azure-rest/health-deidentification" description: "Health Deidentification Service" diff --git a/specification/loadtestservice/LoadTestService/tspconfig.yaml b/specification/loadtestservice/LoadTestService/tspconfig.yaml index cf69d1bb8a02..0f45f3d8d01d 100644 --- a/specification/loadtestservice/LoadTestService/tspconfig.yaml +++ b/specification/loadtestservice/LoadTestService/tspconfig.yaml @@ -40,6 +40,7 @@ options: title: Azure Load Testing description: Azure Load Testing Client generate-metadata: true + is-modular-library: false generate-test: false package-details: name: "@azure-rest/load-testing" diff --git a/specification/loadtestservice/Playwright/tspconfig.yaml b/specification/loadtestservice/Playwright/tspconfig.yaml index fb3513f7c642..cbf3dbb8024c 100644 --- a/specification/loadtestservice/Playwright/tspconfig.yaml +++ b/specification/loadtestservice/Playwright/tspconfig.yaml @@ -28,6 +28,7 @@ options: title: PlaywrightServiceClient description: Microsoft Playwright Service Client generate-metadata: true + is-modular-library: false generate-test: false package-details: name: "@azure-rest/playwright" diff --git a/specification/machinelearningservices/AzureAI.Assets/tspconfig.yaml b/specification/machinelearningservices/AzureAI.Assets/tspconfig.yaml index e731b72c83aa..c306e994007f 100644 --- a/specification/machinelearningservices/AzureAI.Assets/tspconfig.yaml +++ b/specification/machinelearningservices/AzureAI.Assets/tspconfig.yaml @@ -18,6 +18,7 @@ options: generate-sample: true "@azure-tools/typespec-ts": generate-metadata: true + is-modular-library: false package-dir: "ai-resources-autogen-rest" package-details: name: "@azure-rest/ai-resources-autogen" diff --git a/specification/maps/data-plane/Creator/readme.md b/specification/maps/data-plane/Creator/readme.md index 27ebf1e09a53..5662b737bac0 100644 --- a/specification/maps/data-plane/Creator/readme.md +++ b/specification/maps/data-plane/Creator/readme.md @@ -27,7 +27,7 @@ These are the global settings for Creator Client. ``` yaml title: CreatorClient openapi-type: data-plane -tag: package-stable-V2 +tag: package-stable-2.0 add-credentials: true credential-default-policy-type: BearerTokenCredentialPolicy credential-scopes: 'https://atlas.microsoft.com/.default' @@ -45,11 +45,11 @@ directive: reason: false positive from oav is breaking our example validation. See azure/oav#1021. ``` -### Tag: package-stable-V2 +### Tag: package-stable-2.0 -These settings apply only when `--tag=package-stable-V2` is specified on the command line. +These settings apply only when `--tag=package-stable-2.0` is specified on the command line. -```yaml $(tag) == 'package-stable-V2' +```yaml $(tag) == 'package-stable-2.0' input-file: - preview/2.0/alias.json - preview/2.0/dataset.json @@ -60,11 +60,11 @@ input-file: ``` -### Tag: package-2023-03-preview +### Tag: package-2023-03-01-preview -These settings apply only when `--tag=package-2023-03-preview` is specified on the command line. +These settings apply only when `--tag=package-2023-03-01-preview` is specified on the command line. -``` yaml $(tag) == 'package-2023-03-preview' +``` yaml $(tag) == 'package-2023-03-01-preview' input-file: - preview/2023-03-01-preview/alias.json - preview/2023-03-01-preview/dataset.json @@ -78,11 +78,11 @@ input-file: - preview/2023-03-01-preview/wayfind.json ``` -### Tag: package-2022-09-preview +### Tag: package-retired-2022-09-01-preview -These settings apply only when `--tag=package-2022-09-preview` is specified on the command line. +These settings apply only when `--tag=package-retired-2022-09-01-preview` is specified on the command line. -``` yaml $(tag) == 'package-2022-09-preview' +``` yaml $(tag) == 'package-retired-2022-09-01-preview' input-file: - preview/2022-09-01-preview/tileset.json - preview/2022-09-01-preview/style.json @@ -96,11 +96,11 @@ input-file: - preview/2.0/wfs.json ``` -### Tag: package-2023-07 +### Tag: package-retired-2023-07-01 -These settings apply only when `--tag=package-2023-07` is specified on the command line. +These settings apply only when `--tag=package-retired-2023-07-01` is specified on the command line. -``` yaml $(tag) == 'package-2023-07' +``` yaml $(tag) == 'package-retired-2023-07-01' input-file: - stable/2023-07-01/alias.json - stable/2023-07-01/dataset.json diff --git a/specification/maps/data-plane/DataRegistry/readme.md b/specification/maps/data-plane/DataRegistry/readme.md index 8f8d67c3b276..33d5d3012c12 100644 --- a/specification/maps/data-plane/DataRegistry/readme.md +++ b/specification/maps/data-plane/DataRegistry/readme.md @@ -25,29 +25,30 @@ To see additional help and options, run: These are the global settings for Data Registry Client. ``` yaml +# Azure Maps Data Registry APIs V 06-01-2023 will be retired on September 30th, 2025. title: DataRegistryClient openapi-type: data-plane -tag: 2023-06-01 +tag: package-stable-2023-06-01 # at some point those credentials will move away to Swagger according to [this](https://github.com/Azure/autorest/issues/3718) add-credentials: true credential-default-policy-type: BearerTokenCredentialPolicy credential-scopes: https://atlas.microsoft.com/.default ``` -### Tag: 2023-06-01 +### Tag: package-stable-2023-06-01 -These settings apply only when `--tag=2023-06-01` is specified on the command line. +These settings apply only when `--tag=package-stable-2023-06-01` is specified on the command line. -``` yaml $(tag) == '2023-06-01' +``` yaml $(tag) == 'package-stable-2023-06-01' input-file: - stable/2023-06-01/dataregistry.json ``` -### Tag: 2022-12-01 +### Tag: package-retired-2022-12-01-preview -These settings apply only when `--tag=2022-12-01-preview` is specified on the command line. +These settings apply only when `--tag=package-retired-2022-12-01-preview` is specified on the command line. -``` yaml $(tag) == '2022-12-01-preview' +``` yaml $(tag) == 'package-retired-2022-12-01-preview' input-file: - preview/2022-12-01-preview/dataregistry.json ``` diff --git a/specification/maps/data-plane/Geolocation/readme.md b/specification/maps/data-plane/Geolocation/readme.md index 4892ded65015..bd508060ae3b 100644 --- a/specification/maps/data-plane/Geolocation/readme.md +++ b/specification/maps/data-plane/Geolocation/readme.md @@ -27,7 +27,7 @@ These are the global settings for Geolocation Client. ``` yaml title: GeolocationClient openapi-type: data-plane -tag: 1.0-preview +tag: package-stable-1.0 # at some point those credentials will move away to Swagger according to [this](https://github.com/Azure/autorest/issues/3718) add-credentials: true credential-default-policy-type: BearerTokenCredentialPolicy @@ -35,11 +35,11 @@ credential-scopes: https://atlas.microsoft.com/.default ``` -### Tag: 1.0-preview +### Tag: package-stable-1.0 -These settings apply only when `--tag=1.0-preview` is specified on the command line. +These settings apply only when `--tag=package-stable-1.0` is specified on the command line. -``` yaml $(tag) == '1.0-preview' +``` yaml $(tag) == 'package-stable-1.0' input-file: - preview/1.0/geolocation.json ``` diff --git a/specification/maps/data-plane/Microsoft.Maps/Render/preview/2.1/examples/GetMapAttributionV2.json b/specification/maps/data-plane/Microsoft.Maps/Render/preview/2.1/examples/GetMapAttributionV2.json deleted file mode 100644 index d677febc417d..000000000000 --- a/specification/maps/data-plane/Microsoft.Maps/Render/preview/2.1/examples/GetMapAttributionV2.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "parameters": { - "api-version": "2.1", - "tilesetId": "microsoft.base", - "zoom": 6, - "bounds": "-122.414162,47.579490,-122.247157,47.668372", - "subscription-key": "[subscription-key]" - }, - "responses": { - "200": { - "headers": {}, - "body": { - "copyrights": [ - "© 2021 TomTom" - ] - } - }, - "400": { - "headers": {}, - "body": { - "error": { - "code": "400 BadRequest", - "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." - } - } - }, - "401": { - "headers": {}, - "body": { - "error": { - "code": "401 Unauthorized", - "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." - } - } - }, - "403": { - "headers": {}, - "body": { - "error": { - "code": "403 Forbidden", - "message": "Permission, capacity, or authentication issues." - } - } - }, - "404": { - "headers": {}, - "body": { - "error": { - "code": "404 NotFound", - "message": "Not Found: the requested resource could not be found, but it may be available again in the future." - } - } - }, - "500": { - "headers": {}, - "body": { - "error": { - "code": "500 InternalServerError", - "message": "An error occurred while processing the request. Please try again later." - } - } - } - } -} diff --git a/specification/maps/data-plane/Microsoft.Maps/Render/preview/2.1/examples/GetMapTileV2.json b/specification/maps/data-plane/Microsoft.Maps/Render/preview/2.1/examples/GetMapTileV2.json deleted file mode 100644 index 59137b0f97a9..000000000000 --- a/specification/maps/data-plane/Microsoft.Maps/Render/preview/2.1/examples/GetMapTileV2.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "parameters": { - "api-version": "2.1", - "tilesetId": "microsoft.base", - "zoom": 6, - "x": 10, - "y": 22, - "subscription-key": "[subscription-key]" - }, - "responses": { - "200": { - "headers": {}, - "body": "binary string image" - }, - "400": { - "headers": {}, - "body": { - "error": { - "code": "400 BadRequest", - "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." - } - } - }, - "401": { - "headers": {}, - "body": { - "error": { - "code": "401 Unauthorized", - "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." - } - } - }, - "403": { - "headers": {}, - "body": { - "error": { - "code": "403 Forbidden", - "message": "Permission, capacity, or authentication issues." - } - } - }, - "404": { - "headers": {}, - "body": { - "error": { - "code": "404 NotFound", - "message": "Not Found: the requested resource could not be found, but it may be available again in the future." - } - } - }, - "500": { - "headers": {}, - "body": { - "error": { - "code": "500 InternalServerError", - "message": "An error occurred while processing the request. Please try again later." - } - } - } - } -} diff --git a/specification/maps/data-plane/Microsoft.Maps/Render/preview/2.1/examples/GetMapTilesetV2.json b/specification/maps/data-plane/Microsoft.Maps/Render/preview/2.1/examples/GetMapTilesetV2.json deleted file mode 100644 index ef4c8fe5b517..000000000000 --- a/specification/maps/data-plane/Microsoft.Maps/Render/preview/2.1/examples/GetMapTilesetV2.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "parameters": { - "api-version": "2.1", - "tilesetId": "microsoft.base", - "subscription-key": "[subscription-key]" - }, - "responses": { - "200": { - "headers": {}, - "body": { - "tilejson": "2.2.0", - "version": "1.0.0", - "attribution": "© 2021 TomTom", - "scheme": "xyz", - "tiles": [ - "https://atlas.microsoft.com/map/tile?api-version=2.0&tilesetId={tilesetId}&zoom={zoom}&x={x}&y={y}" - ], - "minzoom": 0, - "maxzoom": 22, - "bounds": [ - -180, - -90, - 180, - 90 - ] - } - }, - "400": { - "headers": {}, - "body": { - "error": { - "code": "400 BadRequest", - "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive." - } - } - }, - "401": { - "headers": {}, - "body": { - "error": { - "code": "401 Unauthorized", - "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." - } - } - }, - "403": { - "headers": {}, - "body": { - "error": { - "code": "403 Forbidden", - "message": "Permission, capacity, or authentication issues." - } - } - }, - "404": { - "headers": {}, - "body": { - "error": { - "code": "404 NotFound", - "message": "Not Found: the requested resource could not be found, but it may be available again in the future." - } - } - }, - "500": { - "headers": {}, - "body": { - "error": { - "code": "500 InternalServerError", - "message": "An error occurred while processing the request. Please try again later." - } - } - } - } -} diff --git a/specification/maps/data-plane/Microsoft.Maps/Render/preview/2.1/render.json b/specification/maps/data-plane/Microsoft.Maps/Render/preview/2.1/render.json deleted file mode 100644 index daf31d40541a..000000000000 --- a/specification/maps/data-plane/Microsoft.Maps/Render/preview/2.1/render.json +++ /dev/null @@ -1,620 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "Azure Maps Render Service", - "version": "2.1", - "description": "Azure Maps Render REST APIs" - }, - "host": "atlas.microsoft.com", - "schemes": [ - "https" - ], - "consumes": [], - "produces": [ - "application/json", - "application/xml" - ], - "securityDefinitions": { - "AADToken": { - "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", - "flow": "implicit", - "description": "These are the [Azure Active Directory OAuth2](https://docs.microsoft.com/azure/active-directory/develop/v1-overview) Flows. When paired with [Azure role-based access](https://docs.microsoft.com/azure/role-based-access-control/overview) control it can be used to control access to Azure Maps REST APIs. Azure role-based access controls are used to designate access to one or more Azure Maps resource account or sub-resources. Any user, group, or service principal can be granted access via a built-in role or a custom role composed of one or more permissions to Azure Maps REST APIs.\n\nTo implement scenarios, we recommend viewing [authentication concepts](https://aka.ms/amauth). In summary, this security definition provides a solution for modeling application(s) via objects capable of access control on specific APIs and scopes.\n\n#### Notes\n* This security definition **requires** the use of the `x-ms-client-id` header to indicate which Azure Maps resource the application is requesting access to. This can be acquired from the [Maps management API](https://aka.ms/amauthdetails).\n* \nThe `Authorization URL` is specific to the Azure public cloud instance. Sovereign clouds have unique Authorization URLs and Azure Active directory configurations. \n* \nThe Azure role-based access control is configured from the [Azure management plane](https://aka.ms/amrbac) via Azure portal, PowerShell, CLI, Azure SDKs, or REST APIs.\n* \nUsage of the [Azure Maps Web SDK](https://aka.ms/amaadmc) allows for configuration based setup of an application for multiple use cases.\n* Currently, Azure Active Directory [v1.0 or v2.0](https://docs.microsoft.com/azure/active-directory/develop/azure-ad-endpoint-comparison) supports Work, School, and Guests but does not support Personal accounts.", - "scopes": { - "https://atlas.microsoft.com/.default": "https://atlas.microsoft.com/.default" - } - }, - "SharedKey": { - "type": "apiKey", - "description": "This is a shared key that is provisioned when you [Create an Azure Maps account](https://docs.microsoft.com/azure/azure-maps/quick-demo-map-app#create-an-azure-maps-account) in the Azure portal or using PowerShell, CLI, Azure SDKs, or REST API.\n\n With this key, any application can access all REST API. In other words, this key can be used as a master key in the account that they are issued in.\n\n For publicly exposed applications, our recommendation is to use the [confidential client applications](https://docs.microsoft.com/azure/azure-maps/authentication-best-practices#confidential-client-applications) approach to access Azure Maps REST APIs so your key can be securely stored.", - "name": "subscription-key", - "in": "query" - }, - "SasToken": { - "type": "apiKey", - "description": "This is a shared access signature token is created from the List SAS operation on the [Azure Maps resource](https://aka.ms/amauth) through the Azure management plane via Azure portal, PowerShell, CLI, Azure SDKs, or REST APIs.\n\n With this token, any application is authorized to access with Azure role-based access controls and fine-grain control to the expiration, rate, and region(s) of use for the particular token. In other words, the SAS Token can be used to allow applications to control access in a more secured way than the shared key.\n\n For publicly exposed applications, our recommendation is to configure a specific list of allowed origins on the [Map account resource](https://aka.ms/amauth) to limit rendering abuse and regularly renew the SAS Token.", - "name": "SAS Token", - "in": "header" - } - }, - "security": [ - { - "AADToken": [ - "https://atlas.microsoft.com/.default" - ] - }, - { - "SharedKey": [] - }, - { - "SasToken": [] - } - ], - "responses": { - "400": { - "description": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive.", - "schema": { - "$ref": "#/definitions/ODataErrorResponse" - } - }, - "401": { - "description": "Access denied due to invalid subscription key or invalid Azure Active Directory bearer token. Make sure to provide a valid key for an active Azure subscription and Maps resource. Otherwise, verify the [WWW-Authenticate](https://tools.ietf.org/html/rfc6750#section-3.1) header for error code and description of the provided AAD bearer token.", - "schema": { - "$ref": "#/definitions/ODataErrorResponse" - }, - "headers": { - "WWW-Authenticate": { - "type": "string", - "description": "Bearer realm=\"https://atlas.microsoft.com/\", error=\"invalid_token\", error_description=\"The access token expired\"" - } - } - }, - "403": { - "description": "Permission, capacity, or authentication issues.", - "schema": { - "$ref": "#/definitions/ODataErrorResponse" - } - }, - "404": { - "description": "Not Found: the requested resource could not be found, but it may be available again in the future.", - "schema": { - "$ref": "#/definitions/ODataErrorResponse" - } - }, - "500": { - "description": "An error occurred while processing the request. Please try again later.", - "schema": { - "$ref": "#/definitions/ODataErrorResponse" - } - } - }, - "parameters": { - "ClientId": { - "name": "x-ms-client-id", - "description": "Specifies which account is intended for usage in conjunction with the Azure AD security model. It represents a unique ID for the Azure Maps account and can be retrieved from Azure Maps management plane Account API. To use Azure AD security in Azure Maps see the following [articles](https://aka.ms/amauthdetails) for guidance.", - "type": "string", - "in": "header", - "required": false, - "x-ms-parameter-location": "client" - }, - "SubscriptionKey": { - "name": "subscription-key", - "description": "One of the Azure Maps keys provided from an Azure Map Account. Please refer to this [article](https://docs.microsoft.com/azure/azure-maps/how-to-manage-authentication) for details on how to manage authentication.", - "type": "string", - "in": "query", - "required": false, - "x-ms-parameter-location": "client" - }, - "ApiVersion": { - "name": "api-version", - "description": "Version number of Azure Maps API. Current version is 2.1", - "type": "string", - "in": "query", - "required": true, - "default": "2.0", - "x-ms-parameter-location": "client" - }, - "TilesetId_rv2": { - "name": "tilesetId", - "description": "A tileset is a collection of raster or vector data broken up into a uniform grid of square tiles at preset zoom levels. Every tileset has a **tilesetId** to use when making requests. The **tilesetId** for tilesets created using [Azure Maps Creator](https://aka.ms/amcreator) are generated through the [Tileset Create API](https://docs.microsoft.com/rest/api/maps-creator/tileset). The ready-to-use tilesets supplied by Azure Maps are listed below. For example, microsoft.base.", - "type": "string", - "in": "query", - "required": true, - "enum": [ - "microsoft.base", - "microsoft.base.labels", - "microsoft.base.hybrid", - "microsoft.terra.main", - "microsoft.base.road", - "microsoft.base.darkgrey", - "microsoft.base.labels.road", - "microsoft.base.hybrid.road", - "microsoft.imagery", - "microsoft.weather.radar.main", - "microsoft.weather.infrared.main", - "microsoft.dem", - "microsoft.dem.contours" - ], - "x-ms-enum": { - "name": "TilesetID", - "modelAsString": true, - "values": [ - { - "value": "microsoft.base", - "description": "A base map is a standard map that displays roads, natural and artificial features along with the labels for those features in a vector tile.
\n\nSupports zoom levels 0 through 22. Format: vector (pbf)." - }, - { - "value": "microsoft.base.labels", - "description": "Displays labels for roads, natural and artificial features in a vector tile.
\n\nSupports zoom levels 0 through 22. Format: vector (pbf)." - }, - { - "value": "microsoft.base.hybrid", - "description": "Displays road, boundary and label data in a vector tile.
\n\nSupports zoom levels 0 through 22. Format: vector (pbf)." - }, - { - "value": "microsoft.terra.main", - "description": "Shaded relief and terra layers.
\n\nSupports zoom levels 0 through 6. Format: raster (png)." - }, - { - "value": "microsoft.base.road", - "description": "All layers with our main style.
\n\nSupports zoom levels 0 through 22. Format: raster (png)." - }, - { - "value": "microsoft.base.darkgrey", - "description": "All layers with our dark grey style.
\n\nSupports zoom levels 0 through 22. Format: raster (png)." - }, - { - "value": "microsoft.base.labels.road", - "description": "Label data in our main style.
\n\nSupports zoom levels 0 through 22. Format: raster (png)." - }, - { - "value": "microsoft.base.hybrid.road", - "description": "Road, boundary and label data in our main style.
\n\nSupports zoom levels 0 through 22. Format: raster (png)." - }, - { - "value": "microsoft.imagery", - "description": "A combination of satellite and aerial imagery. Only available in S1 pricing SKU.
\n\nSupports zoom levels 1 through 19. Format: raster (jpeg)." - }, - { - "value": "microsoft.weather.radar.main", - "description": "Weather radar tiles. Latest weather radar images including areas of rain, snow, ice and mixed conditions. Please see [coverage information](https://aka.ms/AzureMapsWeatherCoverage) for Azure Maps Weather service. To learn more about the Radar data, please see [Weather concepts](https://aka.ms/AzureMapsWeatherConcepts).
\n\nSupports zoom levels 0 through 15. Format: raster (png)." - }, - { - "value": "microsoft.weather.infrared.main", - "description": "Weather infrared tiles. Latest Infrared Satellite images shows clouds by their temperature. Please see [coverage information](https://aka.ms/AzureMapsWeatherCoverage) for Azure Maps Weather service. To learn more about the returned Satellite data, please see [Weather concepts](https://aka.ms/AzureMapsWeatherConcepts).
\n\nSupports zoom levels 0 through 15. Format: raster (png)." - }, - { - "value": "microsoft.dem", - "description": "Digital Elevation Model tiles. The tiles are in the GeoTIFF format with a single 32-bit floating point band. The tiles cover the whole landmass of Earth. Some small islands (e.g., atolls) might not be represented accurately.
\n* The vertical unit for measurement of elevation height is meters. An elevation value of -32767.0 is used for points that have no data value, most often returned where there isn't landmass (i.e. water).
\n* The horizontal reference datum is the World Geodetic System 1984 (WGS84-G1150) and the vertical reference datum is the Earth Gravitational Model 2008 (EGM2008).
\n* Tiles are 258x258 pixel squares rather than the standard 256 x 256. This is done to allow for accurate interpolation of values at the tile edges. As such adjacent tiles overlap by 1 pixel along all edges.
\n* Tile data comes from the [Airbus WorldDEM4Ortho product](https://www.intelligence-airbusds.com/worlddem-streaming/). Urban areas are approximately leveled down to ground level. All other areas are represented by the object surface level (e.g., trees).
\n\nSupports zoom level 13 only. Format: raster (tiff)." - }, - { - "value": "microsoft.dem.contours", - "description": "Digital elevation contour line tiles. Compared to the microsoft.dem option, these tiles are in vector format and intended for visualization purpose. The tiles cover the whole landmass of Earth. Some small islands (e.g., atolls) might not be represented accurately.
\n* The vertical unit for measurement of elevation height is meters.
\n* The horizontal reference datum is the World Geodetic System 1984 (WGS84-G1150) and the vertical reference datum is the Earth Gravitational Model 2008 (EGM2008).
\n* Tile data comes from the [Airbus WorldDEM4Ortho product](https://www.intelligence-airbusds.com/worlddem-streaming/). Urban areas are approximately leveled down to ground level. All other areas are represented by the object surface level (e.g., trees).
\n\nSupports zoom levels 9 through 14. Format: vector (pbf)." - } - ] - }, - "x-ms-parameter-location": "method" - }, - "xTileIndex": { - "name": "x", - "x-ms-client-name": "xTileIndex", - "in": "query", - "description": "X coordinate of the tile on zoom grid. Value must be in the range [0, 2`zoom` -1].\n\nPlease see [Zoom Levels and Tile Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) for details.", - "required": true, - "type": "integer", - "format": "int32", - "x-ms-parameter-location": "method" - }, - "yTileIndex": { - "name": "y", - "x-ms-client-name": "yTileIndex", - "in": "query", - "description": "Y coordinate of the tile on zoom grid. Value must be in the range [0, 2`zoom` -1].\n\nPlease see [Zoom Levels and Tile Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) for details.", - "required": true, - "type": "integer", - "format": "int32", - "x-ms-parameter-location": "method" - }, - "MapTileV2Zoom": { - "name": "zoom", - "in": "query", - "description": "Zoom level for the desired tile. Please find TilesetID list below for more details on supported zoom level for each tilesetId.
\n\nPlease see [Zoom Levels and Tile Grid](https://docs.microsoft.com/en-us/azure/location-based-services/zoom-levels-and-tile-grid) for details.", - "required": true, - "type": "integer", - "format": "int32", - "x-ms-parameter-location": "method" - }, - "Language": { - "name": "language", - "in": "query", - "description": "Language in which search results should be returned. Should be one of supported IETF language tags, case insensitive. When data in specified language is not available for a specific field, default language is used.\n\nPlease refer to [Supported Languages](https://docs.microsoft.com/en-us/azure/azure-maps/supported-languages) for details.", - "required": false, - "type": "string", - "x-ms-parameter-location": "method" - }, - "Text": { - "name": "text", - "in": "query", - "description": "Yes/no value to exclude textual data from response. Only images and country names will be in response.", - "required": false, - "type": "string", - "enum": [ - "yes", - "no" - ], - "default": "yes", - "x-ms-parameter-location": "method" - }, - "View": { - "name": "view", - "in": "query", - "description": "The View parameter specifies which set of geopolitically disputed content is returned via Azure Maps services, including borders and labels displayed on the map. The View parameter (also referred to as “user region parameter”) will show the correct maps for that country/region. By default, the View parameter is set to “Unified” even if you haven’t defined it in the request. It is your responsibility to determine the location of your users, and then set the View parameter correctly for that location. Alternatively, you have the option to set ‘View=Auto’, which will return the map data based on the IP address of the request. The View parameter in Azure Maps must be used in compliance with applicable laws, including those regarding mapping, of the country where maps, images and other data and third party content that you are authorized to access via Azure Maps is made available. Example: view=IN.\n\nPlease refer to [Supported Views](https://aka.ms/AzureMapsLocalizationViews) for details and to see the available Views.", - "required": false, - "type": "string", - "x-ms-parameter-location": "method" - } - }, - "paths": { - "/map/tile": { - "get": { - "description": "**Applies to**: S0 and S1 pricing tiers.\n\nThe Get Map Tiles API allows users to request map tiles in vector or raster formats typically to be integrated into a map control or SDK. Some example tiles that can be requested are Azure Maps road tiles, real-time Weather Radar tiles or the map tiles created using [Azure Maps Creator](https://aka.ms/amcreator). By default, Azure Maps uses vector tiles for its web map control (Web SDK) and Android SDK.", - "operationId": "RenderV2_GetMapTile", - "x-ms-examples": { - "GetMapTile": { - "$ref": "./examples/GetMapTileV2.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ClientId" - }, - { - "$ref": "#/parameters/SubscriptionKey" - }, - { - "$ref": "#/parameters/ApiVersion" - }, - { - "$ref": "#/parameters/TilesetId_rv2" - }, - { - "$ref": "#/parameters/MapTileV2Zoom" - }, - { - "$ref": "#/parameters/xTileIndex" - }, - { - "$ref": "#/parameters/yTileIndex" - }, - { - "name": "timeStamp", - "in": "query", - "description": "The desired date and time of the requested tile. This parameter must be specified in the standard date-time format (e.g. 2019-11-14T16:03:00-08:00), as defined by [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601). This parameter is only supported when tilesetId parameter is set to one of the values below.\n \n* microsoft.weather.infrared.main: We provide tiles up to 3 hours in the past. Tiles are available in 10-minute intervals. We round the timeStamp value to the nearest 10-minute time frame.\n* microsoft.weather.radar.main: We provide tiles up to 1.5 hours in the past and up to 2 hours in the future. Tiles are available in 5-minute intervals. We round the timeStamp value to the nearest 5-minute time frame.", - "required": false, - "type": "string" - }, - { - "name": "tileSize", - "in": "query", - "description": "The size of the returned map tile in pixels.", - "required": false, - "type": "string", - "default": "256", - "enum": [ - "256", - "512" - ], - "x-ms-enum": { - "name": "TileSize", - "modelAsString": true, - "values": [ - { - "value": "256", - "description": "Return a 256 by 256 pixel tile. Available for all tilesetIds except for\n* microsoft.terra.main" - }, - { - "value": "512", - "description": "Return a 512 by 512 pixel tile. Available for all tilesetIds except for \n* microsoft.weather.radar.main\n* microsoft.weather.infrared.main\n* microsoft.base.hybrid\n* microsoft.dem\n* microsoft.imagery" - } - ] - } - }, - { - "$ref": "#/parameters/Language" - }, - { - "$ref": "#/parameters/View" - } - ], - "produces": [ - "application/json" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/MapTileResultv2" - } - }, - "400": { - "$ref": "#/responses/400" - }, - "401": { - "$ref": "#/responses/401" - }, - "403": { - "$ref": "#/responses/403" - }, - "404": { - "$ref": "#/responses/404" - }, - "500": { - "$ref": "#/responses/500" - } - } - } - }, - "/map/tileset": { - "get": { - "description": "**Applies to**: S0 and S1 pricing tiers.\n\nThe Get Map Tileset API allows users to request metadata for a tileset.", - "operationId": "RenderV2_GetMapTileset", - "x-ms-examples": { - "GetMapTile": { - "$ref": "./examples/GetMapTilesetV2.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ClientId" - }, - { - "$ref": "#/parameters/SubscriptionKey" - }, - { - "$ref": "#/parameters/ApiVersion" - }, - { - "$ref": "#/parameters/TilesetId_rv2" - } - ], - "produces": [ - "application/json" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/MapTilesetResultV2" - } - }, - "400": { - "$ref": "#/responses/400" - }, - "401": { - "$ref": "#/responses/401" - }, - "403": { - "$ref": "#/responses/403" - }, - "404": { - "$ref": "#/responses/404" - }, - "500": { - "$ref": "#/responses/500" - } - } - } - }, - "/map/attribution": { - "get": { - "description": "**Applies to**: S0 and S1 pricing tiers.\n\nThe Get Map Attribution API allows users to request map copyright attribution information for a section of a tileset.", - "operationId": "RenderV2_GetMapAttribution", - "x-ms-examples": { - "GetMapTile": { - "$ref": "./examples/GetMapAttributionV2.json" - } - }, - "parameters": [ - { - "$ref": "#/parameters/ClientId" - }, - { - "$ref": "#/parameters/SubscriptionKey" - }, - { - "$ref": "#/parameters/ApiVersion" - }, - { - "$ref": "#/parameters/TilesetId_rv2" - }, - { - "$ref": "#/parameters/MapTileV2Zoom" - }, - { - "name": "bounds", - "in": "query", - "description": "The string that represents the rectangular area of a bounding box. The bounds parameter is defined by the 4 bounding box coordinates, with WGS84 longitude and latitude of the southwest corner followed by WGS84 longitude and latitude of the northeast corner. The string is presented in the following format: `[SouthwestCorner_Longitude, SouthwestCorner_Latitude, NortheastCorner_Longitude, NortheastCorner_Latitude]`.", - "required": true, - "type": "array", - "collectionFormat": "csv", - "items": { - "type": "string" - } - } - ], - "produces": [ - "application/json" - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/MapAttributionResultV2" - } - }, - "400": { - "$ref": "#/responses/400" - }, - "401": { - "$ref": "#/responses/401" - }, - "403": { - "$ref": "#/responses/403" - }, - "404": { - "$ref": "#/responses/404" - }, - "500": { - "$ref": "#/responses/500" - } - } - } - } - }, - "definitions": { - "ODataErrorResponse": { - "type": "object", - "description": "This response object is returned when an error occurs in the Maps API.", - "properties": { - "error": { - "$ref": "#/definitions/ODataError" - } - } - }, - "ODataError": { - "type": "object", - "description": "This object is returned when an error occurs in the Maps API.", - "properties": { - "code": { - "type": "string", - "readOnly": true, - "description": "The ODataError code." - }, - "message": { - "type": "string", - "readOnly": true, - "description": "If available, a human readable description of the error." - }, - "details": { - "type": "array", - "items": { - "$ref": "#/definitions/ODataError" - } - }, - "target": { - "type": "string", - "readOnly": true, - "description": "If available, the target causing the error." - } - } - }, - "MapTileResultv2": { - "description": "The tile returned from a successful API call.", - "type": "string", - "format": "binary", - "readOnly": true - }, - "MapTilesetResultV2": { - "description": "Metadata for a tileset in the TileJSON format.", - "type": "object", - "readOnly": true, - "properties": { - "tilejson": { - "type": "string", - "pattern": "\\d+\\.\\d+\\.\\d+\\w?[\\w\\d]*", - "description": "Version of the TileJSON spec." - }, - "name": { - "type": "string", - "description": "Name of the tileset." - }, - "description": { - "type": "string", - "description": "Text description of the tileset." - }, - "version": { - "type": "string", - "pattern": "\\d+\\.\\d+\\.\\d+\\w?[\\w\\d]*", - "description": "A semver.org style version number for the tiles contained within the tileset." - }, - "attribution": { - "type": "string", - "description": "Copyright attribution to be displayed on the map." - }, - "template": { - "type": "string", - "description": "A mustache template to be used to format data from grids for interaction." - }, - "legend": { - "type": "string", - "description": "A legend to be displayed with the map." - }, - "scheme": { - "type": "string", - "description": "Default: \"xyz\". Either \"xyz\" or \"tms\". Influences the y direction of the tile coordinates." - }, - "tiles": { - "type": "array", - "items": { - "type": "string" - }, - "description": "An array of tile endpoints." - }, - "grids": { - "type": "array", - "items": { - "type": "string" - }, - "description": "An array of interactivity endpoints." - }, - "data": { - "type": "array", - "items": { - "type": "string" - }, - "description": "An array of data files in GeoJSON format." - }, - "minzoom": { - "minimum": 0, - "maximum": 30, - "type": "integer", - "description": "The minimum zoom level." - }, - "maxzoom": { - "minimum": 0, - "maximum": 30, - "type": "integer", - "description": "The maximum zoom level." - }, - "bounds": { - "type": "array", - "items": { - "type": "number" - }, - "description": "The WGS84 bounds of the tileset." - }, - "center": { - "type": "array", - "items": { - "type": "number" - }, - "description": "The default location of the tileset in the form [longitude, latitude, zoom]." - } - } - }, - "MapAttributionResultV2": { - "description": "Copyright attribution for the requested section of a tileset.", - "type": "object", - "readOnly": true, - "properties": { - "copyrights": { - "type": "array", - "items": { - "type": "string" - }, - "description": "A list of copyright strings." - } - } - } - } -} diff --git a/specification/maps/data-plane/Route/readme.md b/specification/maps/data-plane/Route/readme.md index f43027d651ce..d4aa904038b8 100644 --- a/specification/maps/data-plane/Route/readme.md +++ b/specification/maps/data-plane/Route/readme.md @@ -27,7 +27,7 @@ These are the global settings for Route Client. ``` yaml title: RouteClient openapi-type: data-plane -tag: package-2025-01 +tag: package-stable-2025-01-01 add-credentials: true credential-default-policy-type: BearerTokenCredentialPolicy credential-scopes: 'https://atlas.microsoft.com/.default' @@ -39,11 +39,11 @@ modelerfour: lenient-model-deduplication: true ``` -### Tag: package-2025-01 +### Tag: package-stable-2025-01-01 -These settings apply only when `--tag=package-2025-01` is specified on the command line. +These settings apply only when `--tag=package-stable-2025-01-01` is specified on the command line. -```yaml $(tag) == 'package-2025-01' +```yaml $(tag) == 'package-stable-2025-01-01' input-file: - stable/2025-01-01/route.json @@ -52,11 +52,11 @@ suppressions: reason: False alarm. Per the Noun_Verb convention for Operation Ids, the noun 'Route' should not appear after the underscore. ``` -### Tag: package-preview-2024-7 +### Tag: package-2024-07-01-preview -These settings apply only when `--tag=package-preview-2024-07` is specified on the command line. +These settings apply only when `--tag=package-2024-07-01-preview` is specified on the command line. -```yaml $(tag) == 'package-preview-2024-07' +```yaml $(tag) == 'package-2024-07-01-preview' input-file: - preview/2024-07-01-preview/route.json @@ -65,11 +65,11 @@ suppressions: reason: False alarm. Per the Noun_Verb convention for Operation Ids, the noun 'Route' should not appear after the underscore. ``` -### Tag: package-preview-2024-6 +### Tag: package-retired-2024-06-01-preview -These settings apply only when `--tag=package-preview-2024-06` is specified on the command line. +These settings apply only when `--tag=package-2024-06-01-preview` is specified on the command line. -```yaml $(tag) == 'package-preview-2024-06' +```yaml $(tag) == 'package-2024-06-01-preview' input-file: - preview/2024-06-01-preview/route.json @@ -78,11 +78,11 @@ suppressions: reason: False alarm. Per the Noun_Verb convention for Operation Ids, the noun 'Route' should not appear after the underscore. ``` -### Tag: package-preview-2024-5 +### Tag: package-retired-2024-05-01-preview -These settings apply only when `--tag=package-preview-2024-05` is specified on the command line. +These settings apply only when `--tag=package-2024-05-01-preview` is specified on the command line. -```yaml $(tag) == 'package-preview-2024-05' +```yaml $(tag) == 'package-2024-05-01-preview' input-file: - preview/2024-05-01-preview/route.json @@ -91,47 +91,47 @@ suppressions: reason: False alarm. Per the Noun_Verb convention for Operation Ids, the noun 'Route' should not appear after the underscore. ``` -### Tag: package-preview-2024-04 +### Tag: package-2024-04-01-preview -These settings apply only when `--tag=package-preview-2024-04` is specified on the command line. +These settings apply only when `--tag=package-2024-04-01-preview` is specified on the command line. -```yaml $(tag) == 'package-preview-2024-04' +```yaml $(tag) == 'package-2024-04-01-preview' input-file: - preview/2024-04-01-preview/route.json ``` -### Tag: package-preview-2023-10 +### Tag: package-retired-2023-10-01-preview -These settings apply only when `--tag=package-preview-2023-10` is specified on the command line. +These settings apply only when `--tag=package-retired-2023-10-01-preview` is specified on the command line. -``` yaml $(tag) == 'package-preview-2023-10' +``` yaml $(tag) == 'package-retired-2023-10-01-preview' input-file: - preview/2023-10-01-preview/route.json ``` -### Tag: package-preview-2023-09 +### Tag: package-retired-2023-09-01-preview -These settings apply only when `--tag=package-preview-2023-09` is specified on the command line. +These settings apply only when `--tag=package-retired-2023-09-01-preview` is specified on the command line. -``` yaml $(tag) == 'package-preview-2023-09' +``` yaml $(tag) == 'package-retired-2023-09-01-preview' input-file: - preview/2023-09-01-preview/route.json ``` -### Tag: package-preview-2023-08 +### Tag: package-retired-2023-08-01-preview -These settings apply only when `--tag=package-preview-2023-08` is specified on the command line. +These settings apply only when `--tag=package-retired-2023-08-01-preview` is specified on the command line. -``` yaml $(tag) == 'package-preview-2023-08' +``` yaml $(tag) == 'package-retired-2023-08-01-preview' input-file: - preview/2023-08-01-preview/route.json ``` -### Tag: 1.0 +### Tag: package-stable-deprecated-1.0 -These settings apply only when `--tag=1.0` is specified on the command line. +These settings apply only when `--tag=package-stable-deprecated-1.0` is specified on the command line. -``` yaml $(tag) == '1.0' +``` yaml $(tag) == 'package-stable-deprecated-1.0' input-file: - preview/1.0/route.json ``` diff --git a/specification/maps/data-plane/Search/readme.md b/specification/maps/data-plane/Search/readme.md index 872c83ae9393..2d4185dad0f3 100644 --- a/specification/maps/data-plane/Search/readme.md +++ b/specification/maps/data-plane/Search/readme.md @@ -27,7 +27,7 @@ These are the global settings for Search Client. ``` yaml title: SearchClient openapi-type: data-plane -tag: package-2025-01 +tag: package-stable-2025-01-01 add-credentials: true credential-default-policy-type: BearerTokenCredentialPolicy credential-scopes: 'https://atlas.microsoft.com/.default' @@ -39,84 +39,85 @@ modelerfour: lenient-model-deduplication: true ``` -### Tag: package-preview-2025-06 +### Tag: package-stable-2025-01-01 -These settings apply only when `--tag=package-preview-2025-06` is specified on the command line. +These settings apply only when `--tag=package-stable-2025-01-01` is specified on the command line. -``` yaml $(tag) == 'package-preview-2025-06' +```yaml $(tag) == 'package-stable-2025-01-01' input-file: - - preview/2025-06-01-preview/search.json + - stable/2025-01-01/search.json ``` -### Tag: package-2025-01 +### Tag: package-stable-2023-06-01 -These settings apply only when `--tag=package-2025-01` is specified on the command line. +These settings apply only when `--tag=package-stable-2023-06-01` is specified on the command line. -```yaml $(tag) == 'package-2025-01' +```yaml $(tag) == 'package-stable-2023-06-01' input-file: - - stable/2025-01-01/search.json + - stable/2023-06-01/search.json ``` -### Tag: package-preview-2024-04 +### Tag: package-2025-06-01-preview -These settings apply only when `--tag=package-preview-2024-04` is specified on the command line. +These settings apply only when `--tag=package-2025-06-01-preview` is specified on the command line. -``` yaml $(tag) == 'package-preview-2024-04' +``` yaml $(tag) == 'package-2025-06-01-preview' input-file: - - preview/2024-04-01-preview/search.json + - preview/2025-06-01-preview/search.json ``` -### Tag: package-2023-06 +### Tag: package-retired-2024-04-01-preview -These settings apply only when `--tag=package-2023-06` is specified on the command line. +These settings apply only when `--tag=package-retired-2024-04-01-preview` is specified on the command line. -```yaml $(tag) == 'package-2023-06' +``` yaml $(tag) == 'package-retired-2024-04-01-preview' input-file: - - stable/2023-06-01/search.json + - preview/2024-04-01-preview/search.json ``` -### Tag: 1.0 -These settings apply only when `--tag=1.0` is specified on the command line. +### Tag: package-retired-2022-12-01-preview + +These settings apply only when `--tag=package-retired-2022-12-01-preview` is specified on the command line. -``` yaml $(tag) == '1.0' +``` yaml $(tag) == 'package-retired-2022-12-01-preview' input-file: - - preview/1.0/search.json + - preview/2022-12-01-preview/search.json ``` -### Tag: 2.0-preview +### Tag: package-retired-2022-09-01-preview -These settings apply only when `--tag=2021-11-01-preview` is specified on the command line. +These settings apply only when `--tag=package-retired-2022-09-01-preview` is specified on the command line. -``` yaml $(tag) == '2021-11-01-preview' +``` yaml $(tag) == 'package-retired-2022-09-01-preview' input-file: - - preview/2021-11-01-preview/geocoding.json + - preview/2022-09-01-preview/search.json ``` -### Tag: 2.1-preview +### Tag: package-retired-2022-02-01-preview -These settings apply only when `--tag=2022-02-01-preview` is specified on the command line. +These settings apply only when `--tag=package-retired-2022-02-01-preview` is specified on the command line. -``` yaml $(tag) == '2022-02-01-preview' +``` yaml $(tag) == 'package-retired-2022-02-01-preview' input-file: - preview/2022-02-01-preview/geocoding.json ``` -### Tag: package-preview-2022-09 +### Tag: package-retired-2021-11-01-preview -These settings apply only when `--tag=package-preview-2022-09` is specified on the command line. +These settings apply only when `--tag=package-retired-2021-11-01-preview` is specified on the command line. -``` yaml $(tag) == 'package-preview-2022-09' +``` yaml $(tag) == 'package-retired-2021-11-01-preview' input-file: - - preview/2022-09-01-preview/search.json + - preview/2021-11-01-preview/geocoding.json ``` -### Tag: package-preview-2022-12 +### Tag: package-stable-1.0 -These settings apply only when `--tag=package-preview-2022-12` is specified on the command line. +These settings apply only when `--tag=package-stable-1.0` is specified on the command line. -``` yaml $(tag) == 'package-preview-2022-12' +``` yaml $(tag) == 'package-stable-1.0' input-file: - - preview/2022-12-01-preview/search.json + - preview/1.0/search.json ``` # Code Generation diff --git a/specification/maps/data-plane/Spatial/readme.md b/specification/maps/data-plane/Spatial/readme.md index 15723bd4f7d7..163ad91e1ce2 100644 --- a/specification/maps/data-plane/Spatial/readme.md +++ b/specification/maps/data-plane/Spatial/readme.md @@ -25,9 +25,10 @@ To see additional help and options, run: These are the global settings for Spatial Client. ``` yaml +# Azure Maps Spatial v2022-08-01 has been deprecated and will be retired on September 30th, 2025. title: SpatialClient openapi-type: data-plane -tag: 2022-08-01 +tag: package-stable-deprecated-2022-08-01 # at some point those credentials will move away to Swagger according to [this](https://github.com/Azure/autorest/issues/3718) add-credentials: true credential-default-policy-type: BearerTokenCredentialPolicy @@ -35,11 +36,11 @@ credential-scopes: https://atlas.microsoft.com/.default ``` -### Tag: 2022-08-01 +### Tag: package-stable-deprecated-2022-08-01 -These settings apply only when `--tag=2022-08-01` is specified on the command line. +These settings apply only when `--tag=package-stable-deprecated-2022-08-01` is specified on the command line. -``` yaml $(tag) == '2022-08-01' +``` yaml $(tag) == 'package-stable-deprecated-2022-08-01' input-file: - stable/2022-08-01/spatial.json ``` diff --git a/specification/maps/data-plane/Timezone/readme.md b/specification/maps/data-plane/Timezone/readme.md index 99b49c01b120..8dd995692be5 100644 --- a/specification/maps/data-plane/Timezone/readme.md +++ b/specification/maps/data-plane/Timezone/readme.md @@ -27,7 +27,7 @@ These are the global settings for Timezone Client. ``` yaml title: TimezoneClient openapi-type: data-plane -tag: 1.0-preview +tag: package-stable-1.0 # at some point those credentials will move away to Swagger according to [this](https://github.com/Azure/autorest/issues/3718) add-credentials: true credential-default-policy-type: BearerTokenCredentialPolicy @@ -45,11 +45,11 @@ directive: ``` -### Tag: 1.0-preview +### Tag: package-stable-1.0 -These settings apply only when `--tag=1.0-preview` is specified on the command line. +These settings apply only when `--tag=package-stable-1.0` is specified on the command line. -``` yaml $(tag) == '1.0-preview' +``` yaml $(tag) == 'package-stable-1.0' input-file: - preview/1.0/timezone.json ``` diff --git a/specification/maps/data-plane/Weather/readme.md b/specification/maps/data-plane/Weather/readme.md index 5c84361bb31e..e4fdf67a07b2 100644 --- a/specification/maps/data-plane/Weather/readme.md +++ b/specification/maps/data-plane/Weather/readme.md @@ -25,9 +25,10 @@ To see additional help and options, run: These are the global settings for Weather Client. ``` yaml +# title: WeatherClient openapi-type: data-plane -tag: 1.1 +tag: package-stable-1.1 # at some point those credentials will move away to Swagger according to [this](https://github.com/Azure/autorest/issues/3718) add-credentials: true credential-default-policy-type: BearerTokenCredentialPolicy @@ -35,20 +36,20 @@ credential-scopes: https://atlas.microsoft.com/.default ``` -### Tag: 1.1 +### Tag: package-stable-1.1 -These settings apply only when `--tag=1.1` is specified on the command line. +These settings apply only when `--tag=package-stable-1.1` is specified on the command line. -``` yaml $(tag) == '1.1' +``` yaml $(tag) == 'package-stable-1.1' input-file: - stable/1.1/weather.json ``` -### Tag: 1.0-preview +### Tag: package-stable-1.0 -These settings apply only when `--tag=1.0-preview` is specified on the command line. +These settings apply only when `--tag=package-stable-1.0` is specified on the command line. -``` yaml $(tag) == '1.0-preview' +``` yaml $(tag) == 'package-stable-1.0' input-file: - preview/1.0/weather.json ``` diff --git a/specification/nginx/Nginx.Management/client.tsp b/specification/nginx/Nginx.Management/client.tsp index 501351452ac6..73e45c8205df 100644 --- a/specification/nginx/Nginx.Management/client.tsp +++ b/specification/nginx/Nginx.Management/client.tsp @@ -55,10 +55,10 @@ using NGINX.NGINXPLUS; "NginxDeploymentPropertiesNginxAppProtect", "!csharp" ); -// @@clientName(AutoScaleSettings, -// "NginxDeploymentScalingPropertiesAutoScaleSettings", -// "!csharp" -// ); +@@clientName(AutoScaleSettings, + "NginxDeploymentScalingPropertiesAutoScaleSettings", + "!csharp" +); // Client location overrides for NginxDeployments operations @@clientLocation(NginxDeployments.get, "Deployments", "!csharp"); @@ -75,6 +75,12 @@ using NGINX.NGINXPLUS; "!csharp" ); +// Client name for list operations +@@clientName(NginxDeployments.listBySubscription, "list", "!csharp"); +@@clientName(ApiKeys.listByDeployment, "list", "!csharp"); +@@clientName(Certificates.listByDeployment, "list", "!csharp"); +@@clientName(Configurations.listByDeployment, "list", "!csharp"); + // Java client name overrides to maintain consistent casing @@clientName(NginxPublicIPAddress, "NginxPublicIpAddress", "java"); @@clientName(NginxPrivateIPAddress, "NginxPrivateIpAddress", "java"); diff --git a/specification/nginx/Nginx.Management/tspconfig.yaml b/specification/nginx/Nginx.Management/tspconfig.yaml index 57c03007d51e..4cd08c8b3695 100644 --- a/specification/nginx/Nginx.Management/tspconfig.yaml +++ b/specification/nginx/Nginx.Management/tspconfig.yaml @@ -37,7 +37,7 @@ options: service-dir: "sdk/resourcemanager/nginx" package-dir: "armnginx" module: "github.com/Azure/azure-sdk-for-go/{service-dir}/{package-dir}" - fix-const-stuttering: true + fix-const-stuttering: false generate-samples: true generate-fakes: true head-as-boolean: true diff --git a/specification/onlineexperimentation/Azure.Analytics.OnlineExperimentation/tspconfig.yaml b/specification/onlineexperimentation/Azure.Analytics.OnlineExperimentation/tspconfig.yaml index fc8417de86f9..d2903073ae3e 100644 --- a/specification/onlineexperimentation/Azure.Analytics.OnlineExperimentation/tspconfig.yaml +++ b/specification/onlineexperimentation/Azure.Analytics.OnlineExperimentation/tspconfig.yaml @@ -47,6 +47,7 @@ options: model-namespace: false "@azure-tools/typespec-ts": package-dir: "onlineexperimentation-rest" + is-modular-library: false package-details: name: "@azure-rest/onlineexperimentation" description: "Azure Online Experimentation Service" diff --git a/specification/orbital/Microsoft.PlanetaryComputer/tspconfig.yaml b/specification/orbital/Microsoft.PlanetaryComputer/tspconfig.yaml index 85666d68cea8..7933115c2aa9 100644 --- a/specification/orbital/Microsoft.PlanetaryComputer/tspconfig.yaml +++ b/specification/orbital/Microsoft.PlanetaryComputer/tspconfig.yaml @@ -27,6 +27,7 @@ options: # flavor: azure # "@azure-tools/typespec-ts": # package-dir: "planetarycomputer-rest" + # is-modular-library: false # package-details: # name: "@azure-rest/planetarycomputer-rest" # flavor: azure diff --git a/specification/playwrighttesting/PlaywrightTesting.AuthManager/tspconfig.yaml b/specification/playwrighttesting/PlaywrightTesting.AuthManager/tspconfig.yaml index 2692a75efb54..f0796edd5608 100644 --- a/specification/playwrighttesting/PlaywrightTesting.AuthManager/tspconfig.yaml +++ b/specification/playwrighttesting/PlaywrightTesting.AuthManager/tspconfig.yaml @@ -24,6 +24,7 @@ options: title: Microsoft Playwright Testing description: Microsoft Playwright Testing Client generate-metadata: true + is-modular-library: false package-details: name: "@azure-rest/microsoft-playwright-testing" description: "This package contains Microsoft Playwright Testing client library." diff --git a/specification/programmableconnectivity/Azure.ProgrammableConnectivity/tspconfig.yaml b/specification/programmableconnectivity/Azure.ProgrammableConnectivity/tspconfig.yaml index ebd4a89aa96d..45aed741e7fb 100644 --- a/specification/programmableconnectivity/Azure.ProgrammableConnectivity/tspconfig.yaml +++ b/specification/programmableconnectivity/Azure.ProgrammableConnectivity/tspconfig.yaml @@ -29,6 +29,7 @@ options: generate-sample: true "@azure-tools/typespec-ts": generate-metadata: true + is-modular-library: false package-dir: "programmableconnectivity-rest" package-details: name: "@azure-rest/programmableconnectivity" diff --git a/specification/purview/Azure.Analytics.Purview.DataMap/tspconfig.yaml b/specification/purview/Azure.Analytics.Purview.DataMap/tspconfig.yaml index 331a9efb32e6..0e569b94f98b 100644 --- a/specification/purview/Azure.Analytics.Purview.DataMap/tspconfig.yaml +++ b/specification/purview/Azure.Analytics.Purview.DataMap/tspconfig.yaml @@ -31,6 +31,7 @@ options: "@azure-tools/typespec-ts": package-dir: "purview-datamap-rest" generate-metadata: true + is-modular-library: false package-details: name: "@azure-rest/purview-datamap" description: Purview DataMap Service" diff --git a/specification/riskiq/Easm/tspconfig.yaml b/specification/riskiq/Easm/tspconfig.yaml index 75cf9bef3dec..a1a1a64113a8 100644 --- a/specification/riskiq/Easm/tspconfig.yaml +++ b/specification/riskiq/Easm/tspconfig.yaml @@ -25,6 +25,7 @@ options: model-namespace: false "@azure-tools/typespec-ts": package-dir: "defendereasm-rest" + is-modular-library: false package-details: name: "@azure-rest/defender-easm-rest" flavor: azure diff --git a/specification/schemaregistry/SchemaRegistry/tspconfig.yaml b/specification/schemaregistry/SchemaRegistry/tspconfig.yaml index ddd0289450c0..7f1ae3e3348b 100644 --- a/specification/schemaregistry/SchemaRegistry/tspconfig.yaml +++ b/specification/schemaregistry/SchemaRegistry/tspconfig.yaml @@ -30,6 +30,7 @@ options: "@azure-tools/typespec-ts": package-dir: "schema-registry" generate-metadata: false + is-modular-library: false package-details: name: "@azure/schema-registry" flavor: azure diff --git a/specification/search/resource-manager/readme.java.md b/specification/search/resource-manager/readme.java.md index 873584416435..f01fb5225e9c 100644 --- a/specification/search/resource-manager/readme.java.md +++ b/specification/search/resource-manager/readme.java.md @@ -2,7 +2,38 @@ These settings apply only when `--java` is specified on the command line. -``` yaml $(java) +```yaml $(java) enable-sync-stack: false remove-inner: CheckNameAvailabilityOutput +directive: + - from: search.json + where-operation: Services_Update + transform: > + $["x-ms-long-running-operation"] = true; + reason: Swagger bug. PATCH is LRO. + - from: search.json + where: $.definitions.SearchServiceProperties.properties.publicNetworkAccess + transform: > + $['x-ms-enum']['modelAsString'] = false; + reason: Handle breaking change. Also, service will return "Disabled"/"Enabled",instead of "disabled"/"enabled" defined in Swagger. Making it sealed enum will mitigate this. + - from: search.json + where: $.definitions.SharedPrivateLinkResourceProperties.properties.status + transform: > + $['x-ms-enum']['modelAsString'] = false; + reason: Handle breaking change. + - from: search.json + where: $.definitions.SharedPrivateLinkResourceProperties.properties.provisioningState + transform: > + $['x-ms-enum']['modelAsString'] = false; + reason: Handle breaking change. + - from: search.json + where: $.definitions.Identity.properties.type + transform: > + $['x-ms-enum']['modelAsString'] = false; + reason: Handle breaking change. + - from: search.json + where: $.definitions.Sku.properties.name + transform: > + $['x-ms-enum']['modelAsString'] = false; + reason: Handle breaking change. ``` diff --git a/specification/translation/Azure.AI.DocumentTranslation/tspconfig.yaml b/specification/translation/Azure.AI.DocumentTranslation/tspconfig.yaml index 04c4461cdd44..5ae477aa9ec2 100644 --- a/specification/translation/Azure.AI.DocumentTranslation/tspconfig.yaml +++ b/specification/translation/Azure.AI.DocumentTranslation/tspconfig.yaml @@ -45,6 +45,7 @@ options: "@azure-tools/typespec-ts": package-dir: "ai-translation-document-rest" generate-metadata: true + is-modular-library: false package-details: name: "@azure-rest/ai-translation-document" description: "Microsoft Translation Document" diff --git a/specification/translation/Azure.AI.TextTranslation/tspconfig.yaml b/specification/translation/Azure.AI.TextTranslation/tspconfig.yaml index d0d62b6a1c87..f7bdad021caa 100644 --- a/specification/translation/Azure.AI.TextTranslation/tspconfig.yaml +++ b/specification/translation/Azure.AI.TextTranslation/tspconfig.yaml @@ -42,6 +42,7 @@ options: "@azure-tools/typespec-ts": package-dir: "ai-translation-text-rest" generate-metadata: false + is-modular-library: false package-details: name: "@azure-rest/ai-translation-text" description: "Microsoft Translation Text" diff --git a/specification/trustedsigning/TrustedSigning/tspconfig.yaml b/specification/trustedsigning/TrustedSigning/tspconfig.yaml index a18adfcdc4cc..361651b37022 100644 --- a/specification/trustedsigning/TrustedSigning/tspconfig.yaml +++ b/specification/trustedsigning/TrustedSigning/tspconfig.yaml @@ -31,6 +31,7 @@ options: "@azure-tools/typespec-ts": package-dir: "developer-trustedsigning-rest" generate-metadata: true + is-modular-library: false package-details: name: "@azure-rest/developer-trustedsigning" description: "Azure trusted signing service"