From 35480556a076e0d82c902a376a02e813b3b20c72 Mon Sep 17 00:00:00 2001 From: Qiaoqiao Zhang Date: Mon, 14 Nov 2022 16:27:56 +0800 Subject: [PATCH] fix model generation issue --- .../review/ai-anomaly-detector.api.md | 733 ++++++++++++++++++ .../cadl-output/src/outputModels.ts | 32 + .../authoring/cadl-output/src/outputModels.ts | 12 +- packages/cadl-typescript/src/modelUtils.ts | 3 - .../src/transform/transformSchemas.ts | 12 +- 5 files changed, 781 insertions(+), 11 deletions(-) create mode 100644 packages/cadl-rlc-test/test/anomalyDetector/cadl-output/review/ai-anomaly-detector.api.md diff --git a/packages/cadl-rlc-test/test/anomalyDetector/cadl-output/review/ai-anomaly-detector.api.md b/packages/cadl-rlc-test/test/anomalyDetector/cadl-output/review/ai-anomaly-detector.api.md new file mode 100644 index 0000000000..dbc66e770e --- /dev/null +++ b/packages/cadl-rlc-test/test/anomalyDetector/cadl-output/review/ai-anomaly-detector.api.md @@ -0,0 +1,733 @@ +## API Report File for "@msinternal/ai-anomaly-detector" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts + +import { Client } from '@azure-rest/core-client'; +import { ClientOptions } from '@azure-rest/core-client'; +import { HttpResponse } from '@azure-rest/core-client'; +import { KeyCredential } from '@azure/core-auth'; +import { PagedAsyncIterableIterator } from '@azure/core-paging'; +import { PathUncheckedResponse } from '@azure-rest/core-client'; +import { RawHttpHeaders } from '@azure/core-rest-pipeline'; +import { RequestParameters } from '@azure-rest/core-client'; +import { StreamableMethod } from '@azure-rest/core-client'; + +// @public +export interface AlignPolicy { + alignMode?: "Inner" | "Outer"; + fillNAMethod?: string; + paddingValue?: number; +} + +// @public +export interface AlignPolicyOutput { + alignMode?: "Inner" | "Outer"; + fillNAMethod?: string; + paddingValue?: number; +} + +// @public (undocumented) +export type AnomalyDetectorClient = Client & { + path: Routes; +}; + +// @public +export interface AnomalyDetectorErrorOutput { + code?: string; + message?: string; +} + +// @public (undocumented) +export interface AnomalyInterpretationOutput { + contributionScore?: number; + // (undocumented) + correlationChanges?: CorrelationChangesOutput; + variable?: string; +} + +// @public (undocumented) +export interface AnomalyStateOutput { + errors?: Array; + timestamp: string; + // (undocumented) + value?: AnomalyValueOutput; +} + +// @public (undocumented) +export interface AnomalyValueOutput { + // (undocumented) + interpretation?: Array; + isAnomaly: boolean; + score: number; + severity: number; +} + +// @public +export interface ChangePointDetectRequest { + customInterval?: number; + granularity: "yearly" | "monthly" | "weekly" | "daily" | "hourly" | "minutely" | "secondly" | "microsecond" | "none"; + period?: number; + series: Array; + stableTrendWindow?: number; + threshold?: number; +} + +// @public +export interface ChangePointDetectResponseOutput { + confidenceScores?: number[]; + isChangePoint?: boolean[]; + readonly period?: number; +} + +// @public (undocumented) +export interface CorrelationChangesOutput { + changedVariables?: string[]; +} + +// @public +function createClient(Endpoint: string, ApiVersion: "v1.1", credentials: KeyCredential, options?: ClientOptions): AnomalyDetectorClient; +export default createClient; + +// @public +export interface DetectionRequest { + dataSource: string; + endTime: Date | string; + startTime: Date | string; + topContributorCount: number; +} + +// @public +export interface DetectionRequestOutput { + dataSource: string; + endTime: string; + startTime: string; + topContributorCount: number; +} + +// @public +export interface DetectionResultOutput { + resultId: string; + results: Array; + summary: DetectionResultSummaryOutput; +} + +// @public +export interface DetectionResultSummaryOutput { + errors?: Array; + setupInfo: DetectionRequestOutput; + status: "CREATED" | "RUNNING" | "READY" | "FAILED"; + // (undocumented) + variableStates?: Array; +} + +// @public +export interface DetectRequest { + customInterval?: number; + granularity?: "yearly" | "monthly" | "weekly" | "daily" | "hourly" | "minutely" | "secondly" | "microsecond" | "none"; + imputeFixedValue?: number; + imputeMode?: string; + maxAnomalyRatio?: number; + period?: number; + sensitivity?: number; + series: Array; +} + +// @public +export interface DiagnosticsInfo { + // (undocumented) + modelState?: ModelState; + // (undocumented) + variableStates?: Array; +} + +// @public +export interface DiagnosticsInfoOutput { + // (undocumented) + modelState?: ModelStateOutput; + // (undocumented) + variableStates?: Array; +} + +// @public +export interface EntireDetectResponseOutput { + expectedValues: number[]; + isAnomaly: boolean[]; + isNegativeAnomaly: boolean[]; + isPositiveAnomaly: boolean[]; + lowerMargins: number[]; + period: number; + severity?: number[]; + upperMargins: number[]; +} + +// @public (undocumented) +export interface ErrorResponse { + code: string; + message: string; +} + +// @public (undocumented) +export interface ErrorResponseOutput { + code: string; + message: string; +} + +// @public +export type GetArrayType = T extends Array ? TData : never; + +// @public +export type GetPage = (pageLink: string, maxPageSize?: number) => Promise<{ + page: TPage; + nextPageLink?: string; +}>; + +// @public (undocumented) +export function isUnexpected(response: UnivariateDetectUnivariateEntireSeries200Response | UnivariateDetectUnivariateEntireSeriesDefaultResponse): response is UnivariateDetectUnivariateEntireSeriesDefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: UnivariateDetectUnivariateLastPoint200Response | UnivariateDetectUnivariateLastPointDefaultResponse): response is UnivariateDetectUnivariateLastPointDefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: UnivariateDetectUnivariateChangePoint200Response | UnivariateDetectUnivariateChangePointDefaultResponse): response is UnivariateDetectUnivariateChangePointDefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: MultivariateGetBatchDetectionResult200Response | MultivariateGetBatchDetectionResultDefaultResponse): response is MultivariateGetBatchDetectionResultDefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: MultivariateCreateAndTrainMultivariateModel201Response | MultivariateCreateAndTrainMultivariateModelDefaultResponse): response is MultivariateCreateAndTrainMultivariateModelDefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: MultivariateListMultivariateModels200Response | MultivariateListMultivariateModelsDefaultResponse): response is MultivariateListMultivariateModelsDefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: MultivariateDeleteMultivariateModel204Response | MultivariateDeleteMultivariateModelDefaultResponse): response is MultivariateDeleteMultivariateModelDefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: MultivariateGetMultivariateModel200Response | MultivariateGetMultivariateModelDefaultResponse): response is MultivariateGetMultivariateModelDefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: MultivariateDetectMultivariateBatchAnomaly202Response | MultivariateDetectMultivariateBatchAnomalyDefaultResponse): response is MultivariateDetectMultivariateBatchAnomalyDefaultResponse; + +// @public (undocumented) +export function isUnexpected(response: MultivariateDetectMultivariateLastAnomaly200Response | MultivariateDetectMultivariateLastAnomalyDefaultResponse): response is MultivariateDetectMultivariateLastAnomalyDefaultResponse; + +// @public (undocumented) +export interface LastDetectionRequest { + topContributorCount: number; + variables: Array; +} + +// @public (undocumented) +export interface LastDetectionResultOutput { + // (undocumented) + results?: Array; + // (undocumented) + variableStates?: Array; +} + +// @public +export interface LastDetectResponseOutput { + expectedValue: number; + isAnomaly: boolean; + isNegativeAnomaly: boolean; + isPositiveAnomaly: boolean; + lowerMargin: number; + period: number; + severity?: number; + suggestedWindow: number; + upperMargin: number; +} + +// @public +export interface ModelInfo { + alignPolicy?: AlignPolicy; + dataSchema?: "OneTable" | "MultiTable"; + dataSource: string; + diagnosticsInfo?: DiagnosticsInfo; + displayName?: string; + endTime: Date | string; + errors?: Array; + slidingWindow?: number; + startTime: Date | string; + status?: "CREATED" | "RUNNING" | "READY" | "FAILED"; +} + +// @public +export interface ModelInfoOutput { + alignPolicy?: AlignPolicyOutput; + dataSchema?: "OneTable" | "MultiTable"; + dataSource: string; + diagnosticsInfo?: DiagnosticsInfoOutput; + displayName?: string; + endTime: string; + errors?: Array; + slidingWindow?: number; + startTime: string; + status?: "CREATED" | "RUNNING" | "READY" | "FAILED"; +} + +// @public +export interface ModelListOutput { + currentCount: number; + maxCount: number; + models: Array; + nextLink?: string; +} + +// @public +export interface ModelOutput { + createdTime: string; + lastUpdatedTime: string; + modelId: string; + modelInfo?: ModelInfoOutput; +} + +// @public (undocumented) +export interface ModelState { + epochIds?: number[]; + latenciesInSeconds?: number[]; + trainLosses?: number[]; + validationLosses?: number[]; +} + +// @public (undocumented) +export interface ModelStateOutput { + epochIds?: number[]; + latenciesInSeconds?: number[]; + trainLosses?: number[]; + validationLosses?: number[]; +} + +// @public (undocumented) +export interface MultivariateCreateAndTrainMultivariateModel { + get(options?: MultivariateListMultivariateModelsParameters): StreamableMethod; + post(options: MultivariateCreateAndTrainMultivariateModelParameters): StreamableMethod; +} + +// @public (undocumented) +export interface MultivariateCreateAndTrainMultivariateModel201Headers { + location: string; +} + +// @public +export interface MultivariateCreateAndTrainMultivariateModel201Response extends HttpResponse { + // (undocumented) + body: ModelOutput; + // (undocumented) + headers: RawHttpHeaders & MultivariateCreateAndTrainMultivariateModel201Headers; + // (undocumented) + status: "201"; +} + +// @public (undocumented) +export interface MultivariateCreateAndTrainMultivariateModelBodyParam { + // (undocumented) + body: ModelInfo; +} + +// @public (undocumented) +export interface MultivariateCreateAndTrainMultivariateModelDefaultHeaders { + "x-ms-error-code"?: string; +} + +// @public (undocumented) +export interface MultivariateCreateAndTrainMultivariateModelDefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorResponseOutput; + // (undocumented) + headers: RawHttpHeaders & MultivariateCreateAndTrainMultivariateModelDefaultHeaders; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type MultivariateCreateAndTrainMultivariateModelParameters = MultivariateCreateAndTrainMultivariateModelBodyParam & RequestParameters; + +// @public (undocumented) +export interface MultivariateDeleteMultivariateModel { + delete(options?: MultivariateDeleteMultivariateModelParameters): StreamableMethod; + get(options?: MultivariateGetMultivariateModelParameters): StreamableMethod; +} + +// @public +export interface MultivariateDeleteMultivariateModel204Response extends HttpResponse { + // (undocumented) + status: "204"; +} + +// @public (undocumented) +export interface MultivariateDeleteMultivariateModelDefaultHeaders { + "x-ms-error-code"?: string; +} + +// @public (undocumented) +export interface MultivariateDeleteMultivariateModelDefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorResponseOutput; + // (undocumented) + headers: RawHttpHeaders & MultivariateDeleteMultivariateModelDefaultHeaders; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type MultivariateDeleteMultivariateModelParameters = RequestParameters; + +// @public (undocumented) +export interface MultivariateDetectMultivariateBatchAnomaly { + post(options: MultivariateDetectMultivariateBatchAnomalyParameters): StreamableMethod; +} + +// @public (undocumented) +export interface MultivariateDetectMultivariateBatchAnomaly202Headers { + "operation-id": string; + "operation-location": string; +} + +// @public +export interface MultivariateDetectMultivariateBatchAnomaly202Response extends HttpResponse { + // (undocumented) + body: DetectionResultOutput; + // (undocumented) + headers: RawHttpHeaders & MultivariateDetectMultivariateBatchAnomaly202Headers; + // (undocumented) + status: "202"; +} + +// @public (undocumented) +export interface MultivariateDetectMultivariateBatchAnomalyBodyParam { + // (undocumented) + body: DetectionRequest; +} + +// @public (undocumented) +export interface MultivariateDetectMultivariateBatchAnomalyDefaultHeaders { + "x-ms-error-code"?: string; +} + +// @public (undocumented) +export interface MultivariateDetectMultivariateBatchAnomalyDefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorResponseOutput; + // (undocumented) + headers: RawHttpHeaders & MultivariateDetectMultivariateBatchAnomalyDefaultHeaders; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type MultivariateDetectMultivariateBatchAnomalyParameters = MultivariateDetectMultivariateBatchAnomalyBodyParam & RequestParameters; + +// @public (undocumented) +export interface MultivariateDetectMultivariateLastAnomaly { + post(options: MultivariateDetectMultivariateLastAnomalyParameters): StreamableMethod; +} + +// @public +export interface MultivariateDetectMultivariateLastAnomaly200Response extends HttpResponse { + // (undocumented) + body: LastDetectionResultOutput; + // (undocumented) + status: "200"; +} + +// @public (undocumented) +export interface MultivariateDetectMultivariateLastAnomalyBodyParam { + // (undocumented) + body: LastDetectionRequest; +} + +// @public (undocumented) +export interface MultivariateDetectMultivariateLastAnomalyDefaultHeaders { + "x-ms-error-code"?: string; +} + +// @public (undocumented) +export interface MultivariateDetectMultivariateLastAnomalyDefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorResponseOutput; + // (undocumented) + headers: RawHttpHeaders & MultivariateDetectMultivariateLastAnomalyDefaultHeaders; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type MultivariateDetectMultivariateLastAnomalyParameters = MultivariateDetectMultivariateLastAnomalyBodyParam & RequestParameters; + +// @public (undocumented) +export interface MultivariateGetBatchDetectionResult { + get(options?: MultivariateGetBatchDetectionResultParameters): StreamableMethod; +} + +// @public +export interface MultivariateGetBatchDetectionResult200Response extends HttpResponse { + // (undocumented) + body: DetectionResultOutput; + // (undocumented) + status: "200"; +} + +// @public (undocumented) +export interface MultivariateGetBatchDetectionResultDefaultHeaders { + "x-ms-error-code"?: string; +} + +// @public (undocumented) +export interface MultivariateGetBatchDetectionResultDefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorResponseOutput; + // (undocumented) + headers: RawHttpHeaders & MultivariateGetBatchDetectionResultDefaultHeaders; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type MultivariateGetBatchDetectionResultParameters = RequestParameters; + +// @public +export interface MultivariateGetMultivariateModel200Response extends HttpResponse { + // (undocumented) + body: ModelOutput; + // (undocumented) + status: "200"; +} + +// @public (undocumented) +export interface MultivariateGetMultivariateModelDefaultHeaders { + "x-ms-error-code"?: string; +} + +// @public (undocumented) +export interface MultivariateGetMultivariateModelDefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorResponseOutput; + // (undocumented) + headers: RawHttpHeaders & MultivariateGetMultivariateModelDefaultHeaders; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type MultivariateGetMultivariateModelParameters = RequestParameters; + +// @public +export interface MultivariateListMultivariateModels200Response extends HttpResponse { + // (undocumented) + body: ModelListOutput; + // (undocumented) + status: "200"; +} + +// @public (undocumented) +export interface MultivariateListMultivariateModelsDefaultHeaders { + "x-ms-error-code"?: string; +} + +// @public (undocumented) +export interface MultivariateListMultivariateModelsDefaultResponse extends HttpResponse { + // (undocumented) + body: ErrorResponseOutput; + // (undocumented) + headers: RawHttpHeaders & MultivariateListMultivariateModelsDefaultHeaders; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type MultivariateListMultivariateModelsParameters = MultivariateListMultivariateModelsQueryParam & RequestParameters; + +// @public (undocumented) +export interface MultivariateListMultivariateModelsQueryParam { + // (undocumented) + queryParameters?: MultivariateListMultivariateModelsQueryParamProperties; +} + +// @public (undocumented) +export interface MultivariateListMultivariateModelsQueryParamProperties { + skip?: number; + top?: number; +} + +// @public +export function paginate(client: Client, initialResponse: TResponse, options?: PagingOptions): PagedAsyncIterableIterator>; + +// @public +export type PaginateReturn = TResult extends { + body: { + value?: infer TPage; + }; +} | { + body: { + models?: infer TPage; + }; +} ? GetArrayType : Array; + +// @public +export interface PagingOptions { + customGetPage?: GetPage[]>; +} + +// @public (undocumented) +export interface Routes { + (path: "/timeseries/entire/detect"): UnivariateDetectUnivariateEntireSeries; + (path: "/timeseries/last/detect"): UnivariateDetectUnivariateLastPoint; + (path: "/timeseries/changepoint/detect"): UnivariateDetectUnivariateChangePoint; + (path: "/multivariate/detect-batch/{resultId}", resultId: string): MultivariateGetBatchDetectionResult; + (path: "/multivariate/models"): MultivariateCreateAndTrainMultivariateModel; + (path: "/multivariate/models/{modelId}", modelId: string): MultivariateDeleteMultivariateModel; + (path: "/multivariate/models/{modelId}:detect-batch", modelId: string): MultivariateDetectMultivariateBatchAnomaly; + (path: "/multivariate/models/{modelId}:detect-last", modelId: string): MultivariateDetectMultivariateLastAnomaly; +} + +// @public +export interface TimeSeriesPoint { + timestamp?: Date | string; + value: number; +} + +// @public (undocumented) +export interface UnivariateDetectUnivariateChangePoint { + post(options: UnivariateDetectUnivariateChangePointParameters): StreamableMethod; +} + +// @public +export interface UnivariateDetectUnivariateChangePoint200Response extends HttpResponse { + // (undocumented) + body: ChangePointDetectResponseOutput; + // (undocumented) + status: "200"; +} + +// @public (undocumented) +export interface UnivariateDetectUnivariateChangePointBodyParam { + // (undocumented) + body: ChangePointDetectRequest; +} + +// @public (undocumented) +export interface UnivariateDetectUnivariateChangePointDefaultHeaders { + // (undocumented) + "x-ms-error"?: string; +} + +// @public (undocumented) +export interface UnivariateDetectUnivariateChangePointDefaultResponse extends HttpResponse { + // (undocumented) + body: AnomalyDetectorErrorOutput; + // (undocumented) + headers: RawHttpHeaders & UnivariateDetectUnivariateChangePointDefaultHeaders; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type UnivariateDetectUnivariateChangePointParameters = UnivariateDetectUnivariateChangePointBodyParam & RequestParameters; + +// @public (undocumented) +export interface UnivariateDetectUnivariateEntireSeries { + post(options: UnivariateDetectUnivariateEntireSeriesParameters): StreamableMethod; +} + +// @public +export interface UnivariateDetectUnivariateEntireSeries200Response extends HttpResponse { + // (undocumented) + body: EntireDetectResponseOutput; + // (undocumented) + status: "200"; +} + +// @public (undocumented) +export interface UnivariateDetectUnivariateEntireSeriesBodyParam { + // (undocumented) + body: DetectRequest; +} + +// @public (undocumented) +export interface UnivariateDetectUnivariateEntireSeriesDefaultHeaders { + // (undocumented) + "x-ms-error"?: string; +} + +// @public (undocumented) +export interface UnivariateDetectUnivariateEntireSeriesDefaultResponse extends HttpResponse { + // (undocumented) + body: AnomalyDetectorErrorOutput; + // (undocumented) + headers: RawHttpHeaders & UnivariateDetectUnivariateEntireSeriesDefaultHeaders; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type UnivariateDetectUnivariateEntireSeriesParameters = UnivariateDetectUnivariateEntireSeriesBodyParam & RequestParameters; + +// @public (undocumented) +export interface UnivariateDetectUnivariateLastPoint { + post(options: UnivariateDetectUnivariateLastPointParameters): StreamableMethod; +} + +// @public +export interface UnivariateDetectUnivariateLastPoint200Response extends HttpResponse { + // (undocumented) + body: LastDetectResponseOutput; + // (undocumented) + status: "200"; +} + +// @public (undocumented) +export interface UnivariateDetectUnivariateLastPointBodyParam { + // (undocumented) + body: DetectRequest; +} + +// @public (undocumented) +export interface UnivariateDetectUnivariateLastPointDefaultHeaders { + // (undocumented) + "x-ms-error"?: string; +} + +// @public (undocumented) +export interface UnivariateDetectUnivariateLastPointDefaultResponse extends HttpResponse { + // (undocumented) + body: AnomalyDetectorErrorOutput; + // (undocumented) + headers: RawHttpHeaders & UnivariateDetectUnivariateLastPointDefaultHeaders; + // (undocumented) + status: string; +} + +// @public (undocumented) +export type UnivariateDetectUnivariateLastPointParameters = UnivariateDetectUnivariateLastPointBodyParam & RequestParameters; + +// @public (undocumented) +export interface VariableState { + effectiveCount?: number; + filledNARatio?: number; + firstTimestamp?: Date | string; + lastTimestamp?: Date | string; + variable?: string; +} + +// @public (undocumented) +export interface VariableStateOutput { + effectiveCount?: number; + filledNARatio?: number; + firstTimestamp?: string; + lastTimestamp?: string; + variable?: string; +} + +// @public (undocumented) +export interface VariableValues { + timestamps: string[]; + values: number[]; + variable: string; +} + +// (No @packageDocumentation comment for this package) + +``` diff --git a/packages/cadl-rlc-test/test/anomalyDetector/cadl-output/src/outputModels.ts b/packages/cadl-rlc-test/test/anomalyDetector/cadl-output/src/outputModels.ts index 332b11ea81..8f2a53ed61 100644 --- a/packages/cadl-rlc-test/test/anomalyDetector/cadl-output/src/outputModels.ts +++ b/packages/cadl-rlc-test/test/anomalyDetector/cadl-output/src/outputModels.ts @@ -212,6 +212,38 @@ export interface AnomalyStateOutput { errors?: Array; } +export interface AnomalyValueOutput { + /** True if an anomaly is detected at the current timestamp. */ + isAnomaly: boolean; + /** + * Indicates the significance of the anomaly. The higher the severity, the more + * significant the anomaly is. + */ + severity: number; + /** + * Raw anomaly score of severity, will help indicate the degree of abnormality as + * well. + */ + score: number; + interpretation?: Array; +} + +export interface AnomalyInterpretationOutput { + /** Variable. */ + variable?: string; + /** + * This score shows the percentage contributing to the anomalous timestamp. A + * number between 0 and 1. + */ + contributionScore?: number; + correlationChanges?: CorrelationChangesOutput; +} + +export interface CorrelationChangesOutput { + /** The correlated variables that have correlation changes under an anomaly. */ + changedVariables?: string[]; +} + /** * Training result of a model including its status, errors and diagnostics * information. diff --git a/packages/cadl-rlc-test/test/authoring/cadl-output/src/outputModels.ts b/packages/cadl-rlc-test/test/authoring/cadl-output/src/outputModels.ts index e090a00338..bae73249a0 100644 --- a/packages/cadl-rlc-test/test/authoring/cadl-output/src/outputModels.ts +++ b/packages/cadl-rlc-test/test/authoring/cadl-output/src/outputModels.ts @@ -42,12 +42,6 @@ export interface OperationStatusOutput { result?: never; } -/** A response containing error details. */ -export interface ErrorResponseOutput { - /** The error object. */ - error: ErrorModelOutput; -} - /** The error object. */ export interface ErrorModelOutput { /** One of a server-defined set of error codes. */ @@ -70,6 +64,12 @@ export interface InnerErrorOutput { innererror?: InnerErrorOutput; } +/** A response containing error details. */ +export interface ErrorResponseOutput { + /** The error object. */ + error: ErrorModelOutput; +} + /** Paged collection of Project items */ export interface ProjectListOutput { /** The Project items on this page */ diff --git a/packages/cadl-typescript/src/modelUtils.ts b/packages/cadl-typescript/src/modelUtils.ts index 64180587b1..af0080d4a9 100644 --- a/packages/cadl-typescript/src/modelUtils.ts +++ b/packages/cadl-typescript/src/modelUtils.ts @@ -388,9 +388,6 @@ function getSchemaForModel( NameType.Interface, true /** shouldGuard */ ); - if (modelSchema.name === "AnomalyValue") { - modelSchema; - } modelSchema.properties = {}; const derivedModels = model.derivedModels.filter(includeDerivedModel); diff --git a/packages/cadl-typescript/src/transform/transformSchemas.ts b/packages/cadl-typescript/src/transform/transformSchemas.ts index 435af99f12..0d9942e685 100644 --- a/packages/cadl-typescript/src/transform/transformSchemas.ts +++ b/packages/cadl-typescript/src/transform/transformSchemas.ts @@ -75,10 +75,18 @@ export function transformSchemas(program: Program) { if (model.kind === "Model") { if (model.templateArguments && model.templateArguments.length > 0) { for (const temp of model.templateArguments) { - setModelMap(temp, context); - break; + if ( + !program.stateMap(modelKey).get(temp) || + !program.stateMap(modelKey).get(temp)?.includes(context) + ) { + getGeneratedModels(temp, context); + break; + } } } + if (model.name === "") { + return; + } setModelMap(model, context); const indexer = (model as Model).indexer; if (indexer?.value && !program.stateMap(modelKey).get(indexer?.value)) {