TypeSpec Assessment

Preserve released Java enum member names

TypeSpec source diff: b7170cade07f615426eb153b7035ecf8a1cab4e4 → 1395797d6112cb083837b3772083bafe0a91460c

Preview NoticeThe TypeSpec Assessment Assistant is in preview; official validation and review remain the source of truth.

The TypeSpec Assessment Assistant is currently in preview. Its goal is to help service developers build confidence earlier in the TypeSpec authoring workflow by providing contextual analysis, risk identification, and guidance on potential downstream impacts.

This report is intended as a review reference and learning aid only. It does not replace official ARM API, Azure API Stewardship, Azure Breaking Change reviews, and should not be treated as authoritative review feedback or approval for specification changes. Official validation tools, generated artifacts, and reviewer feedback remain the source of truth for merge and release decisions.

Semantic intents

Impact links are visible at a glance; expand for changed TypeSpec source, followed by affected operations.

Preserve released Java enum member namesAdds Java-only @@clientName augment decorators for six enum members to retain their released SDK constant names; no REST operation or language-neutral generated SDK contract changes.
modify
Changed TypeSpec source (1)
specification/consumption/resource-manager/Microsoft.Consumption/Consumption/client.tsp
   ModernChargeSummary.properties,
   "csharp"
 );
+
+// Preserve Java enum value names from the released SDK.
+@@clientName(Metrictype.ActualCostMetricType, "ACTUALCOST", "java");
+@@clientName(Metrictype.AmortizedCostMetricType, "AMORTIZEDCOST", "java");
+@@clientName(Metrictype.UsageMetricType, "USAGE", "java");
+@@clientName(Datagrain.DailyGrain, "DAILY", "java");
+@@clientName(Datagrain.MonthlyGrain, "MONTHLY", "java");
+@@clientName(LookBackPeriod.Last07Days, "LAST7DAYS", "java");

specification/consumption/resource-manager/Microsoft.Consumption/Consumption/client.tsp

Affected operations (0)

No directly affected REST operation.

Azure Guidelines

Findings and affected intents at a glance; expand for expected guidance and actual changes.

1 of 1 semantic intents assessed · 4 documents selected

No Azure Guidelines findings.

No applicable guideline was found for: Preserve released Java enum member names.

REST breaking changes

Operation impact and affected intents at a glance; expand for before/after evidence.

No confirmed REST breaking changes.

Downstream breaking changes

Method impact and affected intents at a glance; expand for before/after evidence.

No downstream breaking changes detected.

Documentation Completeness

Checks only whether newly added operation, model, enum, and interface declarations have a nonempty effective TypeSpec description.

0 findings · 0 declarations checked

Appendix

Potential limits

None

Projects and compiler status

ProjectModeBaseline commit@versionTarget commit@versionBaseline AutoRest / TCGCTarget AutoRest / TCGC
specification/consumption/resource-manager/Microsoft.Consumption/Consumptionexisting-api-versionb7170cade07f615426eb153b7035ecf8a1cab4e4@2026-06-01
base · affected-existing-version
1395797d6112cb083837b3772083bafe0a91460c@2026-06-01
current · affected-existing-version
succeeded / succeededsucceeded / succeeded

Pull request: Not available for this local pre-PR assessment.

Guidance fetched

Guidance coverage and retrieval evidence
{
  "status": "passed",
  "coverage": {
    "semanticIntentCount": 1,
    "assessedIntentCount": 1,
    "selectedDocumentCount": 4,
    "unassessedIntentIds": []
  },
  "sharedSearch": {
    "catalogRanking": [
      {
        "rank": 1,
        "catalogOrder": 1,
        "title": "Evolving APIs",
        "canonicalUrl": "https://azure.github.io/typespec-azure/docs/howtos/versioning/06-evolving-apis/",
        "score": {
          "exactSymbol": 0,
          "patternCategory": 3,
          "servicePlane": 2,
          "changeContext": 1,
          "total": 6
        },
        "selectionRationale": "Directly addresses modification of an existing versioned Azure API."
      },
      {
        "rank": 2,
        "catalogOrder": 22,
        "title": "Enums",
        "canonicalUrl": "https://typespec.io/docs/language-basics/enums/",
        "score": {
          "exactSymbol": 0,
          "patternCategory": 3,
          "servicePlane": 2,
          "changeContext": 0,
          "total": 5
        },
        "selectionRationale": "Covers enum members, which are the targets of the changed client-name customizations."
      },
      {
        "rank": 3,
        "catalogOrder": 24,
        "title": "Decorators",
        "canonicalUrl": "https://typespec.io/docs/language-basics/decorators/",
        "score": {
          "exactSymbol": 0,
          "patternCategory": 3,
          "servicePlane": 2,
          "changeContext": 0,
          "total": 5
        },
        "selectionRationale": "Covers augment-decorator syntax used by the changed @@clientName statements."
      },
      {
        "rank": 4,
        "catalogOrder": 25,
        "title": "Built-in decorators",
        "canonicalUrl": "https://typespec.io/docs/standard-library/built-in-decorators/",
        "score": {
          "exactSymbol": 0,
          "patternCategory": 3,
          "servicePlane": 2,
          "changeContext": 0,
          "total": 5
        },
        "selectionRationale": "Provides official decorator reference context for decorated enum members."
      },
      {
        "rank": 5,
        "catalogOrder": 2,
        "title": "Versioning overview",
        "canonicalUrl": "https://azure.github.io/typespec-azure/docs/howtos/versioning/01-about-versioning/",
        "score": {
          "exactSymbol": 0,
          "patternCategory": 0,
          "servicePlane": 2,
          "changeContext": 0,
          "total": 2
        },
        "selectionRationale": "Applies generally to ARM or TypeSpec but does not match the changed Java enum-name customization."
      },
      {
        "rank": 6,
        "catalogOrder": 3,
        "title": "Add preview after preview",
        "canonicalUrl": "https://azure.github.io/typespec-azure/docs/howtos/versioning/02-preview-after-preview/",
        "score": {
          "exactSymbol": 0,
          "patternCategory": 0,
          "servicePlane": 2,
          "changeContext": 0,
          "total": 2
        },
        "selectionRationale": "Applies generally to ARM or TypeSpec but does not match the changed Java enum-name customization."
      },
      {
        "rank": 7,
        "catalogOrder": 4,
        "title": "Add stable after preview",
        "canonicalUrl": "https://azure.github.io/typespec-azure/docs/howtos/versioning/03-stable-after-preview/",
        "score": {
          "exactSymbol": 0,
          "patternCategory": 0,
          "servicePlane": 2,
          "changeContext": 0,
          "total": 2
        },
        "selectionRationale": "Applies generally to ARM or TypeSpec but does not match the changed Java enum-name customization."
      },
      {
        "rank": 8,
        "catalogOrder": 5,
        "title": "Add preview after stable",
        "canonicalUrl": "https://azure.github.io/typespec-azure/docs/howtos/versioning/04-preview-after-stable/",
        "score": {
          "exactSymbol": 0,
          "patternCategory": 0,
          "servicePlane": 2,
          "changeContext": 0,
          "total": 2
        },
        "selectionRationale": "Applies generally to ARM or TypeSpec but does not match the changed Java enum-name customization."
      },
      {
        "rank": 9,
        "catalogOrder": 6,
        "title": "Add stable after stable",
        "canonicalUrl": "https://azure.github.io/typespec-azure/docs/howtos/versioning/05-stable-after-stable/",
        "score": {
          "exactSymbol": 0,
          "patternCategory": 0,
          "servicePlane": 2,
          "changeContext": 0,
          "total": 2
        },
        "selectionRationale": "Applies generally to ARM or TypeSpec but does not match the changed Java enum-name customization."
      },
      {
        "rank": 10,
        "catalogOrder": 7,
        "title": "ARM resource types and modeling",
        "canonicalUrl": "https://azure.github.io/typespec-azure/docs/howtos/arm/resource-type/",
        "score": {
          "exactSymbol": 0,
          "patternCategory": 0,
          "servicePlane": 2,
          "changeContext": 0,
          "total": 2
        },
        "selectionRationale": "Applies generally to ARM or TypeSpec but does not match the changed Java enum-name customization."
      },
      {
        "rank": 11,
        "catalogOrder": 8,
        "title": "Specific extension resource sample",
        "canonicalUrl": "https://azure.github.io/typespec-azure/docs/samples/resource-manager/resource-types/specific-extension/",
        "score": {
          "exactSymbol": 0,
          "patternCategory": 0,
          "servicePlane": 2,
          "changeContext": 0,
          "total": 2
        },
        "selectionRationale": "Applies generally to ARM or TypeSpec but does not match the changed Java enum-name customization."
      },
      {
        "rank": 12,
        "catalogOrder": 9,
        "title": "Private endpoints",
        "canonicalUrl": "https://azure.github.io/typespec-azure/docs/howtos/arm/private-endpoints/",
        "score": {
          "exactSymbol": 0,
          "patternCategory": 0,
          "servicePlane": 2,
          "changeContext": 0,
          "total": 2
        },
        "selectionRationale": "Applies generally to ARM or TypeSpec but does not match the changed Java enum-name customization."
      },
      {
        "rank": 13,
        "catalogOrder": 10,
        "title": "Private links",
        "canonicalUrl": "https://azure.github.io/typespec-azure/docs/howtos/arm/private-links/",
        "score": {
          "exactSymbol": 0,
          "patternCategory": 0,
          "servicePlane": 2,
          "changeContext": 0,
          "total": 2
        },
        "selectionRationale": "Applies generally to ARM or TypeSpec but does not match the changed Java enum-name customization."
      },
      {
        "rank": 14,
        "catalogOrder": 11,
        "title": "Network security perimeter",
        "canonicalUrl": "https://azure.github.io/typespec-azure/docs/howtos/arm/network-security-perimeter/",
        "score": {
          "exactSymbol": 0,
          "patternCategory": 0,
          "servicePlane": 2,
          "changeContext": 0,
          "total": 2
        },
        "selectionRationale": "Applies generally to ARM or TypeSpec but does not match the changed Java enum-name customization."
      },
      {
        "rank": 15,
        "catalogOrder": 12,
        "title": "ARM resource operations",
        "canonicalUrl": "https://azure.github.io/typespec-azure/docs/howtos/arm/resource-operations/",
        "score": {
          "exactSymbol": 0,
          "patternCategory": 0,
          "servicePlane": 2,
          "changeContext": 0,
          "total": 2
        },
        "selectionRationale": "Applies generally to ARM or TypeSpec but does not match the changed Java enum-name customization."
      },
      {
        "rank": 16,
        "catalogOrder": 13,
        "title": "Azure.ResourceManager interface reference",
        "canonicalUrl": "https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/reference/interfaces/",
        "score": {
          "exactSymbol": 0,
          "patternCategory": 0,
          "servicePlane": 2,
          "changeContext": 0,
          "total": 2
        },
        "selectionRationale": "Applies generally to ARM or TypeSpec but does not match the changed Java enum-name customization."
      },
      {
        "rank": 17,
        "catalogOrder": 14,
        "title": "TypeSpec.Rest decorators",
        "canonicalUrl": "https://typespec.io/docs/libraries/rest/reference/decorators/",
        "score": {
          "exactSymbol": 0,
          "patternCategory": 0,
          "servicePlane": 2,
          "changeContext": 0,
          "total": 2
        },
        "selectionRationale": "Applies generally to ARM or TypeSpec but does not match the changed Java enum-name customization."
      },
      {
        "rank": 18,
        "catalogOrder": 15,
        "title": "Azure.ResourceManager decorators",
        "canonicalUrl": "https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/reference/decorators/",
        "score": {
          "exactSymbol": 0,
          "patternCategory": 0,
          "servicePlane": 2,
          "changeContext": 0,
          "total": 2
        },
        "selectionRationale": "Applies generally to ARM or TypeSpec but does not match the changed Java enum-name customization."
      },
      {
        "rank": 19,
        "catalogOrder": 16,
        "title": "ARM long-running operations",
        "canonicalUrl": "https://azure.github.io/typespec-azure/docs/howtos/arm/long-running-operations/",
        "score": {
          "exactSymbol": 0,
          "patternCategory": 0,
          "servicePlane": 2,
          "changeContext": 0,
          "total": 2
        },
        "selectionRationale": "Applies generally to ARM or TypeSpec but does not match the changed Java enum-name customization."
      },
      {
        "rank": 20,
        "catalogOrder": 18,
        "title": "Azure.ResourceManager data types",
        "canonicalUrl": "https://azure.github.io/typespec-azure/docs/libraries/azure-resource-manager/reference/data-types/",
        "score": {
          "exactSymbol": 0,
          "patternCategory": 0,
          "servicePlane": 2,
          "changeContext": 0,
          "total": 2
        },
        "selectionRationale": "Applies generally to ARM or TypeSpec but does not match the changed Java enum-name customization."
      },
      {
        "rank": 21,
        "catalogOrder": 20,
        "title": "ARM common types",
        "canonicalUrl": "https://azure.github.io/typespec-azure/docs/howtos/arm/add-common-types/",
        "score": {
          "exactSymbol": 0,
          "patternCategory": 0,
          "servicePlane": 2,
          "changeContext": 0,
          "total": 2
        },
        "selectionRationale": "Applies generally to ARM or TypeSpec but does not match the changed Java enum-name customization."
      },
      {
        "rank": 22,
        "catalogOrder": 21,
        "title": "Models",
        "canonicalUrl": "https://typespec.io/docs/language-basics/models/",
        "score": {
          "exactSymbol": 0,
          "patternCategory": 0,
          "servicePlane": 2,
          "changeContext": 0,
          "total": 2
        },
        "selectionRationale": "Applies generally to ARM or TypeSpec but does not match the changed Java enum-name customization."
      },
      {
        "rank": 23,
        "catalogOrder": 23,
        "title": "Scalars",
        "canonicalUrl": "https://typespec.io/docs/language-basics/scalars/",
        "score": {
          "exactSymbol": 0,
          "patternCategory": 0,
          "servicePlane": 2,
          "changeContext": 0,
          "total": 2
        },
        "selectionRationale": "Applies generally to ARM or TypeSpec but does not match the changed Java enum-name customization."
      },
      {
        "rank": 24,
        "catalogOrder": 26,
        "title": "OpenAPI decorators",
        "canonicalUrl": "https://typespec.io/docs/libraries/openapi/reference/decorators/",
        "score": {
          "exactSymbol": 0,
          "patternCategory": 0,
          "servicePlane": 2,
          "changeContext": 0,
          "total": 2
        },
        "selectionRationale": "Applies generally to ARM or TypeSpec but does not match the changed Java enum-name customization."
      },
      {
        "rank": 25,
        "catalogOrder": 27,
        "title": "Change provider namespace",
        "canonicalUrl": "https://azure.github.io/typespec-azure/docs/howtos/arm/change-provider-namespace/",
        "score": {
          "exactSymbol": 0,
          "patternCategory": 0,
          "servicePlane": 2,
          "changeContext": 0,
          "total": 2
        },
        "selectionRationale": "Applies generally to ARM or TypeSpec but does not match the changed Java enum-name customization."
      },
      {
        "rank": 26,
        "catalogOrder": 28,
        "title": "Azure Portal default experiences",
        "canonicalUrl": "https://azure.github.io/typespec-azure/docs/howtos/azure-portal/default-experiences/",
        "score": {
          "exactSymbol": 0,
          "patternCategory": 0,
          "servicePlane": 2,
          "changeContext": 0,
          "total": 2
        },
        "selectionRationale": "Applies generally to ARM or TypeSpec but does not match the changed Java enum-name customization."
      },
      {
        "rank": 27,
        "catalogOrder": 30,
        "title": "Directives",
        "canonicalUrl": "https://typespec.io/docs/language-basics/directives/",
        "score": {
          "exactSymbol": 0,
          "patternCategory": 0,
          "servicePlane": 2,
          "changeContext": 0,
          "total": 2
        },
        "selectionRationale": "Applies generally to ARM or TypeSpec but does not match the changed Java enum-name customization."
      },
      {
        "rank": 28,
        "catalogOrder": 31,
        "title": "Azure Core `no-openapi` rule",
        "canonicalUrl": "https://azure.github.io/typespec-azure/docs/libraries/azure-core/rules/no-openapi/",
        "score": {
          "exactSymbol": 0,
          "patternCategory": 0,
          "servicePlane": 2,
          "changeContext": 0,
          "total": 2
        },
        "selectionRationale": "Applies generally to ARM or TypeSpec but does not match the changed Java enum-name customization."
      },
      {
        "rank": 29,
        "catalogOrder": 17,
        "title": "Azure.Core long-running operations",
        "canonicalUrl": "https://azure.github.io/typespec-azure/docs/howtos/azure-core/long-running-operations/",
        "score": {
          "exactSymbol": 0,
          "patternCategory": 0,
          "servicePlane": 0,
          "changeContext": 0,
          "total": 0
        },
        "selectionRationale": "Does not match the ARM client-customization intent or its changed constructs."
      },
      {
        "rank": 30,
        "catalogOrder": 19,
        "title": "TypeSpec pagination",
        "canonicalUrl": "https://typespec.io/docs/standard-library/pagination/",
        "score": {
          "exactSymbol": 0,
          "patternCategory": 0,
          "servicePlane": 0,
          "changeContext": 0,
          "total": 0
        },
        "selectionRationale": "Does not match the ARM client-customization intent or its changed constructs."
      },
      {
        "rank": 31,
        "catalogOrder": 29,
        "title": "Content negotiation",
        "canonicalUrl": "https://azure.github.io/typespec-azure/docs/howtos/azure-core/content-negotiation/",
        "score": {
          "exactSymbol": 0,
          "patternCategory": 0,
          "servicePlane": 0,
          "changeContext": 0,
          "total": 0
        },
        "selectionRationale": "Does not match the ARM client-customization intent or its changed constructs."
      }
    ],
    "documents": [
      {
        "rank": 1,
        "catalogOrder": 1,
        "title": "Evolving APIs",
        "canonicalUrl": "https://azure.github.io/typespec-azure/docs/howtos/versioning/06-evolving-apis/",
        "score": {
          "exactSymbol": 0,
          "patternCategory": 3,
          "servicePlane": 2,
          "changeContext": 1,
          "total": 6
        },
        "selectionRationale": "Directly addresses modification of an existing versioned Azure API.",
        "guidance": [],
        "noRelevantGuidance": true,
        "retrievedAt": "2026-09-17T12:14:31.4309683+00:00",
        "contentHash": "sha256:4bc0aa219a78eea21f6e75b38f4ade0004a8f92624056cc3ca8e4d8c1b8a2ab8"
      },
      {
        "rank": 2,
        "catalogOrder": 22,
        "title": "Enums",
        "canonicalUrl": "https://typespec.io/docs/language-basics/enums/",
        "score": {
          "exactSymbol": 0,
          "patternCategory": 3,
          "servicePlane": 2,
          "changeContext": 0,
          "total": 5
        },
        "selectionRationale": "Covers enum members, which are the targets of the changed client-name customizations.",
        "guidance": [],
        "noRelevantGuidance": true,
        "retrievedAt": "2026-09-17T12:14:31.4309683+00:00",
        "contentHash": "sha256:30a3f5f7b242ac46e4b4ff6ac3ec3f700f1d2b64e6b57671b51fd4d493979ca0"
      },
      {
        "rank": 3,
        "catalogOrder": 24,
        "title": "Decorators",
        "canonicalUrl": "https://typespec.io/docs/language-basics/decorators/",
        "score": {
          "exactSymbol": 0,
          "patternCategory": 3,
          "servicePlane": 2,
          "changeContext": 0,
          "total": 5
        },
        "selectionRationale": "Covers augment-decorator syntax used by the changed @@clientName statements.",
        "guidance": [],
        "noRelevantGuidance": true,
        "retrievedAt": "2026-09-17T12:14:31.4309683+00:00",
        "contentHash": "sha256:d9d0c9b2d1daa6f08c745f86bacff15d929eab477f6bc414bed23dd0b6315ca5"
      },
      {
        "rank": 4,
        "catalogOrder": 25,
        "title": "Built-in decorators",
        "canonicalUrl": "https://typespec.io/docs/standard-library/built-in-decorators/",
        "score": {
          "exactSymbol": 0,
          "patternCategory": 3,
          "servicePlane": 2,
          "changeContext": 0,
          "total": 5
        },
        "selectionRationale": "Provides official decorator reference context for decorated enum members.",
        "guidance": [],
        "noRelevantGuidance": true,
        "retrievedAt": "2026-09-17T12:14:31.4309683+00:00",
        "contentHash": "sha256:091ad381f2b2c0c7bf6843b3c40bac87a01abc226e084a986c320f711811f215"
      }
    ]
  },
  "intentAssessments": [
    {
      "semanticIntentId": "semantic-8aa807f8bfe33d9a",
      "decision": "no-applicable-guidance",
      "blockers": []
    }
  ],
  "retrievalFailures": [],
  "blockers": []
}

Changed files

  • specification/consumption/resource-manager/Microsoft.Consumption/Consumption/client.tsp (committed)

Timing and model input

{
  "timings": {
    "metadataMs": 956,
    "fetchMs": 121,
    "scopeDiscoveryMs": 58,
    "setupExcludingFetchMs": 6926,
    "comparisonMs": 105,
    "changeDiscoveryMs": 62,
    "workspacePreparationMs": 5540,
    "projectDiscoveryMs": 39,
    "totalMs": 69776,
    "semanticAnalysisMs": 27,
    "restAnalysisMs": 25,
    "downstreamAnalysisMs": 1177,
    "documentQualityAnalysisMs": 1
  },
  "inputAccounting": {
    "budgetTier": "small",
    "budgetBytes": 131072,
    "bytes": 5616,
    "estimatedTokens": 1404,
    "retained": {
      "evidenceSets": 1,
      "facts": 0,
      "semanticReviewUnits": 1,
      "restCandidates": 0,
      "downstreamCandidates": 0,
      "downstreamRootCauses": 0,
      "complianceSearchRequests": 1,
      "inferenceRequests": 1
    },
    "omittedRedundant": {
      "rawEmitterArtifacts": true,
      "compilerLogs": true,
      "unchangedInventories": true,
      "unreferencedFacts": true,
      "unreferencedDeterministicFacts": true,
      "sourceChanges": true,
      "repeatedDeclarationIds": true,
      "repeatedReviewUnitEvidence": true
    },
    "inference": {
      "requestCount": 1,
      "inferredCandidateCount": 0,
      "noImpactCount": 1,
      "blockedCount": 0
    },
    "compliance": {
      "catalogEntriesScored": 31,
      "documentsFetched": 4,
      "documentBytesFetched": 34000,
      "guidanceExcerptsRetained": 0,
      "guidanceExcerptBytesRetained": 0
    }
  }
}

Provenance: model-input.json, dimensions/document-quality-input.json, inference.json, compliance-search-evidence.json, assessment-judgment.json, preparation-manifest.json