diff --git a/extension-base/src/main/java/com/azure/autorest/extension/base/model/codemodel/SchemaContext.java b/extension-base/src/main/java/com/azure/autorest/extension/base/model/codemodel/SchemaContext.java index e7f94e7dad..d93367ea19 100644 --- a/extension-base/src/main/java/com/azure/autorest/extension/base/model/codemodel/SchemaContext.java +++ b/extension-base/src/main/java/com/azure/autorest/extension/base/model/codemodel/SchemaContext.java @@ -35,11 +35,6 @@ public enum SchemaContext { */ PAGED("paged"), - /** - * The schema is used as an anonymous type. - */ - ANONYMOUS("anonymous"), - /** * The schema is used internally. */ diff --git a/javagen/src/main/java/com/azure/autorest/model/clientmodel/ImplementationDetails.java b/javagen/src/main/java/com/azure/autorest/model/clientmodel/ImplementationDetails.java index c524bfd453..4a104b7505 100644 --- a/javagen/src/main/java/com/azure/autorest/model/clientmodel/ImplementationDetails.java +++ b/javagen/src/main/java/com/azure/autorest/model/clientmodel/ImplementationDetails.java @@ -49,13 +49,6 @@ public enum Usage { */ PAGED("paged"), - /** - * Anonymous model. - *

- * Codegen may choose to not generate class for it, or generate class in implementation package. - */ - ANONYMOUS("anonymous"), - /** * External model. *

@@ -144,8 +137,6 @@ public static Usage fromSchemaContext(SchemaContext schemaContext) { return PUBLIC; case PAGED: return PAGED; - case ANONYMOUS: - return ANONYMOUS; case INTERNAL: return INTERNAL; case JSON_MERGE_PATCH: diff --git a/typespec-extension/changelog.md b/typespec-extension/changelog.md index a6934b42b6..bf8a7af8dd 100644 --- a/typespec-extension/changelog.md +++ b/typespec-extension/changelog.md @@ -1,5 +1,9 @@ # Release History +## 0.20.1 (2024-08-29) + +Compatible with compiler 0.59. + ## 0.20.0 (2024-08-26) Compatible with compiler 0.59. diff --git a/typespec-extension/package-lock.json b/typespec-extension/package-lock.json index 19a6d4e124..1dc32d6532 100644 --- a/typespec-extension/package-lock.json +++ b/typespec-extension/package-lock.json @@ -1,12 +1,12 @@ { "name": "@azure-tools/typespec-java", - "version": "0.19.3", + "version": "0.20.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@azure-tools/typespec-java", - "version": "0.19.3", + "version": "0.20.1", "license": "MIT", "dependencies": { "@autorest/codemodel": "~4.20.0", @@ -22,9 +22,9 @@ "@types/js-yaml": "~4.0.9", "@types/lodash": "~4.17.7", "@types/mocha": "~10.0.7", - "@types/node": "~22.4.2", - "@typescript-eslint/eslint-plugin": "~8.2.0", - "@typescript-eslint/parser": "~8.2.0", + "@types/node": "~22.5.1", + "@typescript-eslint/eslint-plugin": "~8.3.0", + "@typescript-eslint/parser": "~8.3.0", "@typespec/compiler": "0.59.1", "@typespec/http": "0.59.1", "@typespec/openapi": "0.59.0", @@ -528,25 +528,25 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "22.4.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.4.2.tgz", - "integrity": "sha512-nAvM3Ey230/XzxtyDcJ+VjvlzpzoHwLsF7JaDRfoI0ytO0mVheerNmM45CtA0yOILXwXXxOrcUWH3wltX+7PSw==", + "version": "22.5.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.1.tgz", + "integrity": "sha512-KkHsxej0j9IW1KKOOAA/XBA0z08UFSrRQHErzEfA3Vgq57eXIMYboIlHJuYIfd+lwCQjtKqUu3UnmKbtUc9yRw==", "dev": true, "dependencies": { "undici-types": "~6.19.2" } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.2.0.tgz", - "integrity": "sha512-02tJIs655em7fvt9gps/+4k4OsKULYGtLBPJfOsmOq1+3cdClYiF0+d6mHu6qDnTcg88wJBkcPLpQhq7FyDz0A==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.3.0.tgz", + "integrity": "sha512-FLAIn63G5KH+adZosDYiutqkOkYEx0nvcwNNfJAf+c7Ae/H35qWwTYvPZUKFj5AS+WfHG/WJJfWnDnyNUlp8UA==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.2.0", - "@typescript-eslint/type-utils": "8.2.0", - "@typescript-eslint/utils": "8.2.0", - "@typescript-eslint/visitor-keys": "8.2.0", + "@typescript-eslint/scope-manager": "8.3.0", + "@typescript-eslint/type-utils": "8.3.0", + "@typescript-eslint/utils": "8.3.0", + "@typescript-eslint/visitor-keys": "8.3.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -570,13 +570,13 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.2.0.tgz", - "integrity": "sha512-OFn80B38yD6WwpoHU2Tz/fTz7CgFqInllBoC3WP+/jLbTb4gGPTy9HBSTsbDWkMdN55XlVU0mMDYAtgvlUspGw==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.3.0.tgz", + "integrity": "sha512-mz2X8WcN2nVu5Hodku+IR8GgCOl4C0G/Z1ruaWN4dgec64kDBabuXyPAr+/RgJtumv8EEkqIzf3X2U5DUKB2eg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "8.2.0", - "@typescript-eslint/visitor-keys": "8.2.0" + "@typescript-eslint/types": "8.3.0", + "@typescript-eslint/visitor-keys": "8.3.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -587,9 +587,9 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.2.0.tgz", - "integrity": "sha512-6a9QSK396YqmiBKPkJtxsgZZZVjYQ6wQ/TlI0C65z7vInaETuC6HAHD98AGLC8DyIPqHytvNuS8bBVvNLKyqvQ==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.3.0.tgz", + "integrity": "sha512-y6sSEeK+facMaAyixM36dQ5NVXTnKWunfD1Ft4xraYqxP0lC0POJmIaL/mw72CUMqjY9qfyVfXafMeaUj0noWw==", "dev": true, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -600,15 +600,15 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.2.0.tgz", - "integrity": "sha512-kiG4EDUT4dImplOsbh47B1QnNmXSoUqOjWDvCJw/o8LgfD0yr7k2uy54D5Wm0j4t71Ge1NkynGhpWdS0dEIAUA==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.3.0.tgz", + "integrity": "sha512-Mq7FTHl0R36EmWlCJWojIC1qn/ZWo2YiWYc1XVtasJ7FIgjo0MVv9rZWXEE7IK2CGrtwe1dVOxWwqXUdNgfRCA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "8.2.0", - "@typescript-eslint/visitor-keys": "8.2.0", + "@typescript-eslint/types": "8.3.0", + "@typescript-eslint/visitor-keys": "8.3.0", "debug": "^4.3.4", - "globby": "^11.1.0", + "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", @@ -628,15 +628,15 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.2.0.tgz", - "integrity": "sha512-O46eaYKDlV3TvAVDNcoDzd5N550ckSe8G4phko++OCSC1dYIb9LTc3HDGYdWqWIAT5qDUKphO6sd9RrpIJJPfg==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.3.0.tgz", + "integrity": "sha512-F77WwqxIi/qGkIGOGXNBLV7nykwfjLsdauRB/DOFPdv6LTF3BHHkBpq81/b5iMPSF055oO2BiivDJV4ChvNtXA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.2.0", - "@typescript-eslint/types": "8.2.0", - "@typescript-eslint/typescript-estree": "8.2.0" + "@typescript-eslint/scope-manager": "8.3.0", + "@typescript-eslint/types": "8.3.0", + "@typescript-eslint/typescript-estree": "8.3.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -650,12 +650,12 @@ } }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.2.0.tgz", - "integrity": "sha512-sbgsPMW9yLvS7IhCi8IpuK1oBmtbWUNP+hBdwl/I9nzqVsszGnNGti5r9dUtF5RLivHUFFIdRvLiTsPhzSyJ3Q==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.3.0.tgz", + "integrity": "sha512-RmZwrTbQ9QveF15m/Cl28n0LXD6ea2CjkhH5rQ55ewz3H24w+AMCJHPVYaZ8/0HoG8Z3cLLFFycRXxeO2tz9FA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "8.2.0", + "@typescript-eslint/types": "8.3.0", "eslint-visitor-keys": "^3.4.3" }, "engines": { @@ -691,15 +691,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.2.0.tgz", - "integrity": "sha512-j3Di+o0lHgPrb7FxL3fdEy6LJ/j2NE8u+AP/5cQ9SKb+JLH6V6UHDqJ+e0hXBkHP1wn1YDFjYCS9LBQsZDlDEg==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.3.0.tgz", + "integrity": "sha512-h53RhVyLu6AtpUzVCYLPhZGL5jzTD9fZL+SYf/+hYOx2bDkyQXztXSc4tbvKYHzfMXExMLiL9CWqJmVz6+78IQ==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "8.2.0", - "@typescript-eslint/types": "8.2.0", - "@typescript-eslint/typescript-estree": "8.2.0", - "@typescript-eslint/visitor-keys": "8.2.0", + "@typescript-eslint/scope-manager": "8.3.0", + "@typescript-eslint/types": "8.3.0", + "@typescript-eslint/typescript-estree": "8.3.0", + "@typescript-eslint/visitor-keys": "8.3.0", "debug": "^4.3.4" }, "engines": { @@ -719,13 +719,13 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.2.0.tgz", - "integrity": "sha512-OFn80B38yD6WwpoHU2Tz/fTz7CgFqInllBoC3WP+/jLbTb4gGPTy9HBSTsbDWkMdN55XlVU0mMDYAtgvlUspGw==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.3.0.tgz", + "integrity": "sha512-mz2X8WcN2nVu5Hodku+IR8GgCOl4C0G/Z1ruaWN4dgec64kDBabuXyPAr+/RgJtumv8EEkqIzf3X2U5DUKB2eg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "8.2.0", - "@typescript-eslint/visitor-keys": "8.2.0" + "@typescript-eslint/types": "8.3.0", + "@typescript-eslint/visitor-keys": "8.3.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -736,9 +736,9 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.2.0.tgz", - "integrity": "sha512-6a9QSK396YqmiBKPkJtxsgZZZVjYQ6wQ/TlI0C65z7vInaETuC6HAHD98AGLC8DyIPqHytvNuS8bBVvNLKyqvQ==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.3.0.tgz", + "integrity": "sha512-y6sSEeK+facMaAyixM36dQ5NVXTnKWunfD1Ft4xraYqxP0lC0POJmIaL/mw72CUMqjY9qfyVfXafMeaUj0noWw==", "dev": true, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -749,15 +749,15 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.2.0.tgz", - "integrity": "sha512-kiG4EDUT4dImplOsbh47B1QnNmXSoUqOjWDvCJw/o8LgfD0yr7k2uy54D5Wm0j4t71Ge1NkynGhpWdS0dEIAUA==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.3.0.tgz", + "integrity": "sha512-Mq7FTHl0R36EmWlCJWojIC1qn/ZWo2YiWYc1XVtasJ7FIgjo0MVv9rZWXEE7IK2CGrtwe1dVOxWwqXUdNgfRCA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "8.2.0", - "@typescript-eslint/visitor-keys": "8.2.0", + "@typescript-eslint/types": "8.3.0", + "@typescript-eslint/visitor-keys": "8.3.0", "debug": "^4.3.4", - "globby": "^11.1.0", + "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", @@ -777,12 +777,12 @@ } }, "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.2.0.tgz", - "integrity": "sha512-sbgsPMW9yLvS7IhCi8IpuK1oBmtbWUNP+hBdwl/I9nzqVsszGnNGti5r9dUtF5RLivHUFFIdRvLiTsPhzSyJ3Q==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.3.0.tgz", + "integrity": "sha512-RmZwrTbQ9QveF15m/Cl28n0LXD6ea2CjkhH5rQ55ewz3H24w+AMCJHPVYaZ8/0HoG8Z3cLLFFycRXxeO2tz9FA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "8.2.0", + "@typescript-eslint/types": "8.3.0", "eslint-visitor-keys": "^3.4.3" }, "engines": { @@ -834,13 +834,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.2.0.tgz", - "integrity": "sha512-g1CfXGFMQdT5S+0PSO0fvGXUaiSkl73U1n9LTK5aRAFnPlJ8dLKkXr4AaLFvPedW8lVDoMgLLE3JN98ZZfsj0w==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.3.0.tgz", + "integrity": "sha512-wrV6qh//nLbfXZQoj32EXKmwHf4b7L+xXLrP3FZ0GOUU72gSvLjeWUl5J5Ue5IwRxIV1TfF73j/eaBapxx99Lg==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "8.2.0", - "@typescript-eslint/utils": "8.2.0", + "@typescript-eslint/typescript-estree": "8.3.0", + "@typescript-eslint/utils": "8.3.0", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, @@ -858,13 +858,13 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/scope-manager": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.2.0.tgz", - "integrity": "sha512-OFn80B38yD6WwpoHU2Tz/fTz7CgFqInllBoC3WP+/jLbTb4gGPTy9HBSTsbDWkMdN55XlVU0mMDYAtgvlUspGw==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.3.0.tgz", + "integrity": "sha512-mz2X8WcN2nVu5Hodku+IR8GgCOl4C0G/Z1ruaWN4dgec64kDBabuXyPAr+/RgJtumv8EEkqIzf3X2U5DUKB2eg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "8.2.0", - "@typescript-eslint/visitor-keys": "8.2.0" + "@typescript-eslint/types": "8.3.0", + "@typescript-eslint/visitor-keys": "8.3.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -875,9 +875,9 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.2.0.tgz", - "integrity": "sha512-6a9QSK396YqmiBKPkJtxsgZZZVjYQ6wQ/TlI0C65z7vInaETuC6HAHD98AGLC8DyIPqHytvNuS8bBVvNLKyqvQ==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.3.0.tgz", + "integrity": "sha512-y6sSEeK+facMaAyixM36dQ5NVXTnKWunfD1Ft4xraYqxP0lC0POJmIaL/mw72CUMqjY9qfyVfXafMeaUj0noWw==", "dev": true, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -888,15 +888,15 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.2.0.tgz", - "integrity": "sha512-kiG4EDUT4dImplOsbh47B1QnNmXSoUqOjWDvCJw/o8LgfD0yr7k2uy54D5Wm0j4t71Ge1NkynGhpWdS0dEIAUA==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.3.0.tgz", + "integrity": "sha512-Mq7FTHl0R36EmWlCJWojIC1qn/ZWo2YiWYc1XVtasJ7FIgjo0MVv9rZWXEE7IK2CGrtwe1dVOxWwqXUdNgfRCA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "8.2.0", - "@typescript-eslint/visitor-keys": "8.2.0", + "@typescript-eslint/types": "8.3.0", + "@typescript-eslint/visitor-keys": "8.3.0", "debug": "^4.3.4", - "globby": "^11.1.0", + "fast-glob": "^3.3.2", "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", @@ -916,15 +916,15 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/utils": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.2.0.tgz", - "integrity": "sha512-O46eaYKDlV3TvAVDNcoDzd5N550ckSe8G4phko++OCSC1dYIb9LTc3HDGYdWqWIAT5qDUKphO6sd9RrpIJJPfg==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.3.0.tgz", + "integrity": "sha512-F77WwqxIi/qGkIGOGXNBLV7nykwfjLsdauRB/DOFPdv6LTF3BHHkBpq81/b5iMPSF055oO2BiivDJV4ChvNtXA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.2.0", - "@typescript-eslint/types": "8.2.0", - "@typescript-eslint/typescript-estree": "8.2.0" + "@typescript-eslint/scope-manager": "8.3.0", + "@typescript-eslint/types": "8.3.0", + "@typescript-eslint/typescript-estree": "8.3.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -938,12 +938,12 @@ } }, "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.2.0.tgz", - "integrity": "sha512-sbgsPMW9yLvS7IhCi8IpuK1oBmtbWUNP+hBdwl/I9nzqVsszGnNGti5r9dUtF5RLivHUFFIdRvLiTsPhzSyJ3Q==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.3.0.tgz", + "integrity": "sha512-RmZwrTbQ9QveF15m/Cl28n0LXD6ea2CjkhH5rQ55ewz3H24w+AMCJHPVYaZ8/0HoG8Z3cLLFFycRXxeO2tz9FA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "8.2.0", + "@typescript-eslint/types": "8.3.0", "eslint-visitor-keys": "^3.4.3" }, "engines": { diff --git a/typespec-extension/package.json b/typespec-extension/package.json index 5bc10de3b7..094b8fbd27 100644 --- a/typespec-extension/package.json +++ b/typespec-extension/package.json @@ -1,6 +1,6 @@ { "name": "@azure-tools/typespec-java", - "version": "0.20.0", + "version": "0.20.1", "description": "TypeSpec library for emitting Java client from the TypeSpec REST protocol binding", "keywords": [ "TypeSpec" @@ -71,9 +71,9 @@ "@types/js-yaml": "~4.0.9", "@types/lodash": "~4.17.7", "@types/mocha": "~10.0.7", - "@types/node": "~22.4.2", - "@typescript-eslint/eslint-plugin": "~8.2.0", - "@typescript-eslint/parser": "~8.2.0", + "@types/node": "~22.5.1", + "@typescript-eslint/eslint-plugin": "~8.3.0", + "@typescript-eslint/parser": "~8.3.0", "@typespec/compiler": "0.59.1", "@typespec/http": "0.59.1", "@typespec/openapi": "0.59.0", diff --git a/typespec-extension/src/code-model-builder.ts b/typespec-extension/src/code-model-builder.ts index 9c34f62f4f..b8e776e6d3 100644 --- a/typespec-extension/src/code-model-builder.ts +++ b/typespec-extension/src/code-model-builder.ts @@ -67,7 +67,6 @@ import { SdkServiceMethod, SdkType, SdkUnionType, - UsageFlags, createSdkContext, getAllModels, getClientType, @@ -107,10 +106,7 @@ import { getHeaderFieldName, getPathParamName, getQueryParamName, - isBody, - isBodyRoot, isHeader, - isMultipartBodyProperty, isPathParam, isQueryParam, } from "@typespec/http"; @@ -455,6 +451,7 @@ export class CodeModelBuilder { schema instanceof ConstantSchema ) { const schemaUsage: SchemaContext[] | undefined = schema.usage; + // Public override Internal if (schemaUsage?.includes(SchemaContext.Public)) { const index = schemaUsage.indexOf(SchemaContext.Internal); @@ -463,11 +460,17 @@ export class CodeModelBuilder { } } - // Internal on Anonymous - if (schemaUsage?.includes(SchemaContext.Anonymous)) { - const index = schemaUsage.indexOf(SchemaContext.Internal); - if (index < 0) { - schemaUsage.push(SchemaContext.Internal); + // Internal on PublicSpread, but Public takes precedence + if (schemaUsage?.includes(SchemaContext.PublicSpread)) { + // remove PublicSpread as it now served its purpose + schemaUsage.splice(schemaUsage.indexOf(SchemaContext.PublicSpread), 1); + + // Public would override PublicSpread, hence do nothing if this schema is Public + if (!schemaUsage?.includes(SchemaContext.Public)) { + // set the model as Internal, so that it is not exposed to user + if (!schemaUsage.includes(SchemaContext.Internal)) { + schemaUsage.push(SchemaContext.Internal); + } } } } @@ -1302,6 +1305,11 @@ export class CodeModelBuilder { }); op.addParameter(parameter); + const jsonMergePatch = operationIsJsonMergePatch(sdkHttpOperation); + + const schemaIsPublicBeforeProcess = + schema instanceof ObjectSchema && (schema as SchemaUsage).usage?.includes(SchemaContext.Public); + this.trackSchemaUsage(schema, { usage: [SchemaContext.Input] }); if (op.convenienceApi) { @@ -1309,112 +1317,126 @@ export class CodeModelBuilder { this.trackSchemaUsage(schema, { usage: [op.internalApi ? SchemaContext.Internal : SchemaContext.Public] }); } - if (operationIsJsonMergePatch(sdkHttpOperation)) { + if (jsonMergePatch) { this.trackSchemaUsage(schema, { usage: [SchemaContext.JsonMergePatch] }); } if (op.convenienceApi && operationIsMultipart(sdkHttpOperation)) { this.trackSchemaUsage(schema, { serializationFormats: [KnownMediaType.Multipart] }); } - // Implicit body parameter would have usage flag: UsageFlags.Spread, for this case we need to do body parameter flatten - const bodyParameterFlatten = sdkType.kind === "model" && sdkType.usage & UsageFlags.Spread && !this.isArm(); - - if (schema instanceof ObjectSchema && bodyParameterFlatten) { - // flatten body parameter - const parameters = sdkHttpOperation.parameters; - const bodyParameter = sdkHttpOperation.bodyParam; - // name the schema for documentation - schema.language.default.name = pascalCase(op.language.default.name) + "Request"; - - if (!parameter.language.default.name) { - // name the parameter for documentation - parameter.language.default.name = "request"; - } + if (op.convenienceApi) { + // Explicit body parameter @body or @bodyRoot would result to the existance of rawHttpOperation.parameters.body.property + // Implicit body parameter would result to rawHttpOperation.parameters.body.property be undefined + // see https://typespec.io/docs/libraries/http/cheat-sheet#data-types + const bodyParameterFlatten = + schema instanceof ObjectSchema && + sdkType.kind === "model" && + !rawHttpOperation.parameters.body?.property && + !this.isArm(); + + if (schema instanceof ObjectSchema && bodyParameterFlatten) { + // flatten body parameter + const parameters = sdkHttpOperation.parameters; + const bodyParameter = sdkHttpOperation.bodyParam; + + if (!parameter.language.default.name) { + // name the parameter for documentation + parameter.language.default.name = "request"; + } - if (operationIsJsonMergePatch(sdkHttpOperation)) { - // skip model flatten, if "application/merge-patch+json" - schema.language.default.name = pascalCase(op.language.default.name) + "PatchRequest"; - return; - } + if (jsonMergePatch) { + // skip model flatten, if "application/merge-patch+json" + if (sdkType.isGeneratedName) { + schema.language.default.name = pascalCase(op.language.default.name) + "PatchRequest"; + } + return; + } - this.trackSchemaUsage(schema, { usage: [SchemaContext.Anonymous] }); + const schemaUsage = (schema as SchemaUsage).usage; + if (!schemaIsPublicBeforeProcess && schemaUsage?.includes(SchemaContext.Public)) { + // Public added in this op, change it to PublicSpread + // This means that if this op would originally add Public to this schema, it adds PublicSpread instead + schemaUsage?.splice(schemaUsage?.indexOf(SchemaContext.Public), 1); + this.trackSchemaUsage(schema, { usage: [SchemaContext.PublicSpread] }); + } - if (op.convenienceApi && op.parameters) { - op.convenienceApi.requests = []; - const request = new Request({ - protocol: op.requests![0].protocol, - }); - request.parameters = []; - op.convenienceApi.requests.push(request); + if (op.convenienceApi && op.parameters) { + op.convenienceApi.requests = []; + const request = new Request({ + protocol: op.requests![0].protocol, + }); + request.parameters = []; + op.convenienceApi.requests.push(request); - // header/query/path params - for (const opParameter of parameters) { - this.addParameterOrBodyPropertyToCodeModelRequest(opParameter, op, request, schema, parameter); - } - // body param - if (bodyParameter) { - if (bodyParameter.type.kind === "model") { - for (const bodyProperty of bodyParameter.type.properties) { - if (bodyProperty.kind === "property") { - this.addParameterOrBodyPropertyToCodeModelRequest(bodyProperty, op, request, schema, parameter); + // header/query/path params + for (const opParameter of parameters) { + this.addParameterOrBodyPropertyToCodeModelRequest(opParameter, op, request, schema, parameter); + } + // body param + if (bodyParameter) { + if (bodyParameter.type.kind === "model") { + for (const bodyProperty of bodyParameter.type.properties) { + if (bodyProperty.kind === "property") { + this.addParameterOrBodyPropertyToCodeModelRequest(bodyProperty, op, request, schema, parameter); + } } } } - } - request.signatureParameters = request.parameters; - - if (request.signatureParameters.length > 6) { - // create an option bag - const name = op.language.default.name + "Options"; - const namespace = getNamespace(rawHttpOperation.operation); - // option bag schema - const optionBagSchema = this.codeModel.schemas.add( - new GroupSchema(name, `Options for ${op.language.default.name} API`, { - language: { - default: { - namespace: namespace, - }, - java: { - namespace: this.getJavaNamespace(namespace), + request.signatureParameters = request.parameters; + + if (request.signatureParameters.length > 6) { + // create an option bag + const name = op.language.default.name + "Options"; + const namespace = getNamespace(rawHttpOperation.operation); + // option bag schema + const optionBagSchema = this.codeModel.schemas.add( + new GroupSchema(name, `Options for ${op.language.default.name} API`, { + language: { + default: { + namespace: namespace, + }, + java: { + namespace: this.getJavaNamespace(namespace), + }, }, - }, - }), - ); - request.parameters.forEach((it) => { - optionBagSchema.add( - new GroupProperty(it.language.default.name, it.language.default.description, it.schema, { - originalParameter: [it], - summary: it.summary, - required: it.required, - nullable: it.nullable, - readOnly: false, - serializedName: it.language.default.serializedName, }), ); - }); - - this.trackSchemaUsage(optionBagSchema, { usage: [SchemaContext.Input] }); - if (op.convenienceApi) { - this.trackSchemaUsage(optionBagSchema, { - usage: [op.internalApi ? SchemaContext.Internal : SchemaContext.Public], + request.parameters.forEach((it) => { + optionBagSchema.add( + new GroupProperty(it.language.default.name, it.language.default.description, it.schema, { + originalParameter: [it], + summary: it.summary, + required: it.required, + nullable: it.nullable, + readOnly: false, + serializedName: it.language.default.serializedName, + }), + ); }); - } - // option bag parameter - const optionBagParameter = new Parameter( - "options", - optionBagSchema.language.default.description, - optionBagSchema, - { - implementation: ImplementationLocation.Method, - required: true, - nullable: false, - }, - ); + this.trackSchemaUsage(optionBagSchema, { usage: [SchemaContext.Input] }); + if (op.convenienceApi) { + this.trackSchemaUsage(optionBagSchema, { + usage: [op.internalApi ? SchemaContext.Internal : SchemaContext.Public], + }); + } + + // option bag parameter + const optionBagParameter = new Parameter( + "options", + optionBagSchema.language.default.description, + optionBagSchema, + { + implementation: ImplementationLocation.Method, + required: true, + nullable: false, + }, + ); - request.signatureParameters = [optionBagParameter]; - request.parameters.forEach((it) => (it.groupedBy = optionBagParameter)); - request.parameters.push(optionBagParameter); + request.signatureParameters = [optionBagParameter]; + request.parameters.forEach((it) => (it.groupedBy = optionBagParameter)); + request.parameters.push(optionBagParameter); + } } } } @@ -2229,24 +2251,6 @@ export class CodeModelBuilder { } } - private getParameterLocation(target: ModelProperty): ParameterLocation | "BodyProperty" { - if (isHeader(this.program, target)) { - return ParameterLocation.Header; - } else if (isQueryParam(this.program, target)) { - return ParameterLocation.Query; - } else if (isPathParam(this.program, target)) { - return ParameterLocation.Path; - } else if ( - isBody(this.program, target) || - isBodyRoot(this.program, target) || - isMultipartBodyProperty(this.program, target) - ) { - return ParameterLocation.Body; - } else { - return "BodyProperty"; - } - } - private isReadOnly(target: SdkModelPropertyType): boolean { const segment = target.__raw ? getSegment(this.program, target.__raw) !== undefined : false; if (segment) { @@ -2516,10 +2520,21 @@ export class CodeModelBuilder { }; // Exclude context that not to be propagated + const updatedSchemaUsage = (schema as SchemaUsage).usage?.filter( + (it) => it !== SchemaContext.Paged && it !== SchemaContext.PublicSpread, + ); + const indexSpread = (schema as SchemaUsage).usage?.indexOf(SchemaContext.PublicSpread); + if ( + updatedSchemaUsage && + indexSpread && + indexSpread >= 0 && + !(schema as SchemaUsage).usage?.includes(SchemaContext.Public) + ) { + // Propagate Public, if schema is PublicSpread + updatedSchemaUsage.push(SchemaContext.Public); + } const schemaUsage = { - usage: (schema as SchemaUsage).usage?.filter( - (it) => it !== SchemaContext.Paged && it !== SchemaContext.Anonymous, - ), + usage: updatedSchemaUsage, serializationFormats: (schema as SchemaUsage).serializationFormats?.filter( (it) => it !== KnownMediaType.Multipart, ), diff --git a/typespec-extension/src/common/schemas/usage.ts b/typespec-extension/src/common/schemas/usage.ts index 087546f6c0..59e69d2c8e 100644 --- a/typespec-extension/src/common/schemas/usage.ts +++ b/typespec-extension/src/common/schemas/usage.ts @@ -19,8 +19,8 @@ export enum SchemaContext { /** Schema is used from the pageable operation. This usage does not propagate. */ Paged = "paged", - /** Schema as anonymous model. This usage does not propagate. */ - Anonymous = "anonymous", + /** Schema as spread/flatten model. "Public", if present in usage, will have precedence over "PublicSpread". This usage does not propagate. Instead, it propagate "Public". */ + PublicSpread = "spread", /** Schema is used in json-merge-patch operation */ JsonMergePatch = "json-merge-patch", diff --git a/typespec-tests/package.json b/typespec-tests/package.json index 0ab1c13dd3..12dacb69a2 100644 --- a/typespec-tests/package.json +++ b/typespec-tests/package.json @@ -10,7 +10,7 @@ }, "dependencies": { "@azure-tools/cadl-ranch-specs": "0.36.1", - "@azure-tools/typespec-java": "file:/../typespec-extension/azure-tools-typespec-java-0.20.0.tgz" + "@azure-tools/typespec-java": "file:/../typespec-extension/azure-tools-typespec-java-0.20.1.tgz" }, "devDependencies": { "@typespec/prettier-plugin-typespec": "~0.59.0", diff --git a/typespec-tests/src/main/java/com/parameters/spread/AliasAsyncClient.java b/typespec-tests/src/main/java/com/parameters/spread/AliasAsyncClient.java index cfd77d351b..6bb61d0274 100644 --- a/typespec-tests/src/main/java/com/parameters/spread/AliasAsyncClient.java +++ b/typespec-tests/src/main/java/com/parameters/spread/AliasAsyncClient.java @@ -17,7 +17,7 @@ import com.azure.core.util.BinaryData; import com.azure.core.util.FluxUtil; import com.parameters.spread.implementation.AliasImpl; -import com.parameters.spread.implementation.models.SpreadAsRequestBodyRequest1; +import com.parameters.spread.implementation.models.SpreadAsRequestBodyRequest; import com.parameters.spread.implementation.models.SpreadAsRequestParameterRequest; import com.parameters.spread.implementation.models.SpreadParameterWithInnerAliasRequest; import com.parameters.spread.implementation.models.SpreadParameterWithInnerModelRequest; @@ -205,7 +205,7 @@ public Mono> spreadParameterWithInnerAliasWithResponse(String id, public Mono spreadAsRequestBody(String name) { // Generated convenience method for spreadAsRequestBodyWithResponse RequestOptions requestOptions = new RequestOptions(); - SpreadAsRequestBodyRequest1 spreadAsRequestBodyRequestObj = new SpreadAsRequestBodyRequest1(name); + SpreadAsRequestBodyRequest spreadAsRequestBodyRequestObj = new SpreadAsRequestBodyRequest(name); BinaryData spreadAsRequestBodyRequest = BinaryData.fromObject(spreadAsRequestBodyRequestObj); return spreadAsRequestBodyWithResponse(spreadAsRequestBodyRequest, requestOptions).flatMap(FluxUtil::toMono); } diff --git a/typespec-tests/src/main/java/com/parameters/spread/AliasClient.java b/typespec-tests/src/main/java/com/parameters/spread/AliasClient.java index 6964882f2f..fbc955011e 100644 --- a/typespec-tests/src/main/java/com/parameters/spread/AliasClient.java +++ b/typespec-tests/src/main/java/com/parameters/spread/AliasClient.java @@ -16,7 +16,7 @@ import com.azure.core.http.rest.Response; import com.azure.core.util.BinaryData; import com.parameters.spread.implementation.AliasImpl; -import com.parameters.spread.implementation.models.SpreadAsRequestBodyRequest1; +import com.parameters.spread.implementation.models.SpreadAsRequestBodyRequest; import com.parameters.spread.implementation.models.SpreadAsRequestParameterRequest; import com.parameters.spread.implementation.models.SpreadParameterWithInnerAliasRequest; import com.parameters.spread.implementation.models.SpreadParameterWithInnerModelRequest; @@ -202,7 +202,7 @@ public Response spreadParameterWithInnerAliasWithResponse(String id, Strin public void spreadAsRequestBody(String name) { // Generated convenience method for spreadAsRequestBodyWithResponse RequestOptions requestOptions = new RequestOptions(); - SpreadAsRequestBodyRequest1 spreadAsRequestBodyRequestObj = new SpreadAsRequestBodyRequest1(name); + SpreadAsRequestBodyRequest spreadAsRequestBodyRequestObj = new SpreadAsRequestBodyRequest(name); BinaryData spreadAsRequestBodyRequest = BinaryData.fromObject(spreadAsRequestBodyRequestObj); spreadAsRequestBodyWithResponse(spreadAsRequestBodyRequest, requestOptions).getValue(); } diff --git a/typespec-tests/src/main/java/com/parameters/spread/ModelAsyncClient.java b/typespec-tests/src/main/java/com/parameters/spread/ModelAsyncClient.java index d1f6411eb9..d119735f9f 100644 --- a/typespec-tests/src/main/java/com/parameters/spread/ModelAsyncClient.java +++ b/typespec-tests/src/main/java/com/parameters/spread/ModelAsyncClient.java @@ -17,7 +17,7 @@ import com.azure.core.util.BinaryData; import com.azure.core.util.FluxUtil; import com.parameters.spread.implementation.ModelsImpl; -import com.parameters.spread.implementation.models.SpreadAsRequestBodyRequest; +import com.parameters.spread.implementation.models.SpreadAsRequestBodyRequest1; import com.parameters.spread.implementation.models.SpreadCompositeRequestMixRequest; import com.parameters.spread.models.BodyParameter; import reactor.core.publisher.Mono; @@ -181,7 +181,7 @@ public Mono> spreadCompositeRequestMixWithResponse(String name, S public Mono spreadAsRequestBody(String name) { // Generated convenience method for spreadAsRequestBodyWithResponse RequestOptions requestOptions = new RequestOptions(); - SpreadAsRequestBodyRequest spreadAsRequestBodyRequest1Obj = new SpreadAsRequestBodyRequest(name); + SpreadAsRequestBodyRequest1 spreadAsRequestBodyRequest1Obj = new SpreadAsRequestBodyRequest1(name); BinaryData spreadAsRequestBodyRequest1 = BinaryData.fromObject(spreadAsRequestBodyRequest1Obj); return spreadAsRequestBodyWithResponse(spreadAsRequestBodyRequest1, requestOptions).flatMap(FluxUtil::toMono); } diff --git a/typespec-tests/src/main/java/com/parameters/spread/ModelClient.java b/typespec-tests/src/main/java/com/parameters/spread/ModelClient.java index 58eb3be14e..197a341c12 100644 --- a/typespec-tests/src/main/java/com/parameters/spread/ModelClient.java +++ b/typespec-tests/src/main/java/com/parameters/spread/ModelClient.java @@ -16,7 +16,7 @@ import com.azure.core.http.rest.Response; import com.azure.core.util.BinaryData; import com.parameters.spread.implementation.ModelsImpl; -import com.parameters.spread.implementation.models.SpreadAsRequestBodyRequest; +import com.parameters.spread.implementation.models.SpreadAsRequestBodyRequest1; import com.parameters.spread.implementation.models.SpreadCompositeRequestMixRequest; import com.parameters.spread.models.BodyParameter; @@ -178,7 +178,7 @@ public Response spreadCompositeRequestMixWithResponse(String name, String public void spreadAsRequestBody(String name) { // Generated convenience method for spreadAsRequestBodyWithResponse RequestOptions requestOptions = new RequestOptions(); - SpreadAsRequestBodyRequest spreadAsRequestBodyRequest1Obj = new SpreadAsRequestBodyRequest(name); + SpreadAsRequestBodyRequest1 spreadAsRequestBodyRequest1Obj = new SpreadAsRequestBodyRequest1(name); BinaryData spreadAsRequestBodyRequest1 = BinaryData.fromObject(spreadAsRequestBodyRequest1Obj); spreadAsRequestBodyWithResponse(spreadAsRequestBodyRequest1, requestOptions).getValue(); } diff --git a/typespec-tests/src/main/java/com/type/union/EnumsOnlyAsyncClient.java b/typespec-tests/src/main/java/com/type/union/EnumsOnlyAsyncClient.java index 2ffdd54d23..a3a0c16ae9 100644 --- a/typespec-tests/src/main/java/com/type/union/EnumsOnlyAsyncClient.java +++ b/typespec-tests/src/main/java/com/type/union/EnumsOnlyAsyncClient.java @@ -17,7 +17,7 @@ import com.azure.core.util.BinaryData; import com.azure.core.util.FluxUtil; import com.type.union.implementation.EnumsOnliesImpl; -import com.type.union.implementation.models.SendRequest6; +import com.type.union.implementation.models.SendRequest3; import com.type.union.models.EnumsOnlyCases; import com.type.union.models.GetResponse3; import reactor.core.publisher.Mono; @@ -129,7 +129,7 @@ public Mono get() { public Mono send(EnumsOnlyCases prop) { // Generated convenience method for sendWithResponse RequestOptions requestOptions = new RequestOptions(); - SendRequest6 sendRequest3Obj = new SendRequest6(prop); + SendRequest3 sendRequest3Obj = new SendRequest3(prop); BinaryData sendRequest3 = BinaryData.fromObject(sendRequest3Obj); return sendWithResponse(sendRequest3, requestOptions).flatMap(FluxUtil::toMono); } diff --git a/typespec-tests/src/main/java/com/type/union/EnumsOnlyClient.java b/typespec-tests/src/main/java/com/type/union/EnumsOnlyClient.java index 769c874663..9c98e8630b 100644 --- a/typespec-tests/src/main/java/com/type/union/EnumsOnlyClient.java +++ b/typespec-tests/src/main/java/com/type/union/EnumsOnlyClient.java @@ -16,7 +16,7 @@ import com.azure.core.http.rest.Response; import com.azure.core.util.BinaryData; import com.type.union.implementation.EnumsOnliesImpl; -import com.type.union.implementation.models.SendRequest6; +import com.type.union.implementation.models.SendRequest3; import com.type.union.models.EnumsOnlyCases; import com.type.union.models.GetResponse3; @@ -125,7 +125,7 @@ public GetResponse3 get() { public void send(EnumsOnlyCases prop) { // Generated convenience method for sendWithResponse RequestOptions requestOptions = new RequestOptions(); - SendRequest6 sendRequest3Obj = new SendRequest6(prop); + SendRequest3 sendRequest3Obj = new SendRequest3(prop); BinaryData sendRequest3 = BinaryData.fromObject(sendRequest3Obj); sendWithResponse(sendRequest3, requestOptions).getValue(); } diff --git a/typespec-tests/src/main/java/com/type/union/FloatsOnlyAsyncClient.java b/typespec-tests/src/main/java/com/type/union/FloatsOnlyAsyncClient.java index 36aded8ce8..c7dfaa4e0c 100644 --- a/typespec-tests/src/main/java/com/type/union/FloatsOnlyAsyncClient.java +++ b/typespec-tests/src/main/java/com/type/union/FloatsOnlyAsyncClient.java @@ -17,7 +17,7 @@ import com.azure.core.util.BinaryData; import com.azure.core.util.FluxUtil; import com.type.union.implementation.FloatsOnliesImpl; -import com.type.union.implementation.models.SendRequest4; +import com.type.union.implementation.models.SendRequest5; import com.type.union.models.GetResponse5; import com.type.union.models.GetResponseProp1; import reactor.core.publisher.Mono; @@ -123,7 +123,7 @@ public Mono get() { public Mono send(GetResponseProp1 prop) { // Generated convenience method for sendWithResponse RequestOptions requestOptions = new RequestOptions(); - SendRequest4 sendRequest5Obj = new SendRequest4(prop); + SendRequest5 sendRequest5Obj = new SendRequest5(prop); BinaryData sendRequest5 = BinaryData.fromObject(sendRequest5Obj); return sendWithResponse(sendRequest5, requestOptions).flatMap(FluxUtil::toMono); } diff --git a/typespec-tests/src/main/java/com/type/union/FloatsOnlyClient.java b/typespec-tests/src/main/java/com/type/union/FloatsOnlyClient.java index 89810763ef..8c55f70516 100644 --- a/typespec-tests/src/main/java/com/type/union/FloatsOnlyClient.java +++ b/typespec-tests/src/main/java/com/type/union/FloatsOnlyClient.java @@ -16,7 +16,7 @@ import com.azure.core.http.rest.Response; import com.azure.core.util.BinaryData; import com.type.union.implementation.FloatsOnliesImpl; -import com.type.union.implementation.models.SendRequest4; +import com.type.union.implementation.models.SendRequest5; import com.type.union.models.GetResponse5; import com.type.union.models.GetResponseProp1; @@ -119,7 +119,7 @@ public GetResponse5 get() { public void send(GetResponseProp1 prop) { // Generated convenience method for sendWithResponse RequestOptions requestOptions = new RequestOptions(); - SendRequest4 sendRequest5Obj = new SendRequest4(prop); + SendRequest5 sendRequest5Obj = new SendRequest5(prop); BinaryData sendRequest5 = BinaryData.fromObject(sendRequest5Obj); sendWithResponse(sendRequest5, requestOptions).getValue(); } diff --git a/typespec-tests/src/main/java/com/type/union/IntsOnlyAsyncClient.java b/typespec-tests/src/main/java/com/type/union/IntsOnlyAsyncClient.java index 37dae5d8a3..05cebee5eb 100644 --- a/typespec-tests/src/main/java/com/type/union/IntsOnlyAsyncClient.java +++ b/typespec-tests/src/main/java/com/type/union/IntsOnlyAsyncClient.java @@ -17,7 +17,7 @@ import com.azure.core.util.BinaryData; import com.azure.core.util.FluxUtil; import com.type.union.implementation.IntsOnliesImpl; -import com.type.union.implementation.models.SendRequest3; +import com.type.union.implementation.models.SendRequest6; import com.type.union.models.GetResponse6; import com.type.union.models.GetResponseProp2; import reactor.core.publisher.Mono; @@ -123,7 +123,7 @@ public Mono get() { public Mono send(GetResponseProp2 prop) { // Generated convenience method for sendWithResponse RequestOptions requestOptions = new RequestOptions(); - SendRequest3 sendRequest6Obj = new SendRequest3(prop); + SendRequest6 sendRequest6Obj = new SendRequest6(prop); BinaryData sendRequest6 = BinaryData.fromObject(sendRequest6Obj); return sendWithResponse(sendRequest6, requestOptions).flatMap(FluxUtil::toMono); } diff --git a/typespec-tests/src/main/java/com/type/union/IntsOnlyClient.java b/typespec-tests/src/main/java/com/type/union/IntsOnlyClient.java index 41afa4d634..d902d9d83c 100644 --- a/typespec-tests/src/main/java/com/type/union/IntsOnlyClient.java +++ b/typespec-tests/src/main/java/com/type/union/IntsOnlyClient.java @@ -16,7 +16,7 @@ import com.azure.core.http.rest.Response; import com.azure.core.util.BinaryData; import com.type.union.implementation.IntsOnliesImpl; -import com.type.union.implementation.models.SendRequest3; +import com.type.union.implementation.models.SendRequest6; import com.type.union.models.GetResponse6; import com.type.union.models.GetResponseProp2; @@ -119,7 +119,7 @@ public GetResponse6 get() { public void send(GetResponseProp2 prop) { // Generated convenience method for sendWithResponse RequestOptions requestOptions = new RequestOptions(); - SendRequest3 sendRequest6Obj = new SendRequest3(prop); + SendRequest6 sendRequest6Obj = new SendRequest6(prop); BinaryData sendRequest6 = BinaryData.fromObject(sendRequest6Obj); sendWithResponse(sendRequest6, requestOptions).getValue(); } diff --git a/typespec-tests/src/main/java/com/type/union/MixedLiteralsAsyncClient.java b/typespec-tests/src/main/java/com/type/union/MixedLiteralsAsyncClient.java index 7f0d86c52e..a4295e1bc7 100644 --- a/typespec-tests/src/main/java/com/type/union/MixedLiteralsAsyncClient.java +++ b/typespec-tests/src/main/java/com/type/union/MixedLiteralsAsyncClient.java @@ -17,7 +17,7 @@ import com.azure.core.util.BinaryData; import com.azure.core.util.FluxUtil; import com.type.union.implementation.MixedLiteralsImpl; -import com.type.union.implementation.models.SendRequest8; +import com.type.union.implementation.models.SendRequest1; import com.type.union.models.GetResponse1; import com.type.union.models.MixedLiteralsCases; import reactor.core.publisher.Mono; @@ -133,7 +133,7 @@ public Mono get() { public Mono send(MixedLiteralsCases prop) { // Generated convenience method for sendWithResponse RequestOptions requestOptions = new RequestOptions(); - SendRequest8 sendRequest1Obj = new SendRequest8(prop); + SendRequest1 sendRequest1Obj = new SendRequest1(prop); BinaryData sendRequest1 = BinaryData.fromObject(sendRequest1Obj); return sendWithResponse(sendRequest1, requestOptions).flatMap(FluxUtil::toMono); } diff --git a/typespec-tests/src/main/java/com/type/union/MixedLiteralsClient.java b/typespec-tests/src/main/java/com/type/union/MixedLiteralsClient.java index afbedea7b9..da5a728cac 100644 --- a/typespec-tests/src/main/java/com/type/union/MixedLiteralsClient.java +++ b/typespec-tests/src/main/java/com/type/union/MixedLiteralsClient.java @@ -16,7 +16,7 @@ import com.azure.core.http.rest.Response; import com.azure.core.util.BinaryData; import com.type.union.implementation.MixedLiteralsImpl; -import com.type.union.implementation.models.SendRequest8; +import com.type.union.implementation.models.SendRequest1; import com.type.union.models.GetResponse1; import com.type.union.models.MixedLiteralsCases; @@ -129,7 +129,7 @@ public GetResponse1 get() { public void send(MixedLiteralsCases prop) { // Generated convenience method for sendWithResponse RequestOptions requestOptions = new RequestOptions(); - SendRequest8 sendRequest1Obj = new SendRequest8(prop); + SendRequest1 sendRequest1Obj = new SendRequest1(prop); BinaryData sendRequest1 = BinaryData.fromObject(sendRequest1Obj); sendWithResponse(sendRequest1, requestOptions).getValue(); } diff --git a/typespec-tests/src/main/java/com/type/union/MixedTypesAsyncClient.java b/typespec-tests/src/main/java/com/type/union/MixedTypesAsyncClient.java index b656c96c63..9c68d5f92d 100644 --- a/typespec-tests/src/main/java/com/type/union/MixedTypesAsyncClient.java +++ b/typespec-tests/src/main/java/com/type/union/MixedTypesAsyncClient.java @@ -17,7 +17,7 @@ import com.azure.core.util.BinaryData; import com.azure.core.util.FluxUtil; import com.type.union.implementation.MixedTypesImpl; -import com.type.union.implementation.models.SendRequest9; +import com.type.union.implementation.models.SendRequest; import com.type.union.models.GetResponse; import com.type.union.models.MixedTypesCases; import reactor.core.publisher.Mono; @@ -139,7 +139,7 @@ public Mono get() { public Mono send(MixedTypesCases prop) { // Generated convenience method for sendWithResponse RequestOptions requestOptions = new RequestOptions(); - SendRequest9 sendRequestObj = new SendRequest9(prop); + SendRequest sendRequestObj = new SendRequest(prop); BinaryData sendRequest = BinaryData.fromObject(sendRequestObj); return sendWithResponse(sendRequest, requestOptions).flatMap(FluxUtil::toMono); } diff --git a/typespec-tests/src/main/java/com/type/union/MixedTypesClient.java b/typespec-tests/src/main/java/com/type/union/MixedTypesClient.java index a289ac1d2d..84e732c16f 100644 --- a/typespec-tests/src/main/java/com/type/union/MixedTypesClient.java +++ b/typespec-tests/src/main/java/com/type/union/MixedTypesClient.java @@ -16,7 +16,7 @@ import com.azure.core.http.rest.Response; import com.azure.core.util.BinaryData; import com.type.union.implementation.MixedTypesImpl; -import com.type.union.implementation.models.SendRequest9; +import com.type.union.implementation.models.SendRequest; import com.type.union.models.GetResponse; import com.type.union.models.MixedTypesCases; @@ -135,7 +135,7 @@ public GetResponse get() { public void send(MixedTypesCases prop) { // Generated convenience method for sendWithResponse RequestOptions requestOptions = new RequestOptions(); - SendRequest9 sendRequestObj = new SendRequest9(prop); + SendRequest sendRequestObj = new SendRequest(prop); BinaryData sendRequest = BinaryData.fromObject(sendRequestObj); sendWithResponse(sendRequest, requestOptions).getValue(); } diff --git a/typespec-tests/src/main/java/com/type/union/ModelsOnlyAsyncClient.java b/typespec-tests/src/main/java/com/type/union/ModelsOnlyAsyncClient.java index 38bd977e66..c7cdd0ba3a 100644 --- a/typespec-tests/src/main/java/com/type/union/ModelsOnlyAsyncClient.java +++ b/typespec-tests/src/main/java/com/type/union/ModelsOnlyAsyncClient.java @@ -17,7 +17,7 @@ import com.azure.core.util.BinaryData; import com.azure.core.util.FluxUtil; import com.type.union.implementation.ModelsOnliesImpl; -import com.type.union.implementation.models.SendRequest5; +import com.type.union.implementation.models.SendRequest4; import com.type.union.models.GetResponse4; import reactor.core.publisher.Mono; @@ -122,7 +122,7 @@ public Mono get() { public Mono send(BinaryData prop) { // Generated convenience method for sendWithResponse RequestOptions requestOptions = new RequestOptions(); - SendRequest5 sendRequest4Obj = new SendRequest5(prop); + SendRequest4 sendRequest4Obj = new SendRequest4(prop); BinaryData sendRequest4 = BinaryData.fromObject(sendRequest4Obj); return sendWithResponse(sendRequest4, requestOptions).flatMap(FluxUtil::toMono); } diff --git a/typespec-tests/src/main/java/com/type/union/ModelsOnlyClient.java b/typespec-tests/src/main/java/com/type/union/ModelsOnlyClient.java index 127f6c388e..449f17d309 100644 --- a/typespec-tests/src/main/java/com/type/union/ModelsOnlyClient.java +++ b/typespec-tests/src/main/java/com/type/union/ModelsOnlyClient.java @@ -16,7 +16,7 @@ import com.azure.core.http.rest.Response; import com.azure.core.util.BinaryData; import com.type.union.implementation.ModelsOnliesImpl; -import com.type.union.implementation.models.SendRequest5; +import com.type.union.implementation.models.SendRequest4; import com.type.union.models.GetResponse4; /** @@ -118,7 +118,7 @@ public GetResponse4 get() { public void send(BinaryData prop) { // Generated convenience method for sendWithResponse RequestOptions requestOptions = new RequestOptions(); - SendRequest5 sendRequest4Obj = new SendRequest5(prop); + SendRequest4 sendRequest4Obj = new SendRequest4(prop); BinaryData sendRequest4 = BinaryData.fromObject(sendRequest4Obj); sendWithResponse(sendRequest4, requestOptions).getValue(); } diff --git a/typespec-tests/src/main/java/com/type/union/StringAndArrayAsyncClient.java b/typespec-tests/src/main/java/com/type/union/StringAndArrayAsyncClient.java index a014aafd67..4be4148f82 100644 --- a/typespec-tests/src/main/java/com/type/union/StringAndArrayAsyncClient.java +++ b/typespec-tests/src/main/java/com/type/union/StringAndArrayAsyncClient.java @@ -17,7 +17,7 @@ import com.azure.core.util.BinaryData; import com.azure.core.util.FluxUtil; import com.type.union.implementation.StringAndArraysImpl; -import com.type.union.implementation.models.SendRequest7; +import com.type.union.implementation.models.SendRequest2; import com.type.union.models.GetResponse2; import com.type.union.models.StringAndArrayCases; import reactor.core.publisher.Mono; @@ -129,7 +129,7 @@ public Mono get() { public Mono send(StringAndArrayCases prop) { // Generated convenience method for sendWithResponse RequestOptions requestOptions = new RequestOptions(); - SendRequest7 sendRequest2Obj = new SendRequest7(prop); + SendRequest2 sendRequest2Obj = new SendRequest2(prop); BinaryData sendRequest2 = BinaryData.fromObject(sendRequest2Obj); return sendWithResponse(sendRequest2, requestOptions).flatMap(FluxUtil::toMono); } diff --git a/typespec-tests/src/main/java/com/type/union/StringAndArrayClient.java b/typespec-tests/src/main/java/com/type/union/StringAndArrayClient.java index 73dce75b70..317d515c65 100644 --- a/typespec-tests/src/main/java/com/type/union/StringAndArrayClient.java +++ b/typespec-tests/src/main/java/com/type/union/StringAndArrayClient.java @@ -16,7 +16,7 @@ import com.azure.core.http.rest.Response; import com.azure.core.util.BinaryData; import com.type.union.implementation.StringAndArraysImpl; -import com.type.union.implementation.models.SendRequest7; +import com.type.union.implementation.models.SendRequest2; import com.type.union.models.GetResponse2; import com.type.union.models.StringAndArrayCases; @@ -125,7 +125,7 @@ public GetResponse2 get() { public void send(StringAndArrayCases prop) { // Generated convenience method for sendWithResponse RequestOptions requestOptions = new RequestOptions(); - SendRequest7 sendRequest2Obj = new SendRequest7(prop); + SendRequest2 sendRequest2Obj = new SendRequest2(prop); BinaryData sendRequest2 = BinaryData.fromObject(sendRequest2Obj); sendWithResponse(sendRequest2, requestOptions).getValue(); } diff --git a/typespec-tests/src/main/java/com/type/union/StringExtensibleAsyncClient.java b/typespec-tests/src/main/java/com/type/union/StringExtensibleAsyncClient.java index ca9899924e..da05e0f26f 100644 --- a/typespec-tests/src/main/java/com/type/union/StringExtensibleAsyncClient.java +++ b/typespec-tests/src/main/java/com/type/union/StringExtensibleAsyncClient.java @@ -17,7 +17,7 @@ import com.azure.core.util.BinaryData; import com.azure.core.util.FluxUtil; import com.type.union.implementation.StringExtensiblesImpl; -import com.type.union.implementation.models.SendRequest1; +import com.type.union.implementation.models.SendRequest8; import com.type.union.models.GetResponse8; import com.type.union.models.GetResponseProp3; import reactor.core.publisher.Mono; @@ -123,7 +123,7 @@ public Mono get() { public Mono send(GetResponseProp3 prop) { // Generated convenience method for sendWithResponse RequestOptions requestOptions = new RequestOptions(); - SendRequest1 sendRequest8Obj = new SendRequest1(prop); + SendRequest8 sendRequest8Obj = new SendRequest8(prop); BinaryData sendRequest8 = BinaryData.fromObject(sendRequest8Obj); return sendWithResponse(sendRequest8, requestOptions).flatMap(FluxUtil::toMono); } diff --git a/typespec-tests/src/main/java/com/type/union/StringExtensibleClient.java b/typespec-tests/src/main/java/com/type/union/StringExtensibleClient.java index c6f749c45f..4364649650 100644 --- a/typespec-tests/src/main/java/com/type/union/StringExtensibleClient.java +++ b/typespec-tests/src/main/java/com/type/union/StringExtensibleClient.java @@ -16,7 +16,7 @@ import com.azure.core.http.rest.Response; import com.azure.core.util.BinaryData; import com.type.union.implementation.StringExtensiblesImpl; -import com.type.union.implementation.models.SendRequest1; +import com.type.union.implementation.models.SendRequest8; import com.type.union.models.GetResponse8; import com.type.union.models.GetResponseProp3; @@ -119,7 +119,7 @@ public GetResponse8 get() { public void send(GetResponseProp3 prop) { // Generated convenience method for sendWithResponse RequestOptions requestOptions = new RequestOptions(); - SendRequest1 sendRequest8Obj = new SendRequest1(prop); + SendRequest8 sendRequest8Obj = new SendRequest8(prop); BinaryData sendRequest8 = BinaryData.fromObject(sendRequest8Obj); sendWithResponse(sendRequest8, requestOptions).getValue(); } diff --git a/typespec-tests/src/main/java/com/type/union/StringExtensibleNamedAsyncClient.java b/typespec-tests/src/main/java/com/type/union/StringExtensibleNamedAsyncClient.java index 99f53508a1..70756efb11 100644 --- a/typespec-tests/src/main/java/com/type/union/StringExtensibleNamedAsyncClient.java +++ b/typespec-tests/src/main/java/com/type/union/StringExtensibleNamedAsyncClient.java @@ -17,7 +17,7 @@ import com.azure.core.util.BinaryData; import com.azure.core.util.FluxUtil; import com.type.union.implementation.StringExtensibleNamedsImpl; -import com.type.union.implementation.models.SendRequest2; +import com.type.union.implementation.models.SendRequest7; import com.type.union.models.GetResponse7; import com.type.union.models.StringExtensibleNamedUnion; import reactor.core.publisher.Mono; @@ -123,7 +123,7 @@ public Mono get() { public Mono send(StringExtensibleNamedUnion prop) { // Generated convenience method for sendWithResponse RequestOptions requestOptions = new RequestOptions(); - SendRequest2 sendRequest7Obj = new SendRequest2(prop); + SendRequest7 sendRequest7Obj = new SendRequest7(prop); BinaryData sendRequest7 = BinaryData.fromObject(sendRequest7Obj); return sendWithResponse(sendRequest7, requestOptions).flatMap(FluxUtil::toMono); } diff --git a/typespec-tests/src/main/java/com/type/union/StringExtensibleNamedClient.java b/typespec-tests/src/main/java/com/type/union/StringExtensibleNamedClient.java index 1f46812f08..0052206aee 100644 --- a/typespec-tests/src/main/java/com/type/union/StringExtensibleNamedClient.java +++ b/typespec-tests/src/main/java/com/type/union/StringExtensibleNamedClient.java @@ -16,7 +16,7 @@ import com.azure.core.http.rest.Response; import com.azure.core.util.BinaryData; import com.type.union.implementation.StringExtensibleNamedsImpl; -import com.type.union.implementation.models.SendRequest2; +import com.type.union.implementation.models.SendRequest7; import com.type.union.models.GetResponse7; import com.type.union.models.StringExtensibleNamedUnion; @@ -119,7 +119,7 @@ public GetResponse7 get() { public void send(StringExtensibleNamedUnion prop) { // Generated convenience method for sendWithResponse RequestOptions requestOptions = new RequestOptions(); - SendRequest2 sendRequest7Obj = new SendRequest2(prop); + SendRequest7 sendRequest7Obj = new SendRequest7(prop); BinaryData sendRequest7 = BinaryData.fromObject(sendRequest7Obj); sendWithResponse(sendRequest7, requestOptions).getValue(); } diff --git a/typespec-tests/src/main/java/com/type/union/StringsOnlyAsyncClient.java b/typespec-tests/src/main/java/com/type/union/StringsOnlyAsyncClient.java index 33f7f84828..a94ecce3f3 100644 --- a/typespec-tests/src/main/java/com/type/union/StringsOnlyAsyncClient.java +++ b/typespec-tests/src/main/java/com/type/union/StringsOnlyAsyncClient.java @@ -17,7 +17,7 @@ import com.azure.core.util.BinaryData; import com.azure.core.util.FluxUtil; import com.type.union.implementation.StringsOnliesImpl; -import com.type.union.implementation.models.SendRequest; +import com.type.union.implementation.models.SendRequest9; import com.type.union.models.GetResponse9; import com.type.union.models.GetResponseProp4; import reactor.core.publisher.Mono; @@ -123,7 +123,7 @@ public Mono get() { public Mono send(GetResponseProp4 prop) { // Generated convenience method for sendWithResponse RequestOptions requestOptions = new RequestOptions(); - SendRequest sendRequest9Obj = new SendRequest(prop); + SendRequest9 sendRequest9Obj = new SendRequest9(prop); BinaryData sendRequest9 = BinaryData.fromObject(sendRequest9Obj); return sendWithResponse(sendRequest9, requestOptions).flatMap(FluxUtil::toMono); } diff --git a/typespec-tests/src/main/java/com/type/union/StringsOnlyClient.java b/typespec-tests/src/main/java/com/type/union/StringsOnlyClient.java index 2700b5b7ad..8e96ecdc6d 100644 --- a/typespec-tests/src/main/java/com/type/union/StringsOnlyClient.java +++ b/typespec-tests/src/main/java/com/type/union/StringsOnlyClient.java @@ -16,7 +16,7 @@ import com.azure.core.http.rest.Response; import com.azure.core.util.BinaryData; import com.type.union.implementation.StringsOnliesImpl; -import com.type.union.implementation.models.SendRequest; +import com.type.union.implementation.models.SendRequest9; import com.type.union.models.GetResponse9; import com.type.union.models.GetResponseProp4; @@ -119,7 +119,7 @@ public GetResponse9 get() { public void send(GetResponseProp4 prop) { // Generated convenience method for sendWithResponse RequestOptions requestOptions = new RequestOptions(); - SendRequest sendRequest9Obj = new SendRequest(prop); + SendRequest9 sendRequest9Obj = new SendRequest9(prop); BinaryData sendRequest9 = BinaryData.fromObject(sendRequest9Obj); sendWithResponse(sendRequest9, requestOptions).getValue(); } diff --git a/typespec-tests/src/main/java/com/type/union/implementation/models/SendRequest.java b/typespec-tests/src/main/java/com/type/union/implementation/models/SendRequest.java index 61d84b4934..3d0d1a2dcf 100644 --- a/typespec-tests/src/main/java/com/type/union/implementation/models/SendRequest.java +++ b/typespec-tests/src/main/java/com/type/union/implementation/models/SendRequest.java @@ -10,7 +10,7 @@ import com.azure.json.JsonSerializable; import com.azure.json.JsonToken; import com.azure.json.JsonWriter; -import com.type.union.models.GetResponseProp4; +import com.type.union.models.MixedTypesCases; import java.io.IOException; /** @@ -22,7 +22,7 @@ public final class SendRequest implements JsonSerializable { * The prop property. */ @Generated - private final GetResponseProp4 prop; + private final MixedTypesCases prop; /** * Creates an instance of SendRequest class. @@ -30,7 +30,7 @@ public final class SendRequest implements JsonSerializable { * @param prop the prop value to set. */ @Generated - public SendRequest(GetResponseProp4 prop) { + public SendRequest(MixedTypesCases prop) { this.prop = prop; } @@ -40,7 +40,7 @@ public SendRequest(GetResponseProp4 prop) { * @return the prop value. */ @Generated - public GetResponseProp4 getProp() { + public MixedTypesCases getProp() { return this.prop; } @@ -51,7 +51,7 @@ public GetResponseProp4 getProp() { @Override public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { jsonWriter.writeStartObject(); - jsonWriter.writeStringField("prop", this.prop == null ? null : this.prop.toString()); + jsonWriter.writeJsonField("prop", this.prop); return jsonWriter.writeEndObject(); } @@ -67,13 +67,13 @@ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { @Generated public static SendRequest fromJson(JsonReader jsonReader) throws IOException { return jsonReader.readObject(reader -> { - GetResponseProp4 prop = null; + MixedTypesCases prop = null; while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); if ("prop".equals(fieldName)) { - prop = GetResponseProp4.fromString(reader.getString()); + prop = MixedTypesCases.fromJson(reader); } else { reader.skipChildren(); } diff --git a/typespec-tests/src/main/java/com/type/union/implementation/models/SendRequest1.java b/typespec-tests/src/main/java/com/type/union/implementation/models/SendRequest1.java index 6d355540c9..555d9471ae 100644 --- a/typespec-tests/src/main/java/com/type/union/implementation/models/SendRequest1.java +++ b/typespec-tests/src/main/java/com/type/union/implementation/models/SendRequest1.java @@ -10,7 +10,7 @@ import com.azure.json.JsonSerializable; import com.azure.json.JsonToken; import com.azure.json.JsonWriter; -import com.type.union.models.GetResponseProp3; +import com.type.union.models.MixedLiteralsCases; import java.io.IOException; /** @@ -22,7 +22,7 @@ public final class SendRequest1 implements JsonSerializable { * The prop property. */ @Generated - private final GetResponseProp3 prop; + private final MixedLiteralsCases prop; /** * Creates an instance of SendRequest1 class. @@ -30,7 +30,7 @@ public final class SendRequest1 implements JsonSerializable { * @param prop the prop value to set. */ @Generated - public SendRequest1(GetResponseProp3 prop) { + public SendRequest1(MixedLiteralsCases prop) { this.prop = prop; } @@ -40,7 +40,7 @@ public SendRequest1(GetResponseProp3 prop) { * @return the prop value. */ @Generated - public GetResponseProp3 getProp() { + public MixedLiteralsCases getProp() { return this.prop; } @@ -51,7 +51,7 @@ public GetResponseProp3 getProp() { @Override public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { jsonWriter.writeStartObject(); - jsonWriter.writeStringField("prop", this.prop == null ? null : this.prop.toString()); + jsonWriter.writeJsonField("prop", this.prop); return jsonWriter.writeEndObject(); } @@ -67,13 +67,13 @@ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { @Generated public static SendRequest1 fromJson(JsonReader jsonReader) throws IOException { return jsonReader.readObject(reader -> { - GetResponseProp3 prop = null; + MixedLiteralsCases prop = null; while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); if ("prop".equals(fieldName)) { - prop = GetResponseProp3.fromString(reader.getString()); + prop = MixedLiteralsCases.fromJson(reader); } else { reader.skipChildren(); } diff --git a/typespec-tests/src/main/java/com/type/union/implementation/models/SendRequest2.java b/typespec-tests/src/main/java/com/type/union/implementation/models/SendRequest2.java index ed771bc80f..f76d27c2b3 100644 --- a/typespec-tests/src/main/java/com/type/union/implementation/models/SendRequest2.java +++ b/typespec-tests/src/main/java/com/type/union/implementation/models/SendRequest2.java @@ -10,7 +10,7 @@ import com.azure.json.JsonSerializable; import com.azure.json.JsonToken; import com.azure.json.JsonWriter; -import com.type.union.models.StringExtensibleNamedUnion; +import com.type.union.models.StringAndArrayCases; import java.io.IOException; /** @@ -22,7 +22,7 @@ public final class SendRequest2 implements JsonSerializable { * The prop property. */ @Generated - private final StringExtensibleNamedUnion prop; + private final StringAndArrayCases prop; /** * Creates an instance of SendRequest2 class. @@ -30,7 +30,7 @@ public final class SendRequest2 implements JsonSerializable { * @param prop the prop value to set. */ @Generated - public SendRequest2(StringExtensibleNamedUnion prop) { + public SendRequest2(StringAndArrayCases prop) { this.prop = prop; } @@ -40,7 +40,7 @@ public SendRequest2(StringExtensibleNamedUnion prop) { * @return the prop value. */ @Generated - public StringExtensibleNamedUnion getProp() { + public StringAndArrayCases getProp() { return this.prop; } @@ -51,7 +51,7 @@ public StringExtensibleNamedUnion getProp() { @Override public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { jsonWriter.writeStartObject(); - jsonWriter.writeStringField("prop", this.prop == null ? null : this.prop.toString()); + jsonWriter.writeJsonField("prop", this.prop); return jsonWriter.writeEndObject(); } @@ -67,13 +67,13 @@ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { @Generated public static SendRequest2 fromJson(JsonReader jsonReader) throws IOException { return jsonReader.readObject(reader -> { - StringExtensibleNamedUnion prop = null; + StringAndArrayCases prop = null; while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); if ("prop".equals(fieldName)) { - prop = StringExtensibleNamedUnion.fromString(reader.getString()); + prop = StringAndArrayCases.fromJson(reader); } else { reader.skipChildren(); } diff --git a/typespec-tests/src/main/java/com/type/union/implementation/models/SendRequest3.java b/typespec-tests/src/main/java/com/type/union/implementation/models/SendRequest3.java index d3970dfa97..2167fccfa4 100644 --- a/typespec-tests/src/main/java/com/type/union/implementation/models/SendRequest3.java +++ b/typespec-tests/src/main/java/com/type/union/implementation/models/SendRequest3.java @@ -10,7 +10,7 @@ import com.azure.json.JsonSerializable; import com.azure.json.JsonToken; import com.azure.json.JsonWriter; -import com.type.union.models.GetResponseProp2; +import com.type.union.models.EnumsOnlyCases; import java.io.IOException; /** @@ -22,7 +22,7 @@ public final class SendRequest3 implements JsonSerializable { * The prop property. */ @Generated - private final GetResponseProp2 prop; + private final EnumsOnlyCases prop; /** * Creates an instance of SendRequest3 class. @@ -30,7 +30,7 @@ public final class SendRequest3 implements JsonSerializable { * @param prop the prop value to set. */ @Generated - public SendRequest3(GetResponseProp2 prop) { + public SendRequest3(EnumsOnlyCases prop) { this.prop = prop; } @@ -40,7 +40,7 @@ public SendRequest3(GetResponseProp2 prop) { * @return the prop value. */ @Generated - public GetResponseProp2 getProp() { + public EnumsOnlyCases getProp() { return this.prop; } @@ -51,7 +51,7 @@ public GetResponseProp2 getProp() { @Override public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { jsonWriter.writeStartObject(); - jsonWriter.writeNumberField("prop", this.prop == null ? null : this.prop.toInt()); + jsonWriter.writeJsonField("prop", this.prop); return jsonWriter.writeEndObject(); } @@ -67,13 +67,13 @@ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { @Generated public static SendRequest3 fromJson(JsonReader jsonReader) throws IOException { return jsonReader.readObject(reader -> { - GetResponseProp2 prop = null; + EnumsOnlyCases prop = null; while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); if ("prop".equals(fieldName)) { - prop = GetResponseProp2.fromInt(reader.getInt()); + prop = EnumsOnlyCases.fromJson(reader); } else { reader.skipChildren(); } diff --git a/typespec-tests/src/main/java/com/type/union/implementation/models/SendRequest4.java b/typespec-tests/src/main/java/com/type/union/implementation/models/SendRequest4.java index 923bcefe93..023b10dad0 100644 --- a/typespec-tests/src/main/java/com/type/union/implementation/models/SendRequest4.java +++ b/typespec-tests/src/main/java/com/type/union/implementation/models/SendRequest4.java @@ -6,11 +6,11 @@ import com.azure.core.annotation.Generated; import com.azure.core.annotation.Immutable; +import com.azure.core.util.BinaryData; import com.azure.json.JsonReader; import com.azure.json.JsonSerializable; import com.azure.json.JsonToken; import com.azure.json.JsonWriter; -import com.type.union.models.GetResponseProp1; import java.io.IOException; /** @@ -22,7 +22,7 @@ public final class SendRequest4 implements JsonSerializable { * The prop property. */ @Generated - private final GetResponseProp1 prop; + private final BinaryData prop; /** * Creates an instance of SendRequest4 class. @@ -30,7 +30,7 @@ public final class SendRequest4 implements JsonSerializable { * @param prop the prop value to set. */ @Generated - public SendRequest4(GetResponseProp1 prop) { + public SendRequest4(BinaryData prop) { this.prop = prop; } @@ -40,7 +40,7 @@ public SendRequest4(GetResponseProp1 prop) { * @return the prop value. */ @Generated - public GetResponseProp1 getProp() { + public BinaryData getProp() { return this.prop; } @@ -51,7 +51,7 @@ public GetResponseProp1 getProp() { @Override public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { jsonWriter.writeStartObject(); - jsonWriter.writeNumberField("prop", this.prop == null ? null : this.prop.toDouble()); + jsonWriter.writeUntypedField("prop", this.prop.toObject(Object.class)); return jsonWriter.writeEndObject(); } @@ -67,13 +67,13 @@ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { @Generated public static SendRequest4 fromJson(JsonReader jsonReader) throws IOException { return jsonReader.readObject(reader -> { - GetResponseProp1 prop = null; + BinaryData prop = null; while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); if ("prop".equals(fieldName)) { - prop = GetResponseProp1.fromDouble(reader.getDouble()); + prop = reader.getNullable(nonNullReader -> BinaryData.fromObject(nonNullReader.readUntyped())); } else { reader.skipChildren(); } diff --git a/typespec-tests/src/main/java/com/type/union/implementation/models/SendRequest5.java b/typespec-tests/src/main/java/com/type/union/implementation/models/SendRequest5.java index 02a3d5d946..cd25adc21e 100644 --- a/typespec-tests/src/main/java/com/type/union/implementation/models/SendRequest5.java +++ b/typespec-tests/src/main/java/com/type/union/implementation/models/SendRequest5.java @@ -6,11 +6,11 @@ import com.azure.core.annotation.Generated; import com.azure.core.annotation.Immutable; -import com.azure.core.util.BinaryData; import com.azure.json.JsonReader; import com.azure.json.JsonSerializable; import com.azure.json.JsonToken; import com.azure.json.JsonWriter; +import com.type.union.models.GetResponseProp1; import java.io.IOException; /** @@ -22,7 +22,7 @@ public final class SendRequest5 implements JsonSerializable { * The prop property. */ @Generated - private final BinaryData prop; + private final GetResponseProp1 prop; /** * Creates an instance of SendRequest5 class. @@ -30,7 +30,7 @@ public final class SendRequest5 implements JsonSerializable { * @param prop the prop value to set. */ @Generated - public SendRequest5(BinaryData prop) { + public SendRequest5(GetResponseProp1 prop) { this.prop = prop; } @@ -40,7 +40,7 @@ public SendRequest5(BinaryData prop) { * @return the prop value. */ @Generated - public BinaryData getProp() { + public GetResponseProp1 getProp() { return this.prop; } @@ -51,7 +51,7 @@ public BinaryData getProp() { @Override public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { jsonWriter.writeStartObject(); - jsonWriter.writeUntypedField("prop", this.prop.toObject(Object.class)); + jsonWriter.writeNumberField("prop", this.prop == null ? null : this.prop.toDouble()); return jsonWriter.writeEndObject(); } @@ -67,13 +67,13 @@ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { @Generated public static SendRequest5 fromJson(JsonReader jsonReader) throws IOException { return jsonReader.readObject(reader -> { - BinaryData prop = null; + GetResponseProp1 prop = null; while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); if ("prop".equals(fieldName)) { - prop = reader.getNullable(nonNullReader -> BinaryData.fromObject(nonNullReader.readUntyped())); + prop = GetResponseProp1.fromDouble(reader.getDouble()); } else { reader.skipChildren(); } diff --git a/typespec-tests/src/main/java/com/type/union/implementation/models/SendRequest6.java b/typespec-tests/src/main/java/com/type/union/implementation/models/SendRequest6.java index e6a10e8937..78602f59d9 100644 --- a/typespec-tests/src/main/java/com/type/union/implementation/models/SendRequest6.java +++ b/typespec-tests/src/main/java/com/type/union/implementation/models/SendRequest6.java @@ -10,7 +10,7 @@ import com.azure.json.JsonSerializable; import com.azure.json.JsonToken; import com.azure.json.JsonWriter; -import com.type.union.models.EnumsOnlyCases; +import com.type.union.models.GetResponseProp2; import java.io.IOException; /** @@ -22,7 +22,7 @@ public final class SendRequest6 implements JsonSerializable { * The prop property. */ @Generated - private final EnumsOnlyCases prop; + private final GetResponseProp2 prop; /** * Creates an instance of SendRequest6 class. @@ -30,7 +30,7 @@ public final class SendRequest6 implements JsonSerializable { * @param prop the prop value to set. */ @Generated - public SendRequest6(EnumsOnlyCases prop) { + public SendRequest6(GetResponseProp2 prop) { this.prop = prop; } @@ -40,7 +40,7 @@ public SendRequest6(EnumsOnlyCases prop) { * @return the prop value. */ @Generated - public EnumsOnlyCases getProp() { + public GetResponseProp2 getProp() { return this.prop; } @@ -51,7 +51,7 @@ public EnumsOnlyCases getProp() { @Override public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { jsonWriter.writeStartObject(); - jsonWriter.writeJsonField("prop", this.prop); + jsonWriter.writeNumberField("prop", this.prop == null ? null : this.prop.toInt()); return jsonWriter.writeEndObject(); } @@ -67,13 +67,13 @@ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { @Generated public static SendRequest6 fromJson(JsonReader jsonReader) throws IOException { return jsonReader.readObject(reader -> { - EnumsOnlyCases prop = null; + GetResponseProp2 prop = null; while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); if ("prop".equals(fieldName)) { - prop = EnumsOnlyCases.fromJson(reader); + prop = GetResponseProp2.fromInt(reader.getInt()); } else { reader.skipChildren(); } diff --git a/typespec-tests/src/main/java/com/type/union/implementation/models/SendRequest7.java b/typespec-tests/src/main/java/com/type/union/implementation/models/SendRequest7.java index 686b6dd781..a01e4444f6 100644 --- a/typespec-tests/src/main/java/com/type/union/implementation/models/SendRequest7.java +++ b/typespec-tests/src/main/java/com/type/union/implementation/models/SendRequest7.java @@ -10,7 +10,7 @@ import com.azure.json.JsonSerializable; import com.azure.json.JsonToken; import com.azure.json.JsonWriter; -import com.type.union.models.StringAndArrayCases; +import com.type.union.models.StringExtensibleNamedUnion; import java.io.IOException; /** @@ -22,7 +22,7 @@ public final class SendRequest7 implements JsonSerializable { * The prop property. */ @Generated - private final StringAndArrayCases prop; + private final StringExtensibleNamedUnion prop; /** * Creates an instance of SendRequest7 class. @@ -30,7 +30,7 @@ public final class SendRequest7 implements JsonSerializable { * @param prop the prop value to set. */ @Generated - public SendRequest7(StringAndArrayCases prop) { + public SendRequest7(StringExtensibleNamedUnion prop) { this.prop = prop; } @@ -40,7 +40,7 @@ public SendRequest7(StringAndArrayCases prop) { * @return the prop value. */ @Generated - public StringAndArrayCases getProp() { + public StringExtensibleNamedUnion getProp() { return this.prop; } @@ -51,7 +51,7 @@ public StringAndArrayCases getProp() { @Override public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { jsonWriter.writeStartObject(); - jsonWriter.writeJsonField("prop", this.prop); + jsonWriter.writeStringField("prop", this.prop == null ? null : this.prop.toString()); return jsonWriter.writeEndObject(); } @@ -67,13 +67,13 @@ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { @Generated public static SendRequest7 fromJson(JsonReader jsonReader) throws IOException { return jsonReader.readObject(reader -> { - StringAndArrayCases prop = null; + StringExtensibleNamedUnion prop = null; while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); if ("prop".equals(fieldName)) { - prop = StringAndArrayCases.fromJson(reader); + prop = StringExtensibleNamedUnion.fromString(reader.getString()); } else { reader.skipChildren(); } diff --git a/typespec-tests/src/main/java/com/type/union/implementation/models/SendRequest8.java b/typespec-tests/src/main/java/com/type/union/implementation/models/SendRequest8.java index 8681874949..bb7f2a1bae 100644 --- a/typespec-tests/src/main/java/com/type/union/implementation/models/SendRequest8.java +++ b/typespec-tests/src/main/java/com/type/union/implementation/models/SendRequest8.java @@ -10,7 +10,7 @@ import com.azure.json.JsonSerializable; import com.azure.json.JsonToken; import com.azure.json.JsonWriter; -import com.type.union.models.MixedLiteralsCases; +import com.type.union.models.GetResponseProp3; import java.io.IOException; /** @@ -22,7 +22,7 @@ public final class SendRequest8 implements JsonSerializable { * The prop property. */ @Generated - private final MixedLiteralsCases prop; + private final GetResponseProp3 prop; /** * Creates an instance of SendRequest8 class. @@ -30,7 +30,7 @@ public final class SendRequest8 implements JsonSerializable { * @param prop the prop value to set. */ @Generated - public SendRequest8(MixedLiteralsCases prop) { + public SendRequest8(GetResponseProp3 prop) { this.prop = prop; } @@ -40,7 +40,7 @@ public SendRequest8(MixedLiteralsCases prop) { * @return the prop value. */ @Generated - public MixedLiteralsCases getProp() { + public GetResponseProp3 getProp() { return this.prop; } @@ -51,7 +51,7 @@ public MixedLiteralsCases getProp() { @Override public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { jsonWriter.writeStartObject(); - jsonWriter.writeJsonField("prop", this.prop); + jsonWriter.writeStringField("prop", this.prop == null ? null : this.prop.toString()); return jsonWriter.writeEndObject(); } @@ -67,13 +67,13 @@ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { @Generated public static SendRequest8 fromJson(JsonReader jsonReader) throws IOException { return jsonReader.readObject(reader -> { - MixedLiteralsCases prop = null; + GetResponseProp3 prop = null; while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); if ("prop".equals(fieldName)) { - prop = MixedLiteralsCases.fromJson(reader); + prop = GetResponseProp3.fromString(reader.getString()); } else { reader.skipChildren(); } diff --git a/typespec-tests/src/main/java/com/type/union/implementation/models/SendRequest9.java b/typespec-tests/src/main/java/com/type/union/implementation/models/SendRequest9.java index ba9d1e14f2..77350fb49f 100644 --- a/typespec-tests/src/main/java/com/type/union/implementation/models/SendRequest9.java +++ b/typespec-tests/src/main/java/com/type/union/implementation/models/SendRequest9.java @@ -10,7 +10,7 @@ import com.azure.json.JsonSerializable; import com.azure.json.JsonToken; import com.azure.json.JsonWriter; -import com.type.union.models.MixedTypesCases; +import com.type.union.models.GetResponseProp4; import java.io.IOException; /** @@ -22,7 +22,7 @@ public final class SendRequest9 implements JsonSerializable { * The prop property. */ @Generated - private final MixedTypesCases prop; + private final GetResponseProp4 prop; /** * Creates an instance of SendRequest9 class. @@ -30,7 +30,7 @@ public final class SendRequest9 implements JsonSerializable { * @param prop the prop value to set. */ @Generated - public SendRequest9(MixedTypesCases prop) { + public SendRequest9(GetResponseProp4 prop) { this.prop = prop; } @@ -40,7 +40,7 @@ public SendRequest9(MixedTypesCases prop) { * @return the prop value. */ @Generated - public MixedTypesCases getProp() { + public GetResponseProp4 getProp() { return this.prop; } @@ -51,7 +51,7 @@ public MixedTypesCases getProp() { @Override public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { jsonWriter.writeStartObject(); - jsonWriter.writeJsonField("prop", this.prop); + jsonWriter.writeStringField("prop", this.prop == null ? null : this.prop.toString()); return jsonWriter.writeEndObject(); } @@ -67,13 +67,13 @@ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException { @Generated public static SendRequest9 fromJson(JsonReader jsonReader) throws IOException { return jsonReader.readObject(reader -> { - MixedTypesCases prop = null; + GetResponseProp4 prop = null; while (reader.nextToken() != JsonToken.END_OBJECT) { String fieldName = reader.getFieldName(); reader.nextToken(); if ("prop".equals(fieldName)) { - prop = MixedTypesCases.fromJson(reader); + prop = GetResponseProp4.fromString(reader.getString()); } else { reader.skipChildren(); }