diff --git a/package-lock.json b/package-lock.json index 81e199d8467f..cf58c9a3a61b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,19 +7,19 @@ "name": "azure-rest-api-specs", "devDependencies": { "@azure-tools/typespec-apiview": "0.4.8", - "@azure-tools/typespec-autorest": "0.42.1", - "@azure-tools/typespec-azure-core": "0.42.0", - "@azure-tools/typespec-azure-portal-core": "0.42.0", - "@azure-tools/typespec-azure-resource-manager": "0.42.1", - "@azure-tools/typespec-azure-rulesets": "0.42.1", - "@azure-tools/typespec-client-generator-core": "0.42.3", + "@azure-tools/typespec-autorest": "0.43.0", + "@azure-tools/typespec-azure-core": "0.43.0", + "@azure-tools/typespec-azure-portal-core": "0.43.0", + "@azure-tools/typespec-azure-resource-manager": "0.43.0", + "@azure-tools/typespec-azure-rulesets": "0.43.0", + "@azure-tools/typespec-client-generator-core": "0.43.0", "@azure/avocado": "^0.8.4", - "@typespec/compiler": "0.56.0", - "@typespec/http": "0.56.0", - "@typespec/openapi": "0.56.0", - "@typespec/openapi3": "0.56.0", - "@typespec/rest": "0.56.0", - "@typespec/versioning": "0.56.0", + "@typespec/compiler": "0.57.0", + "@typespec/http": "0.57.0", + "@typespec/openapi": "0.57.0", + "@typespec/openapi3": "0.57.0", + "@typespec/rest": "0.57.0", + "@typespec/versioning": "0.57.0", "azure-rest-api-specs-eng-tools": "file:eng/tools", "oav": "^3.3.7", "prettier": "~3.2.5", @@ -419,51 +419,52 @@ } }, "node_modules/@azure-tools/typespec-autorest": { - "version": "0.42.1", - "resolved": "https://registry.npmjs.org/@azure-tools/typespec-autorest/-/typespec-autorest-0.42.1.tgz", - "integrity": "sha512-egWR2Ljxde5PvyDwuVu/8Rq8cSW6FW+qMbvwHfzrtm/sULdSnA6k+VnGD/PQ+dk+1SmFeKG1b+0MlaFuBVz1Hw==", + "version": "0.43.0", + "resolved": "https://registry.npmjs.org/@azure-tools/typespec-autorest/-/typespec-autorest-0.43.0.tgz", + "integrity": "sha512-tZ9uXXOdxu2y01W9n3mzXf+IEY2MQkP/JaQaKlcOx2+dbklHNQWSDU0Vm6Gmm6l//XiF9QiI8653BiuO97czyw==", "dev": true, "engines": { "node": ">=18.0.0" }, "peerDependencies": { - "@azure-tools/typespec-azure-core": "~0.42.0", - "@azure-tools/typespec-client-generator-core": "~0.42.0", - "@typespec/compiler": "~0.56.0", - "@typespec/http": "~0.56.0", - "@typespec/openapi": "~0.56.0", - "@typespec/rest": "~0.56.0", - "@typespec/versioning": "~0.56.0" + "@azure-tools/typespec-azure-core": "~0.43.0", + "@azure-tools/typespec-azure-resource-manager": "~0.43.0", + "@azure-tools/typespec-client-generator-core": "~0.43.0", + "@typespec/compiler": "~0.57.0", + "@typespec/http": "~0.57.0", + "@typespec/openapi": "~0.57.0", + "@typespec/rest": "~0.57.0", + "@typespec/versioning": "~0.57.0" } }, "node_modules/@azure-tools/typespec-azure-core": { - "version": "0.42.0", - "resolved": "https://registry.npmjs.org/@azure-tools/typespec-azure-core/-/typespec-azure-core-0.42.0.tgz", - "integrity": "sha512-8C96RkgSWtgqsaHRMWCd2iDltFJZTGmFQiTZazZj/uRy0Wn1ikjSriSN8t1puL5SiUPd0BVJP/YXiwAfjfZYDA==", + "version": "0.43.0", + "resolved": "https://registry.npmjs.org/@azure-tools/typespec-azure-core/-/typespec-azure-core-0.43.0.tgz", + "integrity": "sha512-B1r0i3segJ7RuNXxcAMBy8H2t+jTkaf74dkyUWD0HIFPkhETN0uR59nuor+s+LoLU8yI4JypOFSNZt6e1rod8w==", "dev": true, "engines": { "node": ">=18.0.0" }, "peerDependencies": { - "@typespec/compiler": "~0.56.0", - "@typespec/http": "~0.56.0", - "@typespec/rest": "~0.56.0" + "@typespec/compiler": "~0.57.0", + "@typespec/http": "~0.57.0", + "@typespec/rest": "~0.57.0" } }, "node_modules/@azure-tools/typespec-azure-portal-core": { - "version": "0.42.0", - "resolved": "https://registry.npmjs.org/@azure-tools/typespec-azure-portal-core/-/typespec-azure-portal-core-0.42.0.tgz", - "integrity": "sha512-3RSAC/tUoZ74wXrPHupJB1qLhQNnm00OUDZU9YJ8Wv5NNEr1aar1z2luyhR9SWDk42B+snhnzm9hH5CHxtk1lA==", + "version": "0.43.0", + "resolved": "https://registry.npmjs.org/@azure-tools/typespec-azure-portal-core/-/typespec-azure-portal-core-0.43.0.tgz", + "integrity": "sha512-I/EHlE27zB7arteyg1kNSKua0Uip8qbcLCYYEhdP0NzpEVqcA2mdEnwmc6xjP7/Tg3X0FeGf8Bc+UTSHK5zr/g==", "dev": true, "peerDependencies": { - "@azure-tools/typespec-azure-resource-manager": "~0.42.0", - "@typespec/compiler": "~0.56.0" + "@azure-tools/typespec-azure-resource-manager": "~0.43.0", + "@typespec/compiler": "~0.57.0" } }, "node_modules/@azure-tools/typespec-azure-resource-manager": { - "version": "0.42.1", - "resolved": "https://registry.npmjs.org/@azure-tools/typespec-azure-resource-manager/-/typespec-azure-resource-manager-0.42.1.tgz", - "integrity": "sha512-vUqmHWS9OrN+16jXfpgUdUXXa1RLrr8Pkrzb1HFQGmdXuRxMZZtLCRcyyEHZJIMYE4RmmpPoB3JJeqiGWxlegQ==", + "version": "0.43.0", + "resolved": "https://registry.npmjs.org/@azure-tools/typespec-azure-resource-manager/-/typespec-azure-resource-manager-0.43.0.tgz", + "integrity": "sha512-0GQL+/o1u+PAB63FpYz3sy3ZgZvCtk5T4sDAnICnV23v2YWIONDMUfxxd0x40xJbY6PkcwwHDpBLNMqajf2H6A==", "dev": true, "dependencies": { "change-case": "~5.4.4", @@ -473,37 +474,34 @@ "node": ">=18.0.0" }, "peerDependencies": { - "@azure-tools/typespec-autorest": "~0.42.1", - "@azure-tools/typespec-azure-core": "~0.42.0", - "@typespec/compiler": "~0.56.0", - "@typespec/http": "~0.56.0", - "@typespec/openapi": "~0.56.0", - "@typespec/rest": "~0.56.0", - "@typespec/versioning": "~0.56.0" + "@azure-tools/typespec-azure-core": "~0.43.0", + "@typespec/compiler": "~0.57.0", + "@typespec/http": "~0.57.0", + "@typespec/openapi": "~0.57.0", + "@typespec/rest": "~0.57.0", + "@typespec/versioning": "~0.57.0" } }, "node_modules/@azure-tools/typespec-azure-rulesets": { - "version": "0.42.1", - "resolved": "https://registry.npmjs.org/@azure-tools/typespec-azure-rulesets/-/typespec-azure-rulesets-0.42.1.tgz", - "integrity": "sha512-GRiMErWJ96DvDBQMVgGI1sgMTOegXxpx7w6enZyEF0BaodxGfObJyl1TrMb9Pj6NAZfV5Q6uJAfXFbpF1MVDCw==", + "version": "0.43.0", + "resolved": "https://registry.npmjs.org/@azure-tools/typespec-azure-rulesets/-/typespec-azure-rulesets-0.43.0.tgz", + "integrity": "sha512-yh0dNQIM4hRDWATh/tkONP991uMxFDHY8BkC0eWtIpfTjQTuR2PlGhrLgMxHT2Q5cCusfkNWeFvKDYlxKeoFLA==", "dev": true, - "license": "MIT", "engines": { "node": ">=18.0.0" }, "peerDependencies": { - "@azure-tools/typespec-azure-core": "~0.42.0", - "@azure-tools/typespec-azure-resource-manager": "~0.42.1", - "@azure-tools/typespec-client-generator-core": "~0.42.3", - "@typespec/compiler": "~0.56.0" + "@azure-tools/typespec-azure-core": "~0.43.0", + "@azure-tools/typespec-azure-resource-manager": "~0.43.0", + "@azure-tools/typespec-client-generator-core": "~0.43.0", + "@typespec/compiler": "~0.57.0" } }, "node_modules/@azure-tools/typespec-client-generator-core": { - "version": "0.42.3", - "resolved": "https://registry.npmjs.org/@azure-tools/typespec-client-generator-core/-/typespec-client-generator-core-0.42.3.tgz", - "integrity": "sha512-ZDVVIY1uJ8EaI4QhCdQmTdKVACm4xYn/I7ySpwv4oxk9X8kZFhxx+PKNHAlx34mhOf4oF0PW3wCN5DMeU6asYg==", + "version": "0.43.0", + "resolved": "https://registry.npmjs.org/@azure-tools/typespec-client-generator-core/-/typespec-client-generator-core-0.43.0.tgz", + "integrity": "sha512-rssB/zsg89wstzJC1MWzbd8oPpqbgoftkp9G/NP3BoMb/gCP5uRLggwlSUAgnoU2Lt0jBUKcMlqEiVLTAkY9LA==", "dev": true, - "license": "MIT", "dependencies": { "change-case": "~5.4.4", "pluralize": "^8.0.0" @@ -512,11 +510,11 @@ "node": ">=18.0.0" }, "peerDependencies": { - "@azure-tools/typespec-azure-core": "~0.42.0", - "@typespec/compiler": "~0.56.0", - "@typespec/http": "~0.56.0", - "@typespec/rest": "~0.56.0", - "@typespec/versioning": "~0.56.0" + "@azure-tools/typespec-azure-core": "~0.43.0", + "@typespec/compiler": "~0.57.0", + "@typespec/http": "~0.57.0", + "@typespec/rest": "~0.57.0", + "@typespec/versioning": "~0.57.0" } }, "node_modules/@azure-tools/typespec-validation": { @@ -1964,23 +1962,23 @@ } }, "node_modules/@typespec/compiler": { - "version": "0.56.0", - "resolved": "https://registry.npmjs.org/@typespec/compiler/-/compiler-0.56.0.tgz", - "integrity": "sha512-K+VhXycoeqcoSGtB0/l1XYco4V2qRsCOOwqklVM4Yew7kTcKVfz7CT7a6a2OKWDMNg5iijZtRBoM5YF50XtQug==", + "version": "0.57.0", + "resolved": "https://registry.npmjs.org/@typespec/compiler/-/compiler-0.57.0.tgz", + "integrity": "sha512-Z5L7J90Ol21IbzU+rBD2wzKy2vJ2Yg2FIzi+yB5rtb7/c4oBea/CgEByMVHBtT7uw45ZXJpHOiepuGSPVXw2EA==", "dev": true, "dependencies": { "@babel/code-frame": "~7.24.2", - "ajv": "~8.12.0", + "ajv": "~8.13.0", "change-case": "~5.4.4", "globby": "~14.0.1", "mustache": "~4.2.0", - "picocolors": "~1.0.0", + "picocolors": "~1.0.1", "prettier": "~3.2.5", "prompts": "~2.4.2", - "semver": "^7.6.0", + "semver": "^7.6.2", "vscode-languageserver": "~9.0.1", "vscode-languageserver-textdocument": "~1.0.11", - "yaml": "~2.4.1", + "yaml": "~2.4.2", "yargs": "~17.7.2" }, "bin": { @@ -2092,71 +2090,71 @@ } }, "node_modules/@typespec/http": { - "version": "0.56.0", - "resolved": "https://registry.npmjs.org/@typespec/http/-/http-0.56.0.tgz", - "integrity": "sha512-f/tpHRWev9bnAtNPFkfCU/5SFou9glA/rPDY0m2W5bK6EG1/6/TKKKz5FoKPA4xvc2dQ5vu/ouGLb4i5UzXvWQ==", + "version": "0.57.0", + "resolved": "https://registry.npmjs.org/@typespec/http/-/http-0.57.0.tgz", + "integrity": "sha512-k3bWOTPNqlRB3/TmrXVBtObmxj2J20l2FnhGXvs+tjdtbXLxCQWmvQz6xlne9nkLAtWVB/pQRUn+oMJfhWta3w==", "dev": true, "engines": { "node": ">=18.0.0" }, "peerDependencies": { - "@typespec/compiler": "~0.56.0" + "@typespec/compiler": "~0.57.0" } }, "node_modules/@typespec/openapi": { - "version": "0.56.0", - "resolved": "https://registry.npmjs.org/@typespec/openapi/-/openapi-0.56.0.tgz", - "integrity": "sha512-q8+IHRglXBm3slvonRLSNYN2fX7plbWA+ugIiMJZTeyc3enqfxPqMGA8BCiAFV3kwP0uPPpIXbCSIVhHgkONbA==", + "version": "0.57.0", + "resolved": "https://registry.npmjs.org/@typespec/openapi/-/openapi-0.57.0.tgz", + "integrity": "sha512-35wK/BqjOXSlhWuGMwoYN3FSgIYFOKtw8ot4ErcgmxAGuKaS2GkUhZvtQJXUn2ByU0Fl4jqslPmTz8SEcz7rbw==", "dev": true, "engines": { "node": ">=18.0.0" }, "peerDependencies": { - "@typespec/compiler": "~0.56.0", - "@typespec/http": "~0.56.0" + "@typespec/compiler": "~0.57.0", + "@typespec/http": "~0.57.0" } }, "node_modules/@typespec/openapi3": { - "version": "0.56.0", - "resolved": "https://registry.npmjs.org/@typespec/openapi3/-/openapi3-0.56.0.tgz", - "integrity": "sha512-55JPUP7dFk4iXn4fNKZEs76j7hAdlWfoMWNPsQPRJCP//KWCtNXfTP+/TTVPVv1L/6HztbXyPV0agKZwyS7gDw==", + "version": "0.57.0", + "resolved": "https://registry.npmjs.org/@typespec/openapi3/-/openapi3-0.57.0.tgz", + "integrity": "sha512-spNLzwCTduPISJBTWhqsMLTjuGC3Tdh/FVI1rTGnRunB7ZXjhRyz031o1bCe2BZeW1w1sacZGfe+ba8sXqgMxA==", "dev": true, "dependencies": { - "yaml": "~2.4.1" + "yaml": "~2.4.2" }, "engines": { "node": ">=18.0.0" }, "peerDependencies": { - "@typespec/compiler": "~0.56.0", - "@typespec/http": "~0.56.0", - "@typespec/openapi": "~0.56.0", - "@typespec/versioning": "~0.56.0" + "@typespec/compiler": "~0.57.0", + "@typespec/http": "~0.57.0", + "@typespec/openapi": "~0.57.0", + "@typespec/versioning": "~0.57.0" } }, "node_modules/@typespec/rest": { - "version": "0.56.0", - "resolved": "https://registry.npmjs.org/@typespec/rest/-/rest-0.56.0.tgz", - "integrity": "sha512-8w4WhWDcpEQNW8bB1BHhiBxIQUChDJtyq/n9p2OI/Bm1wncd61y/ZNOtcxmlKq8uB9d+dzHiZdEfqFCR8HF8/Q==", + "version": "0.57.0", + "resolved": "https://registry.npmjs.org/@typespec/rest/-/rest-0.57.0.tgz", + "integrity": "sha512-mZj76Kf+cmH38pYA6LT8Zz7QjuR3fdQo5bc8pXhKMwLq9vRqNLz6Z9InbOeo8zY+xP0GfUwEU9kXczmCc8gyRA==", "dev": true, "engines": { "node": ">=18.0.0" }, "peerDependencies": { - "@typespec/compiler": "~0.56.0", - "@typespec/http": "~0.56.0" + "@typespec/compiler": "~0.57.0", + "@typespec/http": "~0.57.0" } }, "node_modules/@typespec/versioning": { - "version": "0.56.0", - "resolved": "https://registry.npmjs.org/@typespec/versioning/-/versioning-0.56.0.tgz", - "integrity": "sha512-j7IN9XFyGn3LH6IOJkinEvk9sDncsxiWPULOAe0VQ+D/dtCfLawDMUALnvklMDRKeD1OOUPSCjjUAp9OB0f7YA==", + "version": "0.57.0", + "resolved": "https://registry.npmjs.org/@typespec/versioning/-/versioning-0.57.0.tgz", + "integrity": "sha512-kk6zCNSwcqqYB9isNNagTy+Zv6wEIRA4NkcZ/X1riTj2zhJwKsIFNXQWm1yxpZn+BY4+1QtuaQHuBLo8HbgR/w==", "dev": true, "engines": { "node": ">=18.0.0" }, "peerDependencies": { - "@typespec/compiler": "~0.56.0" + "@typespec/compiler": "~0.57.0" } }, "node_modules/@vitest/expect": { @@ -2277,15 +2275,15 @@ } }, "node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.13.0.tgz", + "integrity": "sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==", "dev": true, "dependencies": { - "fast-deep-equal": "^3.1.1", + "fast-deep-equal": "^3.1.3", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "uri-js": "^4.4.1" }, "funding": { "type": "github", diff --git a/package.json b/package.json index 9ccc0baed0a3..9b953df05fc1 100644 --- a/package.json +++ b/package.json @@ -2,19 +2,19 @@ "name": "azure-rest-api-specs", "devDependencies": { "@azure-tools/typespec-apiview": "0.4.8", - "@azure-tools/typespec-autorest": "0.42.1", - "@azure-tools/typespec-azure-core": "0.42.0", - "@azure-tools/typespec-azure-portal-core": "0.42.0", - "@azure-tools/typespec-azure-resource-manager": "0.42.1", - "@azure-tools/typespec-client-generator-core": "0.42.3", - "@azure-tools/typespec-azure-rulesets": "0.42.1", + "@azure-tools/typespec-autorest": "0.43.0", + "@azure-tools/typespec-azure-core": "0.43.0", + "@azure-tools/typespec-azure-portal-core": "0.43.0", + "@azure-tools/typespec-azure-resource-manager": "0.43.0", + "@azure-tools/typespec-client-generator-core": "0.43.0", + "@azure-tools/typespec-azure-rulesets": "0.43.0", "@azure/avocado": "^0.8.4", - "@typespec/compiler": "0.56.0", - "@typespec/http": "0.56.0", - "@typespec/openapi": "0.56.0", - "@typespec/openapi3": "0.56.0", - "@typespec/rest": "0.56.0", - "@typespec/versioning": "0.56.0", + "@typespec/compiler": "0.57.0", + "@typespec/http": "0.57.0", + "@typespec/openapi": "0.57.0", + "@typespec/openapi3": "0.57.0", + "@typespec/rest": "0.57.0", + "@typespec/versioning": "0.57.0", "azure-rest-api-specs-eng-tools": "file:eng/tools", "oav": "^3.3.7", "prettier": "~3.2.5", diff --git a/specification/ai/DocumentIntelligence/models.tsp b/specification/ai/DocumentIntelligence/models.tsp index 6a5ceeaff2ad..601541e2a649 100644 --- a/specification/ai/DocumentIntelligence/models.tsp +++ b/specification/ai/DocumentIntelligence/models.tsp @@ -18,18 +18,18 @@ union StringIndexType { string, @doc(""" - User-perceived display character, or grapheme cluster, as defined by Unicode - 8.0.0. - """) + User-perceived display character, or grapheme cluster, as defined by Unicode + 8.0.0. + """) textElements: "textElements", @doc("Character unit represented by a single unicode code point. Used by Python 3.") unicodeCodePoint: "unicodeCodePoint", @doc(""" - Character unit represented by a 16-bit Unicode code unit. Used by JavaScript, - Java, and .NET. - """) + Character unit represented by a 16-bit Unicode code unit. Used by JavaScript, + Java, and .NET. + """) utf16CodeUnit: "utf16CodeUnit", } @@ -41,9 +41,9 @@ union ContentFormat { text: "text", @doc(""" - Markdown representation of the document content with section headings, tables, - etc. - """) + Markdown representation of the document content with section headings, tables, + etc. + """) markdown: "markdown", } @@ -85,9 +85,9 @@ union DocumentSelectionMarkState { string, @doc(""" - The selection mark is selected, often indicated by a check ✓ or cross X inside - the selection mark. - """) + The selection mark is selected, often indicated by a check ✓ or cross X inside + the selection mark. + """) "selected", @doc("The selection mark is not selected.") @@ -279,9 +279,9 @@ union OperationKind { documentModelCompose: "documentModelCompose", @doc(""" - Copy an existing document model to potentially a different resource, region, or - subscription. - """) + Copy an existing document model to potentially a different resource, region, or + subscription. + """) documentModelCopyTo: "documentModelCopyTo", @doc("Build a new custom classifier model.") @@ -354,9 +354,9 @@ model AnalyzeDocumentRequest { urlSource?: url; @doc(""" - Base64 encoding of the document to analyze. Either urlSource or base64Source - must be specified. - """) + Base64 encoding of the document to analyze. Either urlSource or base64Source + must be specified. + """) base64Source?: bytes; } @@ -448,9 +448,9 @@ model AnalyzeResult { contentFormat?: ContentFormat; @doc(""" - Concatenate string representation of all textual and visual elements in reading - order. - """) + Concatenate string representation of all textual and visual elements in reading + order. + """) content: string; @doc("Analyzed pages.") @@ -491,9 +491,9 @@ model DocumentPage { pageNumber: int32; @doc(""" - The general orientation of the content in clockwise direction, measured in - degrees between (-180, 180]. - """) + The general orientation of the content in clockwise direction, measured in + degrees between (-180, 180]. + """) @minValueExclusive(-180) @maxValue(180) angle?: float32; @@ -507,9 +507,9 @@ model DocumentPage { height?: float32; @doc(""" - The unit used by the width, height, and polygon properties. For images, the - unit is \"pixel\". For PDF, the unit is \"inch\". - """) + The unit used by the width, height, and polygon properties. For images, the + unit is \"pixel\". For PDF, the unit is \"inch\". + """) unit?: LengthUnit; @doc("Location of the page in the reading order concatenated content.") @@ -522,9 +522,9 @@ model DocumentPage { selectionMarks?: DocumentSelectionMark[]; @doc(""" - Extracted lines from the page, potentially containing both textual and visual - elements. - """) + Extracted lines from the page, potentially containing both textual and visual + elements. + """) lines?: DocumentLine[]; @doc("Extracted barcodes from the page.") @@ -535,9 +535,9 @@ model DocumentPage { } @doc(""" -Contiguous region of the concatenated content property, specified as an offset -and length. -""") + Contiguous region of the concatenated content property, specified as an offset + and length. + """) model DocumentSpan { @doc("Zero-based index of the content represented by the span.") @minValue(0) @@ -549,21 +549,21 @@ model DocumentSpan { } @doc(""" -A word object consisting of a contiguous sequence of characters. For non-space -delimited languages, such as Chinese, Japanese, and Korean, each character is -represented as its own word. -""") + A word object consisting of a contiguous sequence of characters. For non-space + delimited languages, such as Chinese, Japanese, and Korean, each character is + represented as its own word. + """) model DocumentWord { @doc("Text content of the word.") content: string; // FIXME: No way to specify constraints on array elements without creating new scalar types. @doc(""" - Bounding polygon of the word, with coordinates specified relative to the - top-left of the page. The numbers represent the x, y values of the polygon - vertices, clockwise from the left (-180 degrees inclusive) relative to the - element orientation. - """) + Bounding polygon of the word, with coordinates specified relative to the + top-left of the page. The numbers represent the x, y values of the polygon + vertices, clockwise from the left (-180 degrees inclusive) relative to the + element orientation. + """) polygon?: float32[]; @doc("Location of the word in the reading order concatenated content.") @@ -576,19 +576,19 @@ model DocumentWord { } @doc(""" -A selection mark object representing check boxes, radio buttons, and other -elements indicating a selection. -""") + A selection mark object representing check boxes, radio buttons, and other + elements indicating a selection. + """) model DocumentSelectionMark { @doc("State of the selection mark.") state: DocumentSelectionMarkState; @doc(""" - Bounding polygon of the selection mark, with coordinates specified relative - to the top-left of the page. The numbers represent the x, y values of the - polygon vertices, clockwise from the left (-180 degrees inclusive) relative - to the element orientation. - """) + Bounding polygon of the selection mark, with coordinates specified relative + to the top-left of the page. The numbers represent the x, y values of the + polygon vertices, clockwise from the left (-180 degrees inclusive) relative + to the element orientation. + """) polygon?: float32[]; @doc("Location of the selection mark in the reading order concatenated content.") @@ -601,19 +601,19 @@ model DocumentSelectionMark { } @doc(""" -A content line object consisting of an adjacent sequence of content elements, -such as words and selection marks. -""") + A content line object consisting of an adjacent sequence of content elements, + such as words and selection marks. + """) model DocumentLine { @doc("Concatenated content of the contained elements in reading order.") content: string; @doc(""" - Bounding polygon of the line, with coordinates specified relative to the - top-left of the page. The numbers represent the x, y values of the polygon - vertices, clockwise from the left (-180 degrees inclusive) relative to the - element orientation. - """) + Bounding polygon of the line, with coordinates specified relative to the + top-left of the page. The numbers represent the x, y values of the polygon + vertices, clockwise from the left (-180 degrees inclusive) relative to the + element orientation. + """) polygon?: float32[]; @doc("Location of the line in the reading order concatenated content.") @@ -629,11 +629,11 @@ model DocumentBarcode { value: string; @doc(""" - Bounding polygon of the barcode, with coordinates specified relative to the - top-left of the page. The numbers represent the x, y values of the polygon - vertices, clockwise from the left (-180 degrees inclusive) relative to the - element orientation. - """) + Bounding polygon of the barcode, with coordinates specified relative to the + top-left of the page. The numbers represent the x, y values of the polygon + vertices, clockwise from the left (-180 degrees inclusive) relative to the + element orientation. + """) polygon?: float32[]; @doc("Location of the barcode in the reading order concatenated content.") @@ -654,11 +654,11 @@ model DocumentFormula { value: string; @doc(""" - Bounding polygon of the formula, with coordinates specified relative to the - top-left of the page. The numbers represent the x, y values of the polygon - vertices, clockwise from the left (-180 degrees inclusive) relative to the - element orientation. - """) + Bounding polygon of the formula, with coordinates specified relative to the + top-left of the page. The numbers represent the x, y values of the polygon + vertices, clockwise from the left (-180 degrees inclusive) relative to the + element orientation. + """) polygon?: float32[]; @doc("Location of the formula in the reading order concatenated content.") @@ -671,9 +671,9 @@ model DocumentFormula { } @doc(""" -A paragraph object consisting with contiguous lines generally with common -alignment and spacing. -""") + A paragraph object consisting with contiguous lines generally with common + alignment and spacing. + """) model DocumentParagraph { @doc("Semantic role of the paragraph.") role?: ParagraphRole; @@ -695,11 +695,11 @@ model BoundingRegion { pageNumber: int32; @doc(""" - Bounding polygon on the page, or the entire page if not specified. - Coordinates specified relative to the top-left of the page. The numbers - represent the x, y values of the polygon vertices, clockwise from the left - (-180 degrees inclusive) relative to the element orientation. - """) + Bounding polygon on the page, or the entire page if not specified. + Coordinates specified relative to the top-left of the page. The numbers + represent the x, y values of the polygon vertices, clockwise from the left + (-180 degrees inclusive) relative to the element orientation. + """) polygon: float32[]; } @@ -848,15 +848,15 @@ model DocumentFootnote { } @doc(""" -An JSON pointer referencing an element of the document, such as paragraph, -table, section, etc. -""") + An JSON pointer referencing an element of the document, such as paragraph, + table, section, etc. + """) scalar DocumentElement extends string; @doc(""" -An object representing a form field with distinct field label (key) and field -value (may be empty). -""") + An object representing a form field with distinct field label (key) and field + value (may be empty). + """) model DocumentKeyValuePair { @doc("Field label of the key-value pair.") key: DocumentKeyValueElement; @@ -888,9 +888,9 @@ model DocumentStyle { isHandwritten?: boolean; @doc(""" - Visually most similar font from among the set of supported font families, with - fallback fonts following CSS convention (ex. 'Arial, sans-serif'). - """) + Visually most similar font from among the set of supported font families, with + fallback fonts following CSS convention (ex. 'Arial, sans-serif'). + """) similarFontFamily?: string; @doc("Font style.") @@ -919,15 +919,15 @@ model DocumentStyle { @doc("An object representing the detected language for a given text span.") model DocumentLanguage { @doc(""" - Detected language. Value may an ISO 639-1 language code (ex. \"en\", \"fr\") - or BCP 47 language tag (ex. \"zh-Hans\"). - """) + Detected language. Value may an ISO 639-1 language code (ex. \"en\", \"fr\") + or BCP 47 language tag (ex. \"zh-Hans\"). + """) locale: string; @doc(""" - Location of the text elements in the concatenated content the language applies - to. - """) + Location of the text elements in the concatenated content the language applies + to. + """) spans: DocumentSpan[]; @doc("Confidence of correctly identifying the language.") @@ -1067,9 +1067,9 @@ model AddressValue { unit?: string; @doc(""" - Districts or boroughs within a city, such as Brooklyn in New York City or City - of Westminster in London. - """) + Districts or boroughs within a city, such as Brooklyn in New York City or City + of Westminster in London. + """) cityDistrict?: string; @doc("Second-level administrative division used in certain locales.") @@ -1099,15 +1099,15 @@ model BuildDocumentModelRequest { buildMode: DocumentBuildMode; @doc(""" - Azure Blob Storage location containing the training data. Either - azureBlobSource or azureBlobFileListSource must be specified. - """) + Azure Blob Storage location containing the training data. Either + azureBlobSource or azureBlobFileListSource must be specified. + """) azureBlobSource?: AzureBlobContentSource; @doc(""" - Azure Blob Storage file list specifying the training data. Either - azureBlobSource or azureBlobFileListSource must be specified. - """) + Azure Blob Storage file list specifying the training data. Either + azureBlobSource or azureBlobFileListSource must be specified. + """) azureBlobFileListSource?: AzureBlobFileListContentSource; @doc("List of key-value tag attributes associated with the document model.") @@ -1172,18 +1172,18 @@ model AuthorizeCopyRequest { } @doc(""" -Authorization to copy a document model to the specified target resource and -modelId. -""") + Authorization to copy a document model to the specified target resource and + modelId. + """) model CopyAuthorization { @doc("ID of the target Azure resource where the document model should be copied to.") @extension("x-ms-azure-resource", true) targetResourceId: string; @doc(""" - Location of the target Azure resource where the document model should be copied - to. - """) + Location of the target Azure resource where the document model should be copied + to. + """) targetResourceRegion: string; @doc("Identifier of the target document model.") @@ -1268,15 +1268,15 @@ model DocumentModelDetails { buildMode?: DocumentBuildMode; @doc(""" - Azure Blob Storage location containing the training data. Either - azureBlobSource or azureBlobFileListSource must be specified. - """) + Azure Blob Storage location containing the training data. Either + azureBlobSource or azureBlobFileListSource must be specified. + """) azureBlobSource?: AzureBlobContentSource; @doc(""" - Azure Blob Storage file list specifying the training data. Either - azureBlobSource or azureBlobFileListSource must be specified. - """) + Azure Blob Storage file list specifying the training data. Either + azureBlobSource or azureBlobFileListSource must be specified. + """) azureBlobFileListSource?: AzureBlobFileListContentSource; @doc("Supported document types.") @@ -1348,17 +1348,17 @@ model ClassifierDocumentTypeDetails { sourceKind?: ContentSourceKind; @doc(""" - Azure Blob Storage location containing the training data for a classifier - document type. Either azureBlobSource or azureBlobFileListSource must be - specified. - """) + Azure Blob Storage location containing the training data for a classifier + document type. Either azureBlobSource or azureBlobFileListSource must be + specified. + """) azureBlobSource?: AzureBlobContentSource; @doc(""" - Azure Blob Storage file list specifying the training data for a classifier - document type. Either azureBlobSource or azureBlobFileListSource must be - specified. - """) + Azure Blob Storage file list specifying the training data for a classifier + document type. Either azureBlobSource or azureBlobFileListSource must be + specified. + """) azureBlobFileListSource?: AzureBlobFileListContentSource; } @@ -1404,9 +1404,9 @@ model ClassifyDocumentRequest { urlSource?: url; @doc(""" - Base64 encoding of the document to classify. Either urlSource or base64Source - must be specified. - """) + Base64 encoding of the document to classify. Either urlSource or base64Source + must be specified. + """) base64Source?: bytes; } diff --git a/specification/ai/DocumentIntelligence/routes.tsp b/specification/ai/DocumentIntelligence/routes.tsp index 4b2e61453ada..f97b79eb289c 100644 --- a/specification/ai/DocumentIntelligence/routes.tsp +++ b/specification/ai/DocumentIntelligence/routes.tsp @@ -52,9 +52,9 @@ model DocumentModelAnalyzeRequestParams { pages?: string; @doc(""" - Locale hint for text recognition and document analysis. Value may contain only - the language code (ex. \"en\", \"fr\") or BCP 47 language tag (ex. \"en-US\"). - """) + Locale hint for text recognition and document analysis. Value may contain only + the language code (ex. \"en\", \"fr\") or BCP 47 language tag (ex. \"en-US\"). + """) @query locale?: string; @@ -208,9 +208,9 @@ interface DocumentModels { #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Doesn't fit standard ops" @doc(""" - Generates authorization to copy a document model to this location with - specified modelId and optional description. - """) + Generates authorization to copy a document model to this location with + specified modelId and optional description. + """) @route("/documentModels:authorizeCopy") @post authorizeModelCopy is DocumentIntelligenceOperation< diff --git a/specification/ai/DocumentIntelligence/tspconfig.yaml b/specification/ai/DocumentIntelligence/tspconfig.yaml index b277824c6845..a86f2a3c185e 100644 --- a/specification/ai/DocumentIntelligence/tspconfig.yaml +++ b/specification/ai/DocumentIntelligence/tspconfig.yaml @@ -13,6 +13,7 @@ linter: options: "@azure-tools/typespec-autorest": azure-resource-provider-folder: "data-plane" + emit-lro-options: "none" emitter-output-dir: "{project-root}/.." examples-directory: "examples" omit-unreachable-types: true diff --git a/specification/ai/Face/main.tsp b/specification/ai/Face/main.tsp index 069b23ed0899..c0a19f5c2b1a 100644 --- a/specification/ai/Face/main.tsp +++ b/specification/ai/Face/main.tsp @@ -23,9 +23,9 @@ using TypeSpec.Versioning; "Azure AI Face API", { @doc(""" -Supported Cognitive Services endpoints (protocol and hostname, for example: -https://{resource-name}.cognitiveservices.azure.com). -""") + Supported Cognitive Services endpoints (protocol and hostname, for example: + https://{resource-name}.cognitiveservices.azure.com). + """) endpoint: url, @doc("API Version") diff --git a/specification/ai/Face/models.common.tsp b/specification/ai/Face/models.common.tsp index 26168c088e12..4eb0c1e70ae0 100644 --- a/specification/ai/Face/models.common.tsp +++ b/specification/ai/Face/models.common.tsp @@ -259,30 +259,30 @@ model GroupingResult { } alias AddFaceDescriptionInList = """ -> -* - * Higher face image quality means better recognition precision. Please consider high-quality faces: frontal, clear, and face size is 200x200 pixels (100 pixels between eyes) or bigger. - * Each person entry can hold up to 248 faces. - * JPEG, PNG, GIF (the first frame), and BMP format are supported. The allowed image file size is from 1KB to 6MB. - * "targetFace" rectangle should contain one face. Zero or multiple faces will be regarded as an error. If the provided "targetFace" rectangle is not returned from \"Detect\", there's no guarantee to detect and add the face successfully. - * Out of detectable face size (36x36 - 4096x4096 pixels), large head-pose, or large occlusions will cause failures. - * The minimum detectable face size is 36x36 pixels in an image no larger than 1920x1080 pixels. Images with dimensions higher than 1920x1080 pixels will need a proportionally larger minimum face size. - * Different 'detectionModel' values can be provided. To use and compare different detection models, please refer to https://learn.microsoft.com/azure/ai-services/computer-vision/how-to/specify-detection-model -"""; + > + * + * Higher face image quality means better recognition precision. Please consider high-quality faces: frontal, clear, and face size is 200x200 pixels (100 pixels between eyes) or bigger. + * Each person entry can hold up to 248 faces. + * JPEG, PNG, GIF (the first frame), and BMP format are supported. The allowed image file size is from 1KB to 6MB. + * "targetFace" rectangle should contain one face. Zero or multiple faces will be regarded as an error. If the provided "targetFace" rectangle is not returned from \"Detect\", there's no guarantee to detect and add the face successfully. + * Out of detectable face size (36x36 - 4096x4096 pixels), large head-pose, or large occlusions will cause failures. + * The minimum detectable face size is 36x36 pixels in an image no larger than 1920x1080 pixels. Images with dimensions higher than 1920x1080 pixels will need a proportionally larger minimum face size. + * Different 'detectionModel' values can be provided. To use and compare different detection models, please refer to https://learn.microsoft.com/azure/ai-services/computer-vision/how-to/specify-detection-model + """; alias ListRequestOptionsDescriptionInList = """ -> -* - * "start" parameter (string, optional) specifies an ID value from which returned entries will have larger IDs based on string comparison. Setting "start" to an empty value indicates that entries should be returned starting from the first item. - * "top" parameter (int, optional) determines the maximum number of entries to be returned, with a limit of up to 1000 entries per call. To retrieve additional entries beyond this limit, specify "start" with the personId of the last entry returned in the current call. - -> [!TIP] -> -> * For example, there are total 5 items with their IDs: "itemId1", ..., "itemId5". -> * "start=&top=" will return all 5 items. -> * "start=&top=2" will return "itemId1", "itemId2". -> * "start=itemId2&top=3" will return "itemId3", "itemId4", "itemId5". -"""; + > + * + * "start" parameter (string, optional) specifies an ID value from which returned entries will have larger IDs based on string comparison. Setting "start" to an empty value indicates that entries should be returned starting from the first item. + * "top" parameter (int, optional) determines the maximum number of entries to be returned, with a limit of up to 1000 entries per call. To retrieve additional entries beyond this limit, specify "start" with the personId of the last entry returned in the current call. + + > [!TIP] + > + > * For example, there are total 5 items with their IDs: "itemId1", ..., "itemId5". + > * "start=&top=" will return all 5 items. + > * "start=&top=2" will return "itemId1", "itemId2". + > * "start=itemId2&top=3" will return "itemId3", "itemId4", "itemId5". + """; @doc("The error object. For comprehensive details on error codes and messages returned by the Face Service, please refer to the following link: https://aka.ms/face-error-codes-and-messages.") model FaceError { diff --git a/specification/ai/Face/routes.detection.tsp b/specification/ai/Face/routes.detection.tsp index 503df02d894a..c338620c3972 100644 --- a/specification/ai/Face/routes.detection.tsp +++ b/specification/ai/Face/routes.detection.tsp @@ -15,21 +15,21 @@ namespace Face; @summary("Detect human faces in an image, return face rectangles, and optionally with faceIds, landmarks, and attributes.") @doc(""" -> [!IMPORTANT] -> To mitigate potential misuse that can subject people to stereotyping, discrimination, or unfair denial of services, we are retiring Face API attributes that predict emotion, gender, age, smile, facial hair, hair, and makeup. Read more about this decision https://azure.microsoft.com/blog/responsible-ai-investments-and-safeguards-for-facial-recognition/. - -* - * No image will be stored. Only the extracted face feature(s) will be stored on server. The faceId is an identifier of the face feature and will be used in \"Identify\", \"Verify\", and \"Find Similar\". The stored face features will expire and be deleted at the time specified by faceIdTimeToLive after the original detection call. - * Optional parameters include faceId, landmarks, and attributes. Attributes include headPose, glasses, occlusion, accessories, blur, exposure, noise, mask, and qualityForRecognition. Some of the results returned for specific attributes may not be highly accurate. - * JPEG, PNG, GIF (the first frame), and BMP format are supported. The allowed image file size is from 1KB to 6MB. - * The minimum detectable face size is 36x36 pixels in an image no larger than 1920x1080 pixels. Images with dimensions higher than 1920x1080 pixels will need a proportionally larger minimum face size. - * Up to 100 faces can be returned for an image. Faces are ranked by face rectangle size from large to small. - * For optimal results when querying \"Identify\", \"Verify\", and \"Find Similar\" ('returnFaceId' is true), please use faces that are: frontal, clear, and with a minimum size of 200x200 pixels (100 pixels between eyes). - * Different 'detectionModel' values can be provided. To use and compare different detection models, please refer to https://learn.microsoft.com/azure/ai-services/computer-vision/how-to/specify-detection-model - * 'detection_02': Face attributes and landmarks are disabled if you choose this detection model. - * 'detection_03': Face attributes (mask, blur, and headPose) and landmarks are supported if you choose this detection model. - * Different 'recognitionModel' values are provided. If follow-up operations like \"Verify\", \"Identify\", \"Find Similar\" are needed, please specify the recognition model with 'recognitionModel' parameter. The default value for 'recognitionModel' is 'recognition_01', if latest model needed, please explicitly specify the model you need in this parameter. Once specified, the detected faceIds will be associated with the specified recognition model. More details, please refer to https://learn.microsoft.com/azure/ai-services/computer-vision/how-to/specify-recognition-model. -""") + > [!IMPORTANT] + > To mitigate potential misuse that can subject people to stereotyping, discrimination, or unfair denial of services, we are retiring Face API attributes that predict emotion, gender, age, smile, facial hair, hair, and makeup. Read more about this decision https://azure.microsoft.com/blog/responsible-ai-investments-and-safeguards-for-facial-recognition/. + + * + * No image will be stored. Only the extracted face feature(s) will be stored on server. The faceId is an identifier of the face feature and will be used in \"Identify\", \"Verify\", and \"Find Similar\". The stored face features will expire and be deleted at the time specified by faceIdTimeToLive after the original detection call. + * Optional parameters include faceId, landmarks, and attributes. Attributes include headPose, glasses, occlusion, accessories, blur, exposure, noise, mask, and qualityForRecognition. Some of the results returned for specific attributes may not be highly accurate. + * JPEG, PNG, GIF (the first frame), and BMP format are supported. The allowed image file size is from 1KB to 6MB. + * The minimum detectable face size is 36x36 pixels in an image no larger than 1920x1080 pixels. Images with dimensions higher than 1920x1080 pixels will need a proportionally larger minimum face size. + * Up to 100 faces can be returned for an image. Faces are ranked by face rectangle size from large to small. + * For optimal results when querying \"Identify\", \"Verify\", and \"Find Similar\" ('returnFaceId' is true), please use faces that are: frontal, clear, and with a minimum size of 200x200 pixels (100 pixels between eyes). + * Different 'detectionModel' values can be provided. To use and compare different detection models, please refer to https://learn.microsoft.com/azure/ai-services/computer-vision/how-to/specify-detection-model + * 'detection_02': Face attributes and landmarks are disabled if you choose this detection model. + * 'detection_03': Face attributes (mask, blur, and headPose) and landmarks are supported if you choose this detection model. + * Different 'recognitionModel' values are provided. If follow-up operations like \"Verify\", \"Identify\", \"Find Similar\" are needed, please specify the recognition model with 'recognitionModel' parameter. The default value for 'recognitionModel' is 'recognition_01', if latest model needed, please explicitly specify the model you need in this parameter. Once specified, the detected faceIds will be associated with the specified recognition model. More details, please refer to https://learn.microsoft.com/azure/ai-services/computer-vision/how-to/specify-recognition-model. + """) @returnsDoc("A successful call returns an array of face entries ranked by face rectangle size in descending order. An empty response indicates no faces detected.") @post @sharedRoute diff --git a/specification/ai/Face/routes.facelist.tsp b/specification/ai/Face/routes.facelist.tsp index 08ed2d4303e3..04c3d3994864 100644 --- a/specification/ai/Face/routes.facelist.tsp +++ b/specification/ai/Face/routes.facelist.tsp @@ -14,17 +14,17 @@ namespace Face; alias AddFaceListFaceSummary = "Add a face to a specified Face List, up to 1,000 faces."; alias AddFaceListFaceDescription = """ To deal with an image containing multiple faces, input face can be specified as an image with a targetFace rectangle. It returns a persistedFaceId representing the added face. No image will be stored. Only the extracted face feature(s) will be stored on server until \"Delete Face List Face\" or \"Delete Face List\" is called. - + Note that persistedFaceId is different from faceId generated by \"Detect\". ${AddFaceDescriptionInList} """; alias AddLargeFaceListFaceSummary = "Add a face to a specified Large Face List, up to 1,000,000 faces."; alias AddLargeFaceListFaceDescription = """ To deal with an image containing multiple faces, input face can be specified as an image with a targetFace rectangle. It returns a persistedFaceId representing the added face. No image will be stored. Only the extracted face feature(s) will be stored on server until \"Delete Large Face List Face\" or \"Delete Large Face List\" is called. - + Note that persistedFaceId is different from faceId generated by \"Detect\". ${AddFaceDescriptionInList} - + > [!NOTE] > > * @@ -36,13 +36,13 @@ interface FaceListOperations { @summary("Create an empty Face List with user-specified faceListId, name, an optional userData and recognitionModel.") @doc(""" Up to 64 Face Lists are allowed in one subscription. - + Face List is a list of faces, up to 1,000 faces, and used by \"Find Similar From Face List\". - + After creation, user should use \"Add Face List Face\" to import the faces. No image will be stored. Only the extracted face feature(s) will be stored on server until \"Delete Face List\" is called. - + \"Find Similar\" is used for scenario like finding celebrity-like faces, similar face filtering, or as a light way face identification. But if the actual use is to identify person, please use Person Group / Large Person Group and \"Identify\". - + Please consider Large Face List when the face number is large. It can support up to 1,000,000 faces. """) @returnsDoc(SuccessfulCallWithEmptyBody) @@ -62,7 +62,7 @@ interface FaceListOperations { @doc(""" List Face Lists' faceListId, name, userData and recognitionModel. - + To get face information inside Face List use \"Get Face List\". """) @returnsDoc("A successful call returns an array of Face Lists.") @@ -93,11 +93,11 @@ interface FaceListOperations { @summary("Create an empty Large Face List with user-specified largeFaceListId, name, an optional userData and recognitionModel.") @doc(""" Large Face List is a list of faces, up to 1,000,000 faces, and used by \"Find Similar From Large Face List\". - + After creation, user should use Add Large Face List Face to import the faces and Train Large Face List to make it ready for \"Find Similar\". No image will be stored. Only the extracted face feature(s) will be stored on server until Delete Large Face List is called. - + \"Find Similar\" is used for scenario like finding celebrity-like faces, similar face filtering, or as a light way face identification. But if the actual use is to identify person, please use Person Group / Large Person Group and \"Identify\". - + > [!NOTE] > > * @@ -121,14 +121,12 @@ interface FaceListOperations { updateLargeFaceList is FaceResourceUpdateOperation; @summary("List Large Face Lists' information of largeFaceListId, name, userData and recognitionModel.") - @doc( - """ + @doc(""" To get face information inside largeFaceList use \"Get Large Face List Face\". - + Large Face Lists are stored in alphabetical order of largeFaceListId. ${ListRequestOptionsDescriptionInList} - """ - ) + """) @returnsDoc("A successful call returns an array of Large Face Lists and their information (largeFaceListId, name and userData).") getLargeFaceLists is FaceResourceListOperation< LargeFaceList, @@ -138,7 +136,7 @@ interface FaceListOperations { @doc(""" To check the Large Face List training status completed or still ongoing. Large Face List training is an asynchronous operation triggered by \"Train Large Face List\". - + Training time depends on the number of face entries in a Large Face List. It could be in seconds, or up to half an hour for 1,000,000 faces. """) @returnsDoc("A successful call returns the Large Face List's training status.") @@ -146,9 +144,9 @@ interface FaceListOperations { @summary("Submit a Large Face List training task.") @doc(""" - + Training is a crucial step that only a trained Large Face List can be used by \"Find Similar From Large Face List\". - + The training task is an asynchronous task. Training time depends on the number of face entries in a Large Face List. It could be in seconds, or up to half an hour for 1,000,000 faces. To check training completion, please use \"Get Large Face List Training Status\". """) @returnsDoc(SuccessfulCallWithEmptyBody) @@ -182,12 +180,10 @@ interface FaceListOperations { >; @summary("List faces' persistedFaceId and userData in a specified Large Face List.") - @doc( - """ + @doc(""" Faces are stored in alphabetical order of persistedFaceId created in \"Add Large Face List Face\". ${ListRequestOptionsDescriptionInList} - """ - ) + """) @returnsDoc("A successful call returns an array of persisted faces and their information (persistedFaceId and userData).") getLargeFaceListFaces is FaceResourceListOperation; } diff --git a/specification/ai/Face/routes.persondirectory.tsp b/specification/ai/Face/routes.persondirectory.tsp index 5b54231cac35..7e8a1db5d5a8 100644 --- a/specification/ai/Face/routes.persondirectory.tsp +++ b/specification/ai/Face/routes.persondirectory.tsp @@ -14,17 +14,15 @@ namespace Face; #suppress "@azure-tools/typespec-azure-core/long-running-polling-operation-required" "This is a template, polling operation should be defined in the operation instance." @summary("Add a face to a person (see Person Directory \"Create Person\") for face identification or verification.") -@doc( - """ +@doc(""" To deal with an image containing multiple faces, input face can be specified as an image with a targetFace rectangle. It returns a persistedFaceId representing the added face. No image will be stored. Only the extracted face feature(s) will be stored on server until Person Directory \"Delete Person Face\" or \"Delete Person\" is called. - + Note that persistedFaceId is different from faceId generated by \"Detect\". ${AddFaceDescriptionInList} * * Adding/deleting faces to/from a same person will be processed sequentially. Adding/deleting faces to/from different persons are processed in parallel. * This is a long running operation. Use Response Header "Operation-Location" to determine when the AddFace operation has successfully propagated for future requests to \"Identify\". For further information about Operation-Locations see \"Get Face Operation Status\". - """ -) + """) @returnsDoc(PersonModificationAccepted) @pollingOperation(getOperationResult) @sharedRoute @@ -92,14 +90,14 @@ alias DynamicPersonGroupModificationAccepted = "A successful call returns an emp alias CreateDynamicPersonGroupSummary = "Creates a new Dynamic Person Group with specified dynamicPersonGroupId, name, and user-provided userData."; alias CreateDynamicPersonGroupDescription = """ -A Dynamic Person Group is a container that references Person Directory "Create Person". After creation, use Person Directory "Update Dynamic Person Group" to add/remove persons to/from the Dynamic Person Group. - -Dynamic Person Group and user data will be stored on server until Person Directory "Delete Dynamic Person Group" is called. Use "Identify From Dynamic Person Group" with the dynamicPersonGroupId parameter to identify against persons. - -No image will be stored. Only the person's extracted face feature(s) and userData will be stored on server until Person Directory "Delete Person" or "Delete Person Face" is called. - -'recognitionModel' does not need to be specified with Dynamic Person Groups. Dynamic Person Groups are references to Person Directory "Create Person" and therefore work with most all 'recognitionModels'. The faceId's provided during "Identify" determine the 'recognitionModel' used. -"""; + A Dynamic Person Group is a container that references Person Directory "Create Person". After creation, use Person Directory "Update Dynamic Person Group" to add/remove persons to/from the Dynamic Person Group. + + Dynamic Person Group and user data will be stored on server until Person Directory "Delete Dynamic Person Group" is called. Use "Identify From Dynamic Person Group" with the dynamicPersonGroupId parameter to identify against persons. + + No image will be stored. Only the person's extracted face feature(s) and userData will be stored on server until Person Directory "Delete Person" or "Delete Person Face" is called. + + 'recognitionModel' does not need to be specified with Dynamic Person Groups. Dynamic Person Groups are references to Person Directory "Create Person" and therefore work with most all 'recognitionModels'. The faceId's provided during "Identify" determine the 'recognitionModel' used. + """; alias UpdateDynamicPersonGroupSummary = "Update the name or userData of an existing Dynamic Person Group, and manage its members by adding or removing persons."; alias UpdateDynamicPersonGroupDescription = "The properties keep unchanged if they are not in request body."; @@ -139,23 +137,19 @@ interface PersonDirectoryOperations { @returnsDoc(SuccessfulCallWithEmptyBody) updatePerson is FaceResourceUpdateOperation; - @doc( - """ + @doc(""" Persons are stored in alphabetical order of personId created in Person Directory \"Create Person\". ${ListRequestOptionsDescriptionInList} - """ - ) + """) @returnsDoc("A successful call returns an array of Person Directory Persons contained in the Dynamic Person Group.") @summary("List all persons' information in Person Directory, including personId, name, and userData.") getPersons is FaceResourceListOperation; @summary("List all Dynamic Person Groups a person has been referenced by in Person Directory.") - @doc( - """ + @doc(""" Dynamic Person Groups are stored in alphabetical order of Dynamic Person Group ID created in Person Directory \"Create Dynamic Person Group\". ${ListRequestOptionsDescriptionInList} - """ - ) + """) @returnsDoc("A successful call returns an array of dynamicPersonGroups information that reference the provided personId.") @get @action("dynamicPersonGroupReferences") @@ -257,22 +251,18 @@ interface PersonDirectoryOperations { updateDynamicPersonGroup is DynamicPersonGroupOperation; @summary("List all existing Dynamic Person Groups by dynamicPersonGroupId along with name and userData.") - @doc( - """ + @doc(""" Dynamic Person Groups are stored in alphabetical order of dynamicPersonGroupId. ${ListRequestOptionsDescriptionInList} - """ - ) + """) @returnsDoc("A successful call returns an array of Dynamic Person Groups and their information (dynamicPersonGroupId, name and userData).") getDynamicPersonGroups is FaceResourceListOperation; @summary("List all persons in the specified Dynamic Person Group.") - @doc( - """ + @doc(""" Persons are stored in alphabetical order of personId created in Person Directory \"Create Person\". ${ListRequestOptionsDescriptionInList} - """ - ) + """) @returnsDoc("A successful call returns an array of person information in the Person Directory.") @get @action("persons") diff --git a/specification/ai/Face/routes.persongroup.tsp b/specification/ai/Face/routes.persongroup.tsp index b6614083944a..7ef3b13b52e9 100644 --- a/specification/ai/Face/routes.persongroup.tsp +++ b/specification/ai/Face/routes.persongroup.tsp @@ -14,14 +14,14 @@ namespace Face; alias AddPersonGroupPersonFaceSummary = "Add a face to a person into a Person Group for face identification or verification."; alias AddPersonGroupPersonFaceDescription = """ To deal with an image containing multiple faces, input face can be specified as an image with a targetFace rectangle. It returns a persistedFaceId representing the added face. No image will be stored. Only the extracted face feature(s) will be stored on server until \"Delete Person Group Person Face\", \"Delete Person Group Person\" or \"Delete Person Group\" is called. - + Note that persistedFaceId is different from faceId generated by \"Detect\". ${AddFaceDescriptionInList} """; alias AddLargePersonGroupPersonFaceSummary = "Add a face to a person into a Large Person Group for face identification or verification."; alias AddLargePersonGroupPersonFaceDescription = """ To deal with an image containing multiple faces, input face can be specified as an image with a targetFace rectangle. It returns a persistedFaceId representing the added face. No image will be stored. Only the extracted face feature(s) will be stored on server until \"Delete Large Person Group Person Face\", \"Delete Large Person Group Person\" or \"Delete Large Person Group\" is called. - + Note that persistedFaceId is different from faceId generated by \"Detect\". ${AddFaceDescriptionInList} """; @@ -33,13 +33,13 @@ interface PersonGroupOperations { @summary("Create a new Person Group with specified personGroupId, name, user-provided userData and recognitionModel.") @doc(""" A Person Group is a container holding the uploaded person data, including face recognition features. - + After creation, use \"Create Person Group Person\" to add persons into the group, and then call \"Train Person Group\" to get this group ready for \"Identify From Person Group\". - + No image will be stored. Only the person's extracted face feature(s) and userData will be stored on server until \"Delete Person Group Person\" or \"Delete Person Group\" is called. - + 'recognitionModel' should be specified to associate with this Person Group. The default value for 'recognitionModel' is 'recognition_01', if the latest model needed, please explicitly specify the model you need in this parameter. New faces that are added to an existing Person Group will use the recognition model that's already associated with the collection. Existing face feature(s) in a Person Group can't be updated to features extracted by another version of recognition model. - + > [!NOTE] > > * @@ -63,12 +63,10 @@ interface PersonGroupOperations { updatePersonGroup is FaceResourceUpdateOperation; @summary("List Person Groups' personGroupId, name, userData and recognitionModel.") - @doc( - """ + @doc(""" Person Groups are stored in alphabetical order of personGroupId. ${ListRequestOptionsDescriptionInList} - """ - ) + """) @returnsDoc("A successful call returns an array of Person Groups and their information (personGroupId, name and userData).") getPersonGroups is FaceResourceListOperation< PersonGroup, @@ -120,12 +118,10 @@ interface PersonGroupOperations { updatePersonGroupPerson is FaceResourceUpdateOperation; @summary("List all persons' information in the specified Person Group, including personId, name, userData and persistedFaceIds of registered person faces.") - @doc( - """ + @doc(""" Persons are stored in alphabetical order of personId created in \"Create Person Group Person\". ${ListRequestOptionsDescriptionInList} - """ - ) + """) @returnsDoc("A successful call returns an array of person information that belong to the Person Group.") getPersonGroupPersons is FaceResourceListOperation; @@ -161,13 +157,13 @@ interface PersonGroupOperations { @summary("Create a new Large Person Group with user-specified largePersonGroupId, name, an optional userData and recognitionModel.") @doc(""" A Large Person Group is a container holding the uploaded person data, including the face recognition features. It can hold up to 1,000,000 entities. - + After creation, use \"Create Large Person Group Person\" to add person into the group, and call \"Train Large Person Group\" to get this group ready for \"Identify From Large Person Group\". - + No image will be stored. Only the person's extracted face feature(s) and userData will be stored on server until \"Delete Large Person Group Person\" or \"Delete Large Person Group\" is called. - + 'recognitionModel' should be specified to associate with this Large Person Group. The default value for 'recognitionModel' is 'recognition_01', if the latest model needed, please explicitly specify the model you need in this parameter. New faces that are added to an existing Large Person Group will use the recognition model that's already associated with the collection. Existing face feature(s) in a Large Person Group can't be updated to features extracted by another version of recognition model. - + > [!NOTE] > > * @@ -190,12 +186,10 @@ interface PersonGroupOperations { updateLargePersonGroup is FaceResourceUpdateOperation; @summary("List all existing Large Person Groups' largePersonGroupId, name, userData and recognitionModel.") - @doc( - """ + @doc(""" Large Person Groups are stored in alphabetical order of largePersonGroupId. ${ListRequestOptionsDescriptionInList} - """ - ) + """) @returnsDoc("A successful call returns an array of Large Person Groups and their information (largePersonGroupId, name and userData).") getLargePersonGroups is FaceResourceListOperation< LargePersonGroup, @@ -250,12 +244,10 @@ interface PersonGroupOperations { updateLargePersonGroupPerson is FaceResourceUpdateOperation; @summary("List all persons' information in the specified Large Person Group, including personId, name, userData and persistedFaceIds of registered person faces.") - @doc( - """ + @doc(""" Persons are stored in alphabetical order of personId created in \"Create Large Person Group Person\". ${ListRequestOptionsDescriptionInList} - """ - ) + """) @returnsDoc("A successful call returns an array of person information that belong to the Large Person Group.") getLargePersonGroupPersons is FaceResourceListOperation; diff --git a/specification/ai/Face/routes.recognition.tsp b/specification/ai/Face/routes.recognition.tsp index 04c9b296b6c1..70148cee57ae 100644 --- a/specification/ai/Face/routes.recognition.tsp +++ b/specification/ai/Face/routes.recognition.tsp @@ -13,29 +13,29 @@ using Foundations; namespace Face; alias IdentifyDocumentNote = """ -> [!NOTE] -> -> * -> * The algorithm allows more than one face to be identified independently at the same request, but no more than 10 faces. -> * Each person could have more than one face, but no more than 248 faces. -> * Higher face image quality means better identification precision. Please consider high-quality faces: frontal, clear, and face size is 200x200 pixels (100 pixels between eyes) or bigger. -> * Number of candidates returned is restricted by maxNumOfCandidatesReturned and confidenceThreshold. If no person is identified, the returned candidates will be an empty array. -"""; + > [!NOTE] + > + > * + > * The algorithm allows more than one face to be identified independently at the same request, but no more than 10 faces. + > * Each person could have more than one face, but no more than 248 faces. + > * Higher face image quality means better identification precision. Please consider high-quality faces: frontal, clear, and face size is 200x200 pixels (100 pixels between eyes) or bigger. + > * Number of candidates returned is restricted by maxNumOfCandidatesReturned and confidenceThreshold. If no person is identified, the returned candidates will be an empty array. + """; alias VerifyDocumentNote = """ -> [!NOTE] -> -> * -> * Higher face image quality means better identification precision. Please consider high-quality faces: frontal, clear, and face size is 200x200 pixels (100 pixels between eyes) or bigger. -> * For the scenarios that are sensitive to accuracy please make your own judgment. -"""; + > [!NOTE] + > + > * + > * Higher face image quality means better identification precision. Please consider high-quality faces: frontal, clear, and face size is 200x200 pixels (100 pixels between eyes) or bigger. + > * For the scenarios that are sensitive to accuracy please make your own judgment. + """; alias FindSimilarDocument = """ -Depending on the input the returned similar faces list contains faceIds or persistedFaceIds ranked by similarity. - -Find similar has two working modes, "matchPerson" and "matchFace". "matchPerson" is the default mode that it tries to find faces of the same person as possible by using internal same-person thresholds. It is useful to find a known person's other photos. Note that an empty list will be returned if no faces pass the internal thresholds. "matchFace" mode ignores same-person thresholds and returns ranked similar faces anyway, even the similarity is low. It can be used in the cases like searching celebrity-looking faces. - -"""; + Depending on the input the returned similar faces list contains faceIds or persistedFaceIds ranked by similarity. + + Find similar has two working modes, "matchPerson" and "matchFace". "matchPerson" is the default mode that it tries to find faces of the same person as possible by using internal same-person thresholds. It is useful to find a known person's other photos. Note that an empty list will be returned if no faces pass the internal thresholds. "matchFace" mode ignores same-person thresholds and returns ranked similar faces anyway, even the similarity is low. It can be used in the cases like searching celebrity-looking faces. + + """; @returnsDoc("A successful call returns the identified candidate person(s) for each query face.") @sharedRoute @@ -102,78 +102,66 @@ op FindSimilarOperation is Azure.Core.RpcOp interface FaceRecognitionOperations { @summary("Given query face's faceId, to search the similar-looking faces from a faceId array. A faceId array contains the faces created by Detect.") - @doc( - """ + @doc(""" ${FindSimilarDocument} The 'recognitionModel' associated with the query faceId should be the same as the 'recognitionModel' used by the target faceId array. - """ - ) + """) findSimilar is FindSimilarOperation<{ @doc("An array of candidate faceIds. All of them are created by \"Detect\" and the faceIds will expire 24 hours after the detection call. The number of faceIds is limited to 1000.") faceIds: uuid[]; }>; @summary("Given query face's faceId, to search the similar-looking faces from a Face List. A 'faceListId' is created by Create Face List.") - @doc( - """ + @doc(""" ${FindSimilarDocument} The 'recognitionModel' associated with the query faceId should be the same as the 'recognitionModel' used by the target Face List. - """ - ) + """) findSimilarFromFaceList is FindSimilarOperation<{ @doc("An existing user-specified unique candidate Face List, created in \"Create Face List\". Face List contains a set of persistedFaceIds which are persisted and will never expire.") faceListId: string; }>; @summary("Given query face's faceId, to search the similar-looking faces from a Large Face List. A 'largeFaceListId' is created by Create Large Face List.") - @doc( - """ + @doc(""" ${FindSimilarDocument} The 'recognitionModel' associated with the query faceId should be the same as the 'recognitionModel' used by the target Large Face List. - """ - ) + """) findSimilarFromLargeFaceList is FindSimilarOperation<{ @doc("An existing user-specified unique candidate Large Face List, created in \"Create Large Face List\". Large Face List contains a set of persistedFaceIds which are persisted and will never expire.") largeFaceListId: string; }>; @summary("1-to-many identification to find the closest matches of the specific query person face from a Person Group.") - @doc( - """ + @doc(""" For each face in the faceIds array, Face Identify will compute similarities between the query face and all the faces in the Person Group (given by personGroupId), and return candidate person(s) for that face ranked by similarity confidence. The Person Group should be trained to make it ready for identification. See more in \"Train Person Group\". ${IdentifyDocumentNote} > * Try \"Find Similar\" when you need to find similar faces from a Face List/Large Face List instead of a Person Group. > * The 'recognitionModel' associated with the query faces' faceIds should be the same as the 'recognitionModel' used by the target Person Group. - """ - ) + """) identifyFromPersonGroup is IdentifyOperation<{ @doc("personGroupId of the target Person Group, created by \"Create Person Group\". Parameter personGroupId and largePersonGroupId should not be provided at the same time.") personGroupId: string; }>; @summary("1-to-many identification to find the closest matches of the specific query person face from a Large Person Group.") - @doc( - """ + @doc(""" For each face in the faceIds array, Face Identify will compute similarities between the query face and all the faces in the Large Person Group (given by largePersonGroupId), and return candidate person(s) for that face ranked by similarity confidence. The Large Person Group should be trained to make it ready for identification. See more in \"Train Large Person Group\". ${IdentifyDocumentNote} > * Try \"Find Similar\" when you need to find similar faces from a Face List/Large Face List instead of a Person Group/Large Person Group. > * The 'recognitionModel' associated with the query faces' faceIds should be the same as the 'recognitionModel' used by the target Person Group or Large Person Group. - """ - ) + """) identifyFromLargePersonGroup is IdentifyOperation<{ @doc("largePersonGroupId of the target Large Person Group, created by \"Create Large Person Group\". Parameter personGroupId and largePersonGroupId should not be provided at the same time.") largePersonGroupId: string; }>; @summary("1-to-many identification to find the closest matches of the specific query person face from a person directory personIds array.") - @doc( - """ + @doc(""" For each face in the faceIds array, Face Identify will compute similarities between the query face and all the faces in the Person Directory Persons (given by personIds), and return candidate person(s) for that face ranked by similarity confidence. Passing personIds with an array with one element "*" can perform the operation over entire person directory. ${IdentifyDocumentNote} > * The Identify operation can only match faces obtained with the same recognition model, that is associated with the query faces. - """ - ) + """) identifyFromPersonDirectory is IdentifyOperation<{ @doc("Array of personIds created in Person Directory \"Create Person\". The valid number of personIds is between [1,30].") @minItems(1) @@ -182,25 +170,21 @@ interface FaceRecognitionOperations { }>; @summary("1-to-many identification to find the closest matches of the specific query person face from a Dynamic Person Group.") - @doc( - """ + @doc(""" For each face in the faceIds array, Face Identify will compute similarities between the query face and all the faces in the Dynamic Person Group (given by dynamicPersonGroupId), and return candidate person(s) for that face ranked by similarity confidence. ${IdentifyDocumentNote} > * The Identify operation can only match faces obtained with the same recognition model, that is associated with the query faces. - """ - ) + """) identifyFromDynamicPersonGroup is IdentifyOperation<{ @doc("DynamicPersonGroupId of the target PersonDirectory DynamicPersonGroup to match against.") dynamicPersonGroupId: string; }>; @summary("Verify whether two faces belong to a same person.") - @doc( - """ + @doc(""" ${VerifyDocumentNote} > * The 'recognitionModel' associated with the both faces should be the same. - """ - ) + """) verifyFaceToFace is VerifyOperation<{ @doc("The faceId of one face, come from \"Detect\".") faceId1: uuid; @@ -210,12 +194,10 @@ interface FaceRecognitionOperations { }>; @summary("Verify whether a face belongs to a person in a Person Group.") - @doc( - """ + @doc(""" ${VerifyDocumentNote} > * The 'recognitionModel' associated with the query face should be the same as the 'recognitionModel' used by the Person Group. - """ - ) + """) verifyFromPersonGroup is VerifyOperation<{ @doc("The faceId of the face, come from \"Detect\".") faceId: uuid; @@ -228,12 +210,10 @@ interface FaceRecognitionOperations { }>; @summary("Verify whether a face belongs to a person in a Large Person Group.") - @doc( - """ + @doc(""" ${VerifyDocumentNote} > * The 'recognitionModel' associated with the query face should be the same as the 'recognitionModel' used by the Large Person Group. - """ - ) + """) verifyFromLargePersonGroup is VerifyOperation<{ @doc("The faceId of the face, come from \"Detect\".") faceId: uuid; @@ -245,12 +225,10 @@ interface FaceRecognitionOperations { personId: uuid; }>; - @doc( - """ + @doc(""" ${VerifyDocumentNote} > * The Verify operation can only match faces obtained with the same recognition model, that is associated with the query face. - """ - ) + """) @summary("Verify whether a face belongs to a person in Person Directory.") verifyFromPersonDirectory is VerifyOperation<{ @doc("The faceId of the face, come from \"Detect\".") diff --git a/specification/ai/Face/routes.session.tsp b/specification/ai/Face/routes.session.tsp index eff89082a2e6..70b492cdb31b 100644 --- a/specification/ai/Face/routes.session.tsp +++ b/specification/ai/Face/routes.session.tsp @@ -13,32 +13,32 @@ namespace Face; alias SessionCommonDescription = "A session is best for client device scenarios where developers want to authorize a client device to perform only a liveness detection without granting full access to their resource. Created sessions have a limited life span and only authorize clients to perform the desired action before access is expired."; alias LivenessSessionWithVerifyDescription = """ -${SessionCommonDescription} - -Permissions includes... -> -* - * Ability to call /detectLivenessWithVerify/singleModal for up to 3 retries. - * A token lifetime of 10 minutes. - -> [!NOTE] -> -> * -> * Client access can be revoked by deleting the session using the Delete Liveness With Verify Session operation. -> * To retrieve a result, use the Get Liveness With Verify Session. -> * To audit the individual requests that a client has made to your resource, use the List Liveness With Verify Session Audit Entries. -"""; + ${SessionCommonDescription} + + Permissions includes... + > + * + * Ability to call /detectLivenessWithVerify/singleModal for up to 3 retries. + * A token lifetime of 10 minutes. + + > [!NOTE] + > + > * + > * Client access can be revoked by deleting the session using the Delete Liveness With Verify Session operation. + > * To retrieve a result, use the Get Liveness With Verify Session. + > * To audit the individual requests that a client has made to your resource, use the List Liveness With Verify Session Audit Entries. + """; alias SessionCreationSuccess = "A successful call create a session for a client device and provide an authorization token for use by the client application for a limited purpose and time."; alias DeleteSessionSummary = "Delete all session related information for matching the specified session id."; alias DeleteSessionDescription = """ -> [!NOTE] -> Deleting a session deactivates the Session Auth Token by blocking future API calls made with that Auth Token. While this can be used to remove any access for that token, those requests will still count towards overall resource rate limits. It's best to leverage TokenTTL to limit length of tokens in the case that it is misused. -"""; + > [!NOTE] + > Deleting a session deactivates the Session Auth Token by blocking future API calls made with that Auth Token. While this can be used to remove any access for that token, those requests will still count towards overall resource rate limits. It's best to leverage TokenTTL to limit length of tokens in the case that it is misused. + """; alias ListSessionDescription = """ -List sessions from the last sessionId greater than the 'start'. - -The result should be ordered by sessionId in ascending order. -"""; + List sessions from the last sessionId greater than the 'start'. + + The result should be ordered by sessionId in ascending order. + """; alias ListSessionAuditEntriesDescription = "Gets session requests and response body for the session."; @get @@ -53,20 +53,18 @@ op FaceLivenessSessionListAuditEntries; interface LivenessSessionOperations { - @doc( - """ + @doc(""" ${SessionCommonDescription} - + Permissions includes... > * * Ability to call /detectLiveness/singleModal for up to 3 retries. * A token lifetime of 10 minutes. - + > [!NOTE] > Client access can be revoked by deleting the session using the Delete Liveness Session operation. To retrieve a result, use the Get Liveness Session. To audit the individual requests that a client has made to your resource, use the List Liveness Session Audit Entries. - """ - ) + """) @summary("Create a new detect liveness session.") @returnsDoc(SessionCreationSuccess) createLivenessSession is FaceResourceCreateWithServiceProvidedName< @@ -94,13 +92,11 @@ interface LivenessSessionOperations { getLivenessSessionAuditEntries is FaceLivenessSessionListAuditEntries; #suppress "@azure-tools/typespec-azure-core/byos" "Representation of existing multipart/form-data operation" - @doc( - """ + @doc(""" ${LivenessSessionWithVerifyDescription} - + Recommended Option: VerifyImage is provided during session creation. - """ - ) + """) @summary("Create a new liveness session with verify. Provide the verify image during session creation.") @returnsDoc(SessionCreationSuccess) @sharedRoute @@ -110,15 +106,13 @@ interface LivenessSessionOperations { CreateLivenessWithVerifySessionResult >; - @doc( - """ + @doc(""" ${LivenessSessionWithVerifyDescription} - + Alternative Option: Client device submits VerifyImage during the /detectLivenessWithVerify/singleModal call. > [!NOTE] > Extra measures should be taken to validate that the client is sending the expected VerifyImage. - """ - ) + """) @summary("Create a new liveness session with verify. Client device submits VerifyImage during the /detectLivenessWithVerify/singleModal call.") @returnsDoc(SessionCreationSuccess) @sharedRoute @@ -139,7 +133,7 @@ interface LivenessSessionOperations { @summary("Lists sessions for /detectLivenessWithVerify/SingleModal.") @doc(""" List sessions from the last sessionId greater than the \"start\". - + The result should be ordered by sessionId in ascending order. """) getLivenessWithVerifySessions is FaceResourceListOperation< diff --git a/specification/ai/Face/tspconfig.yaml b/specification/ai/Face/tspconfig.yaml index f0b397a84bed..b96f9c05c0aa 100644 --- a/specification/ai/Face/tspconfig.yaml +++ b/specification/ai/Face/tspconfig.yaml @@ -9,6 +9,7 @@ emit: options: "@azure-tools/typespec-autorest": azure-resource-provider-folder: "data-plane" + emit-lro-options: "none" emitter-output-dir: "{project-root}/.." examples-directory: "examples" omit-unreachable-types: true diff --git a/specification/ai/HealthInsights/HealthInsights.Common/model.common.fhir.elements.tsp b/specification/ai/HealthInsights/HealthInsights.Common/model.common.fhir.elements.tsp index 0f07ddb14e67..533733cf14cb 100644 --- a/specification/ai/HealthInsights/HealthInsights.Common/model.common.fhir.elements.tsp +++ b/specification/ai/HealthInsights/HealthInsights.Common/model.common.fhir.elements.tsp @@ -54,9 +54,9 @@ alias value_x = { #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "Keep is much as close to FHIR Spec" @doc(""" -Base for all elements -Based on [FHIR Element](https://www.hl7.org/fhir/datatypes.html#Element) -""") + Base for all elements + Based on [FHIR Element](https://www.hl7.org/fhir/datatypes.html#Element) + """) model Extension extends Element { @doc("Source of the definition for the extension code - a logical name or a URL.") url: fhirUri; @@ -71,9 +71,9 @@ model Extendible { } @doc(""" -The base definition for all elements contained inside a resource. -Based on [FHIR Element](https://www.hl7.org/fhir/R4/element.html) -""") + The base definition for all elements contained inside a resource. + Based on [FHIR Element](https://www.hl7.org/fhir/R4/element.html) + """) model Element { @doc("Unique id for inter-element referencing") id?: string; @@ -85,9 +85,9 @@ model Element { #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "Keep is much as close to FHIR Spec" @doc(""" -A Coding is a representation of a defined concept using a symbol from a defined "code system". -Based on [FHIR Coding](https://www.hl7.org/fhir/R4/datatypes.html#Coding) -""") + A Coding is a representation of a defined concept using a symbol from a defined "code system". + Based on [FHIR Coding](https://www.hl7.org/fhir/R4/datatypes.html#Coding) + """) model Coding extends Element { @doc("Identity of the terminology system") system?: fhirUri; @@ -104,9 +104,9 @@ model Coding extends Element { #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "Keep is much as close to FHIR Spec" @doc(""" -Concept - reference to a terminology or just text -Based on [FHIR CodeableConcept](https://www.hl7.org/fhir/R4/datatypes.html#CodeableConcept) -""") + Concept - reference to a terminology or just text + Based on [FHIR CodeableConcept](https://www.hl7.org/fhir/R4/datatypes.html#CodeableConcept) + """) model CodeableConcept extends Element { @doc("Code defined by a terminology system") coding?: Array; @@ -118,9 +118,9 @@ model CodeableConcept extends Element { alias canonical = fhirUri; @doc(""" -Metadata about a resource -Based on [FHIR Meta](https://www.hl7.org/fhir/R4/resource.html#Meta) -""") + Metadata about a resource + Based on [FHIR Meta](https://www.hl7.org/fhir/R4/resource.html#Meta) + """) model Meta { @doc("The version specific identifier, as it appears in the version portion of the URL. This value changes when the resource is created, updated, or deleted.") versionId?: string; @@ -144,9 +144,9 @@ model Meta { alias xhtml = string; #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "Keep is much as close to FHIR Spec" @doc(""" -Any resource that is a [DomainResource](https://www.hl7.org/fhir/domainresource.html) may include a human-readable narrative that contains a summary of the resource and may be used to represent the content of the resource to a human. -Based on [FHIR Narrative](https://www.hl7.org/fhir/R4/narrative.html#Narrative) -""") + Any resource that is a [DomainResource](https://www.hl7.org/fhir/domainresource.html) may include a human-readable narrative that contains a summary of the resource and may be used to represent the content of the resource to a human. + Based on [FHIR Narrative](https://www.hl7.org/fhir/R4/narrative.html#Narrative) + """) model Narrative extends Element { @doc("generated, extensions, additional, empty") status: string; @@ -157,9 +157,9 @@ model Narrative extends Element { #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "Keep is much as close to FHIR Spec" @doc(""" -A reference from one resource to another -Based on [FHIR Reference](https://www.hl7.org/fhir/R4/references.html) -""") + A reference from one resource to another + Based on [FHIR Reference](https://www.hl7.org/fhir/R4/references.html) + """) model Reference extends Element { #suppress "@azure-tools/typespec-azure-core/property-name-conflict" "must keep the name 'reference' for compatibility with FHIR" @doc("Literal reference, Relative, internal or absolute URL") @@ -177,9 +177,9 @@ model Reference extends Element { #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "Keep is much as close to FHIR Spec" @doc(""" -An identifier intended for computation -Based on [FHIR Identifier](https://www.hl7.org/fhir/R4/identifier.html) -""") + An identifier intended for computation + Based on [FHIR Identifier](https://www.hl7.org/fhir/R4/identifier.html) + """) model Identifier extends Element { @doc("usual | official | temp | secondary | old (If known)") use?: string; @@ -202,9 +202,9 @@ model Identifier extends Element { #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "Keep is much as close to FHIR Spec" @doc(""" -A time period defined by a start and end date and optionally time -Based on [FHIR Period](https://www.hl7.org/fhir/R4/datatypes.html#Period) -""") + A time period defined by a start and end date and optionally time + Based on [FHIR Period](https://www.hl7.org/fhir/R4/datatypes.html#Period) + """) model Period extends Element { @doc("Starting time with inclusive boundary") start?: fhirDateTime; @@ -215,9 +215,9 @@ model Period extends Element { #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "Keep is much as close to FHIR Spec" @doc(""" -A measured or measurable amount -Based on [FHIR Quantity](https://www.hl7.org/fhir/R4/datatypes.html#Quantity) -""") + A measured or measurable amount + Based on [FHIR Quantity](https://www.hl7.org/fhir/R4/datatypes.html#Quantity) + """) model Quantity extends Element { @doc("Numerical value (with implicit precision)") value?: float64; @@ -237,9 +237,9 @@ model Quantity extends Element { #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "Keep is much as close to FHIR Spec" @doc(""" -A set of ordered Quantities defined by a low and high limit -Based on [FHIR Range](https://www.hl7.org/fhir/R4/datatypes.html#Range) -""") + A set of ordered Quantities defined by a low and high limit + Based on [FHIR Range](https://www.hl7.org/fhir/R4/datatypes.html#Range) + """) model Range extends Element { @doc("Low limit") low?: Quantity; @@ -250,9 +250,9 @@ model Range extends Element { #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "Keep is much as close to FHIR Spec" @doc(""" -A ratio of two Quantity values - a numerator and a denominator -Based on [FHIR Ratio](https://www.hl7.org/fhir/R4/datatypes.html#Ratio) -""") + A ratio of two Quantity values - a numerator and a denominator + Based on [FHIR Ratio](https://www.hl7.org/fhir/R4/datatypes.html#Ratio) + """) model Ratio extends Element { @doc("Numerator value") numerator?: Quantity; @@ -263,9 +263,9 @@ model Ratio extends Element { #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "Keep is much as close to FHIR Spec" @doc(""" -A text note which also contains information about who made the statement and when -Based on [FHIR Annotation](https://www.hl7.org/fhir/R4/datatypes.html#Annotation) -""") + A text note which also contains information about who made the statement and when + Based on [FHIR Annotation](https://www.hl7.org/fhir/R4/datatypes.html#Annotation) + """) model Annotation extends Element { @doc("Individual responsible for the annotation") authorString?: string; @@ -279,9 +279,9 @@ model Annotation extends Element { #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "Keep is much as close to FHIR Spec" @doc(""" -A series of measurements taken by a device -Based on [FHIR SampledData](https://www.hl7.org/fhir/R4/datatypes.html#SampledData) -""") + A series of measurements taken by a device + Based on [FHIR SampledData](https://www.hl7.org/fhir/R4/datatypes.html#SampledData) + """) model SampledData extends Element { @doc("Zero value and units") origin: Quantity; @@ -308,8 +308,8 @@ model SampledData extends Element { #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "Keep is much as close to FHIR Spec" @doc(""" -Contact details (See: https://www.hl7.org/fhir/R4/metadatatypes.html#ContactDetail) -""") + Contact details (See: https://www.hl7.org/fhir/R4/metadatatypes.html#ContactDetail) + """) model ContactDetail extends Element { @doc("Name of an individual to contact") name?: string; @@ -319,9 +319,9 @@ model ContactDetail extends Element { } @doc(""" -Details for all kinds of technology mediated contact points for a person or organization, including telephone, email, etc. -See https://www.hl7.org/fhir/R4/datatypes.html#ContactPoint -""") + Details for all kinds of technology mediated contact points for a person or organization, including telephone, email, etc. + See https://www.hl7.org/fhir/R4/datatypes.html#ContactPoint + """) model ContactPoint { @doc("phone | fax | email | pager | url | sms | other") system?: ContactPointSystem; @@ -340,9 +340,9 @@ model ContactPoint { } @doc(""" -Contact Point System -see https://www.hl7.org/fhir/R4/valueset-contact-point-system.html -""") + Contact Point System + see https://www.hl7.org/fhir/R4/valueset-contact-point-system.html + """) union ContactPointSystem { string, @@ -369,9 +369,9 @@ union ContactPointSystem { } @doc(""" -Contact Point Use -See: http://hl7.org/fhir/ValueSet/contact-point-use -""") + Contact Point Use + See: http://hl7.org/fhir/ValueSet/contact-point-use + """) union ContactPointUse { string, diff --git a/specification/ai/HealthInsights/HealthInsights.Common/model.common.fhir.resources.tsp b/specification/ai/HealthInsights/HealthInsights.Common/model.common.fhir.resources.tsp index 7608f74be812..a113644a1a8c 100644 --- a/specification/ai/HealthInsights/HealthInsights.Common/model.common.fhir.resources.tsp +++ b/specification/ai/HealthInsights/HealthInsights.Common/model.common.fhir.resources.tsp @@ -6,9 +6,9 @@ namespace Fhir.R4; #suppress "@azure-tools/typespec-azure-core/bad-record-type" "model should have additionalProperties" @doc(""" -Resource is the ancestor of DomainResource from which most resources are derived. Bundle, Parameters, and Binary extend Resource directly. -Based on [FHIR Resource](https://www.hl7.org/fhir/r4/resource.html -""") + Resource is the ancestor of DomainResource from which most resources are derived. Bundle, Parameters, and Binary extend Resource directly. + Based on [FHIR Resource](https://www.hl7.org/fhir/r4/resource.html + """) model Resource is Record { @doc("The type of resource") resourceType: string; @@ -28,10 +28,11 @@ model Resource is Record { #suppress "@azure-tools/typespec-azure-core/bad-record-type" "model should have additionalProperties" #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "must extends Resource to be able use clientName in both Resource and DomainResource" +#suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" @doc(""" -A resource with narrative, extensions, and contained resources -Based on [FHIR DomainResource](https://www.hl7.org/fhir/domainresource.html) -""") + A resource with narrative, extensions, and contained resources + Based on [FHIR DomainResource](https://www.hl7.org/fhir/domainresource.html) + """) @discriminator("resourceType") model DomainResource extends Resource { @doc("Text summary of the resource, for human interpretation") @@ -49,9 +50,9 @@ model DomainResource extends Resource { #suppress "@azure-tools/typespec-azure-core/bad-record-type" "model should have additionalProperties" @doc(""" -Detailed information about conditions, problems or diagnoses -Based on [FHIR Condition](https://www.hl7.org/fhir/R4/condition.html) -""") + Detailed information about conditions, problems or diagnoses + Based on [FHIR Condition](https://www.hl7.org/fhir/R4/condition.html) + """) model Condition extends DomainResource { @doc("resourceType") resourceType: "Condition"; @@ -121,9 +122,9 @@ model Condition extends DomainResource { } @doc(""" -Stage/grade, usually assessed formally -Based on [FHIR Condition.Stage](https://www.hl7.org/fhir/R4/condition.html) -""") + Stage/grade, usually assessed formally + Based on [FHIR Condition.Stage](https://www.hl7.org/fhir/R4/condition.html) + """) model ConditionStage { @doc("Simple summary (disease specific)") summary?: CodeableConcept; @@ -134,9 +135,9 @@ model ConditionStage { #suppress "@azure-tools/typespec-azure-core/bad-record-type" "model should have additionalProperties" @doc(""" -Detailed information about observations -Based on [FHIR Observation](https://www.hl7.org/fhir/R4/observation.html) -""") + Detailed information about observations + Based on [FHIR Observation](https://www.hl7.org/fhir/R4/observation.html) + """) model Observation extends DomainResource { @doc("resourceType") resourceType: "Observation"; @@ -233,9 +234,9 @@ model Observation extends DomainResource { } @doc(""" -Provides guide for interpretation of component result -Based on [FHIR Observation.referenceRange](https://www.hl7.org/fhir/R4/observation.html) -""") + Provides guide for interpretation of component result + Based on [FHIR Observation.referenceRange](https://www.hl7.org/fhir/R4/observation.html) + """) model ObservationReferenceRange { @doc("Low Range, if relevant") low?: Quantity; @@ -258,9 +259,9 @@ model ObservationReferenceRange { #suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "Keep is much as close to FHIR Spec" @doc(""" -Component results -Based on [FHIR Observation.component](https://www.hl7.org/fhir/R4/observation.html) -""") + Component results + Based on [FHIR Observation.component](https://www.hl7.org/fhir/R4/observation.html) + """) model ObservationComponent extends Element { @doc("Type of component observation (code / type)") code: CodeableConcept; @@ -278,9 +279,9 @@ model ObservationComponent extends Element { } @doc(""" -Observation Status -Based on [FHIR ObservationStatus](https://www.hl7.org/fhir/R4/valueset-observation-status.html) -""") + Observation Status + Based on [FHIR ObservationStatus](https://www.hl7.org/fhir/R4/valueset-observation-status.html) + """) union ObservationStatusCodeType { string, @@ -311,9 +312,9 @@ union ObservationStatusCodeType { #suppress "@azure-tools/typespec-azure-core/bad-record-type" "model should have additionalProperties" @doc(""" -Detailed information about Research Study -Based on [FHIR ResearchStudy](https://www.hl7.org/fhir/R4/researchstudy.html) -""") + Detailed information about Research Study + Based on [FHIR ResearchStudy](https://www.hl7.org/fhir/R4/researchstudy.html) + """) model ResearchStudy extends DomainResource { @doc("resourceType") resourceType: "ResearchStudy"; @@ -408,8 +409,8 @@ alias ResearchStudyObjective = { }; @doc(""" -https://www.hl7.org/fhir/R4/codesystem-research-study-status.html -""") + https://www.hl7.org/fhir/R4/codesystem-research-study-status.html + """) union ResearchStudyStatusCodeType { string, diff --git a/specification/ai/HealthInsights/HealthInsights.Common/model.common.request.tsp b/specification/ai/HealthInsights/HealthInsights.Common/model.common.request.tsp index 0905aa8ac2da..a03306566784 100644 --- a/specification/ai/HealthInsights/HealthInsights.Common/model.common.request.tsp +++ b/specification/ai/HealthInsights/HealthInsights.Common/model.common.request.tsp @@ -22,14 +22,14 @@ alias ModelConfiguration = { @doc("A patient record, including their clinical information and data.") model PatientRecord { @doc(""" -A given identifier for the patient. Has to be unique across all patients in a single request. -""") + A given identifier for the patient. Has to be unique across all patients in a single request. + """) @minLength(1) id: string; @doc(""" -Patient structured information, including demographics and known structured clinical information. -""") + Patient structured information, including demographics and known structured clinical information. + """) details?: PatientDetails; @doc("Patient encounters/visits.") @@ -86,10 +86,10 @@ union ClinicalDocumentType { #suppress "@azure-tools/typespec-azure-core/documentation-required" "MUST fix in next update" @doc(""" -The type of the content's source. -In case the source type is 'inline', the content is given as a string (for instance, text). -In case the source type is 'reference', the content is given as a URI. -""") + The type of the content's source. + In case the source type is 'inline', the content is given as a string (for instance, text). + In case the source type is 'reference', the content is given as a URI. + """) union DocumentContentSourceType { string, @@ -149,9 +149,9 @@ model PatientEncounter { id: string; @doc(""" - Time period of the visit. - In case of admission, use timePeriod.start to indicate the admission time and timePeriod.end to indicate the discharge time. - """) + Time period of the visit. + In case of admission, use timePeriod.start to indicate the admission time and timePeriod.end to indicate the discharge time. + """) period?: TimePeriod; @doc("The class of the encounter.") @@ -163,33 +163,33 @@ union EncounterClass { string, @doc(""" - A patient encounter where a patient is admitted by a hospital or equivalent facility, assigned to a location where patients generally stay at least overnight and provided with room, board, and continuous nursing service. - """) + A patient encounter where a patient is admitted by a hospital or equivalent facility, assigned to a location where patients generally stay at least overnight and provided with room, board, and continuous nursing service. + """) InPatient: "inpatient", @doc(""" - The term ambulatory usually implies that the patient has come to the location and is not assigned to a bed. Sometimes referred to as an outpatient encounter. - """) + The term ambulatory usually implies that the patient has come to the location and is not assigned to a bed. Sometimes referred to as an outpatient encounter. + """) Ambulatory: "ambulatory", @doc(""" - An encounter where the patient usually will start in different encounter, such as one in the emergency department but then transition to this type of encounter because they require a significant period of treatment and monitoring to determine whether or not their condition warrants an inpatient admission or discharge. - """) + An encounter where the patient usually will start in different encounter, such as one in the emergency department but then transition to this type of encounter because they require a significant period of treatment and monitoring to determine whether or not their condition warrants an inpatient admission or discharge. + """) Observation: "observation", @doc(""" - A patient encounter that takes place at a dedicated healthcare service delivery location where the patient receives immediate evaluation and treatment, provided until the patient can be discharged or responsibility for the patient's care is transferred elsewhere (for example, the patient could be admitted as an inpatient or transferred to another facility. - """) + A patient encounter that takes place at a dedicated healthcare service delivery location where the patient receives immediate evaluation and treatment, provided until the patient can be discharged or responsibility for the patient's care is transferred elsewhere (for example, the patient could be admitted as an inpatient or transferred to another facility. + """) Emergency: "emergency", @doc(""" - A patient encounter where the patient is not physically present for the encounter, such as in a telehealth encounter, phone call, or electronic communication. - """) + A patient encounter where the patient is not physically present for the encounter, such as in a telehealth encounter, phone call, or electronic communication. + """) Virtual: "virtual", @doc(""" - Healthcare encounter that takes place in the residence of the patient or a designee - """) + Healthcare encounter that takes place in the residence of the patient or a designee + """) HealthHome: "healthHome", } @@ -216,14 +216,14 @@ model DocumentAuthor { @doc("The content of the patient document.") model DocumentContent { @doc(""" -The type of the content's source. -In case the source type is 'inline', the content is given as a string (for instance, text). -In case the source type is 'reference', the content is given as a URI. -""") + The type of the content's source. + In case the source type is 'inline', the content is given as a string (for instance, text). + In case the source type is 'reference', the content is given as a URI. + """) sourceType: DocumentContentSourceType; @doc(""" -The content of the document, given either inline (as a string) or as a reference (URI). -""") + The content of the document, given either inline (as a string) or as a reference (URI). + """) value: string; } diff --git a/specification/ai/HealthInsights/HealthInsights.Common/model.common.response.tsp b/specification/ai/HealthInsights/HealthInsights.Common/model.common.response.tsp index 46692658bb8f..433c1532519f 100644 --- a/specification/ai/HealthInsights/HealthInsights.Common/model.common.response.tsp +++ b/specification/ai/HealthInsights/HealthInsights.Common/model.common.response.tsp @@ -63,9 +63,9 @@ model InferenceEvidence { patientDataEvidence?: ClinicalNoteEvidence; @doc(""" -A piece of clinical information, expressed as a code in a clinical coding -system. -""") + A piece of clinical information, expressed as a code in a clinical coding + system. + """) patientInfoEvidence?: ClinicalCodedElement; @doc("A value indicating how important this piece of evidence is for the inference.") diff --git a/specification/ai/HealthInsights/HealthInsights.Common/model.common.shared.tsp b/specification/ai/HealthInsights/HealthInsights.Common/model.common.shared.tsp index 3c8a9fa7aca1..a316c356a25f 100644 --- a/specification/ai/HealthInsights/HealthInsights.Common/model.common.shared.tsp +++ b/specification/ai/HealthInsights/HealthInsights.Common/model.common.shared.tsp @@ -39,15 +39,15 @@ model HealthInsightsJobBase { @doc("ConditionStage") model ConditionStage { @doc(""" - Simple summary (disease specific) - see: https://www.hl7.org/fhir/valueset-condition-stage.html -""") + Simple summary (disease specific) + see: https://www.hl7.org/fhir/valueset-condition-stage.html + """) summary: Fhir.R4.CodeableConcept; @doc(""" - Kind of staging - see: https://www.hl7.org/fhir/valueset-condition-stage-kind.html - """) + Kind of staging + see: https://www.hl7.org/fhir/valueset-condition-stage-kind.html + """) type?: Fhir.R4.CodeableConcept; } @@ -87,9 +87,9 @@ union InterpretationType { } @doc(""" -ObservationStatusType based on FHIR valueset observation-status -see: https://www.hl7.org/fhir/codesystem-observation-status.html -""") + ObservationStatusType based on FHIR valueset observation-status + see: https://www.hl7.org/fhir/codesystem-observation-status.html + """) union ObservationStatusType { string, @@ -100,9 +100,9 @@ union ObservationStatusType { Preliminary: "preliminary", @doc(""" - The observation is complete and there are no further actions needed. Additional information such as 'released', 'signed', etc would be represented using [Provenance](provenance.html) which provides not only the act but also the actors and dates and other related data. - These act states would be associated with an observation status of `preliminary` until they are all completed and then a status of `final` would be applied. - """) + The observation is complete and there are no further actions needed. Additional information such as 'released', 'signed', etc would be represented using [Provenance](provenance.html) which provides not only the act but also the actors and dates and other related data. + These act states would be associated with an observation status of `preliminary` until they are all completed and then a status of `final` would be applied. + """) Final: "final", @doc("Subsequent to being Final, the observation has been modified subsequent. This includes updates/new information and corrections.") @@ -122,9 +122,9 @@ union ObservationStatusType { } @doc(""" -ConditionDiagnosisSeverityType based on SNOMED CT International edition 31-July 2022 -see: http://snomed.info/sct -""") + ConditionDiagnosisSeverityType based on SNOMED CT International edition 31-July 2022 + see: http://snomed.info/sct + """) union ConditionDiagnosisSeverityType { string, @@ -139,8 +139,8 @@ union ConditionDiagnosisSeverityType { } @doc(""" -ConditionCategoryType based on FHIR valueset condition-category -""") + ConditionCategoryType based on FHIR valueset condition-category + """) union ConditionCategoryType { string, @@ -152,9 +152,9 @@ union ConditionCategoryType { } @doc(""" -VerificationStatusType based of FHIR valueset condition-ver-status. -see: https://terminology.hl7.org/5.1.0/CodeSystem-condition-ver-status.html -""") + VerificationStatusType based of FHIR valueset condition-ver-status. + see: https://terminology.hl7.org/5.1.0/CodeSystem-condition-ver-status.html + """) union VerificationStatusType { string, @@ -178,10 +178,10 @@ union VerificationStatusType { } @doc(""" -A location given as a combination of city, state and country/region. It could specify a city, a state or a country/region. -In case a city is specified, either state +country/region or country/region (for countries/regions where there are no states) should be added. -In case a state is specified (without a city), country/region should be added. -""") + A location given as a combination of city, state and country/region. It could specify a city, a state or a country/region. + In case a city is specified, either state +country/region or country/region (for countries/regions where there are no states) should be added. + In case a state is specified (without a city), country/region should be added. + """) model GeographicLocation { @doc("City name.") city?: string; @@ -214,8 +214,8 @@ model OrderedProcedure { } @doc(""" -A piece of clinical information, expressed as a code in a clinical coding system. -""") + A piece of clinical information, expressed as a code in a clinical coding system. + """) model ClinicalCodedElement { @doc("The clinical coding system, e.g. ICD-10, SNOMED-CT, UMLS.") system: string; diff --git a/specification/ai/HealthInsights/HealthInsights.OncoPhenotype/model.oncophenotype.tsp b/specification/ai/HealthInsights/HealthInsights.OncoPhenotype/model.oncophenotype.tsp index b9d4ad3e8be5..4523bb0b3283 100644 --- a/specification/ai/HealthInsights/HealthInsights.OncoPhenotype/model.oncophenotype.tsp +++ b/specification/ai/HealthInsights/HealthInsights.OncoPhenotype/model.oncophenotype.tsp @@ -49,8 +49,8 @@ model OncoPhenotypeInference { evidence?: InferenceEvidence[]; @doc(""" -An identifier for a clinical case, if there are multiple clinical cases regarding the same patient. -""") + An identifier for a clinical case, if there are multiple clinical cases regarding the same patient. + """) caseId?: string; } @@ -59,15 +59,15 @@ model OncoPhenotypeModelConfiguration { ...ModelConfiguration; @doc(""" -A list of inference types to be inferred for the current request. -This could be used if only part of the Onco Phenotype inferences are required. -If this list is omitted or empty, the model will return all the inference types. -""") + A list of inference types to be inferred for the current request. + This could be used if only part of the Onco Phenotype inferences are required. + If this list is omitted or empty, the model will return all the inference types. + """) inferenceTypes?: OncoPhenotypeInferenceType[]; @doc(""" -An indication whether to perform a preliminary step on the patient's documents to determine whether they relate to a Cancer case. -""") + An indication whether to perform a preliminary step on the patient's documents to determine whether they relate to a Cancer case. + """) checkForCancerCase?: boolean = false; } diff --git a/specification/ai/HealthInsights/HealthInsights.OpenAPI/tspconfig.yaml b/specification/ai/HealthInsights/HealthInsights.OpenAPI/tspconfig.yaml index 9b6557360eef..4594c77237d3 100644 --- a/specification/ai/HealthInsights/HealthInsights.OpenAPI/tspconfig.yaml +++ b/specification/ai/HealthInsights/HealthInsights.OpenAPI/tspconfig.yaml @@ -11,6 +11,7 @@ linter: options: "@azure-tools/typespec-autorest": azure-resource-provider-folder: "data-plane" + emit-lro-options: "none" emitter-output-dir: "{project-root}/../.." examples-directory: examples omit-unreachable-types: true diff --git a/specification/ai/HealthInsights/HealthInsights.PatientTimeline/model.patienttimeline.tsp b/specification/ai/HealthInsights/HealthInsights.PatientTimeline/model.patienttimeline.tsp index ef954eb7f203..6e7f0bdfe3d2 100644 --- a/specification/ai/HealthInsights/HealthInsights.PatientTimeline/model.patienttimeline.tsp +++ b/specification/ai/HealthInsights/HealthInsights.PatientTimeline/model.patienttimeline.tsp @@ -51,10 +51,10 @@ model PatientTimelineInference is Fhir.R4.Extendible { #suppress "@azure-tools/typespec-azure-core/bad-record-type" "model should have additionalProperties" @doc(""" - FHIR 4.0 representation of the piece of clinical info. - additional dependent resources maybe contained (e.g. MedicationStatement may contain Medication) - -- In the SDK we will have custom mapping to map this type to JsonObject - """) + FHIR 4.0 representation of the piece of clinical info. + additional dependent resources maybe contained (e.g. MedicationStatement may contain Medication) + -- In the SDK we will have custom mapping to map this type to JsonObject + """) resource?: Fhir.R4.DomainResource; @doc("Time range relevant to this Timeline inference.") diff --git a/specification/ai/HealthInsights/HealthInsights.RadiologyInsights/model.radiologyinsights.tsp b/specification/ai/HealthInsights/HealthInsights.RadiologyInsights/model.radiologyinsights.tsp index d1565e982c84..fe7f8d8b4d27 100644 --- a/specification/ai/HealthInsights/HealthInsights.RadiologyInsights/model.radiologyinsights.tsp +++ b/specification/ai/HealthInsights/HealthInsights.RadiologyInsights/model.radiologyinsights.tsp @@ -93,19 +93,20 @@ model RadiologyInsightsPatientResult { inferences: RadiologyInsightsInference[]; } +#suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" @doc(""" -An inference made by the Radiology Insights model regarding a patient. - - AgeMismatch - - SexMismatch - - LateralityDiscrepancy - - CompleteOrderDiscrepancy - - LimitedOrderDiscrepancy - - Finding - - CriticalResult - - FollowupRecommendation - - RadiologyProcedure - - FollowupCommunication -""") + An inference made by the Radiology Insights model regarding a patient. + - AgeMismatch + - SexMismatch + - LateralityDiscrepancy + - CompleteOrderDiscrepancy + - LimitedOrderDiscrepancy + - Finding + - CriticalResult + - FollowupRecommendation + - RadiologyProcedure + - FollowupCommunication + """) @discriminator("kind") model RadiologyInsightsInference { ...Fhir.R4.Extendible; @@ -246,6 +247,7 @@ model FollowupRecommendationInference extends RadiologyInsightsInference { recommendedProcedure: ProcedureRecommendation; } +#suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" @doc("The procedure recommendation can be a generic procedure or an imaging procedure.") @discriminator("kind") model ProcedureRecommendation { diff --git a/specification/ai/HealthInsights/HealthInsights.RadiologyInsights/model.radiologyinsights.valuesets.tsp b/specification/ai/HealthInsights/HealthInsights.RadiologyInsights/model.radiologyinsights.valuesets.tsp index 1ead3a3230b1..17184393b37d 100644 --- a/specification/ai/HealthInsights/HealthInsights.RadiologyInsights/model.radiologyinsights.valuesets.tsp +++ b/specification/ai/HealthInsights/HealthInsights.RadiologyInsights/model.radiologyinsights.valuesets.tsp @@ -159,9 +159,9 @@ union RecommendationFindingStatusType { } @doc(""" -DiseaseCourseType value set system url = http://github.com/Azure/HealthInsights/RadiologyInsights/ValueSet/condition-course -The below values can be used for binding in DiseaseCourseExtension.valueCodeableConcept -""") + DiseaseCourseType value set system url = http://github.com/Azure/HealthInsights/RadiologyInsights/ValueSet/condition-course + The below values can be used for binding in DiseaseCourseExtension.valueCodeableConcept + """) union DiseaseCourseType { string, diff --git a/specification/ai/HealthInsights/HealthInsights.TrialMatcher/model.trialmatcher.tsp b/specification/ai/HealthInsights/HealthInsights.TrialMatcher/model.trialmatcher.tsp index 36d86b442f3c..ed61f08ef0c7 100644 --- a/specification/ai/HealthInsights/HealthInsights.TrialMatcher/model.trialmatcher.tsp +++ b/specification/ai/HealthInsights/HealthInsights.TrialMatcher/model.trialmatcher.tsp @@ -20,11 +20,11 @@ model TrialMatcherModelConfiguration { ...ModelConfiguration; @doc(""" -The clinical trials that the patient(s) should be matched to.
The trial -selection can be given as a list of custom clinical trials and/or a list of -filters to known clinical trial registries. In case both are given, the -resulting trial set is a union of the two sets. -""") + The clinical trials that the patient(s) should be matched to.
The trial + selection can be given as a list of custom clinical trials and/or a list of + filters to known clinical trial registries. In case both are given, the + resulting trial set is a union of the two sets. + """) clinicalTrials: ClinicalTrials; } @@ -49,19 +49,19 @@ model TrialMatcherInferenceResult { model NeededClinicalInfo is ExtendedClinicalCodedElement[]; @doc(""" -A piece of clinical information, expressed as a code in a clinical coding system, extended by semantic information. -""") + A piece of clinical information, expressed as a code in a clinical coding system, extended by semantic information. + """) model ExtendedClinicalCodedElement { ...ClinicalCodedElement; @doc(""" -The [UMLS semantic type](https://www.nlm.nih.gov/research/umls/META3_current_semantic_types.html) associated with the coded concept. -""") + The [UMLS semantic type](https://www.nlm.nih.gov/research/umls/META3_current_semantic_types.html) associated with the coded concept. + """) semanticType?: string; @doc(""" -The bio-medical category related to the coded concept, e.g. Diagnosis, Symptom, Medication, Examination. -""") + The bio-medical category related to the coded concept, e.g. Diagnosis, Symptom, Medication, Examination. + """) category?: string; } @@ -74,8 +74,8 @@ model TrialMatcherPatientResult { inferences: Array; @doc(""" - Clinical information which is needed to provide better trial matching results for the patient. - """) + Clinical information which is needed to provide better trial matching results for the patient. + """) neededClinicalInfo?: NeededClinicalInfo; } @@ -109,97 +109,97 @@ model TrialMatcherInference { } @doc(""" -The clinical trials that the patient(s) should be matched to. -The trial selection can be given as a list of custom clinical trials and/or a list of filters to known clinical trial registries. -In case both are given, the resulting trial set is a union of the two sets. -""") + The clinical trials that the patient(s) should be matched to. + The trial selection can be given as a list of custom clinical trials and/or a list of filters to known clinical trial registries. + In case both are given, the resulting trial set is a union of the two sets. + """) model ClinicalTrials { @doc("A list of clinical trials.") @minItems(1) customTrials?: Array; @doc(""" - A list of filters, each one creating a selection of trials from a given - clinical trial registry. - """) + A list of filters, each one creating a selection of trials from a given + clinical trial registry. + """) @minItems(1) registryFilters?: ClinicalTrialRegistryFilter[]; } @doc(""" -A filter defining a subset of clinical trials from a given clinical trial registry (e.g. clinicaltrials.gov). -""") + A filter defining a subset of clinical trials from a given clinical trial registry (e.g. clinicaltrials.gov). + """) model ClinicalTrialRegistryFilter { @doc(""" -Trials with any of the given medical conditions will be included in the selection (provided that other limitations are satisfied). -Leaving this list empty will not limit the medical conditions. -""") + Trials with any of the given medical conditions will be included in the selection (provided that other limitations are satisfied). + Leaving this list empty will not limit the medical conditions. + """) conditions?: string[]; @doc(""" -Trials with any of the given study types will be included in the selection (provided that other limitations are satisfied). -Leaving this list empty will not limit the study types. -""") + Trials with any of the given study types will be included in the selection (provided that other limitations are satisfied). + Leaving this list empty will not limit the study types. + """) studyTypes?: ClinicalTrialStudyType[]; @doc(""" -Trials with any of the given recruitment statuses will be included in the selection (provided that other limitations are satisfied). -Leaving this list empty will not limit the recruitment statuses. -""") + Trials with any of the given recruitment statuses will be included in the selection (provided that other limitations are satisfied). + Leaving this list empty will not limit the recruitment statuses. + """) recruitmentStatuses?: ClinicalTrialRecruitmentStatus[]; @doc(""" -Trials with any of the given sponsors will be included in the selection (provided that other limitations are satisfied). -Leaving this list empty will not limit the sponsors. -""") + Trials with any of the given sponsors will be included in the selection (provided that other limitations are satisfied). + Leaving this list empty will not limit the sponsors. + """) sponsors?: string[]; @doc(""" -Trials with any of the given phases will be included in the selection (provided that other limitations are satisfied). -Leaving this list empty will not limit the phases. -""") + Trials with any of the given phases will be included in the selection (provided that other limitations are satisfied). + Leaving this list empty will not limit the phases. + """) phases?: ClinicalTrialPhase[]; @doc(""" -Trials with any of the given purposes will be included in the selection (provided that other limitations are satisfied). -Leaving this list empty will not limit the purposes. -""") + Trials with any of the given purposes will be included in the selection (provided that other limitations are satisfied). + Leaving this list empty will not limit the purposes. + """) purposes?: ClinicalTrialPurpose[]; @doc(""" -Trials with any of the given identifiers will be included in the selection (provided that other limitations are satisfied). -Leaving this list empty will not limit the trial identifiers. -""") + Trials with any of the given identifiers will be included in the selection (provided that other limitations are satisfied). + Leaving this list empty will not limit the trial identifiers. + """) ids?: string[]; @doc(""" -Trials with any of the given sources will be included in the selection (provided that other limitations are satisfied). -Leaving this list empty will not limit the sources. -""") + Trials with any of the given sources will be included in the selection (provided that other limitations are satisfied). + Leaving this list empty will not limit the sources. + """) sources?: ClinicalTrialSource[]; @doc(""" -Trials with any of the given facility names will be included in the selection (provided that other limitations are satisfied). -Leaving this list empty will not limit the trial facility names. -""") + Trials with any of the given facility names will be included in the selection (provided that other limitations are satisfied). + Leaving this list empty will not limit the trial facility names. + """) facilityNames?: string[]; @doc(""" -Trials with any of the given facility locations will be included in the selection (provided that other limitations are satisfied). -Leaving this list empty will not limit the trial facility locations. -""") + Trials with any of the given facility locations will be included in the selection (provided that other limitations are satisfied). + Leaving this list empty will not limit the trial facility locations. + """) facilityLocations?: GeographicLocation[]; @doc(""" -Trials with any of the given facility area boundaries will be included in the selection (provided that other limitations are satisfied). -Leaving this list empty will not limit the trial facility area boundaries. -""") + Trials with any of the given facility area boundaries will be included in the selection (provided that other limitations are satisfied). + Leaving this list empty will not limit the trial facility area boundaries. + """) facilityAreas?: GeographicArea[]; } @doc(""" -A geographic area, expressed as a `Circle` geometry represented using a `GeoJSON Feature` (see [GeoJSON spec](https://tools.ietf.org/html/rfc7946)). -""") + A geographic area, expressed as a `Circle` geometry represented using a `GeoJSON Feature` (see [GeoJSON spec](https://tools.ietf.org/html/rfc7946)). + """) model GeographicArea { @doc("`GeoJSON` type.") type: GeoJsonType; @@ -217,9 +217,9 @@ model AreaGeometry { type: GeoJsonGeometryType; @doc(""" -Coordinates of the area circle's center, represented according to the `GeoJSON` standard. -This is an array of 2 decimal numbers, longitude and latitude (precisely in this order). -""") + Coordinates of the area circle's center, represented according to the `GeoJSON` standard. + This is an array of 2 decimal numbers, longitude and latitude (precisely in this order). + """) @minItems(2) @maxItems(2) coordinates: float32[]; @@ -238,9 +238,9 @@ model AreaProperties { @doc("Trial data which is of interest to the potential participant.") model ClinicalTrialMetadata { @doc(""" -Phases which are relevant for the clinical trial. -Each clinical trial can be in a certain phase or in multiple phases. -""") + Phases which are relevant for the clinical trial. + Each clinical trial can be in a certain phase or in multiple phases. + """) phases?: ClinicalTrialPhase[]; @doc("Possible study types of a clinical trial.") @@ -250,8 +250,8 @@ Each clinical trial can be in a certain phase or in multiple phases. recruitmentStatus?: ClinicalTrialRecruitmentStatus; @doc(""" -Medical conditions and their synonyms which are relevant for the clinical trial, given as strings. -""") + Medical conditions and their synonyms which are relevant for the clinical trial, given as strings. + """) @minItems(1) conditions: string[]; @@ -259,8 +259,8 @@ Medical conditions and their synonyms which are relevant for the clinical trial, sponsors?: string[]; @doc(""" -Contact details of the trial administrators, for patients that want to participate in the trial. -""") + Contact details of the trial administrators, for patients that want to participate in the trial. + """) contacts?: ContactDetails[]; @doc("Research facilities where the clinical trial is conducted.") diff --git a/specification/ai/ImageAnalysis/main.tsp b/specification/ai/ImageAnalysis/main.tsp index d21501ee098e..55a5bf9547a9 100644 --- a/specification/ai/ImageAnalysis/main.tsp +++ b/specification/ai/ImageAnalysis/main.tsp @@ -25,9 +25,9 @@ using Azure.Core; "Analyze an image to generate a description of its content, detect text, objects and more.", { @doc(""" -Azure AI Computer Vision endpoint (protocol and hostname, for example: -https://.cognitiveservices.azure.com). -""") + Azure AI Computer Vision endpoint (protocol and hostname, for example: + https://.cognitiveservices.azure.com). + """) endpoint: url, } ) diff --git a/specification/ai/ImageAnalysis/models.tsp b/specification/ai/ImageAnalysis/models.tsp index b637a1070578..61b804dff603 100644 --- a/specification/ai/ImageAnalysis/models.tsp +++ b/specification/ai/ImageAnalysis/models.tsp @@ -29,9 +29,9 @@ model ImageBoundingBox { @doc("Represents a generated phrase that describes the content of the whole image.") model CaptionResult { @doc(""" - A score, in the range of 0 to 1 (inclusive), representing the confidence that this description is accurate. - Higher values indicating higher confidence. - """) + A score, in the range of 0 to 1 (inclusive), representing the confidence that this description is accurate. + Higher values indicating higher confidence. + """) @minValue(0.0) @maxValue(1.0) confidence: float32; @@ -42,16 +42,16 @@ model CaptionResult { } @doc(""" -A region at the desired aspect ratio that can be used as image thumbnail. -The region preserves as much content as possible from the analyzed image, with priority given to detected faces. -""") + A region at the desired aspect ratio that can be used as image thumbnail. + The region preserves as much content as possible from the analyzed image, with priority given to detected faces. + """) model CropRegion { @doc(""" - The aspect ratio of the crop region. - Aspect ratio is calculated by dividing the width of the region in pixels by its height in pixels. - The aspect ratio will be in the range 0.75 to 1.8 (inclusive) if provided by the developer during the analyze call. - Otherwise, it will be in the range 0.5 to 2.0 (inclusive). - """) + The aspect ratio of the crop region. + Aspect ratio is calculated by dividing the width of the region in pixels by its height in pixels. + The aspect ratio will be in the range 0.75 to 1.8 (inclusive) if provided by the developer during the analyze call. + Otherwise, it will be in the range 0.5 to 2.0 (inclusive). + """) @minValue(0.0) aspectRatio: float32; @@ -62,9 +62,9 @@ model CropRegion { @doc("Represents a generated phrase that describes the content of the whole image or a region in the image") model DenseCaption { @doc(""" - A score, in the range of 0 to 1 (inclusive), representing the confidence that this description is accurate. - Higher values indicating higher confidence. - """) + A score, in the range of 0 to 1 (inclusive), representing the confidence that this description is accurate. + Higher values indicating higher confidence. + """) @minValue(0.0) @maxValue(1.0) confidence: float32; @@ -78,9 +78,9 @@ model DenseCaption { } @doc(""" -Represents a list of up to 10 image captions for different regions of the image. -The first caption always applies to the whole image. -""") + Represents a list of up to 10 image captions for different regions of the image. + The first caption always applies to the whole image. + """) model DenseCaptionsResult { @doc("The list of image captions.") @minItems(1) @@ -105,9 +105,9 @@ model DetectedPerson { boundingBox: ImageBoundingBox; @doc(""" - A score, in the range of 0 to 1 (inclusive), representing the confidence that this detection was accurate. - Higher values indicating higher confidence. - """) + A score, in the range of 0 to 1 (inclusive), representing the confidence that this detection was accurate. + Higher values indicating higher confidence. + """) @visibility("read") @minValue(0.0) @maxValue(1.0) @@ -172,9 +172,9 @@ model ImageAnalysisResult { caption?: CaptionResult; @doc(""" - The up to 10 generated phrases, the first describing the content of the whole image, - and the others describing the content of different regions of the image. - """) + The up to 10 generated phrases, the first describing the content of the whole image, + and the others describing the content of different regions of the image. + """) @encodedName("application/json", "denseCaptionsResult") denseCaptions?: DenseCaptionsResult; @@ -197,9 +197,9 @@ model ImageAnalysisResult { read?: ReadResult; @doc(""" - A list of crop regions at the desired as aspect ratios (if provided) that can be used as image thumbnails. - These regions preserve as much content as possible from the analyzed image, with priority given to detected faces. - """) + A list of crop regions at the desired as aspect ratios (if provided) that can be used as image thumbnails. + These regions preserve as much content as possible from the analyzed image, with priority given to detected faces. + """) @encodedName("application/json", "smartCropsResult") smartCrops?: SmartCropsResult; @@ -244,9 +244,9 @@ model ReadResult { } @doc(""" -Smart cropping result. A list of crop regions at the desired as aspect ratios (if provided) that can be used as image thumbnails. -These regions preserve as much content as possible from the analyzed image, with priority given to detected faces. -""") + Smart cropping result. A list of crop regions at the desired as aspect ratios (if provided) that can be used as image thumbnails. + These regions preserve as much content as possible from the analyzed image, with priority given to detected faces. + """) model SmartCropsResult { @doc("A list of crop regions.") @minItems(1) @@ -255,14 +255,14 @@ model SmartCropsResult { } @doc(""" -A content entity observation in the image. A tag can be a physical object, living being, scenery, or action -that appear in the image. -""") + A content entity observation in the image. A tag can be a physical object, living being, scenery, or action + that appear in the image. + """) model DetectedTag { @doc(""" - A score, in the range of 0 to 1 (inclusive), representing the confidence that this entity was observed. - Higher values indicating higher confidence. - """) + A score, in the range of 0 to 1 (inclusive), representing the confidence that this entity was observed. + Higher values indicating higher confidence. + """) @minValue(0.0) @maxValue(1.0) confidence: float32; @@ -273,9 +273,9 @@ model DetectedTag { } @doc(""" -A list of entities observed in the image. Tags can be physical objects, living being, scenery, or actions -that appear in the image. -""") + A list of entities observed in the image. Tags can be physical objects, living being, scenery, or actions + that appear in the image. + """) model TagsResult { @doc("A list of tags.") @minItems(0) diff --git a/specification/ai/ImageAnalysis/routes.tsp b/specification/ai/ImageAnalysis/routes.tsp index 7038a5d38bb7..5500500c4c34 100644 --- a/specification/ai/ImageAnalysis/routes.tsp +++ b/specification/ai/ImageAnalysis/routes.tsp @@ -20,28 +20,28 @@ alias SharedAnalyzeQuery = { format: "csv", }) @doc(""" - A list of visual features to analyze. - Seven visual features are supported: Caption, DenseCaptions, Read (OCR), Tags, Objects, SmartCrops, and People. - At least one visual feature must be specified. - """) + A list of visual features to analyze. + Seven visual features are supported: Caption, DenseCaptions, Read (OCR), Tags, Objects, SmartCrops, and People. + At least one visual feature must be specified. + """) @minItems(1) visualFeatures: Array; @query("language") @doc(""" - The desired language for result generation (a two-letter language code). - If this option is not specified, the default value 'en' is used (English). - See https://aka.ms/cv-languages for a list of supported languages. - """) + The desired language for result generation (a two-letter language code). + If this option is not specified, the default value 'en' is used (English). + See https://aka.ms/cv-languages for a list of supported languages. + """) @minLength(2) language?: string = "en"; @query("gender-neutral-caption") @doc(""" - Boolean flag for enabling gender-neutral captioning for Caption and Dense Captions features. - By default captions may contain gender terms (for example: 'man', 'woman', or 'boy', 'girl'). - If you set this to \"true\", those will be replaced with gender-neutral terms (for example: 'person' or 'child'). - """) + Boolean flag for enabling gender-neutral captioning for Caption and Dense Captions features. + By default captions may contain gender terms (for example: 'man', 'woman', or 'boy', 'girl'). + If you set this to \"true\", those will be replaced with gender-neutral terms (for example: 'person' or 'child'). + """) genderNeutralCaption?: boolean = false; @query({ @@ -49,21 +49,21 @@ alias SharedAnalyzeQuery = { format: "csv", }) @doc(""" - A list of aspect ratios to use for smart cropping. - Aspect ratios are calculated by dividing the target crop width in pixels by the height in pixels. - Supported values are between 0.75 and 1.8 (inclusive). - If this parameter is not specified, the service will return one crop region with an aspect - ratio it sees fit between 0.5 and 2.0 (inclusive). - """) + A list of aspect ratios to use for smart cropping. + Aspect ratios are calculated by dividing the target crop width in pixels by the height in pixels. + Supported values are between 0.75 and 1.8 (inclusive). + If this parameter is not specified, the service will return one crop region with an aspect + ratio it sees fit between 0.5 and 2.0 (inclusive). + """) smartCropsAspectRatios?: Array; @query("model-version") @doc(""" - The version of cloud AI-model used for analysis. - The format is the following: 'latest' (default value) or 'YYYY-MM-DD' or 'YYYY-MM-DD-preview', where 'YYYY', 'MM', 'DD' are the year, month and day associated with the model. - This is not commonly set, as the default always gives the latest AI model with recent improvements. - If however you would like to make sure analysis results do not change over time, set this value to a specific model version. - """) + The version of cloud AI-model used for analysis. + The format is the following: 'latest' (default value) or 'YYYY-MM-DD' or 'YYYY-MM-DD-preview', where 'YYYY', 'MM', 'DD' are the year, month and day associated with the model. + This is not commonly set, as the default always gives the latest AI model with recent improvements. + If however you would like to make sure analysis results do not change over time, set this value to a specific model version. + """) @pattern("^(latest|\\d{4}-\\d{2}-\\d{2})(-preview)?$") @minLength(6) @maxLength(18) diff --git a/specification/ai/ImageAnalysis/tspconfig.yaml b/specification/ai/ImageAnalysis/tspconfig.yaml index 38492b8b6381..f2ff99a42d93 100644 --- a/specification/ai/ImageAnalysis/tspconfig.yaml +++ b/specification/ai/ImageAnalysis/tspconfig.yaml @@ -11,6 +11,7 @@ options: emitter-output-dir: "{project-root}/../" output-file: "{azure-resource-provider-folder}/ImageAnalysis/{version-status}/{version}/generated.json" azure-resource-provider-folder: "data-plane" + emit-lro-options: "none" examples-directory: examples omit-unreachable-types: true "@azure-tools/typespec-python": diff --git a/specification/ai/OpenAI.Assistants/assistants/models.tsp b/specification/ai/OpenAI.Assistants/assistants/models.tsp index 1ecff00e2e15..3c892cd75990 100644 --- a/specification/ai/OpenAI.Assistants/assistants/models.tsp +++ b/specification/ai/OpenAI.Assistants/assistants/models.tsp @@ -40,7 +40,7 @@ model Assistant { instructions: string | null; @doc("The collection of tools enabled for the assistant.") - tools: ToolDefinition[] = []; + tools: ToolDefinition[] = #[]; /** * A set of resources that are used by the assistant's tools. The resources are specific to the type of tool. For example, the `code_interpreter` @@ -103,7 +103,7 @@ model AssistantCreationOptions { #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" @doc("The collection of tools to enable for the new assistant.") - tools?: ToolDefinition[] = []; + tools?: ToolDefinition[] = #[]; /** * A set of resources that are used by the assistant's tools. The resources are specific to the type of tool. For example, the `code_interpreter` @@ -169,7 +169,7 @@ model UpdateAssistantOptions { instructions?: string | null; @doc("The modified collection of tools to enable for the assistant.") - tools?: ToolDefinition[] = []; + tools?: ToolDefinition[] = #[]; /** * A set of resources that are used by the assistant's tools. The resources are specific to the type of tool. For example, diff --git a/specification/ai/OpenAI.Assistants/messages/models.tsp b/specification/ai/OpenAI.Assistants/messages/models.tsp index ebce66ef29c4..118cdf5a0d73 100644 --- a/specification/ai/OpenAI.Assistants/messages/models.tsp +++ b/specification/ai/OpenAI.Assistants/messages/models.tsp @@ -120,6 +120,7 @@ union MessageAttachmentToolDefinition { @doc("An abstract representation of a single item of thread message content.") @added(ServiceApiVersions.v2024_02_15_preview) model MessageContent { + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" @doc("The object type.") type: string; } @@ -163,6 +164,7 @@ model MessageTextDetails { @doc("An abstract representation of an annotation to text thread message content.") @added(ServiceApiVersions.v2024_02_15_preview) model MessageTextAnnotation { + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" @doc("The object type.") type: string; @@ -180,9 +182,9 @@ model MessageTextFileCitationAnnotation extends MessageTextAnnotation { @encodedName("application/json", "file_citation") @doc(""" - A citation within the message that points to a specific quote from a specific file. - Generated when the assistant uses the "file_search" tool to search files. - """) + A citation within the message that points to a specific quote from a specific file. + Generated when the assistant uses the "file_search" tool to search files. + """) fileCitation: MessageTextFileCitationDetails; @encodedName("application/json", "start_index") @@ -322,6 +324,7 @@ model MessageDeltaContent { index: int32; /** The type of content for this content part. */ + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" type: string; } @@ -372,6 +375,7 @@ model MessageDeltaTextAnnotation { index: int32; /** The type of the text content annotation. */ + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" type: string; } diff --git a/specification/ai/OpenAI.Assistants/run_steps/models.tsp b/specification/ai/OpenAI.Assistants/run_steps/models.tsp index 89d15c2ea2bf..5ed19fc6a082 100644 --- a/specification/ai/OpenAI.Assistants/run_steps/models.tsp +++ b/specification/ai/OpenAI.Assistants/run_steps/models.tsp @@ -219,6 +219,7 @@ model RunStepDelta { @added(ServiceApiVersions.v2024_02_15_preview) model RunStepDeltaDetail { /** The object type for the run step detail object. */ + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" type: string; } @@ -263,6 +264,7 @@ model RunStepDeltaToolCall { id: string; /** The type of the tool call detail item in a streaming run step's details. */ + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" type: string; } @@ -334,6 +336,7 @@ model RunStepDeltaCodeInterpreterOutput { index: int32; /** The type of the streaming run step tool call's Code Interpreter output. */ + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" type: string; } diff --git a/specification/ai/OpenAI.Assistants/runs/models.tsp b/specification/ai/OpenAI.Assistants/runs/models.tsp index 08cd8e08355b..4ae34b106f92 100644 --- a/specification/ai/OpenAI.Assistants/runs/models.tsp +++ b/specification/ai/OpenAI.Assistants/runs/models.tsp @@ -51,7 +51,7 @@ model ThreadRun { instructions: string; @doc("The overridden enabled tools used for this assistant thread run.") - tools: ToolDefinition[] = []; + tools: ToolDefinition[] = #[]; @encodedName("application/json", "created_at") @encode(DateTimeKnownEncoding.unixTimestamp, int32) @@ -195,9 +195,9 @@ model CreateRunOptions { #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicit nullability, distinct from optionality" @encodedName("application/json", "additional_instructions") @doc(""" - Additional instructions to append at the end of the instructions for the run. This is useful for modifying the behavior - on a per-run basis without overriding other instructions. - """) + Additional instructions to append at the end of the instructions for the run. This is useful for modifying the behavior + on a per-run basis without overriding other instructions. + """) additionalInstructions?: string | null; /** Adds additional messages to the thread before creating the run. */ @@ -328,6 +328,7 @@ union RunStatus { @doc("An abstract representation of a required action for an assistant thread run to continue.") @added(ServiceApiVersions.v2024_02_15_preview) model RequiredAction { + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" @doc("The object type.") type: string; } diff --git a/specification/ai/OpenAI.Assistants/streaming/events.tsp b/specification/ai/OpenAI.Assistants/streaming/events.tsp index 22d34453e587..0adca1d5ef08 100644 --- a/specification/ai/OpenAI.Assistants/streaming/events.tsp +++ b/specification/ai/OpenAI.Assistants/streaming/events.tsp @@ -5,23 +5,23 @@ using TypeSpec.Versioning; namespace Azure.AI.OpenAI.Assistants; @doc(""" -Each event in a server-sent events stream has an `event` and `data` property: - -``` -event: thread.created -data: {"id": "thread_123", "object": "thread", ...} -``` - -We emit events whenever a new object is created, transitions to a new state, or is being -streamed in parts (deltas). For example, we emit `thread.run.created` when a new run -is created, `thread.run.completed` when a run completes, and so on. When an Assistant chooses -to create a message during a run, we emit a `thread.message.created event`, a -`thread.message.in_progress` event, many `thread.message.delta` events, and finally a -`thread.message.completed` event. - -We may add additional events over time, so we recommend handling unknown events gracefully -in your code. -""") + Each event in a server-sent events stream has an `event` and `data` property: + + ``` + event: thread.created + data: {"id": "thread_123", "object": "thread", ...} + ``` + + We emit events whenever a new object is created, transitions to a new state, or is being + streamed in parts (deltas). For example, we emit `thread.run.created` when a new run + is created, `thread.run.completed` when a run completes, and so on. When an Assistant chooses + to create a message during a run, we emit a `thread.message.created event`, a + `thread.message.in_progress` event, many `thread.message.delta` events, and finally a + `thread.message.completed` event. + + We may add additional events over time, so we recommend handling unknown events gracefully + in your code. + """) union AssistantStreamEvent { string, diff --git a/specification/ai/OpenAI.Assistants/tools/models.tsp b/specification/ai/OpenAI.Assistants/tools/models.tsp index 72e17b73dae6..038c6271a1c3 100644 --- a/specification/ai/OpenAI.Assistants/tools/models.tsp +++ b/specification/ai/OpenAI.Assistants/tools/models.tsp @@ -14,6 +14,7 @@ namespace Azure.AI.OpenAI.Assistants; @discriminator("type") @added(ServiceApiVersions.v2024_02_15_preview) model ToolDefinition { + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" @doc("The object type.") type: string; } @@ -64,10 +65,11 @@ model FunctionDefinition { @discriminator("type") @doc(""" -An abstract representation a a tool invocation needed by the model to continue a run. -""") + An abstract representation a a tool invocation needed by the model to continue a run. + """) @added(ServiceApiVersions.v2024_02_15_preview) model RequiredToolCall { + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" @doc("The object type for the required tool call.") type: string; @@ -103,6 +105,7 @@ model RequiredFunctionToolCallDetails { @doc("An abstract representation of a detailed tool call as recorded within a run step for an existing run.") @added(ServiceApiVersions.v2024_02_15_preview) model RunStepToolCall { + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" @doc("The object type.") type: string; @@ -111,9 +114,9 @@ model RunStepToolCall { } @doc(""" -A record of a call to a code interpreter tool, issued by the model in evaluation of a defined tool, that -represents inputs and outputs consumed and emitted by the code interpreter. -""") + A record of a call to a code interpreter tool, issued by the model in evaluation of a defined tool, that + represents inputs and outputs consumed and emitted by the code interpreter. + """) @added(ServiceApiVersions.v2024_02_15_preview) model RunStepCodeInterpreterToolCall extends RunStepToolCall { @doc("The object type, which is always 'code_interpreter'.") @@ -125,9 +128,9 @@ model RunStepCodeInterpreterToolCall extends RunStepToolCall { } @doc(""" -A record of a call to a file search tool, issued by the model in evaluation of a defined tool, that represents -executed file search. -""") + A record of a call to a file search tool, issued by the model in evaluation of a defined tool, that represents + executed file search. + """) @added(ServiceApiVersions.v2024_05_01_preview) model RunStepFileSearchToolCall extends RunStepToolCall { @doc("The object type, which is always 'file_search'.") @@ -139,9 +142,9 @@ model RunStepFileSearchToolCall extends RunStepToolCall { } @doc(""" -A record of a call to a function tool, issued by the model in evaluation of a defined tool, that represents the inputs -and output consumed and emitted by the specified function. -""") + A record of a call to a function tool, issued by the model in evaluation of a defined tool, that represents the inputs + and output consumed and emitted by the specified function. + """) @added(ServiceApiVersions.v2024_02_15_preview) model RunStepFunctionToolCall extends RunStepToolCall { @doc("The object type, which is always 'function'.") @@ -167,6 +170,7 @@ model RunStepCodeInterpreterToolCallDetails { @doc("An abstract representation of an emitted output from a code interpreter tool.") @added(ServiceApiVersions.v2024_02_15_preview) model RunStepCodeInterpreterToolCallOutput { + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" @doc("The object type.") type: string; } diff --git a/specification/ai/OpenAI.Assistants/tools/tool_resources.tsp b/specification/ai/OpenAI.Assistants/tools/tool_resources.tsp index 55f43651c27f..22d4f532aced 100644 --- a/specification/ai/OpenAI.Assistants/tools/tool_resources.tsp +++ b/specification/ai/OpenAI.Assistants/tools/tool_resources.tsp @@ -39,7 +39,7 @@ model CodeInterpreterToolResource { */ @encodedName("application/json", "file_ids") @maxItems(20) - fileIds: string[] = []; + fileIds: string[] = #[]; } /** @@ -87,7 +87,7 @@ model CreateCodeInterpreterToolResourceOptions { /** A list of file IDs made available to the `code_interpreter` tool. */ @maxItems(20) @encodedName("application/json", "file_ids") - fileIds?: string[] = []; + fileIds?: string[] = #[]; } /** diff --git a/specification/ai/OpenAI.Assistants/tspconfig.yaml b/specification/ai/OpenAI.Assistants/tspconfig.yaml index 0fb0ba8bdd39..564b8e16d05f 100644 --- a/specification/ai/OpenAI.Assistants/tspconfig.yaml +++ b/specification/ai/OpenAI.Assistants/tspconfig.yaml @@ -14,6 +14,7 @@ linter: options: "@azure-tools/typespec-autorest": azure-resource-provider-folder: "data-plane" + emit-lro-options: "none" emitter-output-dir: "{project-root}/../" output-file: "data-plane/OpenAI.Assistants/OpenApiV2/{version-status}/{version}/assistants_generated.json" examples-directory: "{project-root}/examples" diff --git a/specification/apicenter/ApiCenter.DataApi/tspconfig.yaml b/specification/apicenter/ApiCenter.DataApi/tspconfig.yaml index 61f42734e25f..dc8e58bf03a4 100644 --- a/specification/apicenter/ApiCenter.DataApi/tspconfig.yaml +++ b/specification/apicenter/ApiCenter.DataApi/tspconfig.yaml @@ -9,6 +9,7 @@ emit: options: "@azure-tools/typespec-autorest": azure-resource-provider-folder: "data-plane" + emit-lro-options: "none" emitter-output-dir: "{project-root}/.." examples-directory: "{project-root}/examples" output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/azure.apicenter.dataapi.json" diff --git a/specification/apicenter/ApiCenter.Management/models.tsp b/specification/apicenter/ApiCenter.Management/models.tsp index 23a5c2f92ca0..2f37764ae65d 100644 --- a/specification/apicenter/ApiCenter.Management/models.tsp +++ b/specification/apicenter/ApiCenter.Management/models.tsp @@ -160,9 +160,9 @@ union ApiSpecImportSourceFormat { @doc("The inlined content of a specification document.") "inline", @doc(""" -The link to a specification document hosted on a publicly accessible internet -address. -""") + The link to a specification document hosted on a publicly accessible internet + address. + """) "link", } @@ -377,16 +377,16 @@ model License { name?: string; @doc(""" -URL pointing to the license details. The URL field is mutually exclusive of the -identifier field. -""") + URL pointing to the license details. The URL field is mutually exclusive of the + identifier field. + """) @maxLength(200) url?: url; @doc(""" -SPDX license information for the API. The identifier field is mutually -exclusive of the URL field. -""") + SPDX license information for the API. The identifier field is mutually + exclusive of the URL field. + """) @maxLength(50) identifier?: url; } diff --git a/specification/apicenter/resource-manager/Microsoft.ApiCenter/preview/2024-03-15-preview/apicenter.json b/specification/apicenter/resource-manager/Microsoft.ApiCenter/preview/2024-03-15-preview/apicenter.json index b6905c6f97f3..99c8fd351591 100644 --- a/specification/apicenter/resource-manager/Microsoft.ApiCenter/preview/2024-03-15-preview/apicenter.json +++ b/specification/apicenter/resource-manager/Microsoft.ApiCenter/preview/2024-03-15-preview/apicenter.json @@ -3576,11 +3576,7 @@ "properties": { "$ref": "#/definitions/ApiProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -3596,11 +3592,7 @@ "properties": { "$ref": "#/definitions/ApiDefinitionProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -3910,11 +3902,7 @@ "properties": { "$ref": "#/definitions/ApiVersionProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -4026,6 +4014,7 @@ }, "CustomProperties": { "type": "object", + "title": "Custom Properties", "description": "The custom metadata defined for API catalog entities." }, "DeletedService": { @@ -4035,11 +4024,7 @@ "properties": { "$ref": "#/definitions/DeletedServiceProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -4094,11 +4079,7 @@ "properties": { "$ref": "#/definitions/DeploymentProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -4211,11 +4192,7 @@ "properties": { "$ref": "#/definitions/EnvironmentProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -4584,11 +4561,7 @@ "properties": { "$ref": "#/definitions/MetadataSchemaProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -4775,11 +4748,7 @@ "properties": { "$ref": "#/definitions/ServiceProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "identity": { "$ref": "../../../../../common-types/resource-management/v5/managedidentity.json#/definitions/ManagedServiceIdentity", @@ -4891,11 +4860,7 @@ "properties": { "$ref": "#/definitions/WorkspaceProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ diff --git a/specification/apicenter/resource-manager/Microsoft.ApiCenter/stable/2024-03-01/apicenter.json b/specification/apicenter/resource-manager/Microsoft.ApiCenter/stable/2024-03-01/apicenter.json index 3362ab052d6f..c33916a2bc68 100644 --- a/specification/apicenter/resource-manager/Microsoft.ApiCenter/stable/2024-03-01/apicenter.json +++ b/specification/apicenter/resource-manager/Microsoft.ApiCenter/stable/2024-03-01/apicenter.json @@ -3387,11 +3387,7 @@ "properties": { "$ref": "#/definitions/ApiProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -3407,11 +3403,7 @@ "properties": { "$ref": "#/definitions/ApiDefinitionProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -3721,11 +3713,7 @@ "properties": { "$ref": "#/definitions/ApiVersionProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -3837,6 +3825,7 @@ }, "CustomProperties": { "type": "object", + "title": "Custom Properties", "description": "The custom metadata defined for API catalog entities." }, "Deployment": { @@ -3846,11 +3835,7 @@ "properties": { "$ref": "#/definitions/DeploymentProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -3963,11 +3948,7 @@ "properties": { "$ref": "#/definitions/EnvironmentProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -4336,11 +4317,7 @@ "properties": { "$ref": "#/definitions/MetadataSchemaProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -4527,11 +4504,7 @@ "properties": { "$ref": "#/definitions/ServiceProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "identity": { "$ref": "../../../../../common-types/resource-management/v5/managedidentity.json#/definitions/ManagedServiceIdentity", @@ -4623,11 +4596,7 @@ "properties": { "$ref": "#/definitions/WorkspaceProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ diff --git a/specification/appcomplianceautomation/AppComplianceAutomation.Management/resources/ReportResource.tsp b/specification/appcomplianceautomation/AppComplianceAutomation.Management/resources/ReportResource.tsp index 19be57009d87..ac782c51b4c6 100644 --- a/specification/appcomplianceautomation/AppComplianceAutomation.Management/resources/ReportResource.tsp +++ b/specification/appcomplianceautomation/AppComplianceAutomation.Management/resources/ReportResource.tsp @@ -54,10 +54,13 @@ interface Report { * Create a new AppComplianceAutomation report or update an exiting AppComplianceAutomation report. */ #suppress "@azure-tools/typespec-azure-core/no-operation-id" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" @operationId("Report_CreateOrUpdate") + @Azure.Core.useFinalStateVia("azure-async-operation") createOrUpdate is ArmResourceCreateOrReplaceAsync< ReportResource, - Azure.ResourceManager.Foundations.BaseParameters + Azure.ResourceManager.Foundations.BaseParameters, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader >; /** diff --git a/specification/appconfiguration/AppConfiguration/models.tsp b/specification/appconfiguration/AppConfiguration/models.tsp index 878d6b028542..eefb14ce0daf 100644 --- a/specification/appconfiguration/AppConfiguration/models.tsp +++ b/specification/appconfiguration/AppConfiguration/models.tsp @@ -229,11 +229,11 @@ model Snapshot { filters: KeyValueFilter[]; @doc(""" -The composition type describes how the key-values within the snapshot are -composed. The 'key' composition type ensures there are no two key-values -containing the same key. The 'key_label' composition type ensures there are no -two key-values containing the same key and label. -""") + The composition type describes how the key-values within the snapshot are + composed. The 'key' composition type ensures there are no two key-values + containing the same key. The 'key_label' composition type ensures there are no + two key-values containing the same key and label. + """) @encodedName("application/json", "composition_type") compositionType?: CompositionType; @@ -248,11 +248,11 @@ two key-values containing the same key and label. expires?: offsetDateTime; @doc(""" -The amount of time, in seconds, that a snapshot will remain in the archived -state before expiring. This property is only writable during the creation of a -snapshot. If not specified, the default lifetime of key-value revisions will be -used. -""") + The amount of time, in seconds, that a snapshot will remain in the archived + state before expiring. This property is only writable during the creation of a + snapshot. If not specified, the default lifetime of key-value revisions will be + used. + """) @maxValue(7776000) @minValue(3600) @encodedName("application/json", "retention_period") @@ -276,9 +276,9 @@ used. } @doc(""" -Enables filtering of key-values. Syntax reference: -https://aka.ms/azconfig/docs/restapisnapshots -""") + Enables filtering of key-values. Syntax reference: + https://aka.ms/azconfig/docs/restapisnapshots + """) model KeyValueFilter { @doc("Filters key-values by their key field.") key: string; @@ -323,8 +323,8 @@ model OperationDetails { status: Foundations.OperationState; @doc(""" -An error, available when the status is `Failed`, describing why the operation -failed. -""") + An error, available when the status is `Failed`, describing why the operation + failed. + """) error?: Foundations.Error; } diff --git a/specification/appconfiguration/AppConfiguration/routes.tsp b/specification/appconfiguration/AppConfiguration/routes.tsp index 572c81823e7e..6c6e3239364c 100644 --- a/specification/appconfiguration/AppConfiguration/routes.tsp +++ b/specification/appconfiguration/AppConfiguration/routes.tsp @@ -58,18 +58,18 @@ op getKeys is Foundations.ResourceList< name?: string; @doc(""" - Instructs the server to return elements that appear after the element referred - to by the specified token. - """) + Instructs the server to return elements that appear after the element referred + to by the specified token. + """) @query("After") after?: string; ...syncTokenHeader; @doc(""" -Requests the server to respond with the state of the resource at the specified -time. -""") + Requests the server to respond with the state of the resource at the specified + time. + """) @header("Accept-Datetime") acceptDatetime?: string; }, @@ -95,16 +95,16 @@ op checkKeys is appConfigOperation< ...syncTokenHeader; @doc(""" -Instructs the server to return elements that appear after the element referred -to by the specified token. -""") + Instructs the server to return elements that appear after the element referred + to by the specified token. + """) @query("After") after?: string; @doc(""" -Requests the server to respond with the state of the resource at the specified -time. -""") + Requests the server to respond with the state of the resource at the specified + time. + """) @header("Accept-Datetime") acceptDatetime?: string; }, @@ -120,32 +120,32 @@ op getKeyValues is Foundations.ResourceList< KeyValue, { @doc(""" -A filter used to match keys. Syntax reference: -https://aka.ms/azconfig/docs/keyvaluefiltering -""") + A filter used to match keys. Syntax reference: + https://aka.ms/azconfig/docs/keyvaluefiltering + """) @query("key") key?: string; @doc(""" -A filter used to match labels. Syntax reference: -https://aka.ms/azconfig/docs/keyvaluefiltering -""") + A filter used to match labels. Syntax reference: + https://aka.ms/azconfig/docs/keyvaluefiltering + """) @query("label") label?: string; ...syncTokenHeader; @doc(""" -Instructs the server to return elements that appear after the element referred -to by the specified token. -""") + Instructs the server to return elements that appear after the element referred + to by the specified token. + """) @query("After") after?: string; @doc(""" -Requests the server to respond with the state of the resource at the specified -time. -""") + Requests the server to respond with the state of the resource at the specified + time. + """) @header("Accept-Datetime") acceptDatetime?: string; @@ -157,31 +157,31 @@ time. select?: KeyValueFields[]; @doc(""" -A filter used get key-values for a snapshot. The value should be the name of -the snapshot. Not valid when used with 'key' and 'label' filters. -""") + A filter used get key-values for a snapshot. The value should be the name of + the snapshot. Not valid when used with 'key' and 'label' filters. + """) @query("snapshot") snapshot?: string; @doc(""" -Used to perform an operation only if the targeted resource's etag matches the -value provided. -""") + Used to perform an operation only if the targeted resource's etag matches the + value provided. + """) @header("If-Match") ifMatch?: string; @doc(""" -Used to perform an operation only if the targeted resource's etag does not -match the value provided. -""") + Used to perform an operation only if the targeted resource's etag does not + match the value provided. + """) @header("If-None-Match") ifNoneMatch?: string; #suppress "@azure-tools/typespec-azure-core/prefer-csv-collection-format" "Pre-existing API contract" @doc(""" -A filter used to query by tags. Syntax reference: -https://aka.ms/azconfig/docs/keyvaluefiltering -""") + A filter used to query by tags. Syntax reference: + https://aka.ms/azconfig/docs/keyvaluefiltering + """) @query({ name: "tags", format: "multi", @@ -203,32 +203,32 @@ https://aka.ms/azconfig/docs/keyvaluefiltering op checkKeyValues is appConfigOperation< { @doc(""" -A filter used to match keys. Syntax reference: -https://aka.ms/azconfig/docs/keyvaluefiltering -""") + A filter used to match keys. Syntax reference: + https://aka.ms/azconfig/docs/keyvaluefiltering + """) @query("key") key?: string; @doc(""" -A filter used to match labels. Syntax reference: -https://aka.ms/azconfig/docs/keyvaluefiltering -""") + A filter used to match labels. Syntax reference: + https://aka.ms/azconfig/docs/keyvaluefiltering + """) @query("label") label?: string; ...syncTokenHeader; @doc(""" -Instructs the server to return elements that appear after the element referred -to by the specified token. -""") + Instructs the server to return elements that appear after the element referred + to by the specified token. + """) @query("After") after?: string; @doc(""" -Requests the server to respond with the state of the resource at the specified -time. -""") + Requests the server to respond with the state of the resource at the specified + time. + """) @header("Accept-Datetime") acceptDatetime?: string; @@ -244,24 +244,24 @@ time. snapshot?: string; @doc(""" -Used to perform an operation only if the targeted resource's etag matches the -value provided. -""") + Used to perform an operation only if the targeted resource's etag matches the + value provided. + """) @header("If-Match") ifMatch?: string; @doc(""" -Used to perform an operation only if the targeted resource's etag does not -match the value provided. -""") + Used to perform an operation only if the targeted resource's etag does not + match the value provided. + """) @header("If-None-Match") ifNoneMatch?: string; #suppress "@azure-tools/typespec-azure-core/prefer-csv-collection-format" "Pre-existing API contract" @doc(""" -A filter used to query by tags. Syntax reference: -https://aka.ms/azconfig/docs/keyvaluefiltering -""") + A filter used to query by tags. Syntax reference: + https://aka.ms/azconfig/docs/keyvaluefiltering + """) @query({ name: "tags", format: "multi", @@ -291,23 +291,23 @@ op getKeyValue is standardOps.ResourceRead< ...syncTokenHeader; @doc(""" -Requests the server to respond with the state of the resource at the specified -time. -""") + Requests the server to respond with the state of the resource at the specified + time. + """) @header("Accept-Datetime") acceptDatetime?: string; @doc(""" -Used to perform an operation only if the targeted resource's etag matches the -value provided. -""") + Used to perform an operation only if the targeted resource's etag matches the + value provided. + """) @header("If-Match") ifMatch?: string; @doc(""" -Used to perform an operation only if the targeted resource's etag does not -match the value provided. -""") + Used to perform an operation only if the targeted resource's etag does not + match the value provided. + """) @header("If-None-Match") ifNoneMatch?: string; }> & @@ -344,16 +344,16 @@ op putKeyValue is appConfigOperation< ...syncTokenHeader; @doc(""" -Used to perform an operation only if the targeted resource's etag matches the -value provided. -""") + Used to perform an operation only if the targeted resource's etag matches the + value provided. + """) @header("If-Match") ifMatch?: string; @doc(""" -Used to perform an operation only if the targeted resource's etag does not -match the value provided. -""") + Used to perform an operation only if the targeted resource's etag does not + match the value provided. + """) @header("If-None-Match") ifNoneMatch?: string; @@ -384,9 +384,9 @@ op deleteKeyValue is appConfigOperation< ...syncTokenHeader; @doc(""" -Used to perform an operation only if the targeted resource's etag matches the -value provided. -""") + Used to perform an operation only if the targeted resource's etag matches the + value provided. + """) @header("If-Match") ifMatch?: string; }, @@ -418,23 +418,23 @@ op checkKeyValue is appConfigOperation< ...syncTokenHeader; @doc(""" -Requests the server to respond with the state of the resource at the specified -time. -""") + Requests the server to respond with the state of the resource at the specified + time. + """) @header("Accept-Datetime") acceptDatetime?: string; @doc(""" -Used to perform an operation only if the targeted resource's etag matches the -value provided. -""") + Used to perform an operation only if the targeted resource's etag matches the + value provided. + """) @header("If-Match") ifMatch?: string; @doc(""" -Used to perform an operation only if the targeted resource's etag does not -match the value provided. -""") + Used to perform an operation only if the targeted resource's etag does not + match the value provided. + """) @header("If-None-Match") ifNoneMatch?: string; @@ -459,9 +459,9 @@ op getSnapshots is Foundations.ResourceList< name?: string; @doc(""" -Instructs the server to return elements that appear after the element referred -to by the specified token. -""") + Instructs the server to return elements that appear after the element referred + to by the specified token. + """) @query("After") after?: string; @@ -499,9 +499,9 @@ op checkSnapshots is appConfigOperation< ...syncTokenHeader; @doc(""" -Instructs the server to return elements that appear after the element referred -to by the specified token. -""") + Instructs the server to return elements that appear after the element referred + to by the specified token. + """) @query("After") after?: string; }, @@ -526,16 +526,16 @@ op getSnapshot is standardOps.ResourceRead< ...syncTokenHeader; @doc(""" -Used to perform an operation only if the targeted resource's etag matches the -value provided. -""") + Used to perform an operation only if the targeted resource's etag matches the + value provided. + """) @header("If-Match") ifMatch?: string; @doc(""" -Used to perform an operation only if the targeted resource's etag does not -match the value provided. -""") + Used to perform an operation only if the targeted resource's etag does not + match the value provided. + """) @header("If-None-Match") ifNoneMatch?: string; }> & @@ -605,16 +605,16 @@ op updateSnapshot is appConfigOperation< ...syncTokenHeader; @doc(""" -Used to perform an operation only if the targeted resource's etag matches the -value provided. -""") + Used to perform an operation only if the targeted resource's etag matches the + value provided. + """) @header("If-Match") ifMatch?: string; @doc(""" -Used to perform an operation only if the targeted resource's etag does not -match the value provided. -""") + Used to perform an operation only if the targeted resource's etag does not + match the value provided. + """) @header("If-None-Match") ifNoneMatch?: string; @@ -647,16 +647,16 @@ op checkSnapshot is appConfigOperation< ...syncTokenHeader; @doc(""" -Used to perform an operation only if the targeted resource's etag matches the -value provided. -""") + Used to perform an operation only if the targeted resource's etag matches the + value provided. + """) @header("If-Match") ifMatch?: string; @doc(""" -Used to perform an operation only if the targeted resource's etag does not -match the value provided. -""") + Used to perform an operation only if the targeted resource's etag does not + match the value provided. + """) @header("If-None-Match") ifNoneMatch?: string; }, @@ -682,16 +682,16 @@ op getLabels is appConfigOperation< ...syncTokenHeader; @doc(""" -Instructs the server to return elements that appear after the element referred -to by the specified token. -""") + Instructs the server to return elements that appear after the element referred + to by the specified token. + """) @query("After") after?: string; @doc(""" -Requests the server to respond with the state of the resource at the specified -time. -""") + Requests the server to respond with the state of the resource at the specified + time. + """) @header("Accept-Datetime") acceptDatetime?: string; @@ -722,16 +722,16 @@ op checkLabels is appConfigOperation< ...syncTokenHeader; @doc(""" -Instructs the server to return elements that appear after the element referred -to by the specified token. -""") + Instructs the server to return elements that appear after the element referred + to by the specified token. + """) @query("After") after?: string; @doc(""" -Requests the server to respond with the state of the resource at the specified -time. -""") + Requests the server to respond with the state of the resource at the specified + time. + """) @header("Accept-Datetime") acceptDatetime?: string; @@ -765,16 +765,16 @@ op putLock is appConfigOperation< ...syncTokenHeader; @doc(""" -Used to perform an operation only if the targeted resource's etag matches the -value provided. -""") + Used to perform an operation only if the targeted resource's etag matches the + value provided. + """) @header("If-Match") ifMatch?: string; @doc(""" -Used to perform an operation only if the targeted resource's etag does not -match the value provided. -""") + Used to perform an operation only if the targeted resource's etag does not + match the value provided. + """) @header("If-None-Match") ifNoneMatch?: string; }, @@ -801,16 +801,16 @@ op deleteLock is appConfigOperation< ...syncTokenHeader; @doc(""" -Used to perform an operation only if the targeted resource's etag matches the -value provided. -""") + Used to perform an operation only if the targeted resource's etag matches the + value provided. + """) @header("If-Match") ifMatch?: string; @doc(""" -Used to perform an operation only if the targeted resource's etag does not -match the value provided. -""") + Used to perform an operation only if the targeted resource's etag does not + match the value provided. + """) @header("If-None-Match") ifNoneMatch?: string; }, @@ -827,32 +827,32 @@ match the value provided. op getRevisions is appConfigOperation< { @doc(""" -A filter used to match keys. Syntax reference: -https://aka.ms/azconfig/docs/restapirevisions -""") + A filter used to match keys. Syntax reference: + https://aka.ms/azconfig/docs/restapirevisions + """) @query("key") key?: string; @doc(""" -A filter used to match labels. Syntax reference: -https://aka.ms/azconfig/docs/restapirevisions -""") + A filter used to match labels. Syntax reference: + https://aka.ms/azconfig/docs/restapirevisions + """) @query("label") label?: string; ...syncTokenHeader; @doc(""" -Instructs the server to return elements that appear after the element referred -to by the specified token. -""") + Instructs the server to return elements that appear after the element referred + to by the specified token. + """) @query("After") after?: string; @doc(""" -Requests the server to respond with the state of the resource at the specified -time. -""") + Requests the server to respond with the state of the resource at the specified + time. + """) @header("Accept-Datetime") acceptDatetime?: string; @@ -865,9 +865,9 @@ time. #suppress "@azure-tools/typespec-azure-core/prefer-csv-collection-format" "Pre-existing API contract" @doc(""" -A filter used to query by tags. Syntax reference: -https://aka.ms/azconfig/docs/restapirevisions -""") + A filter used to query by tags. Syntax reference: + https://aka.ms/azconfig/docs/restapirevisions + """) @query({ name: "tags", format: "multi", @@ -887,32 +887,32 @@ https://aka.ms/azconfig/docs/restapirevisions op checkRevisions is appConfigOperation< { @doc(""" -A filter used to match keys. Syntax reference: -https://aka.ms/azconfig/docs/restapirevisions -""") + A filter used to match keys. Syntax reference: + https://aka.ms/azconfig/docs/restapirevisions + """) @query("key") key?: string; @doc(""" -A filter used to match labels. Syntax reference: -https://aka.ms/azconfig/docs/restapirevisions -""") + A filter used to match labels. Syntax reference: + https://aka.ms/azconfig/docs/restapirevisions + """) @query("label") label?: string; ...syncTokenHeader; @doc(""" -Instructs the server to return elements that appear after the element referred -to by the specified token. -""") + Instructs the server to return elements that appear after the element referred + to by the specified token. + """) @query("After") after?: string; @doc(""" -Requests the server to respond with the state of the resource at the specified -time. -""") + Requests the server to respond with the state of the resource at the specified + time. + """) @header("Accept-Datetime") acceptDatetime?: string; @@ -925,9 +925,9 @@ time. #suppress "@azure-tools/typespec-azure-core/prefer-csv-collection-format" "Pre-existing API contract" @doc(""" -A filter used to query by tags. Syntax reference: -https://aka.ms/azconfig/docs/restapirevisions -""") + A filter used to query by tags. Syntax reference: + https://aka.ms/azconfig/docs/restapirevisions + """) @query({ name: "tags", format: "multi", diff --git a/specification/appconfiguration/AppConfiguration/tspconfig.yaml b/specification/appconfiguration/AppConfiguration/tspconfig.yaml index 7ccf487e05d0..4e07a120c182 100644 --- a/specification/appconfiguration/AppConfiguration/tspconfig.yaml +++ b/specification/appconfiguration/AppConfiguration/tspconfig.yaml @@ -9,6 +9,7 @@ emit: options: "@azure-tools/typespec-autorest": azure-resource-provider-folder: "data-plane" + emit-lro-options: "none" emitter-output-dir: "{project-root}/.." examples-directory: "{project-root}/examples" output-file: "{azure-resource-provider-folder}/Microsoft.AppConfiguration/{version-status}/{version}/appconfiguration.json" diff --git a/specification/appconfiguration/data-plane/Microsoft.AppConfiguration/stable/2023-11-01/appconfiguration.json b/specification/appconfiguration/data-plane/Microsoft.AppConfiguration/stable/2023-11-01/appconfiguration.json index 8d4cad68f08b..5dfd848776f1 100644 --- a/specification/appconfiguration/data-plane/Microsoft.AppConfiguration/stable/2023-11-01/appconfiguration.json +++ b/specification/appconfiguration/data-plane/Microsoft.AppConfiguration/stable/2023-11-01/appconfiguration.json @@ -111,17 +111,6 @@ "$ref": "#/definitions/KeyListResult" }, "headers": { - "Content-Type": { - "type": "string", - "description": "Content-Type header", - "enum": [ - "application/vnd.microsoft.appconfig.keyset+json", - "application/problem+json" - ], - "x-ms-enum": { - "modelAsString": false - } - }, "Sync-Token": { "type": "string", "description": "Used to guarantee real-time consistency between requests." @@ -373,17 +362,6 @@ "$ref": "#/definitions/KeyValueListResult" }, "headers": { - "Content-Type": { - "type": "string", - "description": "Content-Type header", - "enum": [ - "application/vnd.microsoft.appconfig.kvset+json", - "application/problem+json" - ], - "x-ms-enum": { - "modelAsString": false - } - }, "ETag": { "type": "string", "description": "A value representing the current state of the resource." @@ -741,17 +719,6 @@ "$ref": "#/definitions/KeyValue" }, "headers": { - "Content-Type": { - "type": "string", - "description": "Content-Type header", - "enum": [ - "application/vnd.microsoft.appconfig.kv+json", - "application/problem+json" - ], - "x-ms-enum": { - "modelAsString": false - } - }, "ETag": { "type": "string", "description": "A value representing the current state of the resource." @@ -865,17 +832,6 @@ "$ref": "#/definitions/KeyValue" }, "headers": { - "Content-Type": { - "type": "string", - "description": "Content-Type header", - "enum": [ - "application/vnd.microsoft.appconfig.kv+json", - "application/problem+json" - ], - "x-ms-enum": { - "modelAsString": false - } - }, "ETag": { "type": "string", "description": "A value representing the current state of the resource." @@ -956,17 +912,6 @@ "$ref": "#/definitions/KeyValue" }, "headers": { - "Content-Type": { - "type": "string", - "description": "Content-Type header", - "enum": [ - "application/vnd.microsoft.appconfig.kv+json", - "application/problem+json" - ], - "x-ms-enum": { - "modelAsString": false - } - }, "ETag": { "type": "string", "description": "A value representing the current state of the resource." @@ -1244,17 +1189,6 @@ "$ref": "#/definitions/LabelListResult" }, "headers": { - "Content-Type": { - "type": "string", - "description": "Content-Type header", - "enum": [ - "application/vnd.microsoft.appconfig.labelset+json", - "application/problem+json" - ], - "x-ms-enum": { - "modelAsString": false - } - }, "Sync-Token": { "type": "string", "description": "Used to guarantee real-time consistency between requests." @@ -1433,17 +1367,6 @@ "$ref": "#/definitions/KeyValue" }, "headers": { - "Content-Type": { - "type": "string", - "description": "Content-Type header", - "enum": [ - "application/vnd.microsoft.appconfig.kv+json", - "application/problem+json" - ], - "x-ms-enum": { - "modelAsString": false - } - }, "ETag": { "type": "string", "description": "A value representing the current state of the resource." @@ -1532,17 +1455,6 @@ "$ref": "#/definitions/KeyValue" }, "headers": { - "Content-Type": { - "type": "string", - "description": "Content-Type header", - "enum": [ - "application/vnd.microsoft.appconfig.kv+json", - "application/problem+json" - ], - "x-ms-enum": { - "modelAsString": false - } - }, "ETag": { "type": "string", "description": "A value representing the current state of the resource." @@ -1753,17 +1665,6 @@ "$ref": "#/definitions/KeyValueListResult" }, "headers": { - "Content-Type": { - "type": "string", - "description": "Content-Type header", - "enum": [ - "application/vnd.microsoft.appconfig.kvset+json", - "application/problem+json" - ], - "x-ms-enum": { - "modelAsString": false - } - }, "ETag": { "type": "string", "description": "A value representing the current state of the resource." @@ -2121,17 +2022,6 @@ "$ref": "#/definitions/SnapshotListResult" }, "headers": { - "Content-Type": { - "type": "string", - "description": "Content-Type header", - "enum": [ - "application/vnd.microsoft.appconfig.snapshotset+json", - "application/problem+json" - ], - "x-ms-enum": { - "modelAsString": false - } - }, "Sync-Token": { "type": "string", "description": "Used to guarantee real-time consistency between requests." @@ -2348,17 +2238,6 @@ "$ref": "#/definitions/Snapshot" }, "headers": { - "Content-Type": { - "type": "string", - "description": "Content-Type header", - "enum": [ - "application/vnd.microsoft.appconfig.snapshot+json", - "application/problem+json" - ], - "x-ms-enum": { - "modelAsString": false - } - }, "ETag": { "type": "string", "description": "A value representing the current state of the resource." @@ -2450,17 +2329,6 @@ "$ref": "#/definitions/Snapshot" }, "headers": { - "Content-Type": { - "type": "string", - "description": "Content-Type header", - "enum": [ - "application/vnd.microsoft.appconfig.snapshot+json", - "application/problem+json" - ], - "x-ms-enum": { - "modelAsString": false - } - }, "ETag": { "type": "string", "description": "A value representing the current state of the resource." @@ -2562,17 +2430,6 @@ "$ref": "#/definitions/Snapshot" }, "headers": { - "Content-Type": { - "type": "string", - "description": "Content-Type header", - "enum": [ - "application/vnd.microsoft.appconfig.snapshot+json", - "application/problem+json" - ], - "x-ms-enum": { - "modelAsString": false - } - }, "ETag": { "type": "string", "description": "A value representing the current state of the resource." diff --git a/specification/applicationinsights/ApplicationInsights.LiveMetrics/tspconfig.yaml b/specification/applicationinsights/ApplicationInsights.LiveMetrics/tspconfig.yaml index cbcaaa83003d..baeb8a1afba4 100644 --- a/specification/applicationinsights/ApplicationInsights.LiveMetrics/tspconfig.yaml +++ b/specification/applicationinsights/ApplicationInsights.LiveMetrics/tspconfig.yaml @@ -9,6 +9,7 @@ emit: options: "@azure-tools/typespec-autorest": azure-resource-provider-folder: "data-plane" + emit-lro-options: "none" emitter-output-dir: "{project-root}/.." examples-directory: "{project-root}/examples" # omit the enum type Versions from being added to versioned swagger diff --git a/specification/azurefleet/AzureFleet.Management/fleet.tsp b/specification/azurefleet/AzureFleet.Management/fleet.tsp index 119a9f9a93e2..d3760b3cde01 100644 --- a/specification/azurefleet/AzureFleet.Management/fleet.tsp +++ b/specification/azurefleet/AzureFleet.Management/fleet.tsp @@ -46,7 +46,7 @@ model FleetUpdate { } model ManagedServiceIdentityUpdate - is OptionalProperties>; + is OptionalProperties>; model ResourcePlanUpdate is OptionalProperties>; @@ -93,24 +93,24 @@ model FleetProperties { @doc("Compute Profile to use for running user's workloads.") model ComputeProfile { @doc(""" - Base Virtual Machine Profile Properties to be specified according to "specification/compute/resource-manager/Microsoft.Compute/ComputeRP/stable/{computeApiVersion}/virtualMachineScaleSet.json#/definitions/VirtualMachineScaleSetVMProfile" - """) + Base Virtual Machine Profile Properties to be specified according to "specification/compute/resource-manager/Microsoft.Compute/ComputeRP/stable/{computeApiVersion}/virtualMachineScaleSet.json#/definitions/VirtualMachineScaleSetVMProfile" + """) baseVirtualMachineProfile: BaseVirtualMachineProfile; @doc(""" - Specifies the Microsoft.Compute API version to use when creating underlying Virtual Machine scale sets and Virtual Machines. - The default value will be the latest supported computeApiVersion by Compute Fleet. - """) + Specifies the Microsoft.Compute API version to use when creating underlying Virtual Machine scale sets and Virtual Machines. + The default value will be the latest supported computeApiVersion by Compute Fleet. + """) computeApiVersion?: string; @added(Versions.v2024_05_01_preview) @doc(""" - Specifies the number of fault domains to use when creating the underlying VMSS. - A fault domain is a logical group of hardware within an Azure datacenter. - VMs in the same fault domain share a common power source and network switch. - If not specified, defaults to 1, which represents "Max Spreading" (using as many fault domains as possible). - This property cannot be updated. - """) + Specifies the number of fault domains to use when creating the underlying VMSS. + A fault domain is a logical group of hardware within an Azure datacenter. + VMs in the same fault domain share a common power source and network switch. + If not specified, defaults to 1, which represents "Max Spreading" (using as many fault domains as possible). + This property cannot be updated. + """) platformFaultDomainCount?: int32; } @@ -125,9 +125,9 @@ model VmSizeProfile { @added(Versions.v2024_05_01_preview) @doc(""" - The rank of the VM size. This is used with 'RegularPriorityAllocationStrategy.Prioritized' - The lower the number, the higher the priority. Starting with 0. - """) + The rank of the VM size. This is used with 'RegularPriorityAllocationStrategy.Prioritized' + The lower the number, the higher the priority. Starting with 0. + """) @minValue(0) @maxValue(65535) rank?: int32; @@ -158,11 +158,11 @@ model SpotPriorityProfile is BasePriorityProfile { @added(Versions.v2024_05_01_preview) @doc(""" - Flag to enable/disable continuous goal seeking for the desired capacity and restoration of evicted Spot VMs. - If maintain is enabled, AzureFleetRP will use all VM sizes in vmSizesProfile to create new VMs (if VMs are evicted deleted) - or update existing VMs with new VM sizes (if VMs are evicted deallocated or failed to allocate due to capacity constraint) in order to achieve the desired capacity. - Maintain is enabled by default. - """) + Flag to enable/disable continuous goal seeking for the desired capacity and restoration of evicted Spot VMs. + If maintain is enabled, AzureFleetRP will use all VM sizes in vmSizesProfile to create new VMs (if VMs are evicted deleted) + or update existing VMs with new VM sizes (if VMs are evicted deallocated or failed to allocate due to capacity constraint) in order to achieve the desired capacity. + Maintain is enabled by default. + """) maintain?: boolean; } @@ -212,7 +212,12 @@ union EvictionPolicy { @armResourceOperations interface Fleets { get is ArmResourceRead; - createOrUpdate is ArmResourceCreateOrUpdateAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrUpdateAsync< + Fleet, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; update is ArmCustomPatchAsync; delete is ArmResourceDeleteWithoutOkAsync; listByResourceGroup is ArmResourceListByParent; diff --git a/specification/azurefleet/AzureFleet.Management/main.tsp b/specification/azurefleet/AzureFleet.Management/main.tsp index 126e15a3e1b2..17ef95fcf8e7 100644 --- a/specification/azurefleet/AzureFleet.Management/main.tsp +++ b/specification/azurefleet/AzureFleet.Management/main.tsp @@ -16,17 +16,18 @@ using Azure.ResourceManager; @service({ title: "Microsoft.AzureFleet", }) -@armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) @versioned(Versions) namespace Microsoft.AzureFleet; /** Api versions */ enum Versions { @useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) @doc("Private Preview Api version") v2023_11_01_preview: "2023-11-01-preview", @useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) @doc("Public Preview Api version") v2024_05_01_preview: "2024-05-01-preview", } diff --git a/specification/azurefleet/AzureFleet.Management/virtualMachineScaleSet.tsp b/specification/azurefleet/AzureFleet.Management/virtualMachineScaleSet.tsp index 1864d1a78f91..63d3fd5f8011 100644 --- a/specification/azurefleet/AzureFleet.Management/virtualMachineScaleSet.tsp +++ b/specification/azurefleet/AzureFleet.Management/virtualMachineScaleSet.tsp @@ -22,9 +22,9 @@ model VirtualMachineScaleSet { name: string; @doc(""" - The compute RP resource id of the virtualMachineScaleSet - "subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmssName}" - """) + The compute RP resource id of the virtualMachineScaleSet + "subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmssName}" + """) @visibility("read") id: string; diff --git a/specification/azurefleet/resource-manager/Microsoft.AzureFleet/preview/2023-11-01-preview/azurefleet.json b/specification/azurefleet/resource-manager/Microsoft.AzureFleet/preview/2023-11-01-preview/azurefleet.json index 0bbd2f4db9d6..7ea6f4dabd42 100644 --- a/specification/azurefleet/resource-manager/Microsoft.AzureFleet/preview/2023-11-01-preview/azurefleet.json +++ b/specification/azurefleet/resource-manager/Microsoft.AzureFleet/preview/2023-11-01-preview/azurefleet.json @@ -486,9 +486,9 @@ } }, "definitions": { - "Azure.ResourceManager.Foundations.ManagedServiceIdentityType": { + "Azure.ResourceManager.Legacy.ManagedServiceIdentityType": { "type": "string", - "description": "The kind of managed identity assigned to this resource.", + "description": "Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed).", "enum": [ "None", "SystemAssigned", @@ -602,11 +602,7 @@ "properties": { "$ref": "#/definitions/FleetProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "zones": { "type": "array", @@ -742,7 +738,7 @@ "description": "The template for adding optional properties.", "properties": { "type": { - "$ref": "#/definitions/Azure.ResourceManager.Foundations.ManagedServiceIdentityType", + "$ref": "#/definitions/Azure.ResourceManager.Legacy.ManagedServiceIdentityType", "description": "The type of managed identity assigned to this resource." }, "userAssignedIdentities": { @@ -863,7 +859,7 @@ }, "product": { "type": "string", - "description": "The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at the time of Data Market onboarding. " + "description": "The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at the time of Data Market onboarding." }, "promotionCode": { "type": "string", diff --git a/specification/azurefleet/resource-manager/Microsoft.AzureFleet/preview/2024-05-01-preview/azurefleet.json b/specification/azurefleet/resource-manager/Microsoft.AzureFleet/preview/2024-05-01-preview/azurefleet.json index 7a6c8aabf7ca..d23085838d30 100644 --- a/specification/azurefleet/resource-manager/Microsoft.AzureFleet/preview/2024-05-01-preview/azurefleet.json +++ b/specification/azurefleet/resource-manager/Microsoft.AzureFleet/preview/2024-05-01-preview/azurefleet.json @@ -465,9 +465,9 @@ } }, "definitions": { - "Azure.ResourceManager.Foundations.ManagedServiceIdentityType": { + "Azure.ResourceManager.Legacy.ManagedServiceIdentityType": { "type": "string", - "description": "The kind of managed identity assigned to this resource.", + "description": "Type of managed service identity (where both SystemAssigned and UserAssigned types are allowed).", "enum": [ "None", "SystemAssigned", @@ -591,11 +591,7 @@ "properties": { "$ref": "#/definitions/FleetProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "zones": { "type": "array", @@ -731,7 +727,7 @@ "description": "The template for adding optional properties.", "properties": { "type": { - "$ref": "#/definitions/Azure.ResourceManager.Foundations.ManagedServiceIdentityType", + "$ref": "#/definitions/Azure.ResourceManager.Legacy.ManagedServiceIdentityType", "description": "The type of managed identity assigned to this resource." }, "userAssignedIdentities": { @@ -858,7 +854,7 @@ }, "product": { "type": "string", - "description": "The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at the time of Data Market onboarding. " + "description": "The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the artifact at the time of Data Market onboarding." }, "promotionCode": { "type": "string", diff --git a/specification/azurelargeinstance/AzureLargeInstance.Management/AzureLargeInstance.tsp b/specification/azurelargeinstance/AzureLargeInstance.Management/AzureLargeInstance.tsp index 82104985f79a..3ae57ffbad46 100644 --- a/specification/azurelargeinstance/AzureLargeInstance.Management/AzureLargeInstance.tsp +++ b/specification/azurelargeinstance/AzureLargeInstance.Management/AzureLargeInstance.tsp @@ -11,9 +11,9 @@ using Azure.ClientGenerator.Core; namespace Microsoft.AzureLargeInstance; @doc(""" -Azure Large Instance info on Azure (ARM properties and AzureLargeInstance -properties) -""") + Azure Large Instance info on Azure (ARM properties and AzureLargeInstance + properties) + """) model AzureLargeInstance is TrackedResource { @doc("Name of the AzureLargeInstance.") @pattern(".*") @@ -28,27 +28,27 @@ model AzureLargeInstance is TrackedResource { @clientName("AzureLargeInstance") interface AzureLargeInstances { @doc(""" -Gets an Azure Large Instance for the specified subscription, resource group, -and instance name. -""") + Gets an Azure Large Instance for the specified subscription, resource group, + and instance name. + """) get is ArmResourceRead; @doc(""" -Patches the Tags field of an Azure Large Instance for the specified -subscription, resource group, and instance name. -""") + Patches the Tags field of an Azure Large Instance for the specified + subscription, resource group, and instance name. + """) update is ArmCustomPatchSync; @doc(""" -Gets a list of Azure Large Instances in the specified subscription and resource -group. The operations returns various properties of each Azure Large Instance. -""") + Gets a list of Azure Large Instances in the specified subscription and resource + group. The operations returns various properties of each Azure Large Instance. + """) listByResourceGroup is ArmResourceListByParent; @doc(""" -Gets a list of Azure Large Instances in the specified subscription. The -operations returns various properties of each Azure Large Instance. -""") + Gets a list of Azure Large Instances in the specified subscription. The + operations returns various properties of each Azure Large Instance. + """) listBySubscription is ArmListBySubscription; @doc("The operation to start an Azure Large Instance (only for compute instances)") diff --git a/specification/azurelargeinstance/AzureLargeInstance.Management/AzureLargeStorageInstance.tsp b/specification/azurelargeinstance/AzureLargeInstance.Management/AzureLargeStorageInstance.tsp index 118b3c4785a2..ec44a0a2fecf 100644 --- a/specification/azurelargeinstance/AzureLargeInstance.Management/AzureLargeStorageInstance.tsp +++ b/specification/azurelargeinstance/AzureLargeInstance.Management/AzureLargeStorageInstance.tsp @@ -11,9 +11,9 @@ using Azure.ClientGenerator.Core; namespace Microsoft.AzureLargeInstance; @doc(""" -AzureLargeStorageInstance info on Azure (ARM properties and -AzureLargeStorageInstance properties) -""") + AzureLargeStorageInstance info on Azure (ARM properties and + AzureLargeStorageInstance properties) + """) model AzureLargeStorageInstance is TrackedResource { @doc("Name of the AzureLargeStorageInstance.") @@ -29,25 +29,25 @@ model AzureLargeStorageInstance @clientName("AzureLargeStorageInstance") interface AzureLargeStorageInstances { @doc(""" -Gets an Azure Large Storage instance for the specified subscription, resource -group, and instance name. -""") + Gets an Azure Large Storage instance for the specified subscription, resource + group, and instance name. + """) get is ArmResourceRead; @doc(""" -Patches the Tags field of a Azure Large Storage Instance for the specified -subscription, resource group, and instance name. -""") + Patches the Tags field of a Azure Large Storage Instance for the specified + subscription, resource group, and instance name. + """) update is ArmCustomPatchSync; @doc(""" -Gets a list of AzureLargeStorageInstances in the specified subscription and -resource group. The operations returns various properties of each Azure -LargeStorage instance. -""") + Gets a list of AzureLargeStorageInstances in the specified subscription and + resource group. The operations returns various properties of each Azure + LargeStorage instance. + """) listByResourceGroup is ArmResourceListByParent; @doc(""" -Gets a list of AzureLargeStorageInstances in the specified subscription. The -operations returns various properties of each Azure LargeStorage instance. -""") + Gets a list of AzureLargeStorageInstances in the specified subscription. The + operations returns various properties of each Azure LargeStorage instance. + """) listBySubscription is ArmListBySubscription; } diff --git a/specification/azurelargeinstance/AzureLargeInstance.Management/models.tsp b/specification/azurelargeinstance/AzureLargeInstance.Management/models.tsp index 147410a10b3b..779f196340ad 100644 --- a/specification/azurelargeinstance/AzureLargeInstance.Management/models.tsp +++ b/specification/azurelargeinstance/AzureLargeInstance.Management/models.tsp @@ -309,9 +309,9 @@ model AzureLargeInstanceProperties { hwRevision?: string; @doc(""" -ARM ID of another AzureLargeInstance that will share a network with this -AzureLargeInstance -""") + ARM ID of another AzureLargeInstance that will share a network with this + AzureLargeInstance + """) @removed(Versions.v2024_04_10) partnerNodeId?: string; @@ -338,9 +338,9 @@ model StorageProfile { nfsIpAddress?: string; @doc(""" -Specifies information about the operating system disk used by Azure Large -Instance. -""") + Specifies information about the operating system disk used by Azure Large + Instance. + """) @extension("x-ms-identifiers", []) osDisks?: Disk[]; } @@ -355,10 +355,10 @@ model Disk { diskSizeGB?: int32; @doc(""" -Specifies the logical unit number of the data disk. This value is used to -identify data disks within the VM and therefore must be unique for each data -disk attached to a VM. -""") + Specifies the logical unit number of the data disk. This value is used to + identify data disks within the VM and therefore must be unique for each data + disk attached to a VM. + """) @visibility("read") lun?: int32; } @@ -400,9 +400,9 @@ model IpAddress { } @doc(""" -The active state empowers the server with the ability to forcefully terminate -and halt any existing processes that may be running on the server -""") + The active state empowers the server with the ability to forcefully terminate + and halt any existing processes that may be running on the server + """) model ForceState { #suppress "@azure-tools/typespec-azure-core/property-name-conflict" "https://github.com/Azure/typespec-azure/issues/417" @doc("Whether to force restart by shutting all processes.") diff --git a/specification/azurelargeinstance/resource-manager/Microsoft.AzureLargeInstance/preview/2023-07-20-preview/azurelargeinstance.json b/specification/azurelargeinstance/resource-manager/Microsoft.AzureLargeInstance/preview/2023-07-20-preview/azurelargeinstance.json index 185bd5eca35e..93519783821a 100644 --- a/specification/azurelargeinstance/resource-manager/Microsoft.AzureLargeInstance/preview/2023-07-20-preview/azurelargeinstance.json +++ b/specification/azurelargeinstance/resource-manager/Microsoft.AzureLargeInstance/preview/2023-07-20-preview/azurelargeinstance.json @@ -671,11 +671,7 @@ "properties": { "$ref": "#/definitions/AzureLargeInstanceProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -1221,11 +1217,7 @@ "properties": { "$ref": "#/definitions/AzureLargeStorageInstanceProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ diff --git a/specification/azurelargeinstance/resource-manager/Microsoft.AzureLargeInstance/stable/2024-04-10/azurelargeinstance.json b/specification/azurelargeinstance/resource-manager/Microsoft.AzureLargeInstance/stable/2024-04-10/azurelargeinstance.json index d5bbfe3bcc94..c20d5c66b605 100644 --- a/specification/azurelargeinstance/resource-manager/Microsoft.AzureLargeInstance/stable/2024-04-10/azurelargeinstance.json +++ b/specification/azurelargeinstance/resource-manager/Microsoft.AzureLargeInstance/stable/2024-04-10/azurelargeinstance.json @@ -671,11 +671,7 @@ "properties": { "$ref": "#/definitions/AzureLargeInstanceProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -1217,11 +1213,7 @@ "properties": { "$ref": "#/definitions/AzureLargeStorageInstanceProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ diff --git a/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/GalleryImages.tsp b/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/GalleryImages.tsp index e46cd9ce02da..4948e6367a32 100644 --- a/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/GalleryImages.tsp +++ b/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/GalleryImages.tsp @@ -33,8 +33,13 @@ interface GalleryImages { @doc("Gets a gallery image") get is ArmResourceRead; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" @doc("The operation to create or update a gallery image. Please note some properties can be set only during gallery image creation.") - createOrUpdate is ArmResourceCreateOrReplaceAsync; + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrReplaceAsync< + GalleryImage, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; @doc("The operation to update a gallery image.") @parameterVisibility diff --git a/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/GuestAgent.tsp b/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/GuestAgent.tsp index e8cb4b5f819f..e7c453668417 100644 --- a/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/GuestAgent.tsp +++ b/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/GuestAgent.tsp @@ -30,8 +30,13 @@ interface GuestAgents { @doc("Implements GuestAgent GET method.") get is ArmResourceRead; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" @doc("Create Or Update GuestAgent.") - create is ArmResourceCreateOrReplaceAsync; + @Azure.Core.useFinalStateVia("azure-async-operation") + create is ArmResourceCreateOrReplaceAsync< + GuestAgent, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; @doc("Implements GuestAgent DELETE method.") delete is ArmResourceDeleteWithoutOkAsync; diff --git a/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/LogicalNetworks.tsp b/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/LogicalNetworks.tsp index 9b01a62dd7cc..d0d28d24df54 100644 --- a/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/LogicalNetworks.tsp +++ b/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/LogicalNetworks.tsp @@ -33,8 +33,13 @@ interface LogicalNetworks { @doc("The operation to get a logical network.") get is ArmResourceRead; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" @doc("The operation to create or update a logical network. Please note some properties can be set only during logical network creation.") - createOrUpdate is ArmResourceCreateOrReplaceAsync; + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrReplaceAsync< + LogicalNetwork, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; @doc("The operation to update a logical network.") @parameterVisibility diff --git a/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/MarketplaceGalleryImages.tsp b/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/MarketplaceGalleryImages.tsp index 470b9fab0733..e763cfe68247 100644 --- a/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/MarketplaceGalleryImages.tsp +++ b/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/MarketplaceGalleryImages.tsp @@ -34,8 +34,13 @@ interface MarketplaceGalleryImages { @doc("Gets a marketplace gallery image") get is ArmResourceRead; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" @doc("The operation to create or update a marketplace gallery image. Please note some properties can be set only during marketplace gallery image creation.") - createOrUpdate is ArmResourceCreateOrReplaceAsync; + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrReplaceAsync< + MarketplaceGalleryImage, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; @doc("The operation to update a marketplace gallery image.") @parameterVisibility diff --git a/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/NetworkInterfaces.tsp b/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/NetworkInterfaces.tsp index b181201c789c..30c6d7f11fe7 100644 --- a/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/NetworkInterfaces.tsp +++ b/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/NetworkInterfaces.tsp @@ -33,8 +33,13 @@ interface NetworkInterfaces { @doc("Gets a network interface") get is ArmResourceRead; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" @doc("The operation to create or update a network interface. Please note some properties can be set only during network interface creation.") - createOrUpdate is ArmResourceCreateOrReplaceAsync; + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrReplaceAsync< + NetworkInterface, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; @doc("The operation to update a network interface.") @parameterVisibility diff --git a/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/NetworkSecurityGroups.tsp b/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/NetworkSecurityGroups.tsp index 8de6fc091382..4f712714116e 100644 --- a/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/NetworkSecurityGroups.tsp +++ b/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/NetworkSecurityGroups.tsp @@ -31,8 +31,13 @@ interface NetworkSecurityGroups { @doc("Gets the specified network security group.") get is ArmResourceRead; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" @doc("Creates or updates a network security group in the specified resource group.") - createOrUpdate is ArmResourceCreateOrReplaceAsync; + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrReplaceAsync< + NetworkSecurityGroup, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; @doc("Updates a network security group tags.") updateTags is ArmTagsPatchAsync; diff --git a/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/SecurityRules.tsp b/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/SecurityRules.tsp index 4563d65e5c59..a2e58268e493 100644 --- a/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/SecurityRules.tsp +++ b/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/SecurityRules.tsp @@ -30,8 +30,13 @@ interface SecurityRules { @doc("Gets the specified security rule.") get is ArmResourceRead; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" @doc("Creates or updates a security rule in the specified resource group.") - createOrUpdate is ArmResourceCreateOrReplaceAsync; + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrReplaceAsync< + SecurityRule, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; @doc("Deletes the specified security rule.") delete is ArmResourceDeleteWithoutOkAsync; diff --git a/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/StorageContainers.tsp b/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/StorageContainers.tsp index f81302304026..22546b6b08e5 100644 --- a/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/StorageContainers.tsp +++ b/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/StorageContainers.tsp @@ -32,8 +32,13 @@ interface StorageContainers { @doc("Gets a storage container") get is ArmResourceRead; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" @doc("The operation to create or update a storage container. Please note some properties can be set only during storage container creation.") - createOrUpdate is ArmResourceCreateOrReplaceAsync; + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrReplaceAsync< + StorageContainer, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; @doc("The operation to update a storage container.") update is ArmTagsPatchAsync; diff --git a/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/VirtualHardDisks.tsp b/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/VirtualHardDisks.tsp index 4123b2ea6ca7..c40e222784d1 100644 --- a/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/VirtualHardDisks.tsp +++ b/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/VirtualHardDisks.tsp @@ -33,8 +33,13 @@ interface VirtualHardDisks { @doc("Gets a virtual hard disk") get is ArmResourceRead; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" @doc("The operation to create or update a virtual hard disk. Please note some properties can be set only during virtual hard disk creation.") - createOrUpdate is ArmResourceCreateOrReplaceAsync; + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrReplaceAsync< + VirtualHardDisk, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; @doc("The operation to update a virtual hard disk.") update is ArmTagsPatchAsync; diff --git a/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/VirtualMachineInstance.tsp b/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/VirtualMachineInstance.tsp index 177c79c2491f..c502b2eacac6 100644 --- a/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/VirtualMachineInstance.tsp +++ b/specification/azurestackhci/AzureStackHCI.StackHCIVM.Management/VirtualMachineInstance.tsp @@ -36,8 +36,13 @@ interface VirtualMachineInstances { @doc("Gets a virtual machine instance") get is ArmResourceRead; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" @doc("The operation to create or update a virtual machine instance. Please note some properties can be set only during virtual machine instance creation.") - createOrUpdate is ArmResourceCreateOrReplaceAsync; + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrReplaceAsync< + VirtualMachineInstance, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; @doc("The operation to update a virtual machine instance.") @parameterVisibility diff --git a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCIVM/preview/2024-02-01-preview/stackhcivm.json b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCIVM/preview/2024-02-01-preview/stackhcivm.json index db8910818cc0..b86d0039c729 100644 --- a/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCIVM/preview/2024-02-01-preview/stackhcivm.json +++ b/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/StackHCIVM/preview/2024-02-01-preview/stackhcivm.json @@ -3609,11 +3609,7 @@ "properties": { "$ref": "#/definitions/AttestationStatusProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -3881,11 +3877,7 @@ "properties": { "$ref": "#/definitions/GalleryImageProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "extendedLocation": { "$ref": "#/definitions/ExtendedLocation", @@ -4137,11 +4129,7 @@ "properties": { "$ref": "#/definitions/GuestAgentProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -4307,11 +4295,7 @@ "properties": { "$ref": "#/definitions/HybridIdentityMetadataProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -4622,11 +4606,7 @@ "properties": { "$ref": "#/definitions/LogicalNetworkProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "extendedLocation": { "$ref": "#/definitions/ExtendedLocation", @@ -4778,11 +4758,7 @@ "properties": { "$ref": "#/definitions/MarketplaceGalleryImageProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "extendedLocation": { "$ref": "#/definitions/ExtendedLocation", @@ -4955,11 +4931,7 @@ "properties": { "$ref": "#/definitions/NetworkInterfaceProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "extendedLocation": { "$ref": "#/definitions/ExtendedLocation", @@ -5129,11 +5101,7 @@ "properties": { "$ref": "#/definitions/NetworkSecurityGroupProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "extendedLocation": { "$ref": "#/definitions/ExtendedLocation", @@ -5523,11 +5491,7 @@ "properties": { "$ref": "#/definitions/SecurityRuleProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "extendedLocation": { "$ref": "#/definitions/ExtendedLocation", @@ -5864,11 +5828,7 @@ "properties": { "$ref": "#/definitions/StorageContainerProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "extendedLocation": { "$ref": "#/definitions/ExtendedLocation", @@ -6131,11 +6091,7 @@ "properties": { "$ref": "#/definitions/VirtualHardDiskProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "extendedLocation": { "$ref": "#/definitions/ExtendedLocation", @@ -6351,11 +6307,7 @@ "properties": { "$ref": "#/definitions/VirtualMachineInstanceProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "extendedLocation": { "$ref": "#/definitions/ExtendedLocation", diff --git a/specification/batch/Azure.Batch/common.tsp b/specification/batch/Azure.Batch/common.tsp index a0d24afac769..e92f0df0a4a3 100644 --- a/specification/batch/Azure.Batch/common.tsp +++ b/specification/batch/Azure.Batch/common.tsp @@ -225,19 +225,19 @@ alias BatchMatchHeaders = { ...BatchModifiedSinceHeaders; @doc(""" - An ETag value associated with the version of the resource known to the client. - The operation will be performed only if the resource's current ETag on the - service exactly matches the value specified by the client. - """) + An ETag value associated with the version of the resource known to the client. + The operation will be performed only if the resource's current ETag on the + service exactly matches the value specified by the client. + """) @header("If-Match") @clientName("if__match", "python") ifMatch?: string; @doc(""" - An ETag value associated with the version of the resource known to the client. - The operation will be performed only if the resource's current ETag on the - service does not match the value specified by the client. - """) + An ETag value associated with the version of the resource known to the client. + The operation will be performed only if the resource's current ETag on the + service does not match the value specified by the client. + """) @header("If-None-Match") @clientName("if_none_match", "python") ifNoneMatch?: string; @@ -245,20 +245,20 @@ alias BatchMatchHeaders = { alias BatchModifiedSinceHeaders = { @doc(""" - A timestamp indicating the last modified time of the resource known to the - client. The operation will be performed only if the resource on the service has - been modified since the specified time. - """) + A timestamp indicating the last modified time of the resource known to the + client. The operation will be performed only if the resource on the service has + been modified since the specified time. + """) @header("If-Modified-Since") @encode(DateTimeKnownEncoding.rfc7231) @clientName("if_modified_since", "python") ifModifiedSince?: utcDateTime; @doc(""" - A timestamp indicating the last modified time of the resource known to the - client. The operation will be performed only if the resource on the service has - not been modified since the specified time. - """) + A timestamp indicating the last modified time of the resource known to the + client. The operation will be performed only if the resource on the service has + not been modified since the specified time. + """) @header("If-Unmodified-Since") @encode(DateTimeKnownEncoding.rfc7231) @clientName("if_unmodified_since", "python") @@ -337,9 +337,9 @@ alias BatchCommonListHeaders = { ...BatchClientRequestHeaders; @doc(""" - The maximum number of items to return in the response. A maximum of 1000 - applications can be returned. - """) + The maximum number of items to return in the response. A maximum of 1000 + applications can be returned. + """) @query @minValue(1) @maxValue(1000) @@ -377,16 +377,16 @@ alias BatchTaskFileClientPathContent = { alias BatchClientRequestHeaders = { @doc(""" - The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds. If the value is larger than 30, the default will be used instead.". - """) + The maximum time that the server can spend processing the request, in seconds. The default is 30 seconds. If the value is larger than 30, the default will be used instead.". + """) @query @clientName("timeOutInSeconds") timeOut?: int32 = 30; @doc(""" - The caller-generated request identity, in the form of a GUID with no decoration - such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. - """) + The caller-generated request identity, in the form of a GUID with no decoration + such as curly braces, e.g. 9C4D50EE-2D56-4CD3-8152-34347DC9F2B0. + """) @header("client-request-id") clientRequestId?: string; @@ -395,10 +395,10 @@ alias BatchClientRequestHeaders = { returnClientRequestId?: boolean = false; @doc(""" - The time the request was issued. Client libraries typically set this to the - current system clock time; set it explicitly if you are calling the REST API - directly. - """) + The time the request was issued. Client libraries typically set this to the + current system clock time; set it explicitly if you are calling the REST API + directly. + """) @header("ocp-date") @encode(DateTimeKnownEncoding.rfc7231) ocpdate?: utcDateTime; diff --git a/specification/batch/Azure.Batch/models.tsp b/specification/batch/Azure.Batch/models.tsp index 3d1ec61ad43a..fd927c8f2632 100644 --- a/specification/batch/Azure.Batch/models.tsp +++ b/specification/batch/Azure.Batch/models.tsp @@ -754,9 +754,9 @@ model BatchAccountListSupportedImagesResult { } @doc(""" -A reference to the Azure Virtual Machines Marketplace Image and additional -information about the Image. -""") + A reference to the Azure Virtual Machines Marketplace Image and additional + information about the Image. + """) model BatchSupportedImage { #suppress "@azure-tools/typespec-azure-core/casing-style" "The names of Property types must use camelCase" @doc("The ID of the Compute Node agent SKU which the Image supports.") @@ -780,10 +780,10 @@ model BatchSupportedImage { } @doc(""" -A reference to an Azure Virtual Machines Marketplace Image or a Azure Compute Gallery Image. -To get the list of all Azure Marketplace Image references verified by Azure Batch, see the -' List Supported Images ' operation. -""") + A reference to an Azure Virtual Machines Marketplace Image or a Azure Compute Gallery Image. + To get the list of all Azure Marketplace Image references verified by Azure Batch, see the + ' List Supported Images ' operation. + """) model ImageReference { @doc("The publisher of the Azure Virtual Machines Marketplace Image. For example, Canonical or MicrosoftWindowsServer.") publisher?: string; @@ -1012,9 +1012,9 @@ model NameValuePair { } @doc(""" -The result of listing the files on a Compute Node, or the files associated with -a Task on a Compute Node. -""") + The result of listing the files on a Compute Node, or the files associated with + a Task on a Compute Node. + """) @pagedResult model BatchNodeFileListResult { @doc("The list of files.") @@ -1061,9 +1061,9 @@ model FileProperties { } @doc(""" -A Job Schedule that allows recurring Jobs by specifying when to run Jobs and a -specification used to create each Job. -""") + A Job Schedule that allows recurring Jobs by specifying when to run Jobs and a + specification used to create each Job. + """) model BatchJobSchedule { @doc("A string that uniquely identifies the schedule within the Account.") @visibility("read") @@ -1124,8 +1124,8 @@ model BatchJobSchedule { } @doc(""" -Parameters for updating an Azure Batch Job Schedule. -""") + Parameters for updating an Azure Batch Job Schedule. + """) model BatchJobScheduleUpdateContent { @doc("The schedule according to which Jobs will be created. All times are fixed respective to UTC and are not impacted by daylight saving time. If you do not specify this element, the existing schedule is left unchanged.") schedule?: BatchJobScheduleConfiguration; @@ -1138,8 +1138,8 @@ model BatchJobScheduleUpdateContent { } @doc(""" -Parameters for creating an Azure Batch Job Schedule -""") + Parameters for creating an Azure Batch Job Schedule + """) model BatchJobScheduleCreateContent { @doc("A string that uniquely identifies the schedule within the Account. The ID can contain any combination of alphanumeric characters including hyphens and underscores, and cannot contain more than 64 characters. The ID is case-preserving and case-insensitive (that is, you may not have two IDs within an Account that differ only by case).") id: string; @@ -1158,9 +1158,9 @@ model BatchJobScheduleCreateContent { } @doc(""" -The schedule according to which Jobs will be created. All times are fixed -respective to UTC and are not impacted by daylight saving time. -""") + The schedule according to which Jobs will be created. All times are fixed + respective to UTC and are not impacted by daylight saving time. + """) model BatchJobScheduleConfiguration { @doc("The earliest time at which any Job may be created under this Job Schedule. If you do not specify a doNotRunUntil time, the schedule becomes ready to create Jobs immediately.") doNotRunUntil?: utcDateTime; @@ -1188,9 +1188,9 @@ model SecurityProfile { } @doc(""" -Specifies the service artifact reference id used to set same image version -for all virtual machines in the scale set when using 'latest' image version. -""") + Specifies the service artifact reference id used to set same image version + for all virtual machines in the scale set when using 'latest' image version. + """) model ServiceArtifactReference { @doc("The service artifact reference id of ServiceArtifactReference. The service artifact reference id in the form of /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/serviceArtifacts/{serviceArtifactName}/vmArtifactsProfiles/{vmArtifactsProfilesName}") id: string; @@ -1260,30 +1260,30 @@ model BatchJobConstraints { } @doc(""" -Specifies details of a Job Manager Task. -The Job Manager Task is automatically started when the Job is created. The -Batch service tries to schedule the Job Manager Task before any other Tasks in -the Job. When shrinking a Pool, the Batch service tries to preserve Nodes where -Job Manager Tasks are running for as long as possible (that is, Compute Nodes -running 'normal' Tasks are removed before Compute Nodes running Job Manager -Tasks). When a Job Manager Task fails and needs to be restarted, the system -tries to schedule it at the highest priority. If there are no idle Compute -Nodes available, the system may terminate one of the running Tasks in the Pool -and return it to the queue in order to make room for the Job Manager Task to -restart. Note that a Job Manager Task in one Job does not have priority over -Tasks in other Jobs. Across Jobs, only Job level priorities are observed. For -example, if a Job Manager in a priority 0 Job needs to be restarted, it will -not displace Tasks of a priority 1 Job. Batch will retry Tasks when a recovery -operation is triggered on a Node. Examples of recovery operations include (but -are not limited to) when an unhealthy Node is rebooted or a Compute Node -disappeared due to host failure. Retries due to recovery operations are -independent of and are not counted against the maxTaskRetryCount. Even if the -maxTaskRetryCount is 0, an internal retry due to a recovery operation may -occur. Because of this, all Tasks should be idempotent. This means Tasks need -to tolerate being interrupted and restarted without causing any corruption or -duplicate data. The best practice for long running Tasks is to use some form of -checkpointing. -""") + Specifies details of a Job Manager Task. + The Job Manager Task is automatically started when the Job is created. The + Batch service tries to schedule the Job Manager Task before any other Tasks in + the Job. When shrinking a Pool, the Batch service tries to preserve Nodes where + Job Manager Tasks are running for as long as possible (that is, Compute Nodes + running 'normal' Tasks are removed before Compute Nodes running Job Manager + Tasks). When a Job Manager Task fails and needs to be restarted, the system + tries to schedule it at the highest priority. If there are no idle Compute + Nodes available, the system may terminate one of the running Tasks in the Pool + and return it to the queue in order to make room for the Job Manager Task to + restart. Note that a Job Manager Task in one Job does not have priority over + Tasks in other Jobs. Across Jobs, only Job level priorities are observed. For + example, if a Job Manager in a priority 0 Job needs to be restarted, it will + not displace Tasks of a priority 1 Job. Batch will retry Tasks when a recovery + operation is triggered on a Node. Examples of recovery operations include (but + are not limited to) when an unhealthy Node is rebooted or a Compute Node + disappeared due to host failure. Retries due to recovery operations are + independent of and are not counted against the maxTaskRetryCount. Even if the + maxTaskRetryCount is 0, an internal retry due to a recovery operation may + occur. Because of this, all Tasks should be idempotent. This means Tasks need + to tolerate being interrupted and restarted without causing any corruption or + duplicate data. The best practice for long running Tasks is to use some form of + checkpointing. + """) model BatchJobManagerTask { @doc("A string that uniquely identifies the Job Manager Task within the Job. The ID can contain any combination of alphanumeric characters including hyphens and underscores and cannot contain more than 64 characters.") id: string; @@ -1322,15 +1322,15 @@ model BatchJobManagerTask { runExclusive?: boolean; @doc(""" -A list of Application Packages that the Batch service will deploy to the -Compute Node before running the command line.Application Packages are -downloaded and deployed to a shared directory, not the Task working -directory. Therefore, if a referenced Application Package is already -on the Compute Node, and is up to date, then it is not re-downloaded; -the existing copy on the Compute Node is used. If a referenced Application -Package cannot be installed, for example because the package has been deleted -or because download failed, the Task fails. -""") + A list of Application Packages that the Batch service will deploy to the + Compute Node before running the command line.Application Packages are + downloaded and deployed to a shared directory, not the Task working + directory. Therefore, if a referenced Application Package is already + on the Compute Node, and is up to date, then it is not re-downloaded; + the existing copy on the Compute Node is used. If a referenced Application + Package cannot be installed, for example because the package has been deleted + or because download failed, the Task fails. + """) applicationPackageReferences?: BatchApplicationPackageReference[]; @doc("The settings for an authentication token that the Task can use to perform Batch service operations. If this property is set, the Batch service provides the Task with an authentication token which can be used to authenticate Batch service operations without requiring an Account access key. The token is provided via the AZ_BATCH_AUTHENTICATION_TOKEN environment variable. The operations that the Task can carry out using the token depend on the settings. For example, a Task can request Job permissions in order to add other Tasks to the Job, or check the status of the Job or of other Tasks under the Job.") @@ -1372,9 +1372,9 @@ model ContainerRegistryReference { } @doc(""" -The reference to a user assigned identity associated with the Batch pool which -a compute node will use. -""") + The reference to a user assigned identity associated with the Batch pool which + a compute node will use. + """) model BatchNodeIdentityReference { @doc("The ARM resource id of the user assigned identity.") resourceId?: string; @@ -1405,8 +1405,8 @@ model ResourceFile { } @doc(""" -On every file uploads, Batch service writes two log files to the compute node, 'fileuploadout.txt' and 'fileuploaderr.txt'. These log files are used to learn more about a specific failure. -""") + On every file uploads, Batch service writes two log files to the compute node, 'fileuploadout.txt' and 'fileuploaderr.txt'. These log files are used to learn more about a specific failure. + """) model OutputFile { @doc("A pattern indicating which file(s) to upload. Both relative and absolute paths are supported. Relative paths are relative to the Task working directory. The following wildcards are supported: * matches 0 or more characters (for example pattern abc* would match abc or abcdef), ** matches any directory, ? matches any single character, [abc] matches one character in the brackets, and [a-c] matches one character in the range. Brackets can include a negation to match any character not specified (for example [!abc] matches any character but a, b, or c). If a file name starts with \".\" it is ignored by default but may be matched by specifying it explicitly (for example *.gif will not match .a.gif, but .*.gif will). A simple example: **\\*.txt matches any file that does not start in '.' and ends with .txt in the Task working directory or any subdirectory. If the filename contains a wildcard character it can be escaped using brackets (for example abc[*] would match a file named abc*). Note that both \\ and / are treated as directory separators on Windows, but only / is on Linux. Environment variables (%var% on Windows or $var on Linux) are expanded prior to the pattern being applied.") filePattern: string; @@ -1449,9 +1449,9 @@ model HttpHeader { } @doc(""" -Options for an output file upload operation, including under what conditions -to perform the upload. -""") + Options for an output file upload operation, including under what conditions + to perform the upload. + """) model OutputFileUploadConfig { @doc("The conditions under which the Task output file or set of files should be uploaded. The default is taskcompletion.") uploadCondition: OutputFileUploadCondition; @@ -1497,8 +1497,8 @@ model UefiSettings { } @doc(""" -Specifies the options for the auto user that runs an Azure Batch Task. -""") + Specifies the options for the auto user that runs an Azure Batch Task. + """) model AutoUserSpecification { @doc("The scope for the auto user. The default value is pool. If the pool is running Windows, a value of Task should be specified if stricter isolation between tasks is required, such as if the task mutates the registry in a way which could impact other tasks.") scope?: AutoUserScope; @@ -1517,42 +1517,42 @@ model BatchApplicationPackageReference { } @doc(""" -The settings for an authentication token that the Task can use to perform Batch -service operations. -""") + The settings for an authentication token that the Task can use to perform Batch + service operations. + """) model AuthenticationTokenSettings { @doc("The Batch resources to which the token grants access. The authentication token grants access to a limited set of Batch service operations. Currently the only supported value for the access property is 'job', which grants access to all operations related to the Job which contains the Task.") access?: AccessScope[]; } @doc(""" -A Job Preparation Task to run before any Tasks of the Job on any given Compute Node. -You can use Job Preparation to prepare a Node to run Tasks for the Job. -Activities commonly performed in Job Preparation include: Downloading common -resource files used by all the Tasks in the Job. The Job Preparation Task can -download these common resource files to the shared location on the Node. -(AZ_BATCH_NODE_ROOT_DIR\\shared), or starting a local service on the Node so -that all Tasks of that Job can communicate with it. If the Job Preparation Task -fails (that is, exhausts its retry count before exiting with exit code 0), -Batch will not run Tasks of this Job on the Node. The Compute Node remains -ineligible to run Tasks of this Job until it is reimaged. The Compute Node -remains active and can be used for other Jobs. The Job Preparation Task can run -multiple times on the same Node. Therefore, you should write the Job -Preparation Task to handle re-execution. If the Node is rebooted, the Job -Preparation Task is run again on the Compute Node before scheduling any other -Task of the Job, if rerunOnNodeRebootAfterSuccess is true or if the Job -Preparation Task did not previously complete. If the Node is reimaged, the Job -Preparation Task is run again before scheduling any Task of the Job. Batch will -retry Tasks when a recovery operation is triggered on a Node. Examples of -recovery operations include (but are not limited to) when an unhealthy Node is -rebooted or a Compute Node disappeared due to host failure. Retries due to -recovery operations are independent of and are not counted against the -maxTaskRetryCount. Even if the maxTaskRetryCount is 0, an internal retry due to -a recovery operation may occur. Because of this, all Tasks should be -idempotent. This means Tasks need to tolerate being interrupted and restarted -without causing any corruption or duplicate data. The best practice for long -running Tasks is to use some form of checkpointing. -""") + A Job Preparation Task to run before any Tasks of the Job on any given Compute Node. + You can use Job Preparation to prepare a Node to run Tasks for the Job. + Activities commonly performed in Job Preparation include: Downloading common + resource files used by all the Tasks in the Job. The Job Preparation Task can + download these common resource files to the shared location on the Node. + (AZ_BATCH_NODE_ROOT_DIR\\shared), or starting a local service on the Node so + that all Tasks of that Job can communicate with it. If the Job Preparation Task + fails (that is, exhausts its retry count before exiting with exit code 0), + Batch will not run Tasks of this Job on the Node. The Compute Node remains + ineligible to run Tasks of this Job until it is reimaged. The Compute Node + remains active and can be used for other Jobs. The Job Preparation Task can run + multiple times on the same Node. Therefore, you should write the Job + Preparation Task to handle re-execution. If the Node is rebooted, the Job + Preparation Task is run again on the Compute Node before scheduling any other + Task of the Job, if rerunOnNodeRebootAfterSuccess is true or if the Job + Preparation Task did not previously complete. If the Node is reimaged, the Job + Preparation Task is run again before scheduling any Task of the Job. Batch will + retry Tasks when a recovery operation is triggered on a Node. Examples of + recovery operations include (but are not limited to) when an unhealthy Node is + rebooted or a Compute Node disappeared due to host failure. Retries due to + recovery operations are independent of and are not counted against the + maxTaskRetryCount. Even if the maxTaskRetryCount is 0, an internal retry due to + a recovery operation may occur. Because of this, all Tasks should be + idempotent. This means Tasks need to tolerate being interrupted and restarted + without causing any corruption or duplicate data. The best practice for long + running Tasks is to use some form of checkpointing. + """) model BatchJobPreparationTask { @doc("A string that uniquely identifies the Job Preparation Task within the Job. The ID can contain any combination of alphanumeric characters including hyphens and underscores and cannot contain more than 64 characters. If you do not specify this property, the Batch service assigns a default value of 'jobpreparation'. No other Task in the Job can have the same ID as the Job Preparation Task. If you try to submit a Task with the same id, the Batch service rejects the request with error code TaskIdSameAsJobPreparationTask; if you are calling the REST API directly, the HTTP status code is 409 (Conflict).") id?: string; @@ -1583,23 +1583,23 @@ model BatchJobPreparationTask { } @doc(""" -A Job Release Task to run on Job completion on any Compute Node where the Job has run. -The Job Release Task runs when the Job ends, because of one of the following: -The user calls the Terminate Job API, or the Delete Job API while the Job is -still active, the Job's maximum wall clock time constraint is reached, and the -Job is still active, or the Job's Job Manager Task completed, and the Job is -configured to terminate when the Job Manager completes. The Job Release Task -runs on each Node where Tasks of the Job have run and the Job Preparation Task -ran and completed. If you reimage a Node after it has run the Job Preparation -Task, and the Job ends without any further Tasks of the Job running on that -Node (and hence the Job Preparation Task does not re-run), then the Job Release -Task does not run on that Compute Node. If a Node reboots while the Job Release -Task is still running, the Job Release Task runs again when the Compute Node -starts up. The Job is not marked as complete until all Job Release Tasks have -completed. The Job Release Task runs in the background. It does not occupy a -scheduling slot; that is, it does not count towards the taskSlotsPerNode limit -specified on the Pool. -""") + A Job Release Task to run on Job completion on any Compute Node where the Job has run. + The Job Release Task runs when the Job ends, because of one of the following: + The user calls the Terminate Job API, or the Delete Job API while the Job is + still active, the Job's maximum wall clock time constraint is reached, and the + Job is still active, or the Job's Job Manager Task completed, and the Job is + configured to terminate when the Job Manager completes. The Job Release Task + runs on each Node where Tasks of the Job have run and the Job Preparation Task + ran and completed. If you reimage a Node after it has run the Job Preparation + Task, and the Job ends without any further Tasks of the Job running on that + Node (and hence the Job Preparation Task does not re-run), then the Job Release + Task does not run on that Compute Node. If a Node reboots while the Job Release + Task is still running, the Job Release Task runs again when the Compute Node + starts up. The Job is not marked as complete until all Job Release Tasks have + completed. The Job Release Task runs in the background. It does not occupy a + scheduling slot; that is, it does not count towards the taskSlotsPerNode limit + specified on the Pool. + """) model BatchJobReleaseTask { @doc("A string that uniquely identifies the Job Release Task within the Job. The ID can contain any combination of alphanumeric characters including hyphens and underscores and cannot contain more than 64 characters. If you do not specify this property, the Batch service assigns a default value of 'jobrelease'. No other Task in the Job can have the same ID as the Job Release Task. If you try to submit a Task with the same id, the Batch service rejects the request with error code TaskIdSameAsJobReleaseTask; if you are calling the REST API directly, the HTTP status code is 409 (Conflict).") id?: string; @@ -1636,9 +1636,9 @@ model BatchPoolInfo { } @doc(""" -Specifies characteristics for a temporary 'auto pool'. The Batch service will -create this auto Pool when the Job is submitted. -""") + Specifies characteristics for a temporary 'auto pool'. The Batch service will + create this auto Pool when the Job is submitted. + """) model BatchAutoPoolSpecification { @doc("A prefix to be added to the unique identifier when a Pool is automatically created. The Batch service assigns each auto Pool a unique identifier on creation. To distinguish between Pools created for different purposes, you can specify this element to add a prefix to the ID that is assigned. The prefix can be up to 20 characters long.") autoPoolIdPrefix?: string; @@ -1721,9 +1721,9 @@ model BatchPoolSpecification { #suppress "@azure-tools/typespec-azure-core/casing-style" "The names of Property types must use camelCase" @doc(""" -The configuration for Compute Nodes in a Pool based on the Azure Virtual -Machines infrastructure. -""") + The configuration for Compute Nodes in a Pool based on the Azure Virtual + Machines infrastructure. + """) model VirtualMachineConfiguration { @doc("A reference to the Azure Virtual Machines Marketplace Image or the custom Virtual Machine Image to use.") imageReference: ImageReference; @@ -1739,16 +1739,16 @@ model VirtualMachineConfiguration { dataDisks?: DataDisk[]; @doc(""" -This only applies to Images that contain the Windows operating system, and -should only be used when you hold valid on-premises licenses for the Compute -Nodes which will be deployed. If omitted, no on-premises licensing discount is -applied. Values are: - - Windows_Server - The on-premises license is for Windows -Server. - Windows_Client - The on-premises license is for Windows Client. - -""") + This only applies to Images that contain the Windows operating system, and + should only be used when you hold valid on-premises licenses for the Compute + Nodes which will be deployed. If omitted, no on-premises licensing discount is + applied. Values are: + + Windows_Server - The on-premises license is for Windows + Server. + Windows_Client - The on-premises license is for Windows Client. + + """) licenseType?: string; @doc("The container configuration for the Pool. If specified, setup is performed on each Compute Node in the Pool to allow Tasks to run in containers. All regular Tasks and Job manager Tasks run on this Pool must specify the containerSettings property, and all other Tasks may specify it.") @@ -1781,10 +1781,10 @@ model WindowsConfiguration { #suppress "@azure-tools/typespec-azure-core/casing-style" "The names of Property types must use camelCase" @doc(""" -Settings which will be used by the data disks associated to Compute Nodes in -the Pool. When using attached data disks, you need to mount and format the -disks from within a VM to use them. -""") + Settings which will be used by the data disks associated to Compute Nodes in + the Pool. When using attached data disks, you need to mount and format the + disks from within a VM to use them. + """) model DataDisk { @doc("The logical unit number. The logicalUnitNumber is used to uniquely identify each data disk. If attaching multiple disks, each should have a distinct logicalUnitNumber. The value must be between 0 and 63, inclusive.") @clientName("logicalUnitNumber") @@ -1814,20 +1814,20 @@ model ContainerConfiguration { } @doc(""" -The disk encryption configuration applied on compute nodes in the pool. -Disk encryption configuration is not supported on Linux pool created with -Azure Compute Gallery Image. -""") + The disk encryption configuration applied on compute nodes in the pool. + Disk encryption configuration is not supported on Linux pool created with + Azure Compute Gallery Image. + """) model DiskEncryptionConfiguration { @doc("The list of disk targets Batch Service will encrypt on the compute node. If omitted, no disks on the compute nodes in the pool will be encrypted. On Linux pool, only \"TemporaryDisk\" is supported; on Windows pool, \"OsDisk\" and \"TemporaryDisk\" must be specified.") targets?: DiskEncryptionTarget[]; } @doc(""" -For regional placement, nodes in the pool will be allocated in the same region. -For zonal placement, nodes in the pool will be spread across different zones -with best effort balancing. -""") + For regional placement, nodes in the pool will be allocated in the same region. + For zonal placement, nodes in the pool will be spread across different zones + with best effort balancing. + """) model BatchNodePlacementConfiguration { @doc("Node placement Policy type on Batch Pools. Allocation policy used by Batch Service to provision the nodes. If not specified, Batch will use the regional policy.") policy?: BatchNodePlacementPolicyType; @@ -1884,9 +1884,9 @@ model OSDisk { } @doc(""" -Specifies the ephemeral Disk Settings for the operating system disk used by the -compute node (VM). -""") + Specifies the ephemeral Disk Settings for the operating system disk used by the + compute node (VM). + """) model DiffDiskSettings { @doc("Specifies the ephemeral disk placement for operating system disk for all VMs in the pool. This property can be used by user in the request to choose the location e.g., cache disk space for Ephemeral OS disk provisioning. For more information on Ephemeral OS disk size requirements, please refer to Ephemeral OS disk size requirements for Windows VMs at https://docs.microsoft.com/en-us/azure/virtual-machines/windows/ephemeral-os-disks#size-requirements and Linux VMs at https://docs.microsoft.com/en-us/azure/virtual-machines/linux/ephemeral-os-disks#size-requirements.") placement?: DiffDiskPlacement; @@ -1928,9 +1928,9 @@ model BatchPoolEndpointConfiguration { #suppress "@azure-tools/typespec-azure-core/casing-style" "The names of Property types must use camelCase" @doc(""" -A inbound NAT Pool that can be used to address specific ports on Compute Nodes -in a Batch Pool externally. -""") + A inbound NAT Pool that can be used to address specific ports on Compute Nodes + in a Batch Pool externally. + """) model InboundNatPool { @doc("The name of the endpoint. The name must be unique within a Batch Pool, can contain letters, numbers, underscores, periods, and hyphens. Names must start with a letter or number, must end with a letter, number, or underscore, and cannot exceed 77 characters. If any invalid values are provided the request fails with HTTP status code 400.") name: string; @@ -1978,20 +1978,20 @@ model PublicIpAddressConfiguration { } @doc(""" -Batch will retry Tasks when a recovery operation is triggered on a Node. -Examples of recovery operations include (but are not limited to) when an -unhealthy Node is rebooted or a Compute Node disappeared due to host failure. -Retries due to recovery operations are independent of and are not counted -against the maxTaskRetryCount. Even if the maxTaskRetryCount is 0, an internal -retry due to a recovery operation may occur. Because of this, all Tasks should -be idempotent. This means Tasks need to tolerate being interrupted and -restarted without causing any corruption or duplicate data. The best practice -for long running Tasks is to use some form of checkpointing. In some cases the -StartTask may be re-run even though the Compute Node was not rebooted. Special -care should be taken to avoid StartTasks which create breakaway process or -install/launch services from the StartTask working directory, as this will -block Batch from being able to re-run the StartTask. -""") + Batch will retry Tasks when a recovery operation is triggered on a Node. + Examples of recovery operations include (but are not limited to) when an + unhealthy Node is rebooted or a Compute Node disappeared due to host failure. + Retries due to recovery operations are independent of and are not counted + against the maxTaskRetryCount. Even if the maxTaskRetryCount is 0, an internal + retry due to a recovery operation may occur. Because of this, all Tasks should + be idempotent. This means Tasks need to tolerate being interrupted and + restarted without causing any corruption or duplicate data. The best practice + for long running Tasks is to use some form of checkpointing. In some cases the + StartTask may be re-run even though the Compute Node was not rebooted. Special + care should be taken to avoid StartTasks which create breakaway process or + install/launch services from the StartTask working directory, as this will + block Batch from being able to re-run the StartTask. + """) model BatchStartTask { @doc("The command line of the StartTask. The command line does not run under a shell, and therefore cannot take advantage of shell features such as environment variable expansion. If you want to take advantage of such features, you should invoke the shell in the command line, for example using \"cmd /c MyCommand\" in Windows or \"/bin/sh -c MyCommand\" in Linux. If the command line refers to file paths, it should use a relative path (relative to the Task working directory), or use the Batch provided environment variable (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables).") commandLine: string; @@ -2016,9 +2016,9 @@ model BatchStartTask { } @doc(""" -Properties used to create a user used to execute Tasks on an Azure Batch -Compute Node. -""") + Properties used to create a user used to execute Tasks on an Azure Batch + Compute Node. + """) model UserAccount { @doc("The name of the user Account. Names can contain any Unicode characters up to a maximum length of 20.") name: string; @@ -2063,9 +2063,9 @@ model ManagedDisk { } @doc(""" -The Batch service does not assign any meaning to this metadata; it is solely -for the use of user code. -""") + The Batch service does not assign any meaning to this metadata; it is solely + for the use of user code. + """) model MetadataItem { @doc("The name of the metadata item.") name: string; @@ -2167,9 +2167,9 @@ model AzureFileShareConfiguration { } @doc(""" -Contains information about Jobs that have been and will be run under a Job -Schedule. -""") + Contains information about Jobs that have been and will be run under a Job + Schedule. + """) model BatchJobScheduleExecutionInfo { @doc("The next time at which a Job will be created under this schedule. This property is meaningful only if the schedule is in the active state when the time comes around. For example, if the schedule is disabled, no Job will be created at nextRunTime unless the Job is enabled before then.") nextRunTime?: utcDateTime; @@ -2487,9 +2487,9 @@ model BatchJobListResult { } @doc(""" -The result of listing the status of the Job Preparation and Job Release Tasks -for a Job. -""") + The result of listing the status of the Job Preparation and Job Release Tasks + for a Job. + """) @pagedResult model BatchJobPreparationAndReleaseTaskStatusListResult { @doc("A list of Job Preparation and Job Release Task execution information.") @@ -2521,9 +2521,9 @@ model BatchJobPreparationAndReleaseTaskStatus { } @doc(""" -Contains information about the execution of a Job Preparation Task on a Compute -Node. -""") + Contains information about the execution of a Job Preparation Task on a Compute + Node. + """) model BatchJobPreparationTaskExecutionInfo { @doc("The time at which the Task started running. If the Task has been restarted or retried, this is the most recent time at which the Task started running.") startTime: utcDateTime; @@ -2587,9 +2587,9 @@ model BatchTaskFailureInfo { } @doc(""" -Contains information about the execution of a Job Release Task on a Compute -Node. -""") + Contains information about the execution of a Job Release Task on a Compute + Node. + """) model BatchJobReleaseTaskExecutionInfo { @doc("The time at which the Task started running. If the Task has been restarted or retried, this is the most recent time at which the Task started running.") startTime: utcDateTime; @@ -3026,16 +3026,16 @@ model BatchNodeRemoveContent { } @doc(""" -Batch will retry Tasks when a recovery operation is triggered on a Node. -Examples of recovery operations include (but are not limited to) when an -unhealthy Node is rebooted or a Compute Node disappeared due to host failure. -Retries due to recovery operations are independent of and are not counted -against the maxTaskRetryCount. Even if the maxTaskRetryCount is 0, an internal -retry due to a recovery operation may occur. Because of this, all Tasks should -be idempotent. This means Tasks need to tolerate being interrupted and -restarted without causing any corruption or duplicate data. The best practice -for long running Tasks is to use some form of checkpointing. -""") + Batch will retry Tasks when a recovery operation is triggered on a Node. + Examples of recovery operations include (but are not limited to) when an + unhealthy Node is rebooted or a Compute Node disappeared due to host failure. + Retries due to recovery operations are independent of and are not counted + against the maxTaskRetryCount. Even if the maxTaskRetryCount is 0, an internal + retry due to a recovery operation may occur. Because of this, all Tasks should + be idempotent. This means Tasks need to tolerate being interrupted and + restarted without causing any corruption or duplicate data. The best practice + for long running Tasks is to use some form of checkpointing. + """) model BatchTask { @doc("A string that uniquely identifies the Task within the Job. The ID can contain any combination of alphanumeric characters including hyphens and underscores, and cannot contain more than 64 characters.") @visibility("read") @@ -3146,8 +3146,8 @@ model BatchTask { } @doc(""" -Parameters for creating an Azure Batch Task. -""") + Parameters for creating an Azure Batch Task. + """) model BatchTaskCreateContent { @doc("A string that uniquely identifies the Task within the Job. The ID can contain any combination of alphanumeric characters including hyphens and underscores, and cannot contain more than 64 characters. The ID is case-preserving and case-insensitive (that is, you may not have two IDs within a Job that differ only by case).") id: string; @@ -3217,9 +3217,9 @@ model ExitConditions { } @doc(""" -How the Batch service should respond if a Task exits with a particular exit -code. -""") + How the Batch service should respond if a Task exits with a particular exit + code. + """) model ExitCodeMapping { @doc("A process exit code.") code: int32; @@ -3238,9 +3238,9 @@ model ExitOptions { } @doc(""" -A range of exit codes and how the Batch service should respond to exit codes -within that range. -""") + A range of exit codes and how the Batch service should respond to exit codes + within that range. + """) model ExitCodeRangeMapping { @doc("The first exit code in the range.") start: int32; @@ -3253,9 +3253,9 @@ model ExitCodeRangeMapping { } @doc(""" -A locality hint that can be used by the Batch service to select a Compute Node -on which to start a Task. -""") + A locality hint that can be used by the Batch service to select a Compute Node + on which to start a Task. + """) model AffinityInfo { @doc("An opaque string representing the location of a Compute Node or a Task that has run previously. You can pass the affinityId of a Node to indicate that this Task needs to run on that Compute Node. Note that this is just a soft affinity. If the target Compute Node is busy or unavailable at the time the Task is scheduled, then the Task will be scheduled elsewhere.") affinityId: string; @@ -3316,11 +3316,11 @@ model BatchNodeInfo { } @doc(""" -Multi-instance Tasks are commonly used to support MPI Tasks. In the MPI case, -if any of the subtasks fail (for example due to exiting with a non-zero exit -code) the entire multi-instance Task fails. The multi-instance Task is then -terminated and retried, up to its retry limit. -""") + Multi-instance Tasks are commonly used to support MPI Tasks. In the MPI case, + if any of the subtasks fail (for example due to exiting with a non-zero exit + code) the entire multi-instance Task fails. The multi-instance Task is then + terminated and retried, up to its retry limit. + """) model MultiInstanceSettings { @doc("The number of Compute Nodes required by the Task. If omitted, the default is 1.") numberOfInstances?: int32; @@ -3372,10 +3372,10 @@ model BatchTaskStatistics { } @doc(""" -Specifies any dependencies of a Task. Any Task that is explicitly specified or -within a dependency range must complete before the dependant Task will be -scheduled. -""") + Specifies any dependencies of a Task. Any Task that is explicitly specified or + within a dependency range must complete before the dependant Task will be + scheduled. + """) model BatchTaskDependencies { @doc("The list of Task IDs that this Task depends on. All Tasks in this list must complete successfully before the dependent Task can be scheduled. The taskIds collection is limited to 64000 characters total (i.e. the combined length of all Task IDs). If the taskIds collection exceeds the maximum length, the Add Task request fails with error code TaskDependencyListTooLong. In this case consider using Task ID ranges instead.") taskIds?: string[]; @@ -3385,9 +3385,9 @@ model BatchTaskDependencies { } @doc(""" -The start and end of the range are inclusive. For example, if a range has start -9 and end 12, then it represents Tasks '9', '10', '11' and '12'. -""") + The start and end of the range are inclusive. For example, if a range has start + 9 and end 12, then it represents Tasks '9', '10', '11' and '12'. + """) model BatchTaskIdRange { @doc("The first Task ID in the range.") start: int32; @@ -3743,9 +3743,9 @@ model InboundEndpoint { } @doc(""" -The Batch Compute Node agent is a program that runs on each Compute Node in the -Pool and provides Batch capability on the Compute Node. -""") + The Batch Compute Node agent is a program that runs on each Compute Node in the + Pool and provides Batch capability on the Compute Node. + """) model BatchNodeAgentInfo { @doc("The version of the Batch Compute Node agent running on the Compute Node. This version number can be checked against the Compute Node agent release notes located at https://github.com/Azure/Batch/blob/master/changelogs/nodeagent/CHANGELOG.md.") version: string; diff --git a/specification/batch/Azure.Batch/routes.tsp b/specification/batch/Azure.Batch/routes.tsp index 3cb0f122b964..43036ef3a0c6 100644 --- a/specification/batch/Azure.Batch/routes.tsp +++ b/specification/batch/Azure.Batch/routes.tsp @@ -30,24 +30,24 @@ namespace Azure.Batch; interface Batch { @summary("Lists all of the applications available in the specified Account.") @doc(""" -This operation returns only Applications and versions that are available for -use on Compute Nodes; that is, that can be used in an Package reference. For -administrator information about applications and versions that are not yet -available to Compute Nodes, use the Azure portal or the Azure Resource Manager -API. -""") + This operation returns only Applications and versions that are available for + use on Compute Nodes; that is, that can be used in an Package reference. For + administrator information about applications and versions that are not yet + available to Compute Nodes, use the Azure portal or the Azure Resource Manager + API. + """) @route("/applications") @clientName("listApplicationsInternal", "java") listApplications is ListOperation<{}, BatchApplicationListResult>; @summary("Gets information about the specified Application.") @doc(""" -This operation returns only Applications and versions that are available for -use on Compute Nodes; that is, that can be used in an Package reference. For -administrator information about Applications and versions that are not yet -available to Compute Nodes, use the Azure portal or the Azure Resource Manager -API. -""") + This operation returns only Applications and versions that are available for + use on Compute Nodes; that is, that can be used in an Package reference. For + administrator information about Applications and versions that are not yet + available to Compute Nodes, use the Azure portal or the Azure Resource Manager + API. + """) @route("/applications/{applicationId}") @clientName("getApplicationInternal", "java") getApplication is ReadOperation< @@ -60,42 +60,42 @@ API. >; @summary(""" -Lists the usage metrics, aggregated by Pool across individual time intervals, -for the specified Account. -""") + Lists the usage metrics, aggregated by Pool across individual time intervals, + for the specified Account. + """) @doc(""" -If you do not specify a $filter clause including a poolId, the response -includes all Pools that existed in the Account in the time range of the -returned aggregation intervals. If you do not specify a $filter clause -including a startTime or endTime these filters default to the start and end -times of the last aggregation interval currently available; that is, only the -last aggregation interval is returned. -""") + If you do not specify a $filter clause including a poolId, the response + includes all Pools that existed in the Account in the time range of the + returned aggregation intervals. If you do not specify a $filter clause + including a startTime or endTime these filters default to the start and end + times of the last aggregation interval currently available; that is, only the + last aggregation interval is returned. + """) @route("/poolusagemetrics") @clientName("listPoolUsageMetricsInternal", "java") listPoolUsageMetrics is ListOperation< { @doc(""" - The earliest time from which to include metrics. This must be at least two and - a half hours before the current time. If not specified this defaults to the - start time of the last aggregation interval currently available. - """) + The earliest time from which to include metrics. This must be at least two and + a half hours before the current time. If not specified this defaults to the + start time of the last aggregation interval currently available. + """) @query @clientName("starttime") startTime?: utcDateTime; @doc(""" - The latest time from which to include metrics. This must be at least two hours - before the current time. If not specified this defaults to the end time of the - last aggregation interval currently available. - """) + The latest time from which to include metrics. This must be at least two hours + before the current time. If not specified this defaults to the end time of the + last aggregation interval currently available. + """) @query endtime?: utcDateTime; @doc(""" - An OData $filter clause. For more information on constructing this filter, see - https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-account-usage-metrics. - """) + An OData $filter clause. For more information on constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-account-usage-metrics. + """) @query @clientName("filter") $filter?: string; @@ -105,10 +105,10 @@ last aggregation interval is returned. @summary("Creates a Pool to the specified Account.") @doc(""" -When naming Pools, avoid including sensitive information such as user names or -secret project names. This information may appear in telemetry logs accessible -to Microsoft Support engineers. -""") + When naming Pools, avoid including sensitive information such as user names or + secret project names. This information may appear in telemetry logs accessible + to Microsoft Support engineers. + """) @route("/pools") @clientName("createPoolInternal", "java") createPool is CreateOperation< @@ -127,9 +127,9 @@ to Microsoft Support engineers. listPools is ListOperation< { @doc(""" -An OData $filter clause. For more information on constructing this filter, see -https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-pools. -""") + An OData $filter clause. For more information on constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-pools. + """) @query @clientName("filter") $filter?: string; @@ -153,19 +153,19 @@ https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#li @summary("Deletes a Pool from the specified Account.") @doc(""" -When you request that a Pool be deleted, the following actions occur: the Pool -state is set to deleting; any ongoing resize operation on the Pool are stopped; -the Batch service starts resizing the Pool to zero Compute Nodes; any Tasks -running on existing Compute Nodes are terminated and requeued (as if a resize -Pool operation had been requested with the default requeue option); finally, -the Pool is removed from the system. Because running Tasks are requeued, the -user can rerun these Tasks by updating their Job to target a different Pool. -The Tasks can then run on the new Pool. If you want to override the requeue -behavior, then you should call resize Pool explicitly to shrink the Pool to -zero size before deleting the Pool. If you call an Update, Patch or Delete API -on a Pool in the deleting state, it will fail with HTTP status code 409 with -error code PoolBeingDeleted. -""") + When you request that a Pool be deleted, the following actions occur: the Pool + state is set to deleting; any ongoing resize operation on the Pool are stopped; + the Batch service starts resizing the Pool to zero Compute Nodes; any Tasks + running on existing Compute Nodes are terminated and requeued (as if a resize + Pool operation had been requested with the default requeue option); finally, + the Pool is removed from the system. Because running Tasks are requeued, the + user can rerun these Tasks by updating their Job to target a different Pool. + The Tasks can then run on the new Pool. If you want to override the requeue + behavior, then you should call resize Pool explicitly to shrink the Pool to + zero size before deleting the Pool. If you call an Update, Patch or Delete API + on a Pool in the deleting state, it will fail with HTTP status code 409 with + error code PoolBeingDeleted. + """) @route("/pools/{poolId}") @clientName("deletePoolInternal", "java") deletePool is DeleteOperation; @@ -203,10 +203,10 @@ error code PoolBeingDeleted. @summary("Updates the properties of the specified Pool.") @doc(""" -This only replaces the Pool properties specified in the request. For example, -if the Pool has a StartTask associated with it, and a request does not specify -a StartTask element, then the Pool keeps the existing StartTask. -""") + This only replaces the Pool properties specified in the request. For example, + if the Pool has a StartTask associated with it, and a request does not specify + a StartTask element, then the Pool keeps the existing StartTask. + """) @route("/pools/{poolId}") @clientName("updatePoolInternal", "java") updatePool is UpdateOperation< @@ -233,13 +233,13 @@ a StartTask element, then the Pool keeps the existing StartTask. @summary("Enables automatic scaling for a Pool.") @doc(""" -You cannot enable automatic scaling on a Pool if a resize operation is in -progress on the Pool. If automatic scaling of the Pool is currently disabled, -you must specify a valid autoscale formula as part of the request. If automatic -scaling of the Pool is already enabled, you may specify a new autoscale formula -and/or a new evaluation interval. You cannot call this API for the same Pool -more than once every 30 seconds. -""") + You cannot enable automatic scaling on a Pool if a resize operation is in + progress on the Pool. If automatic scaling of the Pool is currently disabled, + you must specify a valid autoscale formula as part of the request. If automatic + scaling of the Pool is already enabled, you may specify a new autoscale formula + and/or a new evaluation interval. You cannot call this API for the same Pool + more than once every 30 seconds. + """) @route("/pools/{poolId}/enableautoscale") @clientName("enablePoolAutoScaleInternal", "java") enablePoolAutoScale is PostOperation< @@ -254,10 +254,10 @@ more than once every 30 seconds. @summary("Gets the result of evaluating an automatic scaling formula on the Pool.") @doc(""" -This API is primarily for validating an autoscale formula, as it simply returns -the result without applying the formula to the Pool. The Pool must have auto -scaling enabled in order to evaluate a formula. -""") + This API is primarily for validating an autoscale formula, as it simply returns + the result without applying the formula to the Pool. The Pool must have auto + scaling enabled in order to evaluate a formula. + """) @route("/pools/{poolId}/evaluateautoscale") @clientName("evaluatePoolAutoScaleInternal", "java") evaluatePoolAutoScale is PostOperation< @@ -275,14 +275,14 @@ scaling enabled in order to evaluate a formula. @summary("Changes the number of Compute Nodes that are assigned to a Pool.") @doc(""" -You can only resize a Pool when its allocation state is steady. If the Pool is -already resizing, the request fails with status code 409. When you resize a -Pool, the Pool's allocation state changes from steady to resizing. You cannot -resize Pools which are configured for automatic scaling. If you try to do this, -the Batch service returns an error 409. If you resize a Pool downwards, the -Batch service chooses which Compute Nodes to remove. To remove specific Compute -Nodes, use the Pool remove Compute Nodes API instead. -""") + You can only resize a Pool when its allocation state is steady. If the Pool is + already resizing, the request fails with status code 409. When you resize a + Pool, the Pool's allocation state changes from steady to resizing. You cannot + resize Pools which are configured for automatic scaling. If you try to do this, + the Batch service returns an error 409. If you resize a Pool downwards, the + Batch service chooses which Compute Nodes to remove. To remove specific Compute + Nodes, use the Pool remove Compute Nodes API instead. + """) @route("/pools/{poolId}/resize") @clientName("resizePoolInternal", "java") resizePool is PostOperation< @@ -297,14 +297,14 @@ Nodes, use the Pool remove Compute Nodes API instead. @summary("Stops an ongoing resize operation on the Pool.") @doc(""" -This does not restore the Pool to its previous state before the resize -operation: it only stops any further changes being made, and the Pool maintains -its current state. After stopping, the Pool stabilizes at the number of Compute -Nodes it was at when the stop operation was done. During the stop operation, -the Pool allocation state changes first to stopping and then to steady. A -resize operation need not be an explicit resize Pool request; this API can also -be used to halt the initial sizing of the Pool when it is created. -""") + This does not restore the Pool to its previous state before the resize + operation: it only stops any further changes being made, and the Pool maintains + its current state. After stopping, the Pool stabilizes at the number of Compute + Nodes it was at when the stop operation was done. During the stop operation, + the Pool allocation state changes first to stopping and then to steady. A + resize operation need not be an explicit resize Pool request; this API can also + be used to halt the initial sizing of the Pool when it is created. + """) @route("/pools/{poolId}/stopresize") @clientName("stopPoolResizeInternal", "java") stopPoolResize is PostOperation< @@ -314,10 +314,10 @@ be used to halt the initial sizing of the Pool when it is created. @summary("Updates the properties of the specified Pool.") @doc(""" -This fully replaces all the updatable properties of the Pool. For example, if -the Pool has a StartTask associated with it and if StartTask is not specified -with this request, then the Batch service will remove the existing StartTask. -""") + This fully replaces all the updatable properties of the Pool. For example, if + the Pool has a StartTask associated with it and if StartTask is not specified + with this request, then the Batch service will remove the existing StartTask. + """) @route("/pools/{poolId}/updateproperties") @clientName("replacePoolPropertiesInternal", "java") replacePoolProperties is PostOperation< @@ -335,10 +335,10 @@ with this request, then the Batch service will remove the existing StartTask. @summary("Removes Compute Nodes from the specified Pool.") @doc(""" -This operation can only run when the allocation state of the Pool is steady. -When this operation runs, the allocation state changes from steady to resizing. -Each request may remove up to 100 nodes. -""") + This operation can only run when the allocation state of the Pool is steady. + When this operation runs, the allocation state changes from steady to resizing. + Each request may remove up to 100 nodes. + """) @route("/pools/{poolId}/removenodes") @clientName("removeNodesInternal", "java") removeNodes is PostOperation< @@ -358,9 +358,9 @@ Each request may remove up to 100 nodes. listSupportedImages is ListOperation< { @doc(""" -An OData $filter clause. For more information on constructing this filter, see -https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-support-images. -""") + An OData $filter clause. For more information on constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-support-images. + """) @query @clientName("filter") $filter?: string; @@ -369,18 +369,18 @@ https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#li >; @doc(""" -Gets the number of Compute Nodes in each state, grouped by Pool. Note that the -numbers returned may not always be up to date. If you need exact node counts, -use a list query. -""") + Gets the number of Compute Nodes in each state, grouped by Pool. Note that the + numbers returned may not always be up to date. If you need exact node counts, + use a list query. + """) @route("/nodecounts") @clientName("listPoolNodeCountsInternal", "java") listPoolNodeCounts is ListOperation< { @doc(""" -An OData $filter clause. For more information on constructing this filter, see -https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-support-images. -""") + An OData $filter clause. For more information on constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-support-images. + """) @query @clientName("filter") $filter?: string; @@ -390,15 +390,15 @@ https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#li @summary("Deletes a Job.") @doc(""" -Deleting a Job also deletes all Tasks that are part of that Job, and all Job -statistics. This also overrides the retention period for Task data; that is, if -the Job contains Tasks which are still retained on Compute Nodes, the Batch -services deletes those Tasks' working directories and all their contents. When -a Delete Job request is received, the Batch service sets the Job to the -deleting state. All update operations on a Job that is in deleting state will -fail with status code 409 (Conflict), with additional information indicating -that the Job is being deleted. -""") + Deleting a Job also deletes all Tasks that are part of that Job, and all Job + statistics. This also overrides the retention period for Task data; that is, if + the Job contains Tasks which are still retained on Compute Nodes, the Batch + services deletes those Tasks' working directories and all their contents. When + a Delete Job request is received, the Batch service sets the Job to the + deleting state. All update operations on a Job that is in deleting state will + fail with status code 409 (Conflict), with additional information indicating + that the Job is being deleted. + """) @route("/jobs/{jobId}") @clientName("deleteJobInternal", "java") deleteJob is DeleteOperation< @@ -439,10 +439,10 @@ that the Job is being deleted. @summary("Updates the properties of the specified Job.") @doc(""" -This replaces only the Job properties specified in the request. For example, if -the Job has constraints, and a request does not specify the constraints -element, then the Job keeps the existing constraints. -""") + This replaces only the Job properties specified in the request. For example, if + the Job has constraints, and a request does not specify the constraints + element, then the Job keeps the existing constraints. + """) @route("/jobs/{jobId}") @clientName("updateJobInternal", "java") updateJob is UpdateOperation< @@ -460,10 +460,10 @@ element, then the Job keeps the existing constraints. @summary("Updates the properties of the specified Job.") @doc(""" -This fully replaces all the updatable properties of the Job. For example, if -the Job has constraints associated with it and if constraints is not specified -with this request, then the Batch service will remove the existing constraints. -""") + This fully replaces all the updatable properties of the Job. For example, if + the Job has constraints associated with it and if constraints is not specified + with this request, then the Batch service will remove the existing constraints. + """) @route("/jobs/{jobId}") @clientName("replaceJobInternal", "java") replaceJob is ReplaceOperation< @@ -481,15 +481,15 @@ with this request, then the Batch service will remove the existing constraints. @summary("Disables the specified Job, preventing new Tasks from running.") @doc(""" -The Batch Service immediately moves the Job to the disabling state. Batch then -uses the disableTasks parameter to determine what to do with the currently -running Tasks of the Job. The Job remains in the disabling state until the -disable operation is completed and all Tasks have been dealt with according to -the disableTasks option; the Job then moves to the disabled state. No new Tasks -are started under the Job until it moves back to active state. If you try to -disable a Job that is in any state other than active, disabling, or disabled, -the request fails with status code 409. -""") + The Batch Service immediately moves the Job to the disabling state. Batch then + uses the disableTasks parameter to determine what to do with the currently + running Tasks of the Job. The Job remains in the disabling state until the + disable operation is completed and all Tasks have been dealt with according to + the disableTasks option; the Job then moves to the disabled state. No new Tasks + are started under the Job until it moves back to active state. If you try to + disable a Job that is in any state other than active, disabling, or disabled, + the request fails with status code 409. + """) @route("/jobs/{jobId}/disable") @clientName("disableJobInternal", "java") disableJob is PostOperation< @@ -508,13 +508,13 @@ the request fails with status code 409. @summary("Enables the specified Job, allowing new Tasks to run.") @doc(""" -When you call this API, the Batch service sets a disabled Job to the enabling -state. After the this operation is completed, the Job moves to the active -state, and scheduling of new Tasks under the Job resumes. The Batch service -does not allow a Task to remain in the active state for more than 180 days. -Therefore, if you enable a Job containing active Tasks which were added more -than 180 days ago, those Tasks will not run. -""") + When you call this API, the Batch service sets a disabled Job to the enabling + state. After the this operation is completed, the Job moves to the active + state, and scheduling of new Tasks under the Job resumes. The Batch service + does not allow a Task to remain in the active state for more than 180 days. + Therefore, if you enable a Job containing active Tasks which were added more + than 180 days ago, those Tasks will not run. + """) @route("/jobs/{jobId}/enable") @clientName("enableJobInternal", "java") enableJob is PostOperation< @@ -528,13 +528,13 @@ than 180 days ago, those Tasks will not run. @summary("Terminates the specified Job, marking it as completed.") @doc(""" -When a Terminate Job request is received, the Batch service sets the Job to the -terminating state. The Batch service then terminates any running Tasks -associated with the Job and runs any required Job release Tasks. Then the Job -moves into the completed state. If there are any Tasks in the Job in the active -state, they will remain in the active state. Once a Job is terminated, new -Tasks cannot be added and any remaining active Tasks will not be scheduled. -""") + When a Terminate Job request is received, the Batch service sets the Job to the + terminating state. The Batch service then terminates any running Tasks + associated with the Job and runs any required Job release Tasks. Then the Job + moves into the completed state. If there are any Tasks in the Job in the active + state, they will remain in the active state. Once a Job is terminated, new + Tasks cannot be added and any remaining active Tasks will not be scheduled. + """) @route("/jobs/{jobId}/terminate") @clientName("terminateJobInternal", "java") terminateJob is PostOperation< @@ -553,16 +553,16 @@ Tasks cannot be added and any remaining active Tasks will not be scheduled. @summary("Creates a Job to the specified Account.") @doc(""" -The Batch service supports two ways to control the work done as part of a Job. -In the first approach, the user specifies a Job Manager Task. The Batch service -launches this Task when it is ready to start the Job. The Job Manager Task -controls all other Tasks that run under this Job, by using the Task APIs. In -the second approach, the user directly controls the execution of Tasks under an -active Job, by using the Task APIs. Also note: when naming Jobs, avoid -including sensitive information such as user names or secret project names. -This information may appear in telemetry logs accessible to Microsoft Support -engineers. -""") + The Batch service supports two ways to control the work done as part of a Job. + In the first approach, the user specifies a Job Manager Task. The Batch service + launches this Task when it is ready to start the Job. The Job Manager Task + controls all other Tasks that run under this Job, by using the Task APIs. In + the second approach, the user directly controls the execution of Tasks under an + active Job, by using the Task APIs. Also note: when naming Jobs, avoid + including sensitive information such as user names or secret project names. + This information may appear in telemetry logs accessible to Microsoft Support + engineers. + """) @route("/jobs") @clientName("createJobInternal", "java") createJob is CreateOperation< @@ -581,9 +581,9 @@ engineers. listJobs is ListOperation< { @doc(""" -An OData $filter clause. For more information on constructing this filter, see -https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-jobs. -""") + An OData $filter clause. For more information on constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-jobs. + """) @query @clientName("filter") $filter?: string; @@ -616,9 +616,9 @@ https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#li jobScheduleId: string; @doc(""" -An OData $filter clause. For more information on constructing this filter, see -https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-jobs-in-a-job-schedule. -""") + An OData $filter clause. For more information on constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-jobs-in-a-job-schedule. + """) @query @clientName("filter") $filter?: string; @@ -641,17 +641,17 @@ https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#li >; @summary(""" -Lists the execution status of the Job Preparation and Job Release Task for the -specified Job across the Compute Nodes where the Job has run. -""") + Lists the execution status of the Job Preparation and Job Release Task for the + specified Job across the Compute Nodes where the Job has run. + """) @doc(""" -This API returns the Job Preparation and Job Release Task status on all Compute -Nodes that have run the Job Preparation or Job Release Task. This includes -Compute Nodes which have since been removed from the Pool. If this API is -invoked on a Job which has no Job Preparation or Job Release Task, the Batch -service returns HTTP status code 409 (Conflict) with an error code of -JobPreparationTaskNotSpecified. -""") + This API returns the Job Preparation and Job Release Task status on all Compute + Nodes that have run the Job Preparation or Job Release Task. This includes + Compute Nodes which have since been removed from the Pool. If this API is + invoked on a Job which has no Job Preparation or Job Release Task, the Batch + service returns HTTP status code 409 (Conflict) with an error code of + JobPreparationTaskNotSpecified. + """) @route("/jobs/{jobId}/jobpreparationandreleasetaskstatus") @clientName("listJobPreparationAndReleaseTaskStatusInternal", "java") listJobPreparationAndReleaseTaskStatus is ListOperation< @@ -661,9 +661,9 @@ JobPreparationTaskNotSpecified. jobId: string; @doc(""" -An OData $filter clause. For more information on constructing this filter, see -https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-job-preparation-and-release-status. -""") + An OData $filter clause. For more information on constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-job-preparation-and-release-status. + """) @query @clientName("filter") $filter?: string; @@ -680,11 +680,11 @@ https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#li @summary("Gets the Task counts for the specified Job.") @doc(""" -Task counts provide a count of the Tasks by active, running or completed Task -state, and a count of Tasks which succeeded or failed. Tasks in the preparing -state are counted as running. Note that the numbers returned may not always be -up to date. If you need exact task counts, use a list query. -""") + Task counts provide a count of the Tasks by active, running or completed Task + state, and a count of Tasks which succeeded or failed. Tasks in the preparing + state are counted as running. Note that the numbers returned may not always be + up to date. If you need exact task counts, use a list query. + """) @route("/jobs/{jobId}/taskcounts") @clientName("getJobTaskCountsInternal", "java") getJobTaskCounts is ReadOperation< @@ -713,12 +713,12 @@ up to date. If you need exact task counts, use a list query. @summary("Deletes a Job Schedule from the specified Account.") @doc(""" -When you delete a Job Schedule, this also deletes all Jobs and Tasks under that -schedule. When Tasks are deleted, all the files in their working directories on -the Compute Nodes are also deleted (the retention period is ignored). The Job -Schedule statistics are no longer accessible once the Job Schedule is deleted, -though they are still counted towards Account lifetime statistics. -""") + When you delete a Job Schedule, this also deletes all Jobs and Tasks under that + schedule. When Tasks are deleted, all the files in their working directories on + the Compute Nodes are also deleted (the retention period is ignored). The Job + Schedule statistics are no longer accessible once the Job Schedule is deleted, + though they are still counted towards Account lifetime statistics. + """) @route("/jobschedules/{jobScheduleId}") @clientName("deleteJobScheduleInternal", "java") deleteJobSchedule is DeleteOperation< @@ -758,12 +758,12 @@ though they are still counted towards Account lifetime statistics. @summary("Updates the properties of the specified Job Schedule.") @doc(""" -This replaces only the Job Schedule properties specified in the request. For -example, if the schedule property is not specified with this request, then the -Batch service will keep the existing schedule. Changes to a Job Schedule only -impact Jobs created by the schedule after the update has taken place; currently -running Jobs are unaffected. -""") + This replaces only the Job Schedule properties specified in the request. For + example, if the schedule property is not specified with this request, then the + Batch service will keep the existing schedule. Changes to a Job Schedule only + impact Jobs created by the schedule after the update has taken place; currently + running Jobs are unaffected. + """) @route("/jobschedules/{jobScheduleId}") @clientName("updateJobScheduleInternal", "java") updateJobSchedule is UpdateOperation< @@ -781,12 +781,12 @@ running Jobs are unaffected. @summary("Updates the properties of the specified Job Schedule.") @doc(""" -This fully replaces all the updatable properties of the Job Schedule. For -example, if the schedule property is not specified with this request, then the -Batch service will remove the existing schedule. Changes to a Job Schedule only -impact Jobs created by the schedule after the update has taken place; currently -running Jobs are unaffected. -""") + This fully replaces all the updatable properties of the Job Schedule. For + example, if the schedule property is not specified with this request, then the + Batch service will remove the existing schedule. Changes to a Job Schedule only + impact Jobs created by the schedule after the update has taken place; currently + running Jobs are unaffected. + """) @route("/jobschedules/{jobScheduleId}") @clientName("replaceJobScheduleInternal", "java") replaceJobSchedule is ReplaceOperation< @@ -861,9 +861,9 @@ running Jobs are unaffected. listJobSchedules is ListOperation< { @doc(""" -An OData $filter clause. For more information on constructing this filter, see -https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-job-schedules. -""") + An OData $filter clause. For more information on constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-job-schedules. + """) @query @clientName("filter") $filter?: string; @@ -887,10 +887,10 @@ https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#li @summary("Creates a Task to the specified Job.") @doc(""" -The maximum lifetime of a Task from addition to completion is 180 days. If a -Task has not completed within 180 days of being added it will be terminated by -the Batch service and left in whatever state it was in at that time. -""") + The maximum lifetime of a Task from addition to completion is 180 days. If a + Task has not completed within 180 days of being added it will be terminated by + the Batch service and left in whatever state it was in at that time. + """) @route("/jobs/{jobId}/tasks") @clientName("createTaskInternal", "java") createTask is CreateOperation< @@ -908,10 +908,10 @@ the Batch service and left in whatever state it was in at that time. @summary("Lists all of the Tasks that are associated with the specified Job.") @doc(""" -For multi-instance Tasks, information such as affinityId, executionInfo and -nodeInfo refer to the primary Task. Use the list subtasks API to retrieve -information about subtasks. -""") + For multi-instance Tasks, information such as affinityId, executionInfo and + nodeInfo refer to the primary Task. Use the list subtasks API to retrieve + information about subtasks. + """) @route("/jobs/{jobId}/tasks") @clientName("listTasksInternal", "java") listTasks is ListOperation< @@ -921,9 +921,9 @@ information about subtasks. jobId: string; @doc(""" -An OData $filter clause. For more information on constructing this filter, see -https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-tasks. -""") + An OData $filter clause. For more information on constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-tasks. + """) @query @clientName("filter") $filter?: string; @@ -947,21 +947,21 @@ https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#li @summary("Adds a collection of Tasks to the specified Job.") @doc(""" -Note that each Task must have a unique ID. The Batch service may not return the -results for each Task in the same order the Tasks were submitted in this -request. If the server times out or the connection is closed during the -request, the request may have been partially or fully processed, or not at all. -In such cases, the user should re-issue the request. Note that it is up to the -user to correctly handle failures when re-issuing a request. For example, you -should use the same Task IDs during a retry so that if the prior operation -succeeded, the retry will not create extra Tasks unexpectedly. If the response -contains any Tasks which failed to add, a client can retry the request. In a -retry, it is most efficient to resubmit only Tasks that failed to add, and to -omit Tasks that were successfully added on the first attempt. The maximum -lifetime of a Task from addition to completion is 180 days. If a Task has not -completed within 180 days of being added it will be terminated by the Batch -service and left in whatever state it was in at that time. -""") + Note that each Task must have a unique ID. The Batch service may not return the + results for each Task in the same order the Tasks were submitted in this + request. If the server times out or the connection is closed during the + request, the request may have been partially or fully processed, or not at all. + In such cases, the user should re-issue the request. Note that it is up to the + user to correctly handle failures when re-issuing a request. For example, you + should use the same Task IDs during a retry so that if the prior operation + succeeded, the retry will not create extra Tasks unexpectedly. If the response + contains any Tasks which failed to add, a client can retry the request. In a + retry, it is most efficient to resubmit only Tasks that failed to add, and to + omit Tasks that were successfully added on the first attempt. The maximum + lifetime of a Task from addition to completion is 180 days. If a Task has not + completed within 180 days of being added it will be terminated by the Batch + service and left in whatever state it was in at that time. + """) @route("/jobs/{jobId}/addtaskcollection") @clientName("createTaskCollectionInternal", "java") createTaskCollection is PostOperation< @@ -979,12 +979,12 @@ service and left in whatever state it was in at that time. @summary("Deletes a Task from the specified Job.") @doc(""" -When a Task is deleted, all of the files in its directory on the Compute Node -where it ran are also deleted (regardless of the retention time). For -multi-instance Tasks, the delete Task operation applies synchronously to the -primary task; subtasks and their files are then deleted asynchronously in the -background. -""") + When a Task is deleted, all of the files in its directory on the Compute Node + where it ran are also deleted (regardless of the retention time). For + multi-instance Tasks, the delete Task operation applies synchronously to the + primary task; subtasks and their files are then deleted asynchronously in the + background. + """) @route("/jobs/{jobId}/tasks/{taskId}") @clientName("deleteTaskInternal", "java") deleteTask is DeleteOperation< @@ -1006,10 +1006,10 @@ background. @summary("Gets information about the specified Task.") @doc(""" -For multi-instance Tasks, information such as affinityId, executionInfo and -nodeInfo refer to the primary Task. Use the list subtasks API to retrieve -information about subtasks. -""") + For multi-instance Tasks, information such as affinityId, executionInfo and + nodeInfo refer to the primary Task. Use the list subtasks API to retrieve + information about subtasks. + """) @route("/jobs/{jobId}/tasks/{taskId}") @clientName("getTaskInternal", "java") getTask is ReadOperation< @@ -1061,9 +1061,9 @@ information about subtasks. #suppress "@azure-tools/typespec-azure-core/use-standard-names" "GET operations that return single objects should start with 'get'" @summary(""" -Lists all of the subtasks that are associated with the specified multi-instance -Task. -""") + Lists all of the subtasks that are associated with the specified multi-instance + Task. + """) @doc("If the Task is not a multi-instance Task then this returns an empty collection.") @route("/jobs/{jobId}/tasks/{taskId}/subtasksinfo") @clientName("listSubTasksInternal", "java") @@ -1089,10 +1089,10 @@ Task. @summary("Terminates the specified Task.") @doc(""" -When the Task has been terminated, it moves to the completed state. For -multi-instance Tasks, the terminate Task operation applies synchronously to the -primary task; subtasks are then terminated asynchronously in the background. -""") + When the Task has been terminated, it moves to the completed state. For + multi-instance Tasks, the terminate Task operation applies synchronously to the + primary task; subtasks are then terminated asynchronously in the background. + """) @route("/jobs/{jobId}/tasks/{taskId}/terminate") @clientName("terminateTaskInternal", "java") terminateTask is PostOperation< @@ -1109,18 +1109,18 @@ primary task; subtasks are then terminated asynchronously in the background. >; @summary(""" -Reactivates a Task, allowing it to run again even if its retry count has been -exhausted. -""") + Reactivates a Task, allowing it to run again even if its retry count has been + exhausted. + """) @doc(""" -Reactivation makes a Task eligible to be retried again up to its maximum retry -count. The Task's state is changed to active. As the Task is no longer in the -completed state, any previous exit code or failure information is no longer -available after reactivation. Each time a Task is reactivated, its retry count -is reset to 0. Reactivation will fail for Tasks that are not completed or that -previously completed successfully (with an exit code of 0). Additionally, it -will fail if the Job has completed (or is terminating or deleting). -""") + Reactivation makes a Task eligible to be retried again up to its maximum retry + count. The Task's state is changed to active. As the Task is no longer in the + completed state, any previous exit code or failure information is no longer + available after reactivation. Each time a Task is reactivated, its retry count + is reset to 0. Reactivation will fail for Tasks that are not completed or that + previously completed successfully (with an exit code of 0). Additionally, it + will fail if the Job has completed (or is terminating or deleting). + """) @route("/jobs/{jobId}/tasks/{taskId}/reactivate") @clientName("reactivateTaskInternal", "java") reactivateTask is PostOperation< @@ -1143,11 +1143,11 @@ will fail if the Job has completed (or is terminating or deleting). deleteTaskFile is DeleteOperation< BatchTaskFileClientPathContent & { @doc(""" -Whether to delete children of a directory. If the filePath parameter represents -a directory instead of a file, you can set recursive to true to delete the -directory and all of the files and subdirectories in it. If recursive is false -then the directory must be empty or deletion will fail. -""") + Whether to delete children of a directory. If the filePath parameter represents + a directory instead of a file, you can set recursive to true to delete the + directory and all of the files and subdirectories in it. If recursive is false + then the directory must be empty or deletion will fail. + """) @query recursive?: boolean; }, @@ -1165,9 +1165,9 @@ then the directory must be empty or deletion will fail. BatchTaskFileClientPathContent & BatchModifiedSinceHeaders & { @doc(""" -The byte range to be retrieved. The default is to retrieve the entire file. The -format is bytes=startRange-endRange. -""") + The byte range to be retrieved. The default is to retrieve the entire file. The + format is bytes=startRange-endRange. + """) @header `ocp-range`?: string; }, @@ -1206,17 +1206,17 @@ format is bytes=startRange-endRange. taskId: string; @doc(""" -An OData $filter clause. For more information on constructing this filter, see -https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-task-files. -""") + An OData $filter clause. For more information on constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-task-files. + """) @query @clientName("filter") $filter?: string; @doc(""" -Whether to list children of the Task directory. This parameter can be used in -combination with the filter parameter to list specific type of files. -""") + Whether to list children of the Task directory. This parameter can be used in + combination with the filter parameter to list specific type of files. + """) @query recursive?: boolean; }, @@ -1225,9 +1225,9 @@ combination with the filter parameter to list specific type of files. @summary("Adds a user Account to the specified Compute Node.") @doc(""" -You can add a user Account to a Compute Node only when it is in the idle or -running state. -""") + You can add a user Account to a Compute Node only when it is in the idle or + running state. + """) @route("/pools/{poolId}/nodes/{nodeId}/users") @clientName("createNodeUserInternal", "java") createNodeUser is CreateOperation< @@ -1249,9 +1249,9 @@ running state. @summary("Deletes a user Account from the specified Compute Node.") @doc(""" -You can delete a user Account to a Compute Node only when it is in the idle or -running state. -""") + You can delete a user Account to a Compute Node only when it is in the idle or + running state. + """) @route("/pools/{poolId}/nodes/{nodeId}/users/{userName}") @clientName("deleteNodeUserInternal", "java") deleteNodeUser is DeleteOperation< @@ -1276,14 +1276,14 @@ running state. >; @summary(""" -Updates the password and expiration time of a user Account on the specified Compute Node. -""") + Updates the password and expiration time of a user Account on the specified Compute Node. + """) @doc(""" -This operation replaces of all the updatable properties of the Account. For -example, if the expiryTime element is not specified, the current value is -replaced with the default value, not left unmodified. You can update a user -Account on a Compute Node only when it is in the idle or running state. -""") + This operation replaces of all the updatable properties of the Account. For + example, if the expiryTime element is not specified, the current value is + replaced with the default value, not left unmodified. You can update a user + Account on a Compute Node only when it is in the idle or running state. + """) @route("/pools/{poolId}/nodes/{nodeId}/users/{userName}") @clientName("replaceNodeUserInternal", "java") replaceNodeUser is ReplaceOperation< @@ -1354,9 +1354,9 @@ Account on a Compute Node only when it is in the idle or running state. @summary("Disables Task scheduling on the specified Compute Node.") @doc(""" -You can disable Task scheduling on a Compute Node only if its current -scheduling state is enabled. -""") + You can disable Task scheduling on a Compute Node only if its current + scheduling state is enabled. + """) @route("/pools/{poolId}/nodes/{nodeId}/disablescheduling") @clientName("disableNodeSchedulingInternal", "java") disableNodeScheduling is PostOperation< @@ -1378,9 +1378,9 @@ scheduling state is enabled. @summary("Enables Task scheduling on the specified Compute Node.") @doc(""" -You can enable Task scheduling on a Compute Node only if its current scheduling -state is disabled -""") + You can enable Task scheduling on a Compute Node only if its current scheduling + state is disabled + """) @route("/pools/{poolId}/nodes/{nodeId}/enablescheduling") @clientName("enableNodeSchedulingInternal", "java") enableNodeScheduling is PostOperation< @@ -1398,10 +1398,10 @@ state is disabled @summary("Gets the settings required for remote login to a Compute Node.") @doc(""" -Before you can remotely login to a Compute Node using the remote login -settings, you must create a user Account on the Compute Node. This API can be -invoked only on Pools created with the virtual machine configuration property. -""") + Before you can remotely login to a Compute Node using the remote login + settings, you must create a user Account on the Compute Node. This API can be + invoked only on Pools created with the virtual machine configuration property. + """) @route("/pools/{poolId}/nodes/{nodeId}/remoteloginsettings") @clientName("getNodeRemoteLoginSettingsInternal", "java") getNodeRemoteLoginSettings is ReadOperation< @@ -1418,15 +1418,15 @@ invoked only on Pools created with the virtual machine configuration property. >; @summary(""" -Upload Azure Batch service log files from the specified Compute Node to Azure -Blob Storage. -""") + Upload Azure Batch service log files from the specified Compute Node to Azure + Blob Storage. + """) @doc(""" -This is for gathering Azure Batch service log files in an automated fashion -from Compute Nodes if you are experiencing an error and wish to escalate to -Azure support. The Azure Batch service log files should be shared with Azure -support to aid in debugging issues with the Batch service. -""") + This is for gathering Azure Batch service log files in an automated fashion + from Compute Nodes if you are experiencing an error and wish to escalate to + Azure support. The Azure Batch service log files should be shared with Azure + support to aid in debugging issues with the Batch service. + """) @route("/pools/{poolId}/nodes/{nodeId}/uploadbatchservicelogs") @clientName("uploadNodeLogsInternal", "java") uploadNodeLogs is PostOperation< @@ -1436,9 +1436,9 @@ support to aid in debugging issues with the Batch service. poolId: string; @doc(""" -The ID of the Compute Node for which you want to get the Remote Desktop -Protocol file. -""") + The ID of the Compute Node for which you want to get the Remote Desktop + Protocol file. + """) @path nodeId: string; @@ -1460,9 +1460,9 @@ Protocol file. poolId: string; @doc(""" -An OData $filter clause. For more information on constructing this filter, see -https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-nodes-in-a-pool. -""") + An OData $filter clause. For more information on constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-nodes-in-a-pool. + """) @query @clientName("filter") $filter?: string; @@ -1492,8 +1492,8 @@ https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#li nodeId: string; @doc(""" -The name of the Compute Node Extension that you want to get information about. -""") + The name of the Compute Node Extension that you want to get information about. + """) @path extensionName: string; @@ -1538,11 +1538,11 @@ The name of the Compute Node Extension that you want to get information about. deleteNodeFile is DeleteOperation< BatchNodeFileClientPathContent & { @doc(""" -Whether to delete children of a directory. If the filePath parameter represents -a directory instead of a file, you can set recursive to true to delete the -directory and all of the files and subdirectories in it. If recursive is false -then the directory must be empty or deletion will fail. -""") + Whether to delete children of a directory. If the filePath parameter represents + a directory instead of a file, you can set recursive to true to delete the + directory and all of the files and subdirectories in it. If recursive is false + then the directory must be empty or deletion will fail. + """) @query recursive?: boolean; }, @@ -1560,9 +1560,9 @@ then the directory must be empty or deletion will fail. BatchNodeFileClientPathContent & BatchModifiedSinceHeaders & { @doc(""" -The byte range to be retrieved. The default is to retrieve the entire file. The -format is bytes=startRange-endRange. -""") + The byte range to be retrieved. The default is to retrieve the entire file. The + format is bytes=startRange-endRange. + """) @header `ocp-range`?: string; }, @@ -1601,9 +1601,9 @@ format is bytes=startRange-endRange. nodeId: string; @doc(""" -An OData $filter clause. For more information on constructing this filter, see -https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-compute-node-files. -""") + An OData $filter clause. For more information on constructing this filter, see + https://docs.microsoft.com/en-us/rest/api/batchservice/odata-filters-in-batch#list-compute-node-files. + """) @query @clientName("filter") $filter?: string; diff --git a/specification/codesigning/CodeSigning.Management/CertificateProfile.tsp b/specification/codesigning/CodeSigning.Management/CertificateProfile.tsp index 55ebaa3d6001..fdcb066344e6 100644 --- a/specification/codesigning/CodeSigning.Management/CertificateProfile.tsp +++ b/specification/codesigning/CodeSigning.Management/CertificateProfile.tsp @@ -27,8 +27,13 @@ interface CertificateProfiles { @doc("Get details of a certificate profile.") get is ArmResourceRead; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" @doc("Create a certificate profile.") - create is ArmResourceCreateOrReplaceAsync; + @Azure.Core.useFinalStateVia("azure-async-operation") + create is ArmResourceCreateOrReplaceAsync< + CertificateProfile, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; @doc("Delete a certificate profile.") delete is ArmResourceDeleteWithoutOkAsync; diff --git a/specification/codesigning/CodeSigning.Management/CodeSigningAccount.tsp b/specification/codesigning/CodeSigning.Management/CodeSigningAccount.tsp index 4355346b7284..2ba44542c4ba 100644 --- a/specification/codesigning/CodeSigning.Management/CodeSigningAccount.tsp +++ b/specification/codesigning/CodeSigning.Management/CodeSigningAccount.tsp @@ -25,8 +25,13 @@ interface CodeSigningAccounts { @doc("Get a trusted Signing Account.") get is ArmResourceRead; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" @doc("Create a trusted Signing Account.") - create is ArmResourceCreateOrReplaceAsync; + @Azure.Core.useFinalStateVia("azure-async-operation") + create is ArmResourceCreateOrReplaceAsync< + CodeSigningAccount, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; @doc("Update a trusted signing account.") @parameterVisibility diff --git a/specification/codesigning/resource-manager/Microsoft.CodeSigning/preview/2024-02-05-preview/codeSigningAccount.json b/specification/codesigning/resource-manager/Microsoft.CodeSigning/preview/2024-02-05-preview/codeSigningAccount.json index c39c884ded31..123faa923f38 100644 --- a/specification/codesigning/resource-manager/Microsoft.CodeSigning/preview/2024-02-05-preview/codeSigningAccount.json +++ b/specification/codesigning/resource-manager/Microsoft.CodeSigning/preview/2024-02-05-preview/codeSigningAccount.json @@ -832,11 +832,7 @@ "properties": { "$ref": "#/definitions/CertificateProfileProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -1074,11 +1070,7 @@ "properties": { "$ref": "#/definitions/CodeSigningAccountProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ diff --git a/specification/cognitiveservices/AnomalyDetector/main.tsp b/specification/cognitiveservices/AnomalyDetector/main.tsp index 5172ffb61695..896abafe657d 100644 --- a/specification/cognitiveservices/AnomalyDetector/main.tsp +++ b/specification/cognitiveservices/AnomalyDetector/main.tsp @@ -18,9 +18,9 @@ using TypeSpec.Versioning; "The Anomaly Detector API detects anomalies automatically in time series data. It supports two kinds of mode, one is for stateless using, another is for stateful using. In stateless mode, there are three functionalities. Entire Detect is for detecting the whole series with model trained by the time series, Last Detect is detecting last point with model trained by points before. ChangePoint Detect is for detecting trend changes in time series. In stateful mode, user can store time series, the stored time series will be used for detection anomalies. Under this mode, user can still use the above three functionalities by only giving a time range without preparing time series in client side. Besides the above three functionalities, stateful model also provide group based detection and labeling service. By leveraging labeling service user can provide labels for each detection result, these labels will be used for retuning or regenerating detection models. Inconsistency detection is a kind of group based detection, this detection will find inconsistency ones in a set of time series. By using anomaly detector service, business customers can discover incidents and establish a logic flow for root cause analysis.", { @doc(""" -Supported Azure Cognitive Services endpoints (protocol and host name, such as -https://westus2.api.cognitive.microsoft.com). -""") + Supported Azure Cognitive Services endpoints (protocol and host name, such as + https://westus2.api.cognitive.microsoft.com). + """) Endpoint: string, @doc("Api Version") @@ -29,23 +29,23 @@ https://westus2.api.cognitive.microsoft.com). } ) @doc(""" -The Anomaly Detector API detects anomalies automatically in time series data. -It supports both a stateless detection mode and a -stateful detection mode. In stateless mode, there are three functionalities. Entire -Detect is for detecting the whole series, with the model trained by the time series. -Last Detect is for detecting the last point, with the model trained by points before. -ChangePoint Detect is for detecting trend changes in the time series. In stateful -mode, the user can store time series. The stored time series will be used for -detection anomalies. In this mode, the user can still use the preceding three -functionalities by only giving a time range without preparing time series on the -client side. Besides the preceding three functionalities, the stateful model -provides group-based detection and labeling services. By using the labeling -service, the user can provide labels for each detection result. These labels will be -used for retuning or regenerating detection models. Inconsistency detection is -a kind of group-based detection that finds inconsistencies in -a set of time series. By using the anomaly detector service, business customers can -discover incidents and establish a logic flow for root cause analysis. -""") + The Anomaly Detector API detects anomalies automatically in time series data. + It supports both a stateless detection mode and a + stateful detection mode. In stateless mode, there are three functionalities. Entire + Detect is for detecting the whole series, with the model trained by the time series. + Last Detect is for detecting the last point, with the model trained by points before. + ChangePoint Detect is for detecting trend changes in the time series. In stateful + mode, the user can store time series. The stored time series will be used for + detection anomalies. In this mode, the user can still use the preceding three + functionalities by only giving a time range without preparing time series on the + client side. Besides the preceding three functionalities, the stateful model + provides group-based detection and labeling services. By using the labeling + service, the user can provide labels for each detection result. These labels will be + used for retuning or regenerating detection models. Inconsistency detection is + a kind of group-based detection that finds inconsistencies in + a set of time series. By using the anomaly detector service, business customers can + discover incidents and establish a logic flow for root cause analysis. + """) namespace AnomalyDetector; @doc("The secret key for your Azure Cognitive Services subscription.") diff --git a/specification/cognitiveservices/AnomalyDetector/multivariate/models.tsp b/specification/cognitiveservices/AnomalyDetector/multivariate/models.tsp index 2c07097dba56..e7e03d667745 100644 --- a/specification/cognitiveservices/AnomalyDetector/multivariate/models.tsp +++ b/specification/cognitiveservices/AnomalyDetector/multivariate/models.tsp @@ -90,9 +90,9 @@ model MultivariateBatchDetectionResultSummary { variableStates?: VariableState[]; @doc(""" -Detection request for batch inference. This is an asynchronous inference that -will need another API to get detection results. -""") + Detection request for batch inference. This is an asynchronous inference that + will need another API to get detection results. + """) setupInfo: MultivariateBatchDetectionOptions; } @@ -128,35 +128,35 @@ model VariableState { } @doc(""" -Detection request for batch inference. This is an asynchronous inference that -will need another API to get detection results. -""") + Detection request for batch inference. This is an asynchronous inference that + will need another API to get detection results. + """) model MultivariateBatchDetectionOptions { @doc(""" -Source link to the input data to indicate an accessible Azure Storage URI. -It either points to an Azure Blob Storage folder or points to a CSV file in -Azure Blob Storage, based on your data schema selection. The data schema should -be exactly the same as those used in the training phase. The input data must -contain at least slidingWindow entries preceding the start time of the data -to be detected. -""") + Source link to the input data to indicate an accessible Azure Storage URI. + It either points to an Azure Blob Storage folder or points to a CSV file in + Azure Blob Storage, based on your data schema selection. The data schema should + be exactly the same as those used in the training phase. The input data must + contain at least slidingWindow entries preceding the start time of the data + to be detected. + """) dataSource: url; @doc(""" -Number of top contributed variables for one anomalous time stamp in the response. -""") + Number of top contributed variables for one anomalous time stamp in the response. + """) topContributorCount?: int32 = 10; @doc(""" -Start date/time of data for detection, which should -be in ISO 8601 format. -""") + Start date/time of data for detection, which should + be in ISO 8601 format. + """) startTime: utcDateTime; @doc(""" -End date/time of data for detection, which should -be in ISO 8601 format. -""") + End date/time of data for detection, which should + be in ISO 8601 format. + """) endTime: utcDateTime; } @@ -178,16 +178,16 @@ model AnomalyValue { isAnomaly: boolean; @doc(""" -Indicates the significance of the anomaly. The higher the severity, the more -significant the anomaly is. -""") + Indicates the significance of the anomaly. The higher the severity, the more + significant the anomaly is. + """) @minValue(0.0) @maxValue(1.0) severity: float32; @doc(""" -Raw anomaly score of severity, to help indicate the degree of abnormality. -""") + Raw anomaly score of severity, to help indicate the degree of abnormality. + """) @minValue(0.0) @maxValue(2.0) score: float32; @@ -202,9 +202,9 @@ model AnomalyInterpretation { variable?: string; @doc(""" -This score shows the percentage that contributes to the anomalous time stamp. It's a -number between 0 and 1. -""") + This score shows the percentage that contributes to the anomalous time stamp. It's a + number between 0 and 1. + """) contributionScore?: float32; @doc("Correlation changes among the anomalous variables.") @@ -218,46 +218,46 @@ model CorrelationChanges { } @doc(""" -Training result of a model, including its status, errors, and diagnostics -information. -""") + Training result of a model, including its status, errors, and diagnostics + information. + """) model ModelInfo { @doc(""" -Source link to the input data to indicate an accessible Azure Storage URI. -It either points to an Azure Blob Storage folder or points to a CSV file in -Azure Blob Storage, based on your data schema selection. -""") + Source link to the input data to indicate an accessible Azure Storage URI. + It either points to an Azure Blob Storage folder or points to a CSV file in + Azure Blob Storage, based on your data schema selection. + """) dataSource: url; @doc(""" -Data schema of the input data source. The default -is OneTable. -""") + Data schema of the input data source. The default + is OneTable. + """) dataSchema?: DataSchema; @doc(""" -Start date/time of training data, which should be -in ISO 8601 format. -""") + Start date/time of training data, which should be + in ISO 8601 format. + """) startTime: utcDateTime; @doc(""" -End date/time of training data, which should be -in ISO 8601 format. -""") + End date/time of training data, which should be + in ISO 8601 format. + """) endTime: utcDateTime; @doc(""" -Display name of the model. Maximum length is 24 -characters. -""") + Display name of the model. Maximum length is 24 + characters. + """) @maxLength(24) displayName?: string; @doc(""" -Number of previous time stamps that will be used to -detect whether the time stamp is an anomaly or not. -""") + Number of previous time stamps that will be used to + detect whether the time stamp is an anomaly or not. + """) slidingWindow?: int32; @doc("Manner of aligning multiple variables.") @@ -279,15 +279,15 @@ detect whether the time stamp is an anomaly or not. @doc("Manner of aligning multiple variables.") model AlignPolicy { @doc(""" -Field that indicates how to align different variables to the same -time range. -""") + Field that indicates how to align different variables to the same + time range. + """) alignMode?: AlignMode; #suppress "@azure-tools/typespec-azure-core/casing-style" "Service uppercases common acronyms like NA." @doc(""" -Field that indicates how missing values will be filled. -""") + Field that indicates how missing values will be filled. + """) fillNAMethod?: FillNAMethod; @doc("Field that's required when fillNAMethod is Fixed.") @@ -306,21 +306,21 @@ model DiagnosticsInfo { @doc("Model status.") model ModelState { @doc(""" -Number of passes of the entire training dataset that the -algorithm has completed. -""") + Number of passes of the entire training dataset that the + algorithm has completed. + """) epochIds?: int32[]; @doc(""" -List of metrics used to assess how the model fits the training data for each -epoch. -""") + List of metrics used to assess how the model fits the training data for each + epoch. + """) trainLosses?: float32[]; @doc(""" -List of metrics used to assess how the model fits the validation set for each -epoch. -""") + List of metrics used to assess how the model fits the validation set for each + epoch. + """) validationLosses?: float32[]; @doc("Latency for each epoch.") @@ -342,9 +342,9 @@ model AnomalyDetectionModel { lastUpdatedTime: utcDateTime; @doc(""" -Training result of a model, including its status, errors, and diagnostics -information. -""") + Training result of a model, including its status, errors, and diagnostics + information. + """) modelInfo?: ModelInfo; } @@ -369,16 +369,16 @@ model ModelList { @doc("Request of the last detection.") model MultivariateLastDetectionOptions { @doc(""" -Contains the inference data, including the name, time stamps (ISO 8601), and -values of variables. -""") + Contains the inference data, including the name, time stamps (ISO 8601), and + values of variables. + """) variables: VariableValues[]; @doc(""" -Number of top contributed -variables for one anomalous time stamp in the response. The default is -10. -""") + Number of top contributed + variables for one anomalous time stamp in the response. The default is + 10. + """) topContributorCount?: int32 = 10; } diff --git a/specification/cognitiveservices/AnomalyDetector/multivariate/routes.tsp b/specification/cognitiveservices/AnomalyDetector/multivariate/routes.tsp index 9ef969f400c8..2540235fb63e 100644 --- a/specification/cognitiveservices/AnomalyDetector/multivariate/routes.tsp +++ b/specification/cognitiveservices/AnomalyDetector/multivariate/routes.tsp @@ -28,9 +28,9 @@ op MultivariateServiceAction( @route("/multivariate/detect-batch/{resultId}") @summary("Get Multivariate Anomaly Detection Result") @doc(""" -For asynchronous inference, get a multivariate anomaly detection result based on the -resultId value that the BatchDetectAnomaly API returns. -""") + For asynchronous inference, get a multivariate anomaly detection result based on the + resultId value that the BatchDetectAnomaly API returns. + """) op getMultivariateBatchDetectionResult( @doc("ID of a batch detection result.") @path @@ -42,17 +42,17 @@ op getMultivariateBatchDetectionResult( @route("/multivariate/models") @summary("Train a Multivariate Anomaly Detection Model") @doc(""" -Create and train a multivariate anomaly detection model. The request must -include a source parameter to indicate an Azure Blob -Storage URI that's accessible to the service. There are two types of data input. The Blob Storage URI can point to an Azure Blob -Storage folder that contains multiple CSV files, where each CSV file has -two columns, time stamp and variable. Or the Blob Storage URI can point to a single blob that contains a CSV file that has all the variables and a -time stamp column. -The model object will be created and returned in the response, but the -training process happens asynchronously. To check the training status, call -GetMultivariateModel with the modelId value and check the status field in the -modelInfo object. -""") + Create and train a multivariate anomaly detection model. The request must + include a source parameter to indicate an Azure Blob + Storage URI that's accessible to the service. There are two types of data input. The Blob Storage URI can point to an Azure Blob + Storage folder that contains multiple CSV files, where each CSV file has + two columns, time stamp and variable. Or the Blob Storage URI can point to a single blob that contains a CSV file that has all the variables and a + time stamp column. + The model object will be created and returned in the response, but the + training process happens asynchronously. To check the training status, call + GetMultivariateModel with the modelId value and check the status field in the + modelInfo object. + """) op trainMultivariateModel is MultivariateServiceAction< // TParams { @@ -111,9 +111,9 @@ op deleteMultivariateModel( // it does not support an api-version in the path defined in the @server decorator. @summary("Get Multivariate Model") @doc(""" -Get detailed information about the multivariate model, including the training status -and variables used in the model. -""") + Get detailed information about the multivariate model, including the training status + and variables used in the model. + """) @get @route("/multivariate/models/{modelId}") op getMultivariateModel( @@ -130,13 +130,13 @@ op getMultivariateModel( @route("/multivariate/models/{modelId}:detect-batch") @summary("Detect Multivariate Anomaly") @doc(""" -Submit a multivariate anomaly detection task with the modelId value of a trained model -and inference data. The input schema should be the same with the training -request. The request will finish asynchronously and return a resultId value to -query the detection result. The request should be a source link to indicate an -externally accessible Azure Storage URI that either points to an Azure Blob -Storage folder or points to a CSV file in Azure Blob Storage. -""") + Submit a multivariate anomaly detection task with the modelId value of a trained model + and inference data. The input schema should be the same with the training + request. The request will finish asynchronously and return a resultId value to + query the detection result. The request should be a source link to indicate an + externally accessible Azure Storage URI that either points to an Azure Blob + Storage folder or points to a CSV file in Azure Blob Storage. + """) op detectMultivariateBatchAnomaly( @doc("Model identifier.") @path @@ -166,11 +166,11 @@ op detectMultivariateBatchAnomaly( @route("/multivariate/models/{modelId}:detect-last") @summary("Detect anomalies in the last point of the request body") @doc(""" -Submit a multivariate anomaly detection task with the modelId value of a trained model -and inference data. The inference data should be put into the request body in -JSON format. The request will finish synchronously and return the detection -immediately in the response body. -""") + Submit a multivariate anomaly detection task with the modelId value of a trained model + and inference data. The inference data should be put into the request body in + JSON format. The request will finish synchronously and return the detection + immediately in the response body. + """) op detectMultivariateLastAnomaly( @doc("Model identifier.") @path diff --git a/specification/cognitiveservices/AnomalyDetector/tspconfig.yaml b/specification/cognitiveservices/AnomalyDetector/tspconfig.yaml index 7350f3561ad4..eee7c0c25c1d 100644 --- a/specification/cognitiveservices/AnomalyDetector/tspconfig.yaml +++ b/specification/cognitiveservices/AnomalyDetector/tspconfig.yaml @@ -17,6 +17,7 @@ linter: options: "@azure-tools/typespec-autorest": azure-resource-provider-folder: "data-plane" + emit-lro-options: "none" examples-directory: examples omit-unreachable-types: true output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/openapi.json" diff --git a/specification/cognitiveservices/AnomalyDetector/univariate/models.tsp b/specification/cognitiveservices/AnomalyDetector/univariate/models.tsp index 002e80226f66..0415bf4a4538 100644 --- a/specification/cognitiveservices/AnomalyDetector/univariate/models.tsp +++ b/specification/cognitiveservices/AnomalyDetector/univariate/models.tsp @@ -52,53 +52,53 @@ union TimeGranularity { @doc("Request of the entire or last anomaly detection.") model UnivariateDetectionOptions { @doc(""" -Time series data points. Points should be sorted by time stamp in ascending -order to match the anomaly detection result. If the data is not sorted -correctly or there's a duplicated time stamp, the API won't work. In such -a case, an error message is returned. -""") + Time series data points. Points should be sorted by time stamp in ascending + order to match the anomaly detection result. If the data is not sorted + correctly or there's a duplicated time stamp, the API won't work. In such + a case, an error message is returned. + """) series: TimeSeriesPoint[]; @doc(""" -Argument that indicates time granularity. If granularity is not present, the value -is none by default. If granularity is none, the time stamp property in the time -series point can be absent. -""") + Argument that indicates time granularity. If granularity is not present, the value + is none by default. If granularity is none, the time stamp property in the time + series point can be absent. + """) granularity?: TimeGranularity; @doc(""" -A custom interval is used to set a nonstandard time interval. For example, if the -series is 5 minutes, the request can be set as {"granularity":"minutely", -"customInterval":5}. -""") + A custom interval is used to set a nonstandard time interval. For example, if the + series is 5 minutes, the request can be set as {"granularity":"minutely", + "customInterval":5}. + """) customInterval?: int32; @doc(""" -Argument that indicates the periodic value of a time series. If the value is null or -is not present, the API determines the period automatically. -""") + Argument that indicates the periodic value of a time series. If the value is null or + is not present, the API determines the period automatically. + """) period?: int32; @doc("Argument that indicates an advanced model parameter. It's the maximum anomaly ratio in a time series.") maxAnomalyRatio?: float32; @doc(""" -Argument that indicates an advanced model parameter between 0 and 99. The lower the value -is, the larger the margin value is, which means fewer anomalies will be -accepted. -""") + Argument that indicates an advanced model parameter between 0 and 99. The lower the value + is, the larger the margin value is, which means fewer anomalies will be + accepted. + """) sensitivity?: int32; @doc(""" -Specifies how to deal with missing values in the input series. It's used -when granularity is not \"none\". -""") + Specifies how to deal with missing values in the input series. It's used + when granularity is not \"none\". + """) imputeMode?: ImputeMode; @doc(""" -Specifies the value to fill. It's used when granularity is not \"none\" -and imputeMode is \"fixed\". -""") + Specifies the value to fill. It's used when granularity is not \"none\" + and imputeMode is \"fixed\". + """) imputeFixedValue?: float32; } @@ -114,63 +114,63 @@ model TimeSeriesPoint { @doc("Response of the entire anomaly detection.") model UnivariateEntireDetectionResult { @doc(""" -Frequency extracted from the series. Zero means no recurrent pattern has been -found. -""") + Frequency extracted from the series. Zero means no recurrent pattern has been + found. + """) period: int32; @doc(""" -Expected value for each input point. The index of the -array is consistent with the input series. -""") + Expected value for each input point. The index of the + array is consistent with the input series. + """) expectedValues: float32[]; @doc(""" -Upper margin of each input point. UpperMargin is used to -calculate upperBoundary, which is equal to expectedValue + (100 - -marginScale)*upperMargin. Anomalies in the response can be filtered by -upperBoundary and lowerBoundary. Adjusting the marginScale value can help filter less -significant anomalies on the client side. The index of the array is -consistent with the input series. -""") + Upper margin of each input point. UpperMargin is used to + calculate upperBoundary, which is equal to expectedValue + (100 - + marginScale)*upperMargin. Anomalies in the response can be filtered by + upperBoundary and lowerBoundary. Adjusting the marginScale value can help filter less + significant anomalies on the client side. The index of the array is + consistent with the input series. + """) upperMargins: float32[]; @doc(""" -Lower margin of each input point. LowerMargin is used to -calculate lowerBoundary, which is equal to expectedValue - (100 - -marginScale)*lowerMargin. Points between the boundary can be marked as normal -ones on the client side. The index of the array is consistent with the input -series. -""") + Lower margin of each input point. LowerMargin is used to + calculate lowerBoundary, which is equal to expectedValue - (100 - + marginScale)*lowerMargin. Points between the boundary can be marked as normal + ones on the client side. The index of the array is consistent with the input + series. + """) lowerMargins: float32[]; @doc(""" -Anomaly properties for each input point. True means an -anomaly (either negative or positive) has been detected. The index of the array -is consistent with the input series. -""") + Anomaly properties for each input point. True means an + anomaly (either negative or positive) has been detected. The index of the array + is consistent with the input series. + """) isAnomaly: boolean[]; @doc(""" -Anomaly status in a negative direction for each input -point. True means a negative anomaly has been detected. A negative anomaly -means the point is detected as an anomaly and its real value is smaller than -the expected one. The index of the array is consistent with the input series. -""") + Anomaly status in a negative direction for each input + point. True means a negative anomaly has been detected. A negative anomaly + means the point is detected as an anomaly and its real value is smaller than + the expected one. The index of the array is consistent with the input series. + """) isNegativeAnomaly: boolean[]; @doc(""" -Anomaly status in a positive direction for each input -point. True means a positive anomaly has been detected. A positive anomaly -means the point is detected as an anomaly and its real value is larger than the -expected one. The index of the array is consistent with the input series. -""") + Anomaly status in a positive direction for each input + point. True means a positive anomaly has been detected. A positive anomaly + means the point is detected as an anomaly and its real value is larger than the + expected one. The index of the array is consistent with the input series. + """) isPositiveAnomaly: boolean[]; @doc(""" -Severity score for each input point. The larger the value is, the more -severe the anomaly is. For normal points, the severity is always 0. -""") + Severity score for each input point. The larger the value is, the more + severe the anomaly is. For normal points, the severity is always 0. + """) severity?: float32[]; } @@ -191,9 +191,9 @@ model AnomalyDetectorError { @doc("Response of the last anomaly detection.") model UnivariateLastDetectionResult { @doc(""" -Frequency extracted from the series. Zero means no recurrent pattern has been -found. -""") + Frequency extracted from the series. Zero means no recurrent pattern has been + found. + """) period: int32; @doc("Suggested input series points needed for detecting the latest point.") @@ -203,99 +203,99 @@ found. expectedValue: float32; @doc(""" -Upper margin of the latest point. UpperMargin is used to calculate -upperBoundary, which is equal to expectedValue + (100 - marginScale)*upperMargin. -If the value of latest point is between upperBoundary and lowerBoundary, it -should be treated as a normal value. Adjusting the marginScale value enables the anomaly -status of the latest point to be changed. -""") + Upper margin of the latest point. UpperMargin is used to calculate + upperBoundary, which is equal to expectedValue + (100 - marginScale)*upperMargin. + If the value of latest point is between upperBoundary and lowerBoundary, it + should be treated as a normal value. Adjusting the marginScale value enables the anomaly + status of the latest point to be changed. + """) upperMargin: float32; @doc(""" -Lower margin of the latest point. LowerMargin is used to calculate -lowerBoundary, which is equal to expectedValue - (100 - marginScale)*lowerMargin. -""") + Lower margin of the latest point. LowerMargin is used to calculate + lowerBoundary, which is equal to expectedValue - (100 - marginScale)*lowerMargin. + """) lowerMargin: float32; @doc(""" -Anomaly status of the latest point. True means the latest point is an anomaly, -either in the negative direction or in the positive direction. -""") + Anomaly status of the latest point. True means the latest point is an anomaly, + either in the negative direction or in the positive direction. + """) isAnomaly: boolean; @doc(""" -Anomaly status of the latest point in a negative direction. True means the latest -point is an anomaly and its real value is smaller than the expected one. -""") + Anomaly status of the latest point in a negative direction. True means the latest + point is an anomaly and its real value is smaller than the expected one. + """) isNegativeAnomaly: boolean; @doc(""" -Anomaly status of the latest point in a positive direction. True means the latest -point is an anomaly and its real value is larger than the expected one. -""") + Anomaly status of the latest point in a positive direction. True means the latest + point is an anomaly and its real value is larger than the expected one. + """) isPositiveAnomaly: boolean; @doc(""" -Severity score for the last input point. The larger the value is, the more -severe the anomaly is. For normal points, the severity is always 0. -""") + Severity score for the last input point. The larger the value is, the more + severe the anomaly is. For normal points, the severity is always 0. + """) severity?: float32; } @doc("Request of change point detection.") model UnivariateChangePointDetectionOptions { @doc(""" -Time series data points. Points should be sorted by time stamp in ascending -order to match the change point detection result. -""") + Time series data points. Points should be sorted by time stamp in ascending + order to match the change point detection result. + """) series: TimeSeriesPoint[]; @doc(""" -Granularity is used to verify whether the input series is valid. -""") + Granularity is used to verify whether the input series is valid. + """) granularity: TimeGranularity; @doc(""" -A custom interval is used to set a nonstandard time interval. For example, if the -series is 5 minutes, the request can be set as {"granularity":"minutely", -"customInterval":5}. -""") + A custom interval is used to set a nonstandard time interval. For example, if the + series is 5 minutes, the request can be set as {"granularity":"minutely", + "customInterval":5}. + """) customInterval?: int32; @doc(""" -Argument that indicates the periodic value of a time series. If the value is null or -not present, the API will determine the period automatically. -""") + Argument that indicates the periodic value of a time series. If the value is null or + not present, the API will determine the period automatically. + """) period?: int32; @doc(""" -Argument that indicates an advanced model parameter. A default stableTrendWindow value will -be used in detection. -""") + Argument that indicates an advanced model parameter. A default stableTrendWindow value will + be used in detection. + """) stableTrendWindow?: int32; @doc(""" -Argument that indicates an advanced model parameter between 0.0 and 1.0. The lower the -value is, the larger the trend error is, which means less change point will -be accepted. -""") + Argument that indicates an advanced model parameter between 0.0 and 1.0. The lower the + value is, the larger the trend error is, which means less change point will + be accepted. + """) threshold?: float32; } @doc("Response of change point detection.") model UnivariateChangePointDetectionResult { @doc(""" -Frequency extracted from the series. Zero means no recurrent pattern has been -found. -""") + Frequency extracted from the series. Zero means no recurrent pattern has been + found. + """) @visibility("read") period?: int32; @doc(""" -Change point properties for each input point. True means -an anomaly (either negative or positive) has been detected. The index of the -array is consistent with the input series. -""") + Change point properties for each input point. True means + an anomaly (either negative or positive) has been detected. The index of the + array is consistent with the input series. + """) isChangePoint?: boolean[]; @doc("Change point confidence of each point.") diff --git a/specification/cognitiveservices/AnomalyDetector/univariate/routes.tsp b/specification/cognitiveservices/AnomalyDetector/univariate/routes.tsp index 8dd789808bd0..a27284739ded 100644 --- a/specification/cognitiveservices/AnomalyDetector/univariate/routes.tsp +++ b/specification/cognitiveservices/AnomalyDetector/univariate/routes.tsp @@ -20,11 +20,11 @@ op UnivariateServiceAction( @route("timeseries/entire/detect") @summary("Detect anomalies for the entire series in batch.") @doc(""" -This operation generates a model with an entire series. Each point is detected -with the same model. With this method, points before and after a certain point -are used to determine whether it's an anomaly. The entire detection can give the -user an overall status of the time series. -""") + This operation generates a model with an entire series. Each point is detected + with the same model. With this method, points before and after a certain point + are used to determine whether it's an anomaly. The entire detection can give the + user an overall status of the time series. + """) op detectUnivariateEntireSeries is UnivariateServiceAction< // TParams { @@ -41,9 +41,9 @@ op detectUnivariateEntireSeries is UnivariateServiceAction< @route("timeseries/last/detect") @summary("Detect anomaly status of the latest point in time series.") @doc(""" -This operation generates a model by using the points that you sent in to the API -and based on all data to determine whether the last point is anomalous. -""") + This operation generates a model by using the points that you sent in to the API + and based on all data to determine whether the last point is anomalous. + """) op detectUnivariateLastPoint is UnivariateServiceAction< // TParams { diff --git a/specification/cognitiveservices/ContentSafety/main.tsp b/specification/cognitiveservices/ContentSafety/main.tsp index 0624fff0c638..935309543c5c 100644 --- a/specification/cognitiveservices/ContentSafety/main.tsp +++ b/specification/cognitiveservices/ContentSafety/main.tsp @@ -28,9 +28,9 @@ using Azure.Core; "Analyze harmful content", { @doc(""" -Supported Cognitive Services endpoints (protocol and hostname, for example: -https://.cognitiveservices.azure.com). -""") + Supported Cognitive Services endpoints (protocol and hostname, for example: + https://.cognitiveservices.azure.com). + """) endpoint: string, } ) diff --git a/specification/cognitiveservices/ContentSafety/models.tsp b/specification/cognitiveservices/ContentSafety/models.tsp index 00ec88b0f0e9..29746094d9c9 100644 --- a/specification/cognitiveservices/ContentSafety/models.tsp +++ b/specification/cognitiveservices/ContentSafety/models.tsp @@ -293,21 +293,21 @@ model LLMResource { @doc("The request of groundedness detection.") model AnalyzeTextGroundednessOptions { @doc(""" - The domain of the text for analysis. Allowed values: Medical, Generic. - This field is optional, with a default value of Generic. - """) + The domain of the text for analysis. Allowed values: Medical, Generic. + This field is optional, with a default value of Generic. + """) domain?: GroundednessDomain = GroundednessDomain.Generic; @doc(""" - The task type for the text analysis. Type of task: QnA, Summarization. - This field is optional, with a default value of Summarization. - """) + The task type for the text analysis. Type of task: QnA, Summarization. + This field is optional, with a default value of Summarization. + """) task?: GroundednessTask = GroundednessTask.Summarization; @doc(""" - The user's question input in a QnA scenario. - This field is optional, but if the task type is set to QnA, it becomes required. - """) + The user's question input in a QnA scenario. + This field is optional, but if the task type is set to QnA, it becomes required. + """) qna?: QnAOptions; @doc("The specific text that needs to be checked.") @@ -315,21 +315,21 @@ model AnalyzeTextGroundednessOptions { text: string; @doc(""" - Leverages a vast array of grounding sources to validate AI-generated text. - Limit: Restrictions on the total amount of grounding sources that can be analyzed in a single request are 55K characters. - """) + Leverages a vast array of grounding sources to validate AI-generated text. + Limit: Restrictions on the total amount of grounding sources that can be analyzed in a single request are 55K characters. + """) groundingSources: string[]; @doc(""" - A value indicating if the output includes an explanation for the identified groundedness. - This field is optional, with a default value of false. - """) + A value indicating if the output includes an explanation for the identified groundedness. + This field is optional, with a default value of false. + """) reasoning?: boolean; @doc(""" - Connection details for the LLM resource. - This field will be used only when the 'reasoning' field is set to true; otherwise, it will be ignored. - """) + Connection details for the LLM resource. + This field will be used only when the 'reasoning' field is set to true; otherwise, it will be ignored. + """) llmResource?: LLMResource; } @@ -359,9 +359,9 @@ model UngroundednessDetails { length: IndexDetails; @doc(""" - The explanation for detected ungroundedness, enhancing understanding. - Only when the 'reasoning' field in the input is set to true 'reason' field will be returned. - """) + The explanation for detected ungroundedness, enhancing understanding. + Only when the 'reasoning' field in the input is set to true 'reason' field will be returned. + """) reason?: string; } @@ -372,10 +372,10 @@ model AnalyzeTextGroundednessResult { ungroundedDetected: boolean; @doc(""" - Specifies the proportion of the text identified as ungrounded, - expressed as a decimal between 0 and 1, - where 0 indicates no grounded content and 1 indicates entirely grounded content.. - """) + Specifies the proportion of the text identified as ungrounded, + expressed as a decimal between 0 and 1, + where 0 indicates no grounded content and 1 indicates entirely grounded content.. + """) ungroundedPercentage: float32; @doc("Provides insights into ungrounded content with specific examples and percentages.") diff --git a/specification/cognitiveservices/ContentSafety/tspconfig.yaml b/specification/cognitiveservices/ContentSafety/tspconfig.yaml index f3c9fb98dec7..53e30575b6ce 100644 --- a/specification/cognitiveservices/ContentSafety/tspconfig.yaml +++ b/specification/cognitiveservices/ContentSafety/tspconfig.yaml @@ -11,6 +11,7 @@ options: emitter-output-dir: "{project-root}/../" output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/contentsafety.json" azure-resource-provider-folder: "data-plane" + emit-lro-options: "none" examples-directory: ./examples omit-unreachable-types: true "@azure-tools/typespec-python": diff --git a/specification/cognitiveservices/Language.AnalyzeText/tspconfig.yaml b/specification/cognitiveservices/Language.AnalyzeText/tspconfig.yaml index ac7c86eb9562..1dd04139383f 100644 --- a/specification/cognitiveservices/Language.AnalyzeText/tspconfig.yaml +++ b/specification/cognitiveservices/Language.AnalyzeText/tspconfig.yaml @@ -10,6 +10,7 @@ options: "@azure-tools/typespec-autorest": omit-unreachable-types: true azure-resource-provider-folder: "data-plane" + emit-lro-options: "none" emitter-output-dir: "{project-root}/.." examples-directory: "{project-root}/examples" output-file: "{azure-resource-provider-folder}/Language/{version-status}/{version}/analyzetext.json" diff --git a/specification/cognitiveservices/Language.Conversations/tspconfig.yaml b/specification/cognitiveservices/Language.Conversations/tspconfig.yaml index 4d16c73d3258..f6fec2779b39 100644 --- a/specification/cognitiveservices/Language.Conversations/tspconfig.yaml +++ b/specification/cognitiveservices/Language.Conversations/tspconfig.yaml @@ -10,6 +10,7 @@ options: "@azure-tools/typespec-autorest": omit-unreachable-types: true azure-resource-provider-folder: "data-plane" + emit-lro-options: "none" emitter-output-dir: "{project-root}/.." examples-directory: "{project-root}/examples" output-file: "{azure-resource-provider-folder}/Language/{version-status}/{version}/analyzeconversations.json" diff --git a/specification/cognitiveservices/OpenAI.Inference/main.tsp b/specification/cognitiveservices/OpenAI.Inference/main.tsp index a8421a3f7fbf..8ab85d3186ad 100644 --- a/specification/cognitiveservices/OpenAI.Inference/main.tsp +++ b/specification/cognitiveservices/OpenAI.Inference/main.tsp @@ -30,9 +30,9 @@ using TypeSpec.Versioning; "Azure OpenAI APIs for completions and search", { @doc(""" -Supported Cognitive Services endpoints (protocol and hostname, for example: -https://westus.api.cognitive.microsoft.com). -""") + Supported Cognitive Services endpoints (protocol and hostname, for example: + https://westus.api.cognitive.microsoft.com). + """) endpoint: string, } ) diff --git a/specification/cognitiveservices/OpenAI.Inference/models/audio/audio_speech.tsp b/specification/cognitiveservices/OpenAI.Inference/models/audio/audio_speech.tsp index c6c28276b3ba..ffd791b045f6 100644 --- a/specification/cognitiveservices/OpenAI.Inference/models/audio/audio_speech.tsp +++ b/specification/cognitiveservices/OpenAI.Inference/models/audio/audio_speech.tsp @@ -78,8 +78,8 @@ model SpeechGenerationOptions { speed?: float32 = 1.0; @doc(""" - The model to use for this text-to-speech request. - """) + The model to use for this text-to-speech request. + """) // Implementation note: developer-facing specification of deployment or model by clients should be controlled either // via an operation parameter or by this request body field -- but only one of those. This field should be hidden by // clients if operation parameters are used and populated into the request body on an as-needed basis. diff --git a/specification/cognitiveservices/OpenAI.Inference/models/audio/audio_transcription.tsp b/specification/cognitiveservices/OpenAI.Inference/models/audio/audio_transcription.tsp index bed16d4c7338..97b7963aa9ff 100644 --- a/specification/cognitiveservices/OpenAI.Inference/models/audio/audio_transcription.tsp +++ b/specification/cognitiveservices/OpenAI.Inference/models/audio/audio_transcription.tsp @@ -39,78 +39,78 @@ union AudioTranscriptionTimestampGranularity { string, @doc(""" - Indicates that responses should include timing information about each transcribed word. Note that generating word - timestamp information will incur additional response latency. - """) + Indicates that responses should include timing information about each transcribed word. Note that generating word + timestamp information will incur additional response latency. + """) word: "word", @doc(""" - Indicates that responses should include timing and other information about each transcribed audio segment. Audio - segment timestamp information does not incur any additional latency. - """) + Indicates that responses should include timing and other information about each transcribed audio segment. Audio + segment timestamp information does not incur any additional latency. + """) segment: "segment", } @doc(""" -The configuration information for an audio transcription request. -""") + The configuration information for an audio transcription request. + """) @added(ServiceApiVersions.v2024_02_15_Preview) model AudioTranscriptionOptions { @doc(""" - The audio data to transcribe. This must be the binary content of a file in one of the supported media formats: - flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav, webm. - """) + The audio data to transcribe. This must be the binary content of a file in one of the supported media formats: + flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav, webm. + """) @clientName("AudioData", "csharp") file: bytes; @doc(""" - The optional filename or descriptive identifier to associate with with the audio data. - """) + The optional filename or descriptive identifier to associate with with the audio data. + """) // Note: although this isn't explicitly part of the request schema per documentation, it is present via the encoded // content-disposition header for the binary section of the multipart/form-data content. filename?: string; @doc(""" - The requested format of the transcription response data, which will influence the content and detail of the result. - """) + The requested format of the transcription response data, which will influence the content and detail of the result. + """) @encodedName("application/json", "response_format") responseFormat?: AudioTranscriptionFormat; @doc(""" - The primary spoken language of the audio data to be transcribed, supplied as a two-letter ISO-639-1 language code - such as 'en' or 'fr'. - Providing this known input language is optional but may improve the accuracy and/or latency of transcription. - """) + The primary spoken language of the audio data to be transcribed, supplied as a two-letter ISO-639-1 language code + such as 'en' or 'fr'. + Providing this known input language is optional but may improve the accuracy and/or latency of transcription. + """) language?: string; @doc(""" - An optional hint to guide the model's style or continue from a prior audio segment. The written language of the - prompt should match the primary spoken language of the audio data. - """) + An optional hint to guide the model's style or continue from a prior audio segment. The written language of the + prompt should match the primary spoken language of the audio data. + """) prompt?: string; @doc(""" - The sampling temperature, between 0 and 1. - Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. - If set to 0, the model will use log probability to automatically increase the temperature until certain thresholds are hit. - """) + The sampling temperature, between 0 and 1. + Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. + If set to 0, the model will use log probability to automatically increase the temperature until certain thresholds are hit. + """) temperature?: float32; @doc(""" - The timestamp granularities to populate for this transcription. - `response_format` must be set `verbose_json` to use timestamp granularities. - Either or both of these options are supported: `word`, or `segment`. - Note: There is no additional latency for segment timestamps, but generating word timestamps incurs additional latency. - """) + The timestamp granularities to populate for this transcription. + `response_format` must be set `verbose_json` to use timestamp granularities. + Either or both of these options are supported: `word`, or `segment`. + Note: There is no additional latency for segment timestamps, but generating word timestamps incurs additional latency. + """) @added(ServiceApiVersions.v2024_04_01_Preview) @encodedName("application/json", "timestamp_granularities") - timestampGranularities?: AudioTranscriptionTimestampGranularity[] = [ + timestampGranularities?: AudioTranscriptionTimestampGranularity[] = #[ AudioTranscriptionTimestampGranularity.segment ]; @doc(""" - The model to use for this transcription request. - """) + The model to use for this transcription request. + """) // Implementation note: developer-facing specification of deployment or model by clients should be controlled either // via an operation parameter or by this request body field -- but only one of those. This field should be hidden by // clients if operation parameters are used and populated into the request body on an as-needed basis. @@ -119,10 +119,10 @@ model AudioTranscriptionOptions { } @doc(""" -Extended information about a single segment of transcribed audio data. -Segments generally represent roughly 5-10 seconds of speech. Segment boundaries typically occur between words but not -necessarily sentences. -""") + Extended information about a single segment of transcribed audio data. + Segments generally represent roughly 5-10 seconds of speech. Segment boundaries typically occur between words but not + necessarily sentences. + """) @added(ServiceApiVersions.v2024_02_15_Preview) model AudioTranscriptionSegment { @doc("The 0-based index of this segment within a transcription.") @@ -160,12 +160,12 @@ model AudioTranscriptionSegment { tokens: int32[]; @doc(""" - The seek position associated with the processing of this audio segment. - Seek positions are expressed as hundredths of seconds. - The model may process several segments from a single seek position, so while the seek position will never represent - a later time than the segment's start, the segment's start may represent a significantly later time than the - segment's associated seek position. - """) + The seek position associated with the processing of this audio segment. + Seek positions are expressed as hundredths of seconds. + The model may process several segments from a single seek position, so while the seek position will never represent + a later time than the segment's start, the segment's start may represent a significantly later time than the + segment's associated seek position. + """) seek: int32; } @@ -195,9 +195,9 @@ model AudioTranscription { task?: AudioTaskLabel; @doc(""" - The spoken language that was detected in the transcribed audio data. - This is expressed as a two-letter ISO-639-1 language code like 'en' or 'fr'. - """) + The spoken language that was detected in the transcribed audio data. + This is expressed as a two-letter ISO-639-1 language code like 'en' or 'fr'. + """) language?: string; @doc("The total duration of the audio processed to produce accompanying transcription information.") @@ -205,13 +205,13 @@ model AudioTranscription { duration?: duration; @doc(""" - A collection of information about the timing, probabilities, and other detail of each processed audio segment. - """) + A collection of information about the timing, probabilities, and other detail of each processed audio segment. + """) segments?: AudioTranscriptionSegment[]; @doc(""" - A collection of information about the timing of each processed word. - """) + A collection of information about the timing of each processed word. + """) @added(ServiceApiVersions.v2024_04_01_Preview) words?: AudioTranscriptionWord[]; } diff --git a/specification/cognitiveservices/OpenAI.Inference/models/audio/audio_translation.tsp b/specification/cognitiveservices/OpenAI.Inference/models/audio/audio_translation.tsp index 35bc3ee58384..9c9733e9135d 100644 --- a/specification/cognitiveservices/OpenAI.Inference/models/audio/audio_translation.tsp +++ b/specification/cognitiveservices/OpenAI.Inference/models/audio/audio_translation.tsp @@ -34,46 +34,46 @@ union AudioTranslationFormat { } @doc(""" -The configuration information for an audio translation request. -""") + The configuration information for an audio translation request. + """) @added(ServiceApiVersions.v2024_02_15_Preview) model AudioTranslationOptions { @doc(""" - The audio data to translate. This must be the binary content of a file in one of the supported media formats: - flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav, webm. - """) + The audio data to translate. This must be the binary content of a file in one of the supported media formats: + flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav, webm. + """) @clientName("AudioData", "csharp") file: bytes; @doc(""" - The optional filename or descriptive identifier to associate with with the audio data. - """) + The optional filename or descriptive identifier to associate with with the audio data. + """) // Note: although this isn't explicitly part of the request schema per documentation, it is present via the encoded // content-disposition header for the binary section of the multipart/form-data content. filename?: string; @doc(""" - The requested format of the translation response data, which will influence the content and detail of the result. - """) + The requested format of the translation response data, which will influence the content and detail of the result. + """) @encodedName("application/json", "response_format") responseFormat?: AudioTranslationFormat; @doc(""" - An optional hint to guide the model's style or continue from a prior audio segment. The written language of the - prompt should match the primary spoken language of the audio data. - """) + An optional hint to guide the model's style or continue from a prior audio segment. The written language of the + prompt should match the primary spoken language of the audio data. + """) prompt?: string; @doc(""" - The sampling temperature, between 0 and 1. - Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. - If set to 0, the model will use log probability to automatically increase the temperature until certain thresholds are hit. - """) + The sampling temperature, between 0 and 1. + Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. + If set to 0, the model will use log probability to automatically increase the temperature until certain thresholds are hit. + """) temperature?: float32; @doc(""" - The model to use for this translation request. - """) + The model to use for this translation request. + """) // Implementation note: developer-facing specification of deployment or model by clients should be controlled either // via an operation parameter or by this request body field -- but only one of those. This field should be hidden by // clients if operation parameters are used and populated into the request body on an as-needed basis. @@ -82,10 +82,10 @@ model AudioTranslationOptions { } @doc(""" -Extended information about a single segment of translated audio data. -Segments generally represent roughly 5-10 seconds of speech. Segment boundaries typically occur between words but not -necessarily sentences. -""") + Extended information about a single segment of translated audio data. + Segments generally represent roughly 5-10 seconds of speech. Segment boundaries typically occur between words but not + necessarily sentences. + """) @added(ServiceApiVersions.v2024_02_15_Preview) model AudioTranslationSegment { @doc("The 0-based index of this segment within a translation.") @@ -123,12 +123,12 @@ model AudioTranslationSegment { tokens: int32[]; @doc(""" - The seek position associated with the processing of this audio segment. - Seek positions are expressed as hundredths of seconds. - The model may process several segments from a single seek position, so while the seek position will never represent - a later time than the segment's start, the segment's start may represent a significantly later time than the - segment's associated seek position. - """) + The seek position associated with the processing of this audio segment. + Seek positions are expressed as hundredths of seconds. + The model may process several segments from a single seek position, so while the seek position will never represent + a later time than the segment's start, the segment's start may represent a significantly later time than the + segment's associated seek position. + """) seek: int32; } @@ -143,9 +143,9 @@ model AudioTranslation { task?: AudioTaskLabel; @doc(""" - The spoken language that was detected in the translated audio data. - This is expressed as a two-letter ISO-639-1 language code like 'en' or 'fr'. - """) + The spoken language that was detected in the translated audio data. + This is expressed as a two-letter ISO-639-1 language code like 'en' or 'fr'. + """) language?: string; @doc("The total duration of the audio processed to produce accompanying translation information.") @@ -153,7 +153,7 @@ model AudioTranslation { duration?: duration; @doc(""" - A collection of information about the timing, probabilities, and other detail of each processed audio segment. - """) + A collection of information about the timing, probabilities, and other detail of each processed audio segment. + """) segments?: AudioTranslationSegment[]; } diff --git a/specification/cognitiveservices/OpenAI.Inference/models/completions/azure_chat_extensions.tsp b/specification/cognitiveservices/OpenAI.Inference/models/completions/azure_chat_extensions.tsp index 3f30a4ccced3..cd837e3976a5 100644 --- a/specification/cognitiveservices/OpenAI.Inference/models/completions/azure_chat_extensions.tsp +++ b/specification/cognitiveservices/OpenAI.Inference/models/completions/azure_chat_extensions.tsp @@ -13,10 +13,10 @@ using TypeSpec.Versioning; @added(ServiceApiVersions.v2024_02_15_Preview) @doc(""" - A representation of configuration data for a single Azure OpenAI chat extension. This will be used by a chat - completions request that should use Azure OpenAI chat extensions to augment the response behavior. - The use of this configuration is compatible only with Azure OpenAI. -""") + A representation of configuration data for a single Azure OpenAI chat extension. This will be used by a chat + completions request that should use Azure OpenAI chat extensions to augment the response behavior. + The use of this configuration is compatible only with Azure OpenAI. + """) union AzureChatExtensionType { string, @@ -39,31 +39,31 @@ union AzureChatExtensionType { @discriminator("type") @added(ServiceApiVersions.v2024_02_15_Preview) @doc(""" - A representation of configuration data for a single Azure OpenAI chat extension. This will be used by a chat - completions request that should use Azure OpenAI chat extensions to augment the response behavior. - The use of this configuration is compatible only with Azure OpenAI. -""") + A representation of configuration data for a single Azure OpenAI chat extension. This will be used by a chat + completions request that should use Azure OpenAI chat extensions to augment the response behavior. + The use of this configuration is compatible only with Azure OpenAI. + """) model AzureChatExtensionConfiguration { @doc(""" - The label for the type of an Azure chat extension. This typically corresponds to a matching Azure resource. - Azure chat extensions are only compatible with Azure OpenAI. - """) + The label for the type of an Azure chat extension. This typically corresponds to a matching Azure resource. + Azure chat extensions are only compatible with Azure OpenAI. + """) type: AzureChatExtensionType; } @added(ServiceApiVersions.v2024_02_15_Preview) @doc(""" - A representation of the additional context information available when Azure OpenAI chat extensions are involved - in the generation of a corresponding chat completions response. This context information is only populated when - using an Azure OpenAI request configured to use a matching extension. -""") + A representation of the additional context information available when Azure OpenAI chat extensions are involved + in the generation of a corresponding chat completions response. This context information is only populated when + using an Azure OpenAI request configured to use a matching extension. + """) model AzureChatExtensionsMessageContext { @doc(""" - The contextual information associated with the Azure chat extensions used for a chat completions request. - These messages describe the data source retrievals, plugin invocations, and other intermediate steps taken in the - course of generating a chat completions response that was augmented by capabilities from Azure OpenAI chat - extensions. - """) + The contextual information associated with the Azure chat extensions used for a chat completions request. + These messages describe the data source retrievals, plugin invocations, and other intermediate steps taken in the + course of generating a chat completions response that was augmented by capabilities from Azure OpenAI chat + extensions. + """) citations?: AzureChatExtensionDataSourceResponseCitation[]; @doc("The detected intent from the chat history, used to pass to the next turn to carry over the context.") @@ -77,10 +77,10 @@ model AzureChatExtensionsMessageContext { @added(ServiceApiVersions.v2024_02_15_Preview) @doc(""" -A single instance of additional context information available when Azure OpenAI chat extensions are involved -in the generation of a corresponding chat completions response. This context information is only populated when -using an Azure OpenAI request configured to use a matching extension. -""") + A single instance of additional context information available when Azure OpenAI chat extensions are involved + in the generation of a corresponding chat completions response. This context information is only populated when + using an Azure OpenAI request configured to use a matching extension. + """) model AzureChatExtensionDataSourceResponseCitation { @doc("The content of the citation.") content: string; @@ -170,9 +170,9 @@ model AzureChatEnhancementConfiguration { @added(ServiceApiVersions.v2024_02_15_Preview) @doc(""" -Represents the output results of Azure enhancements to chat completions, as configured via the matching input provided -in the request. -""") + Represents the output results of Azure enhancements to chat completions, as configured via the matching input provided + in the request. + """) model AzureChatEnhancements { @doc("The grounding enhancement that returns the bounding box of the objects detected in the image.") grounding?: AzureGroundingEnhancement; @@ -202,9 +202,9 @@ model AzureGroundingEnhancementLineSpan { text: string; @doc(""" - The character offset within the text where the span begins. This offset is defined as the position of the first - character of the span, counting from the start of the text as Unicode codepoints. - """) + The character offset within the text where the span begins. This offset is defined as the position of the first + character of the span, counting from the start of the text as Unicode codepoints. + """) offset: int32; @doc("The length of the span in characters, measured in Unicode codepoints.") diff --git a/specification/cognitiveservices/OpenAI.Inference/models/completions/azure_content_filtering.tsp b/specification/cognitiveservices/OpenAI.Inference/models/completions/azure_content_filtering.tsp index 75bfaad1ed13..1b5be626f6cc 100644 --- a/specification/cognitiveservices/OpenAI.Inference/models/completions/azure_content_filtering.tsp +++ b/specification/cognitiveservices/OpenAI.Inference/models/completions/azure_content_filtering.tsp @@ -15,32 +15,32 @@ union ContentFilterSeverity { string, @doc(""" - Content may be related to violence, self-harm, sexual, or hate categories but the terms - are used in general, journalistic, scientific, medical, and similar professional contexts, - which are appropriate for most audiences. - """) + Content may be related to violence, self-harm, sexual, or hate categories but the terms + are used in general, journalistic, scientific, medical, and similar professional contexts, + which are appropriate for most audiences. + """) safe: "safe", @doc(""" - Content that expresses prejudiced, judgmental, or opinionated views, includes offensive - use of language, stereotyping, use cases exploring a fictional world (for example, gaming, - literature) and depictions at low intensity. - """) + Content that expresses prejudiced, judgmental, or opinionated views, includes offensive + use of language, stereotyping, use cases exploring a fictional world (for example, gaming, + literature) and depictions at low intensity. + """) low: "low", @doc(""" - Content that uses offensive, insulting, mocking, intimidating, or demeaning language - towards specific identity groups, includes depictions of seeking and executing harmful - instructions, fantasies, glorification, promotion of harm at medium intensity. - """) + Content that uses offensive, insulting, mocking, intimidating, or demeaning language + towards specific identity groups, includes depictions of seeking and executing harmful + instructions, fantasies, glorification, promotion of harm at medium intensity. + """) medium: "medium", @doc(""" - Content that displays explicit and severe harmful instructions, actions, - damage, or abuse; includes endorsement, glorification, or promotion of severe - harmful acts, extreme or illegal forms of harm, radicalization, or non-consensual - power exchange or abuse. - """) + Content that displays explicit and severe harmful instructions, actions, + damage, or abuse; includes endorsement, glorification, or promotion of severe + harmful acts, extreme or illegal forms of harm, radicalization, or non-consensual + power exchange or abuse. + """) high: "high", } @@ -60,32 +60,32 @@ alias FilteredResultBase = { alias ContentFilterResultsBase = { @doc(""" - Describes language related to anatomical organs and genitals, romantic relationships, - acts portrayed in erotic or affectionate terms, physical sexual acts, including - those portrayed as an assault or a forced sexual violent act against one’s will, - prostitution, pornography, and abuse. - """) + Describes language related to anatomical organs and genitals, romantic relationships, + acts portrayed in erotic or affectionate terms, physical sexual acts, including + those portrayed as an assault or a forced sexual violent act against one’s will, + prostitution, pornography, and abuse. + """) sexual?: ContentFilterResult; @doc(""" - Describes language related to physical actions intended to hurt, injure, damage, or - kill someone or something; describes weapons, etc. - """) + Describes language related to physical actions intended to hurt, injure, damage, or + kill someone or something; describes weapons, etc. + """) violence?: ContentFilterResult; @doc(""" - Describes language attacks or uses that include pejorative or discriminatory language - with reference to a person or identity group on the basis of certain differentiating - attributes of these groups including but not limited to race, ethnicity, nationality, - gender identity and expression, sexual orientation, religion, immigration status, ability - status, personal appearance, and body size. - """) + Describes language attacks or uses that include pejorative or discriminatory language + with reference to a person or identity group on the basis of certain differentiating + attributes of these groups including but not limited to race, ethnicity, nationality, + gender identity and expression, sexual orientation, religion, immigration status, ability + status, personal appearance, and body size. + """) hate?: ContentFilterResult; @doc(""" - Describes language related to physical actions intended to purposely hurt, injure, - or damage one’s body, or kill oneself. - """) + Describes language related to physical actions intended to purposely hurt, injure, + or damage one’s body, or kill oneself. + """) @encodedName("application/json", "self_harm") selfHarm?: ContentFilterResult; @@ -103,9 +103,9 @@ alias ContentFilterResultsBase = { customBlocklists?: ContentFilterDetailedResults; @doc(""" - Describes an error returned if the content filtering system is - down or otherwise unable to complete the operation in time. - """) + Describes an error returned if the content filtering system is + down or otherwise unable to complete the operation in time. + """) error?: Azure.Core.Foundations.Error; }; @@ -142,8 +142,8 @@ model ContentFilterResultsForChoice { @added(ServiceApiVersions.v2023_06_01_Preview) @doc(""" -Content filtering results for a single prompt in the request. -""") + Content filtering results for a single prompt in the request. + """) model ContentFilterResultsForPrompt { @doc("The index of this prompt in the set of prompt results") @encodedName("application/json", "prompt_index") diff --git a/specification/cognitiveservices/OpenAI.Inference/models/completions/chat_completions.tsp b/specification/cognitiveservices/OpenAI.Inference/models/completions/chat_completions.tsp index 913808db5f30..e13ed63929d4 100644 --- a/specification/cognitiveservices/OpenAI.Inference/models/completions/chat_completions.tsp +++ b/specification/cognitiveservices/OpenAI.Inference/models/completions/chat_completions.tsp @@ -19,19 +19,20 @@ namespace Azure.OpenAI; @added(ServiceApiVersions.v2024_02_15_Preview) @doc(""" -An abstract representation of a response format configuration usable by Chat Completions. Can be used to enable JSON -mode. -""") + An abstract representation of a response format configuration usable by Chat Completions. Can be used to enable JSON + mode. + """) @discriminator("type") model ChatCompletionsResponseFormat { + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" @doc("The discriminated type for the response format.") type: string; } @doc(""" -The standard Chat Completions response format that can freely generate text and is not guaranteed to produce response -content that adheres to a specific schema. -""") + The standard Chat Completions response format that can freely generate text and is not guaranteed to produce response + content that adheres to a specific schema. + """) @added(ServiceApiVersions.v2024_02_15_Preview) model ChatCompletionsTextResponseFormat extends ChatCompletionsResponseFormat { @doc("The discriminated object type, which is always 'text' for this format.") @@ -39,8 +40,8 @@ model ChatCompletionsTextResponseFormat extends ChatCompletionsResponseFormat { } @doc(""" -A response format for Chat Completions that restricts responses to emitting valid JSON objects. -""") + A response format for Chat Completions that restricts responses to emitting valid JSON objects. + """) @added(ServiceApiVersions.v2024_02_15_Preview) model ChatCompletionsJsonResponseFormat extends ChatCompletionsResponseFormat { @doc("The discriminated object type, which is always 'json_object' for this format.") @@ -48,10 +49,10 @@ model ChatCompletionsJsonResponseFormat extends ChatCompletionsResponseFormat { } @doc(""" -The configuration information for a chat completions request. -Completions support a wide variety of tasks and generate text that continues from or "completes" -provided prompt data. -""") + The configuration information for a chat completions request. + Completions support a wide variety of tasks and generate text that continues from or "completes" + provided prompt data. + """) @added(ServiceApiVersions.v2023_05_15) model ChatCompletionsOptions { @doc(""" @@ -166,9 +167,9 @@ model ChatCompletionsOptions { `model`?: string; @doc(""" - The configuration entries for Azure OpenAI chat extensions that use them. - This additional specification is only compatible with Azure OpenAI. - """) + The configuration entries for Azure OpenAI chat extensions that use them. + This additional specification is only compatible with Azure OpenAI. + """) // Note: client libraries should represent the `dataSources` information for Azure OpenAI chat extensions in a way // that differs from the wire format. To wit: the array should appear on a custom sub-options type (as if // the array were in an appropriate parent JSON object on the wire) and type/field names should converge on @@ -185,25 +186,25 @@ model ChatCompletionsOptions { @added(ServiceApiVersions.v2024_02_15_Preview) @doc(""" - If specified, the system will make a best effort to sample deterministically such that repeated requests with the - same seed and parameters should return the same result. Determinism is not guaranteed, and you should refer to the - system_fingerprint response parameter to monitor changes in the backend." - """) + If specified, the system will make a best effort to sample deterministically such that repeated requests with the + same seed and parameters should return the same result. Determinism is not guaranteed, and you should refer to the + system_fingerprint response parameter to monitor changes in the backend." + """) seed?: int64; #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicitly nullable types" @added(ServiceApiVersions.v2024_02_15_Preview) @doc(""" - Whether to return log probabilities of the output tokens or not. If true, returns the log probabilities of each output token returned in the `content` of `message`. This option is currently not available on the `gpt-4-vision-preview` model. - """) + Whether to return log probabilities of the output tokens or not. If true, returns the log probabilities of each output token returned in the `content` of `message`. This option is currently not available on the `gpt-4-vision-preview` model. + """) logprobs?: boolean | null = false; #suppress "@azure-tools/typespec-azure-core/casing-style" "OpenAI uses wire-format snake_casing" #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicitly required, nullable types" @added(ServiceApiVersions.v2024_02_15_Preview) @doc(""" - An integer between 0 and 5 specifying the number of most likely tokens to return at each token position, each with an associated log probability. `logprobs` must be set to `true` if this parameter is used. - """) + An integer between 0 and 5 specifying the number of most likely tokens to return at each token position, each with an associated log probability. `logprobs` must be set to `true` if this parameter is used. + """) top_logprobs?: int32 | null; @encodedName("application/json", "response_format") @@ -218,16 +219,16 @@ model ChatCompletionsOptions { @encodedName("application/json", "tool_choice") @added(ServiceApiVersions.v2024_02_15_Preview) @doc(""" - If specified, the model will configure which of the provided tools it can use for the chat completions response. - """) + If specified, the model will configure which of the provided tools it can use for the chat completions response. + """) toolChoice?: ChatCompletionsToolSelection; } @doc(""" -The representation of a single prompt completion as part of an overall chat completions request. -Generally, `n` choices are generated per provided prompt with a default value of 1. -Token limits and other settings may limit the number of choices generated. -""") + The representation of a single prompt completion as part of an overall chat completions request. + Generally, `n` choices are generated per provided prompt with a default value of 1. + Token limits and other settings may limit the number of choices generated. + """) @added(ServiceApiVersions.v2023_05_15) model ChatChoice { @doc("The chat message for a given chat completions prompt.") @@ -250,9 +251,9 @@ model ChatChoice { // Note: this property is currently speculative via observation and not yet documented anywhere. @doc(""" - The reason the model stopped generating tokens, together with any applicable details. - This structured representation replaces 'finish_reason' for some models. - """) + The reason the model stopped generating tokens, together with any applicable details. + This structured representation replaces 'finish_reason' for some models. + """) @added(ServiceApiVersions.v2024_02_15_Preview) @encodedName("application/json", "finish_details") finishDetails?: ChatFinishDetails; @@ -272,18 +273,18 @@ model ChatChoice { @added(ServiceApiVersions.v2024_02_15_Preview) @doc(""" - Represents the output results of Azure OpenAI enhancements to chat completions, as configured via the matching input - provided in the request. This supplementary information is only available when using Azure OpenAI and only when the - request is configured to use enhancements. - """) + Represents the output results of Azure OpenAI enhancements to chat completions, as configured via the matching input + provided in the request. This supplementary information is only available when using Azure OpenAI and only when the + request is configured to use enhancements. + """) enhancements?: AzureChatEnhancements; } @doc(""" -Representation of the response data from a chat completions request. -Completions support a wide variety of tasks and generate text that continues from or "completes" -provided prompt data. -""") + Representation of the response data from a chat completions request. + Completions support a wide variety of tasks and generate text that continues from or "completes" + provided prompt data. + """) @added(ServiceApiVersions.v2023_05_15) model ChatCompletions { @doc("A unique identifier associated with this chat completions response.") @@ -308,9 +309,9 @@ model ChatCompletions { `model`?: string; @doc(""" - Content filtering results for zero or more prompts in the request. In a streaming request, - results for different prompts may arrive at different times or in different orders. - """) + Content filtering results for zero or more prompts in the request. In a streaming request, + results for different prompts may arrive at different times or in different orders. + """) @added(ServiceApiVersions.v2023_06_01_Preview) @encodedName("application/json", "prompt_filter_results") promptFilterResults?: ContentFilterResultsForPrompt[]; @@ -318,9 +319,9 @@ model ChatCompletions { @added(ServiceApiVersions.v2024_02_15_Preview) @encodedName("application/json", "system_fingerprint") @doc(""" - Can be used in conjunction with the `seed` request parameter to understand when backend changes have been made that - might impact determinism. - """) + Can be used in conjunction with the `seed` request parameter to understand when backend changes have been made that + might impact determinism. + """) systemFingerprint?: string; @doc(""" @@ -333,6 +334,7 @@ model ChatCompletions { @discriminator("type") @doc("An abstract representation of structured information about why a chat completions response terminated.") model ChatFinishDetails { + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" @doc("The object type.") type: string; } @@ -348,9 +350,9 @@ model StopFinishDetails extends ChatFinishDetails { } @doc(""" -A structured representation of a stop reason that signifies a token limit was reached before the model could naturally -complete. -""") + A structured representation of a stop reason that signifies a token limit was reached before the model could naturally + complete. + """) @added(ServiceApiVersions.v2024_02_15_Preview) model MaxTokensFinishDetails extends ChatFinishDetails { @doc("The object type, which is always 'max_tokens' for this object.") @@ -359,20 +361,20 @@ model MaxTokensFinishDetails extends ChatFinishDetails { @added(ServiceApiVersions.v2024_02_15_Preview) @doc(""" -Log probability information for a choice, as requested via 'logprobs' and 'top_logprobs'. -""") + Log probability information for a choice, as requested via 'logprobs' and 'top_logprobs'. + """) model ChatChoiceLogProbabilityInfo { #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicitly required, nullable types" @doc(""" - The list of log probability information entries for the choice's message content tokens, as requested via the 'logprobs' option. - """) + The list of log probability information entries for the choice's message content tokens, as requested via the 'logprobs' option. + """) content: ChatTokenLogProbabilityResult[] | null; } @added(ServiceApiVersions.v2024_02_15_Preview) @doc(""" -A representation of the log probability information for a single content token, including a list of most likely tokens if 'top_logprobs' were requested. -""") + A representation of the log probability information for a single content token, including a list of most likely tokens if 'top_logprobs' were requested. + """) model ChatTokenLogProbabilityResult { ...ChatTokenLogProbabilityInfo; @@ -384,8 +386,8 @@ model ChatTokenLogProbabilityResult { @added(ServiceApiVersions.v2024_02_15_Preview) @doc(""" -A representation of the log probability information for a single message content token. -""") + A representation of the log probability information for a single message content token. + """) model ChatTokenLogProbabilityInfo { @doc("The message content token.") token: string; @@ -395,7 +397,7 @@ model ChatTokenLogProbabilityInfo { #suppress "@azure-tools/typespec-azure-core/no-nullable" "OpenAI uses explicitly required, nullable types" @doc(""" - A list of integers representing the UTF-8 bytes representation of the token. Useful in instances where characters are represented by multiple tokens and their byte representations must be combined to generate the correct text representation. Can be null if there is no bytes representation for the token. - """) + A list of integers representing the UTF-8 bytes representation of the token. Useful in instances where characters are represented by multiple tokens and their byte representations must be combined to generate the correct text representation. Can be null if there is no bytes representation for the token. + """) bytes: int32[] | null; } diff --git a/specification/cognitiveservices/OpenAI.Inference/models/completions/chat_messages.tsp b/specification/cognitiveservices/OpenAI.Inference/models/completions/chat_messages.tsp index 1aed3aee3896..702a4c0c9056 100644 --- a/specification/cognitiveservices/OpenAI.Inference/models/completions/chat_messages.tsp +++ b/specification/cognitiveservices/OpenAI.Inference/models/completions/chat_messages.tsp @@ -20,6 +20,7 @@ alias ChatMessageContent = string | ChatMessageContentItem[]; @doc("An abstract representation of a structured content item within a chat message.") @discriminator("type") model ChatMessageContentItem { + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" @doc("The discriminated object type.") type: string; } @@ -43,15 +44,15 @@ union ChatMessageImageDetailLevel { auto: "auto", @doc(""" - Specifies that image evaluation should be constrained to the 'low-res' model that may be faster and consume fewer - tokens but may also be less accurate for highly detailed images. - """) + Specifies that image evaluation should be constrained to the 'low-res' model that may be faster and consume fewer + tokens but may also be less accurate for highly detailed images. + """) low: "low", @doc(""" - Specifies that image evaluation should enable the 'high-res' model that may be more accurate for highly detailed - images but may also be slower and consume more tokens. - """) + Specifies that image evaluation should enable the 'high-res' model that may be more accurate for highly detailed + images but may also be slower and consume more tokens. + """) high: "high", } @@ -73,9 +74,9 @@ model ChatMessageImageUrl { url: url; @doc(""" - The evaluation quality setting to use, which controls relative prioritization of speed, token consumption, and - accuracy. - """) + The evaluation quality setting to use, which controls relative prioritization of speed, token consumption, and + accuracy. + """) detail?: ChatMessageImageDetailLevel; } @@ -89,9 +90,9 @@ model ChatRequestMessage { @added(ServiceApiVersions.v2023_05_15) @doc(""" -A request chat message containing system instructions that influence how the model will generate a chat completions -response. -""") + A request chat message containing system instructions that influence how the model will generate a chat completions + response. + """) model ChatRequestSystemMessage extends ChatRequestMessage { @doc("The chat role associated with this message, which is always 'system' for system messages.") role: ChatRole.system; @@ -132,17 +133,17 @@ model ChatRequestAssistantMessage extends ChatRequestMessage { @encodedName("application/json", "tool_calls") @added(ServiceApiVersions.v2024_02_15_Preview) @doc(""" - The tool calls that must be resolved and have their outputs appended to subsequent input messages for the chat - completions request to resolve as configured. - """) + The tool calls that must be resolved and have their outputs appended to subsequent input messages for the chat + completions request to resolve as configured. + """) toolCalls?: ChatCompletionsToolCall[]; @added(ServiceApiVersions.v2023_07_01_Preview) @encodedName("application/json", "function_call") @doc(""" - The function call that must be resolved and have its output appended to subsequent input messages for the chat - completions request to resolve as configured. - """) + The function call that must be resolved and have its output appended to subsequent input messages for the chat + completions request to resolve as configured. + """) functionCall?: FunctionCall; } @@ -188,23 +189,23 @@ model ChatResponseMessage { @added(ServiceApiVersions.v2024_02_15_Preview) @encodedName("application/json", "tool_calls") @doc(""" - The tool calls that must be resolved and have their outputs appended to subsequent input messages for the chat - completions request to resolve as configured. - """) + The tool calls that must be resolved and have their outputs appended to subsequent input messages for the chat + completions request to resolve as configured. + """) toolCalls?: ChatCompletionsToolCall[]; @added(ServiceApiVersions.v2023_07_01_Preview) @encodedName("application/json", "function_call") @doc(""" - The function call that must be resolved and have its output appended to subsequent input messages for the chat - completions request to resolve as configured. - """) + The function call that must be resolved and have its output appended to subsequent input messages for the chat + completions request to resolve as configured. + """) functionCall?: FunctionCall; @added(ServiceApiVersions.v2024_02_15_Preview) @doc(""" - If Azure OpenAI chat extensions are configured, this array represents the incremental steps performed by those - extensions while processing the chat completions request. - """) + If Azure OpenAI chat extensions are configured, this array represents the incremental steps performed by those + extensions while processing the chat completions request. + """) context?: AzureChatExtensionsMessageContext; } diff --git a/specification/cognitiveservices/OpenAI.Inference/models/completions/common.tsp b/specification/cognitiveservices/OpenAI.Inference/models/completions/common.tsp index 4bf328ea298c..3afebd183971 100644 --- a/specification/cognitiveservices/OpenAI.Inference/models/completions/common.tsp +++ b/specification/cognitiveservices/OpenAI.Inference/models/completions/common.tsp @@ -6,10 +6,10 @@ using TypeSpec.Versioning; namespace Azure.OpenAI; @doc(""" -Representation of the token counts processed for a completions request. -Counts consider all tokens across prompts, choices, choice alternates, best_of generations, and -other consumers. -""") + Representation of the token counts processed for a completions request. + Counts consider all tokens across prompts, choices, choice alternates, best_of generations, and + other consumers. + """) model CompletionsUsage { @doc("The number of tokens generated across all completions emissions.") @encodedName("application/json", "completion_tokens") @@ -25,8 +25,8 @@ model CompletionsUsage { } @doc(""" -Representation of the manner in which a completions response concluded. -""") + Representation of the manner in which a completions response concluded. + """) union CompletionsFinishReason { string, diff --git a/specification/cognitiveservices/OpenAI.Inference/models/completions/completions_create.tsp b/specification/cognitiveservices/OpenAI.Inference/models/completions/completions_create.tsp index c48dc3bb5782..0fba24798f4a 100644 --- a/specification/cognitiveservices/OpenAI.Inference/models/completions/completions_create.tsp +++ b/specification/cognitiveservices/OpenAI.Inference/models/completions/completions_create.tsp @@ -14,10 +14,10 @@ using Azure.ClientGenerator.Core; namespace Azure.OpenAI; @doc(""" -The configuration information for a completions request. -Completions support a wide variety of tasks and generate text that continues from or "completes" -provided prompt data. -""") + The configuration information for a completions request. + Completions support a wide variety of tasks and generate text that continues from or "completes" + provided prompt data. + """) model CompletionsOptions { @doc("The prompts to generate completions from.") @clientName("Prompts", "csharp") @@ -142,10 +142,10 @@ model CompletionsOptions { } @doc(""" -Representation of the response data from a completions request. -Completions support a wide variety of tasks and generate text that continues from or "completes" -provided prompt data. -""") + Representation of the response data from a completions request. + Completions support a wide variety of tasks and generate text that continues from or "completes" + provided prompt data. + """) model Completions { @doc("A unique identifier associated with this completions response.") id: string; @@ -159,9 +159,9 @@ model Completions { created: utcDateTime; @doc(""" - Content filtering results for zero or more prompts in the request. In a streaming request, - results for different prompts may arrive at different times or in different orders. - """) + Content filtering results for zero or more prompts in the request. In a streaming request, + results for different prompts may arrive at different times or in different orders. + """) @added(ServiceApiVersions.v2023_06_01_Preview) @encodedName("application/json", "prompt_filter_results") promptFilterResults?: ContentFilterResultsForPrompt[]; @@ -180,10 +180,10 @@ model Completions { } @doc(""" -The representation of a single prompt completion as part of an overall completions request. -Generally, `n` choices are generated per provided prompt with a default value of 1. -Token limits and other settings may limit the number of choices generated. -""") + The representation of a single prompt completion as part of an overall completions request. + Generally, `n` choices are generated per provided prompt with a default value of 1. + Token limits and other settings may limit the number of choices generated. + """) model Choice { @doc("The generated text for a given completions prompt.") text: string; @@ -192,10 +192,10 @@ model Choice { index: int32; @doc(""" - Information about the content filtering category (hate, sexual, violence, self_harm), if it - has been detected, as well as the severity level (very_low, low, medium, high-scale that - determines the intensity and risk level of harmful content) and if it has been filtered or not. - """) + Information about the content filtering category (hate, sexual, violence, self_harm), if it + has been detected, as well as the severity level (very_low, low, medium, high-scale that + determines the intensity and risk level of harmful content) and if it has been filtered or not. + """) @added(ServiceApiVersions.v2023_06_01_Preview) @encodedName("application/json", "content_filter_results") contentFilterResults?: ContentFilterResultsForChoice; @@ -215,8 +215,8 @@ model Choice { alias NullableFloat = float32 | null; @doc(""" -Representation of a log probabilities model for a completions generation. -""") + Representation of a log probabilities model for a completions generation. + """) model CompletionsLogProbabilityModel { @doc("The textual forms of tokens evaluated in this probability model.") tokens: string[]; diff --git a/specification/cognitiveservices/OpenAI.Inference/models/completions/extensions/oyd/authentication.tsp b/specification/cognitiveservices/OpenAI.Inference/models/completions/extensions/oyd/authentication.tsp index 9b677da801a8..63c04068f05a 100644 --- a/specification/cognitiveservices/OpenAI.Inference/models/completions/extensions/oyd/authentication.tsp +++ b/specification/cognitiveservices/OpenAI.Inference/models/completions/extensions/oyd/authentication.tsp @@ -5,8 +5,8 @@ namespace Azure.OpenAI; using TypeSpec.Versioning; @doc(""" -The authentication types supported with Azure OpenAI On Your Data. -""") + The authentication types supported with Azure OpenAI On Your Data. + """) @added(ServiceApiVersions.v2024_02_15_Preview) union OnYourDataAuthenticationType { string, @@ -42,8 +42,8 @@ model OnYourDataAuthenticationOptions { } @doc(""" -The authentication options for Azure OpenAI On Your Data when using an API key. -""") + The authentication options for Azure OpenAI On Your Data when using an API key. + """) @added(ServiceApiVersions.v2024_02_15_Preview) model OnYourDataApiKeyAuthenticationOptions extends OnYourDataAuthenticationOptions { @@ -55,8 +55,8 @@ model OnYourDataApiKeyAuthenticationOptions } @doc(""" -The authentication options for Azure OpenAI On Your Data when using a connection string. -""") + The authentication options for Azure OpenAI On Your Data when using a connection string. + """) @added(ServiceApiVersions.v2024_02_15_Preview) model OnYourDataConnectionStringAuthenticationOptions extends OnYourDataAuthenticationOptions { @@ -69,8 +69,8 @@ model OnYourDataConnectionStringAuthenticationOptions } @doc(""" -The authentication options for Azure OpenAI On Your Data when using an Elasticsearch key and key ID pair. -""") + The authentication options for Azure OpenAI On Your Data when using an Elasticsearch key and key ID pair. + """) @added(ServiceApiVersions.v2024_02_15_Preview) model OnYourDataKeyAndKeyIdAuthenticationOptions extends OnYourDataAuthenticationOptions { @@ -86,8 +86,8 @@ model OnYourDataKeyAndKeyIdAuthenticationOptions } @doc(""" -The authentication options for Azure OpenAI On Your Data when using an Elasticsearch encoded API key. -""") + The authentication options for Azure OpenAI On Your Data when using an Elasticsearch encoded API key. + """) @added(ServiceApiVersions.v2024_02_15_Preview) model OnYourDataEncodedApiKeyAuthenticationOptions extends OnYourDataAuthenticationOptions { @@ -100,8 +100,8 @@ model OnYourDataEncodedApiKeyAuthenticationOptions } @doc(""" -The authentication options for Azure OpenAI On Your Data when using access token. -""") + The authentication options for Azure OpenAI On Your Data when using access token. + """) @added(ServiceApiVersions.v2024_02_15_Preview) model OnYourDataAccessTokenAuthenticationOptions extends OnYourDataAuthenticationOptions { @@ -114,8 +114,8 @@ model OnYourDataAccessTokenAuthenticationOptions } @doc(""" -The authentication options for Azure OpenAI On Your Data when using a system-assigned managed identity. -""") + The authentication options for Azure OpenAI On Your Data when using a system-assigned managed identity. + """) @added(ServiceApiVersions.v2024_02_15_Preview) model OnYourDataSystemAssignedManagedIdentityAuthenticationOptions extends OnYourDataAuthenticationOptions { @@ -124,8 +124,8 @@ model OnYourDataSystemAssignedManagedIdentityAuthenticationOptions } @doc(""" -The authentication options for Azure OpenAI On Your Data when using a user-assigned managed identity. -""") + The authentication options for Azure OpenAI On Your Data when using a user-assigned managed identity. + """) @added(ServiceApiVersions.v2024_02_15_Preview) model OnYourDataUserAssignedManagedIdentityAuthenticationOptions extends OnYourDataAuthenticationOptions { diff --git a/specification/cognitiveservices/OpenAI.Inference/models/completions/extensions/oyd/azure_cosmosdb_options.tsp b/specification/cognitiveservices/OpenAI.Inference/models/completions/extensions/oyd/azure_cosmosdb_options.tsp index a8b7d4f73fab..067e7628bd96 100644 --- a/specification/cognitiveservices/OpenAI.Inference/models/completions/extensions/oyd/azure_cosmosdb_options.tsp +++ b/specification/cognitiveservices/OpenAI.Inference/models/completions/extensions/oyd/azure_cosmosdb_options.tsp @@ -12,15 +12,15 @@ using Azure.ClientGenerator.Core; #suppress "@azure-tools/typespec-azure-core/casing-style" "this represents the case-sensitive wire format" @added(ServiceApiVersions.v2024_02_15_Preview) @doc(""" -A specific representation of configurable options for Azure Cosmos DB when using it as an Azure OpenAI chat -extension. -""") + A specific representation of configurable options for Azure Cosmos DB when using it as an Azure OpenAI chat + extension. + """) model AzureCosmosDBChatExtensionConfiguration extends AzureChatExtensionConfiguration { @doc(""" - The type label to use when configuring Azure OpenAI chat extensions. This should typically not be changed from its - default value for Azure Cosmos DB. - """) + The type label to use when configuring Azure OpenAI chat extensions. This should typically not be changed from its + default value for Azure Cosmos DB. + """) type: AzureChatExtensionType.azureCosmosDB; @doc("The parameters to use when configuring Azure OpenAI CosmosDB chat extensions.") @@ -30,9 +30,9 @@ model AzureCosmosDBChatExtensionConfiguration #suppress "@azure-tools/typespec-azure-core/casing-style" "this represents the case-sensitive wire format" @added(ServiceApiVersions.v2024_02_15_Preview) @doc(""" -Parameters to use when configuring Azure OpenAI On Your Data chat extensions when using Azure Cosmos DB for -MongoDB vCore. The supported authentication type is ConnectionString. -""") + Parameters to use when configuring Azure OpenAI On Your Data chat extensions when using Azure Cosmos DB for + MongoDB vCore. The supported authentication type is ConnectionString. + """) model AzureCosmosDBChatExtensionParameters { ...OnYourDataCommonChatExtensionConfiguration; diff --git a/specification/cognitiveservices/OpenAI.Inference/models/completions/extensions/oyd/azure_machinelearning_index_options.tsp b/specification/cognitiveservices/OpenAI.Inference/models/completions/extensions/oyd/azure_machinelearning_index_options.tsp index 7b567180c38f..a764b32c5f52 100644 --- a/specification/cognitiveservices/OpenAI.Inference/models/completions/extensions/oyd/azure_machinelearning_index_options.tsp +++ b/specification/cognitiveservices/OpenAI.Inference/models/completions/extensions/oyd/azure_machinelearning_index_options.tsp @@ -10,15 +10,15 @@ using Azure.ClientGenerator.Core; @added(ServiceApiVersions.v2024_02_15_Preview) @doc(""" -A specific representation of configurable options for Azure Machine Learning vector index when using it as an Azure -OpenAI chat extension. -""") + A specific representation of configurable options for Azure Machine Learning vector index when using it as an Azure + OpenAI chat extension. + """) model AzureMachineLearningIndexChatExtensionConfiguration extends AzureChatExtensionConfiguration { @doc(""" - The type label to use when configuring Azure OpenAI chat extensions. This should typically not be changed from its - default value for Azure Machine Learning vector index. - """) + The type label to use when configuring Azure OpenAI chat extensions. This should typically not be changed from its + default value for Azure Machine Learning vector index. + """) type: AzureChatExtensionType.azureMachineLearningIndex; @doc("The parameters for the Azure Machine Learning vector index chat extension.") diff --git a/specification/cognitiveservices/OpenAI.Inference/models/completions/extensions/oyd/azure_search_options.tsp b/specification/cognitiveservices/OpenAI.Inference/models/completions/extensions/oyd/azure_search_options.tsp index e2a77ff5ba98..61f0e83a0dd1 100644 --- a/specification/cognitiveservices/OpenAI.Inference/models/completions/extensions/oyd/azure_search_options.tsp +++ b/specification/cognitiveservices/OpenAI.Inference/models/completions/extensions/oyd/azure_search_options.tsp @@ -10,16 +10,16 @@ using TypeSpec.Versioning; using Azure.ClientGenerator.Core; @doc(""" -A specific representation of configurable options for Azure Search when using it as an Azure OpenAI chat -extension. -""") + A specific representation of configurable options for Azure Search when using it as an Azure OpenAI chat + extension. + """) @added(ServiceApiVersions.v2024_02_15_Preview) model AzureSearchChatExtensionConfiguration extends AzureChatExtensionConfiguration { @doc(""" - The type label to use when configuring Azure OpenAI chat extensions. This should typically not be changed from its - default value for Azure Cognitive Search. - """) + The type label to use when configuring Azure OpenAI chat extensions. This should typically not be changed from its + default value for Azure Cognitive Search. + """) type: AzureChatExtensionType.azureSearch; @doc("The parameters to use when configuring Azure Search.") @@ -100,8 +100,8 @@ model AzureSearchIndexFieldMappingOptions { } @doc(""" -The type of Azure Search retrieval query that should be executed when using it as an Azure OpenAI chat extension. -""") + The type of Azure Search retrieval query that should be executed when using it as an Azure OpenAI chat extension. + """) @added(ServiceApiVersions.v2024_02_15_Preview) union AzureSearchQueryType { string, diff --git a/specification/cognitiveservices/OpenAI.Inference/models/completions/extensions/oyd/common_options.tsp b/specification/cognitiveservices/OpenAI.Inference/models/completions/extensions/oyd/common_options.tsp index 22cc07d0778c..ec91c476f801 100644 --- a/specification/cognitiveservices/OpenAI.Inference/models/completions/extensions/oyd/common_options.tsp +++ b/specification/cognitiveservices/OpenAI.Inference/models/completions/extensions/oyd/common_options.tsp @@ -10,12 +10,12 @@ using Azure.ClientGenerator.Core; alias OnYourDataCommonChatExtensionConfiguration = { @doc(""" - The authentication method to use when accessing the defined data source. - Each data source type supports a specific set of available authentication methods; please see the documentation of - the data source for supported mechanisms. - If not otherwise provided, On Your Data will attempt to use System Managed Identity (default credential) - authentication. - """) + The authentication method to use when accessing the defined data source. + Each data source type supports a specific set of available authentication methods; please see the documentation of + the data source for supported mechanisms. + If not otherwise provided, On Your Data will attempt to use System Managed Identity (default credential) + authentication. + """) @clientName("Authentication", "csharp") authentication?: OnYourDataAuthenticationOptions; diff --git a/specification/cognitiveservices/OpenAI.Inference/models/completions/extensions/oyd/elasticsearch_options.tsp b/specification/cognitiveservices/OpenAI.Inference/models/completions/extensions/oyd/elasticsearch_options.tsp index a292e0f08dc7..60b694069447 100644 --- a/specification/cognitiveservices/OpenAI.Inference/models/completions/extensions/oyd/elasticsearch_options.tsp +++ b/specification/cognitiveservices/OpenAI.Inference/models/completions/extensions/oyd/elasticsearch_options.tsp @@ -10,15 +10,15 @@ using Azure.ClientGenerator.Core; @added(ServiceApiVersions.v2024_02_15_Preview) @doc(""" -A specific representation of configurable options for Elasticsearch when using it as an Azure OpenAI chat -extension. -""") + A specific representation of configurable options for Elasticsearch when using it as an Azure OpenAI chat + extension. + """) model ElasticsearchChatExtensionConfiguration extends AzureChatExtensionConfiguration { @doc(""" - The type label to use when configuring Azure OpenAI chat extensions. This should typically not be changed from its - default value for Elasticsearch®. - """) + The type label to use when configuring Azure OpenAI chat extensions. This should typically not be changed from its + default value for Elasticsearch®. + """) type: AzureChatExtensionType.elasticsearch; @doc("The parameters to use when configuring Elasticsearch®.") @@ -86,8 +86,8 @@ model ElasticsearchIndexFieldMappingOptions { } @doc(""" -The type of Elasticsearch® retrieval query that should be executed when using it as an Azure OpenAI chat extension. -""") + The type of Elasticsearch® retrieval query that should be executed when using it as an Azure OpenAI chat extension. + """) @added(ServiceApiVersions.v2024_02_15_Preview) union ElasticsearchQueryType { string, diff --git a/specification/cognitiveservices/OpenAI.Inference/models/completions/extensions/oyd/pinecone_options.tsp b/specification/cognitiveservices/OpenAI.Inference/models/completions/extensions/oyd/pinecone_options.tsp index cf0acabe7017..ffd0a4f87c41 100644 --- a/specification/cognitiveservices/OpenAI.Inference/models/completions/extensions/oyd/pinecone_options.tsp +++ b/specification/cognitiveservices/OpenAI.Inference/models/completions/extensions/oyd/pinecone_options.tsp @@ -12,15 +12,15 @@ using Azure.ClientGenerator.Core; #suppress "@azure-tools/typespec-azure-core/casing-style" "this represents the case-sensitive wire format" @added(ServiceApiVersions.v2024_02_15_Preview) @doc(""" -A specific representation of configurable options for Pinecone when using it as an Azure OpenAI chat -extension. -""") + A specific representation of configurable options for Pinecone when using it as an Azure OpenAI chat + extension. + """) model PineconeChatExtensionConfiguration extends AzureChatExtensionConfiguration { @doc(""" - The type label to use when configuring Azure OpenAI chat extensions. This should typically not be changed from its - default value for Pinecone. - """) + The type label to use when configuring Azure OpenAI chat extensions. This should typically not be changed from its + default value for Pinecone. + """) type: AzureChatExtensionType.pinecone; @doc("The parameters to use when configuring Azure OpenAI chat extensions.") diff --git a/specification/cognitiveservices/OpenAI.Inference/models/completions/extensions/oyd/vector_search.tsp b/specification/cognitiveservices/OpenAI.Inference/models/completions/extensions/oyd/vector_search.tsp index 8fcd2f6603fe..3c16cd2371a8 100644 --- a/specification/cognitiveservices/OpenAI.Inference/models/completions/extensions/oyd/vector_search.tsp +++ b/specification/cognitiveservices/OpenAI.Inference/models/completions/extensions/oyd/vector_search.tsp @@ -7,28 +7,28 @@ using TypeSpec.Versioning; @added(ServiceApiVersions.v2024_02_15_Preview) @doc(""" -Represents the available sources Azure OpenAI On Your Data can use to configure vectorization of data for use with -vector search. -""") + Represents the available sources Azure OpenAI On Your Data can use to configure vectorization of data for use with + vector search. + """) union OnYourDataVectorizationSourceType { string, @doc(""" - Represents vectorization performed by public service calls to an Azure OpenAI embedding model. - """) + Represents vectorization performed by public service calls to an Azure OpenAI embedding model. + """) endpoint: "endpoint", @doc(""" - Represents an Ada model deployment name to use. This model deployment must be in the same Azure OpenAI resource, but - On Your Data will use this model deployment via an internal call rather than a public one, which enables vector - search even in private networks. - """) + Represents an Ada model deployment name to use. This model deployment must be in the same Azure OpenAI resource, but + On Your Data will use this model deployment via an internal call rather than a public one, which enables vector + search even in private networks. + """) deploymentName: "deployment_name", @doc(""" - Represents a specific embedding model ID as defined in the search service. - Currently only supported by Elasticsearch®. - """) + Represents a specific embedding model ID as defined in the search service. + Currently only supported by Elasticsearch®. + """) modelId: "model_id", } @@ -42,9 +42,9 @@ model OnYourDataVectorizationSource { @added(ServiceApiVersions.v2024_02_15_Preview) @doc(""" -The details of a a vectorization source, used by Azure OpenAI On Your Data when applying vector search, that is based -on a public Azure OpenAI endpoint call for embeddings. -""") + The details of a a vectorization source, used by Azure OpenAI On Your Data when applying vector search, that is based + on a public Azure OpenAI endpoint call for embeddings. + """) model OnYourDataEndpointVectorizationSource extends OnYourDataVectorizationSource { @doc("The type of vectorization source to use. Always 'Endpoint' for this type.") @@ -61,9 +61,9 @@ model OnYourDataEndpointVectorizationSource @added(ServiceApiVersions.v2024_02_15_Preview) @doc(""" -The details of a a vectorization source, used by Azure OpenAI On Your Data when applying vector search, that is based -on an internal embeddings model deployment name in the same Azure OpenAI resource. -""") + The details of a a vectorization source, used by Azure OpenAI On Your Data when applying vector search, that is based + on an internal embeddings model deployment name in the same Azure OpenAI resource. + """) model OnYourDataDeploymentNameVectorizationSource extends OnYourDataVectorizationSource { @doc("The type of vectorization source to use. Always 'DeploymentName' for this type.") @@ -80,9 +80,9 @@ model OnYourDataDeploymentNameVectorizationSource @added(ServiceApiVersions.v2024_02_15_Preview) @doc(""" -The details of a a vectorization source, used by Azure OpenAI On Your Data when applying vector search, that is based -on a search service model ID. Currently only supported by Elasticsearch®. -""") + The details of a a vectorization source, used by Azure OpenAI On Your Data when applying vector search, that is based + on a search service model ID. Currently only supported by Elasticsearch®. + """) model OnYourDataModelIdVectorizationSource extends OnYourDataVectorizationSource { @doc("The type of vectorization source to use. Always 'ModelId' for this type.") diff --git a/specification/cognitiveservices/OpenAI.Inference/models/completions/functions.tsp b/specification/cognitiveservices/OpenAI.Inference/models/completions/functions.tsp index cad83db52fdc..51201f0aa33f 100644 --- a/specification/cognitiveservices/OpenAI.Inference/models/completions/functions.tsp +++ b/specification/cognitiveservices/OpenAI.Inference/models/completions/functions.tsp @@ -5,9 +5,9 @@ namespace Azure.OpenAI; using TypeSpec.Versioning; @doc(""" -A structure that specifies the exact name of a specific, request-provided function to use when processing a chat -completions operation. -""") + A structure that specifies the exact name of a specific, request-provided function to use when processing a chat + completions operation. + """) @added(ServiceApiVersions.v2023_07_01_Preview) model FunctionName { @doc("The name of the function to call.") @@ -15,23 +15,23 @@ model FunctionName { } @doc(""" -The collection of predefined behaviors for handling request-provided function information in a chat completions -operation. -""") + The collection of predefined behaviors for handling request-provided function information in a chat completions + operation. + """) @added(ServiceApiVersions.v2023_07_01_Preview) union FunctionCallPreset { string, @doc(""" - Specifies that the model may either use any of the functions provided in this chat completions request or - instead return a standard chat completions response as if no functions were provided. - """) + Specifies that the model may either use any of the functions provided in this chat completions request or + instead return a standard chat completions response as if no functions were provided. + """) auto: "auto", @doc(""" - Specifies that the model should not respond with a function call and should instead provide a standard chat - completions response. Response content may still be influenced by the provided function information. - """) + Specifies that the model should not respond with a function call and should instead provide a standard chat + completions response. Response content may still be influenced by the provided function information. + """) none: "none", } @@ -39,17 +39,17 @@ union FunctionCallPreset { alias FunctionCallConfig = FunctionCallPreset | FunctionName; @doc(""" -The definition of a caller-specified function that chat completions may invoke in response to matching user input. -""") + The definition of a caller-specified function that chat completions may invoke in response to matching user input. + """) @added(ServiceApiVersions.v2023_07_01_Preview) model FunctionDefinition { @doc("The name of the function to be called.") name: string; @doc(""" - A description of what the function does. The model will use this description when selecting the function and - interpreting its parameters. - """) + A description of what the function does. The model will use this description when selecting the function and + interpreting its parameters. + """) description?: string; #suppress "@azure-tools/typespec-azure-core/no-unknown" "External API shape takes an arbitrary json" @@ -64,10 +64,10 @@ model FunctionCall { name: string; @doc(""" - The arguments to call the function with, as generated by the model in JSON format. - Note that the model does not always generate valid JSON, and may hallucinate parameters - not defined by your function schema. Validate the arguments in your code before calling - your function. - """) + The arguments to call the function with, as generated by the model in JSON format. + Note that the model does not always generate valid JSON, and may hallucinate parameters + not defined by your function schema. Validate the arguments in your code before calling + your function. + """) arguments: string; } diff --git a/specification/cognitiveservices/OpenAI.Inference/models/completions/tools.tsp b/specification/cognitiveservices/OpenAI.Inference/models/completions/tools.tsp index 2a9e7b295faf..8d45bd50a058 100644 --- a/specification/cognitiveservices/OpenAI.Inference/models/completions/tools.tsp +++ b/specification/cognitiveservices/OpenAI.Inference/models/completions/tools.tsp @@ -16,21 +16,22 @@ union ChatCompletionsToolSelectionPreset { string, @doc(""" - Specifies that the model may either use any of the tools provided in this chat completions request or - instead return a standard chat completions response as if no tools were provided. - """) + Specifies that the model may either use any of the tools provided in this chat completions request or + instead return a standard chat completions response as if no tools were provided. + """) auto: "auto", @doc(""" - Specifies that the model should not respond with a tool call and should instead provide a standard chat - completions response. Response content may still be influenced by the provided tool definitions. - """) + Specifies that the model should not respond with a tool call and should instead provide a standard chat + completions response. Response content may still be influenced by the provided tool definitions. + """) none: "none", } @discriminator("type") @doc("An abstract representation of an explicit, named tool selection to use for a chat completions request.") model ChatCompletionsNamedToolSelection { + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" @doc("The object type.") type: string; } @@ -59,14 +60,15 @@ model ChatCompletionsFunctionToolSelection { @doc("An abstract representation of a tool that can be used by the model to improve a chat completions response.") @added(ServiceApiVersions.v2024_02_15_Preview) model ChatCompletionsToolDefinition { + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" @doc("The object type.") type: string; } @added(ServiceApiVersions.v2024_02_15_Preview) @doc(""" -The definition information for a chat completions function tool that can call a function in response to a tool call. -""") + The definition information for a chat completions function tool that can call a function in response to a tool call. + """) model ChatCompletionsFunctionToolDefinition extends ChatCompletionsToolDefinition { @doc("The object name, which is always 'function'.") @@ -80,11 +82,12 @@ model ChatCompletionsFunctionToolDefinition @discriminator("type") @doc(""" -An abstract representation of a tool call that must be resolved in a subsequent request to perform the requested -chat completion. -""") + An abstract representation of a tool call that must be resolved in a subsequent request to perform the requested + chat completion. + """) @added(ServiceApiVersions.v2024_02_15_Preview) model ChatCompletionsToolCall { + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" @doc("The object type.") type: string; @@ -94,9 +97,9 @@ model ChatCompletionsToolCall { @added(ServiceApiVersions.v2024_02_15_Preview) @doc(""" -A tool call to a function tool, issued by the model in evaluation of a configured function tool, that represents -a function invocation needed for a subsequent chat completions request to resolve. -""") + A tool call to a function tool, issued by the model in evaluation of a configured function tool, that represents + a function invocation needed for a subsequent chat completions request to resolve. + """) model ChatCompletionsFunctionToolCall extends ChatCompletionsToolCall { @doc("The type of tool call, in this case always 'function'.") type: "function"; diff --git a/specification/cognitiveservices/OpenAI.Inference/models/embeddings_create.tsp b/specification/cognitiveservices/OpenAI.Inference/models/embeddings_create.tsp index e9e7034311da..eddaa1cb4b5a 100644 --- a/specification/cognitiveservices/OpenAI.Inference/models/embeddings_create.tsp +++ b/specification/cognitiveservices/OpenAI.Inference/models/embeddings_create.tsp @@ -11,10 +11,10 @@ using Azure.ClientGenerator.Core; namespace Azure.OpenAI; @doc(""" -The configuration information for an embeddings request. -Embeddings measure the relatedness of text strings and are commonly used for search, clustering, -recommendations, and other similar scenarios. -""") + The configuration information for an embeddings request. + Embeddings measure the relatedness of text strings and are commonly used for search, clustering, + recommendations, and other similar scenarios. + """) model EmbeddingsOptions { @doc(""" An identifier for the caller or end user of the operation. This may be used for tracking @@ -33,7 +33,7 @@ model EmbeddingsOptions { @doc(""" Input texts to get embeddings for, encoded as a an array of strings. Each input must not exceed 2048 tokens in length. - + Unless you are embedding code, we suggest replacing newlines (\\n) in your input with a single space, as we have observed inferior results when newlines are present. """) @@ -67,10 +67,10 @@ union EmbeddingEncodingFormat { } @doc(""" -Representation of the response data from an embeddings request. -Embeddings measure the relatedness of text strings and are commonly used for search, clustering, -recommendations, and other similar scenarios. -""") + Representation of the response data from an embeddings request. + Embeddings measure the relatedness of text strings and are commonly used for search, clustering, + recommendations, and other similar scenarios. + """) model Embeddings { @doc("Embedding values for the prompts submitted in the request.") data: EmbeddingItem[]; diff --git a/specification/cognitiveservices/OpenAI.Inference/models/images/images.tsp b/specification/cognitiveservices/OpenAI.Inference/models/images/images.tsp index e0b920275934..b0619f8b0f5e 100644 --- a/specification/cognitiveservices/OpenAI.Inference/models/images/images.tsp +++ b/specification/cognitiveservices/OpenAI.Inference/models/images/images.tsp @@ -19,75 +19,75 @@ union ImageSize { string, @doc(""" - Very small image size of 256x256 pixels. - Only supported with dall-e-2 models. - """) + Very small image size of 256x256 pixels. + Only supported with dall-e-2 models. + """) size256x256: "256x256", @doc(""" - A smaller image size of 512x512 pixels. - Only supported with dall-e-2 models. - """) + A smaller image size of 512x512 pixels. + Only supported with dall-e-2 models. + """) size512x512: "512x512", @doc(""" - A standard, square image size of 1024x1024 pixels. - Supported by both dall-e-2 and dall-e-3 models. - """) + A standard, square image size of 1024x1024 pixels. + Supported by both dall-e-2 and dall-e-3 models. + """) @added(ServiceApiVersions.v2024_02_15_Preview) size1024x1024: "1024x1024", @doc(""" - A wider image size of 1024x1792 pixels. - Only supported with dall-e-3 models. - """) + A wider image size of 1024x1792 pixels. + Only supported with dall-e-3 models. + """) @added(ServiceApiVersions.v2024_02_15_Preview) size1792x1024: "1792x1024", @doc(""" - A taller image size of 1792x1024 pixels. - Only supported with dall-e-3 models. - """) + A taller image size of 1792x1024 pixels. + Only supported with dall-e-3 models. + """) @added(ServiceApiVersions.v2024_02_15_Preview) size1024x1792: "1024x1792", } @doc(""" -An image generation configuration that specifies how the model should prioritize quality, cost, and speed. -Only configurable with dall-e-3 models. -""") + An image generation configuration that specifies how the model should prioritize quality, cost, and speed. + Only configurable with dall-e-3 models. + """) @added(ServiceApiVersions.v2024_02_15_Preview) union ImageGenerationQuality { string, @doc(""" - Requests image generation with standard, balanced characteristics of quality, cost, and speed. - """) + Requests image generation with standard, balanced characteristics of quality, cost, and speed. + """) standard: "standard", @doc(""" - Requests image generation with higher quality, higher cost and lower speed relative to standard. - """) + Requests image generation with higher quality, higher cost and lower speed relative to standard. + """) hd: "hd", } @doc(""" -An image generation configuration that specifies how the model should incorporate realism and other visual characteristics. -Only configurable with dall-e-3 models. -""") + An image generation configuration that specifies how the model should incorporate realism and other visual characteristics. + Only configurable with dall-e-3 models. + """) @added(ServiceApiVersions.v2024_02_15_Preview) union ImageGenerationStyle { string, @doc(""" - Requests image generation in a natural style with less preference for dramatic and hyper-realistic characteristics. - """) + Requests image generation in a natural style with less preference for dramatic and hyper-realistic characteristics. + """) natural: "natural", @doc(""" - Requests image generation in a vivid style with a higher preference for dramatic and hyper-realistic - characteristics. - """) + Requests image generation in a vivid style with a higher preference for dramatic and hyper-realistic + characteristics. + """) vivid: "vivid", } @@ -107,27 +107,27 @@ union ImageGenerationResponseFormat { @added(ServiceApiVersions.v2023_06_01_Preview) model ImageGenerationOptions { @doc(""" - The model name or Azure OpenAI model deployment name to use for image generation. If not specified, dall-e-2 will be - inferred as a default. - """) + The model name or Azure OpenAI model deployment name to use for image generation. If not specified, dall-e-2 will be + inferred as a default. + """) `model`?: string; @doc("A description of the desired images.") prompt: string; @doc(""" - The number of images to generate. - Dall-e-2 models support values between 1 and 10. - Dall-e-3 models only support a value of 1. - """) + The number of images to generate. + Dall-e-2 models support values between 1 and 10. + Dall-e-3 models only support a value of 1. + """) @clientName("ImageCount", "csharp") n?: int32 = 1; @doc(""" - The desired dimensions for generated images. - Dall-e-2 models support 256x256, 512x512, or 1024x1024. - Dall-e-3 models support 1024x1024, 1792x1024, or 1024x1792. - """) + The desired dimensions for generated images. + Dall-e-2 models support 256x256, 512x512, or 1024x1024. + Dall-e-3 models support 1024x1024, 1792x1024, or 1024x1792. + """) size?: ImageSize = ImageSize.size1024x1024; @doc("The format in which image generation response items should be presented.") @@ -135,16 +135,16 @@ model ImageGenerationOptions { responseFormat?: ImageGenerationResponseFormat = ImageGenerationResponseFormat.url; @doc(""" - The desired image generation quality level to use. - Only configurable with dall-e-3 models. - """) + The desired image generation quality level to use. + Only configurable with dall-e-3 models. + """) @added(ServiceApiVersions.v2024_02_15_Preview) quality?: ImageGenerationQuality = ImageGenerationQuality.standard; @doc(""" - The desired image generation style to use. - Only configurable with dall-e-3 models. - """) + The desired image generation style to use. + Only configurable with dall-e-3 models. + """) @added(ServiceApiVersions.v2024_02_15_Preview) style?: ImageGenerationStyle = ImageGenerationStyle.vivid; @@ -156,32 +156,32 @@ model ImageGenerationOptions { @added(ServiceApiVersions.v2024_02_15_Preview) model ImageGenerationContentFilterResults { @doc(""" - Describes language related to anatomical organs and genitals, romantic relationships, - acts portrayed in erotic or affectionate terms, physical sexual acts, including - those portrayed as an assault or a forced sexual violent act against one’s will, - prostitution, pornography, and abuse. - """) + Describes language related to anatomical organs and genitals, romantic relationships, + acts portrayed in erotic or affectionate terms, physical sexual acts, including + those portrayed as an assault or a forced sexual violent act against one’s will, + prostitution, pornography, and abuse. + """) sexual?: ContentFilterResult; @doc(""" - Describes language related to physical actions intended to hurt, injure, damage, or - kill someone or something; describes weapons, etc. - """) + Describes language related to physical actions intended to hurt, injure, damage, or + kill someone or something; describes weapons, etc. + """) violence?: ContentFilterResult; @doc(""" - Describes language attacks or uses that include pejorative or discriminatory language - with reference to a person or identity group on the basis of certain differentiating - attributes of these groups including but not limited to race, ethnicity, nationality, - gender identity and expression, sexual orientation, religion, immigration status, ability - status, personal appearance, and body size. - """) + Describes language attacks or uses that include pejorative or discriminatory language + with reference to a person or identity group on the basis of certain differentiating + attributes of these groups including but not limited to race, ethnicity, nationality, + gender identity and expression, sexual orientation, religion, immigration status, ability + status, personal appearance, and body size. + """) hate?: ContentFilterResult; @doc(""" - Describes language related to physical actions intended to purposely hurt, injure, - or damage one’s body, or kill oneself. - """) + Describes language related to physical actions intended to purposely hurt, injure, + or damage one’s body, or kill oneself. + """) @encodedName("application/json", "self_harm") selfHarm?: ContentFilterResult; } @@ -204,9 +204,9 @@ model ImageGenerationPromptFilterResults { } @doc(""" -A representation of a single generated image, provided as either base64-encoded data or as a URL from which the image -may be retrieved. -""") + A representation of a single generated image, provided as either base64-encoded data or as a URL from which the image + may be retrieved. + """) @added(ServiceApiVersions.v2023_06_01_Preview) model ImageGenerationData { @doc("The URL that provides temporary access to download the generated image.") @@ -222,21 +222,21 @@ model ImageGenerationData { contentFilterResults?: ImageGenerationContentFilterResults; @doc(""" - The final prompt used by the model to generate the image. - Only provided with dall-3-models and only when revisions were made to the prompt. - """) + The final prompt used by the model to generate the image. + Only provided with dall-3-models and only when revisions were made to the prompt. + """) @added(ServiceApiVersions.v2024_02_15_Preview) @encodedName("application/json", "revised_prompt") revisedPrompt?: string; @doc(""" - Information about the content filtering category (hate, sexual, violence, self_harm), if - it has been detected, as well as the severity level (very_low, low, medium, high-scale - that determines the intensity and risk level of harmful content) and if it has been - filtered or not. Information about jailbreak content and profanity, if it has been detected, - and if it has been filtered or not. And information about customer block list, if it has - been filtered and its id. - """) + Information about the content filtering category (hate, sexual, violence, self_harm), if + it has been detected, as well as the severity level (very_low, low, medium, high-scale + that determines the intensity and risk level of harmful content) and if it has been + filtered or not. Information about jailbreak content and profanity, if it has been detected, + and if it has been filtered or not. And information about customer block list, if it has + been filtered and its id. + """) @added(ServiceApiVersions.v2024_02_15_Preview) @encodedName("application/json", "prompt_filter_results") promptFilterResults?: ImageGenerationPromptFilterResults; @@ -246,9 +246,9 @@ model ImageGenerationData { @added(ServiceApiVersions.v2023_06_01_Preview) model ImageGenerations { @doc(""" - A timestamp representing when this operation was started. - Expressed in seconds since the Unix epoch of 1970-01-01T00:00:00+0000. - """) + A timestamp representing when this operation was started. + Expressed in seconds since the Unix epoch of 1970-01-01T00:00:00+0000. + """) @clientName("createdAt", "java") @encode(DateTimeKnownEncoding.unixTimestamp, int32) created: utcDateTime; diff --git a/specification/cognitiveservices/OpenAI.Inference/routes/audio_transcription.tsp b/specification/cognitiveservices/OpenAI.Inference/routes/audio_transcription.tsp index 217c05759658..6a3fab3d6e9c 100644 --- a/specification/cognitiveservices/OpenAI.Inference/routes/audio_transcription.tsp +++ b/specification/cognitiveservices/OpenAI.Inference/routes/audio_transcription.tsp @@ -19,9 +19,9 @@ namespace Azure.OpenAI; #suppress "@azure-tools/typespec-azure-core/byos" "representation of existing multipart/form-data operation" #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "non-model response value needed" @doc(""" -Gets transcribed text and associated metadata from provided spoken audio data. Audio will be transcribed in the -written language corresponding to the language it was spoken in. -""") + Gets transcribed text and associated metadata from provided spoken audio data. Audio will be transcribed in the + written language corresponding to the language it was spoken in. + """) @added(ServiceApiVersions.v2024_02_15_Preview) @actionSeparator("/") @action("audio/transcriptions") @@ -35,9 +35,9 @@ op getAudioTranscriptionAsPlainText is Azure.Core.ResourceAction< #suppress "@azure-tools/typespec-azure-core/byos" "representation of existing multipart/form-data operation" @doc(""" -Gets transcribed text and associated metadata from provided spoken audio data. Audio will be transcribed in the -written language corresponding to the language it was spoken in. -""") + Gets transcribed text and associated metadata from provided spoken audio data. Audio will be transcribed in the + written language corresponding to the language it was spoken in. + """) @added(ServiceApiVersions.v2024_02_15_Preview) @actionSeparator("/") @action("audio/transcriptions") diff --git a/specification/cognitiveservices/OpenAI.Inference/routes/audio_translation.tsp b/specification/cognitiveservices/OpenAI.Inference/routes/audio_translation.tsp index 8c2b8adb5562..0f36637e5964 100644 --- a/specification/cognitiveservices/OpenAI.Inference/routes/audio_translation.tsp +++ b/specification/cognitiveservices/OpenAI.Inference/routes/audio_translation.tsp @@ -19,8 +19,8 @@ namespace Azure.OpenAI; #suppress "@azure-tools/typespec-azure-core/byos" "representation of existing multipart/form-data operation" #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "non-model response value needed" @doc(""" -Gets English language transcribed text and associated metadata from provided spoken audio data. -""") + Gets English language transcribed text and associated metadata from provided spoken audio data. + """) @added(ServiceApiVersions.v2024_02_15_Preview) @actionSeparator("/") @action("audio/translations") @@ -34,8 +34,8 @@ op getAudioTranslationAsPlainText is Azure.Core.ResourceAction< #suppress "@azure-tools/typespec-azure-core/byos" "representation of existing multipart/form-data operation" @doc(""" -Gets English language transcribed text and associated metadata from provided spoken audio data. -""") + Gets English language transcribed text and associated metadata from provided spoken audio data. + """) @added(ServiceApiVersions.v2024_02_15_Preview) @actionSeparator("/") @action("audio/translations") diff --git a/specification/cognitiveservices/OpenAI.Inference/routes/completions.tsp b/specification/cognitiveservices/OpenAI.Inference/routes/completions.tsp index 823f980fcde7..284b0842ca5d 100644 --- a/specification/cognitiveservices/OpenAI.Inference/routes/completions.tsp +++ b/specification/cognitiveservices/OpenAI.Inference/routes/completions.tsp @@ -15,10 +15,10 @@ using Azure.Core; namespace Azure.OpenAI; @doc(""" -Gets completions for the provided input prompts. -Completions support a wide variety of tasks and generate text that continues from or "completes" -provided prompt data. -""") + Gets completions for the provided input prompts. + Completions support a wide variety of tasks and generate text that continues from or "completes" + provided prompt data. + """) @actionSeparator("/") @action("completions") //@convenientAPI(true) op getCompletions is Azure.Core.ResourceAction< @@ -28,10 +28,10 @@ op getCompletions is Azure.Core.ResourceAction< >; @doc(""" -Gets chat completions for the provided chat messages. -Completions support a wide variety of tasks and generate text that continues from or "completes" -provided prompt data. -""") + Gets chat completions for the provided chat messages. + Completions support a wide variety of tasks and generate text that continues from or "completes" + provided prompt data. + """) @added(ServiceApiVersions.v2023_05_15) @actionSeparator("/") @action("chat/completions") //@convenientAPI(true) diff --git a/specification/cognitiveservices/OpenAI.Inference/tspconfig.yaml b/specification/cognitiveservices/OpenAI.Inference/tspconfig.yaml index 33a2c0b7b7c9..774d75419735 100644 --- a/specification/cognitiveservices/OpenAI.Inference/tspconfig.yaml +++ b/specification/cognitiveservices/OpenAI.Inference/tspconfig.yaml @@ -13,6 +13,7 @@ options: emitter-output-dir: "{project-root}/../" output-file: "{azure-resource-provider-folder}/AzureOpenAI/inference/{version-status}/{version}/generated.json" azure-resource-provider-folder: "data-plane" + emit-lro-options: "none" examples-directory: "{project-root}/examples" omit-unreachable-types: true "@azure-tools/typespec-csharp": diff --git a/specification/communication/Communication.JobRouter/models.tsp b/specification/communication/Communication.JobRouter/models.tsp index 66014395d3fd..c09a1ec53fde 100644 --- a/specification/communication/Communication.JobRouter/models.tsp +++ b/specification/communication/Communication.JobRouter/models.tsp @@ -380,13 +380,13 @@ model ClassificationPolicy { } @doc(""" -A rule of one of the following types: -StaticRule: A rule providing static rules that always return the same result, regardless of input. -DirectMapRule: A rule that return the same labels as the input labels. -ExpressionRule: A rule providing inline expression rules. -FunctionRule: A rule providing a binding to an HTTP Triggered Azure Function. -WebhookRule: A rule providing a binding to a webserver following OAuth2.0 authentication protocol. -""") + A rule of one of the following types: + StaticRule: A rule providing static rules that always return the same result, regardless of input. + DirectMapRule: A rule that return the same labels as the input labels. + ExpressionRule: A rule providing inline expression rules. + FunctionRule: A rule providing a binding to an HTTP Triggered Azure Function. + WebhookRule: A rule providing a binding to a webserver following OAuth2.0 authentication protocol. + """) @discriminator("kind") model RouterRule { @doc("The type discriminator describing a sub-type of RouterRule") @@ -590,11 +590,11 @@ model RouterJobAssignment { } @doc(""" -A matching mode of one of the following types: -QueueAndMatchMode: Used when matching worker to a job is required to be done right after job is queued. -ScheduleAndSuspendMode: Used for scheduling jobs to be queued at a future time. At specified time, matching of a worker to the job will not start automatically. -SuspendMode: Used when matching workers to a job needs to be suspended. -""") + A matching mode of one of the following types: + QueueAndMatchMode: Used when matching worker to a job is required to be done right after job is queued. + ScheduleAndSuspendMode: Used for scheduling jobs to be queued at a future time. At specified time, matching of a worker to the job will not start automatically. + SuspendMode: Used when matching workers to a job needs to be suspended. + """) @discriminator("kind") model JobMatchingMode { @doc("The type discriminator describing a sub-type of JobMatchingMode.") @@ -865,7 +865,7 @@ model ScoringRuleOptions { batchSize?: int32 = 20; @doc("List of extra parameters from a job that will be sent as part of the payload to scoring rule. If not set, a job's labels (sent in the payload as `job`) and a job's worker selectors (sent in the payload as `selectors`) are added to the payload of the scoring rule by default. Note: Worker labels are always sent with scoring payload.") - scoringParameters?: ScoringRuleParameterSelector[] = [ + scoringParameters?: ScoringRuleParameterSelector[] = #[ ScoringRuleParameterSelector.jobLabels, ScoringRuleParameterSelector.workerSelectors ]; diff --git a/specification/communication/Communication.JobRouter/tspconfig.yaml b/specification/communication/Communication.JobRouter/tspconfig.yaml index 2b99d766d271..e6cf699eae6a 100644 --- a/specification/communication/Communication.JobRouter/tspconfig.yaml +++ b/specification/communication/Communication.JobRouter/tspconfig.yaml @@ -23,6 +23,7 @@ linter: options: "@azure-tools/typespec-autorest": azure-resource-provider-folder: "data-plane" + emit-lro-options: "none" output-file: "{azure-resource-provider-folder}/JobRouter/{version-status}/{version}/communicationservicejobrouter.json" emitter-output-dir: "{project-root}/.." omit-unreachable-types: true diff --git a/specification/communication/Communication.Messages/tspconfig.yaml b/specification/communication/Communication.Messages/tspconfig.yaml index ac47a74e4762..f9604a3a266c 100644 --- a/specification/communication/Communication.Messages/tspconfig.yaml +++ b/specification/communication/Communication.Messages/tspconfig.yaml @@ -23,6 +23,7 @@ linter: options: "@azure-tools/typespec-autorest": azure-resource-provider-folder: "data-plane" + emit-lro-options: "none" output-file: "{azure-resource-provider-folder}/Messages/{version-status}/{version}/communicationservicesmessages.json" emitter-output-dir: "{project-root}/.." omit-unreachable-types: true diff --git a/specification/communitytraining/Community.Management/main.tsp b/specification/communitytraining/Community.Management/main.tsp index bf3d917bd6ba..2c2a9c763bc4 100644 --- a/specification/communitytraining/Community.Management/main.tsp +++ b/specification/communitytraining/Community.Management/main.tsp @@ -138,7 +138,12 @@ model CommunityTrainingProperties { @armResourceOperations interface CommunityTrainings { get is ArmResourceRead; - create is ArmResourceCreateOrUpdateAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + create is ArmResourceCreateOrUpdateAsync< + CommunityTraining, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; update is ArmResourcePatchAsync< CommunityTraining, CommunityTrainingProperties diff --git a/specification/communitytraining/resource-manager/Microsoft.Community/stable/2023-11-01/CommunityTrainings.json b/specification/communitytraining/resource-manager/Microsoft.Community/stable/2023-11-01/CommunityTrainings.json index 45f86ef2438f..267b74e8889a 100644 --- a/specification/communitytraining/resource-manager/Microsoft.Community/stable/2023-11-01/CommunityTrainings.json +++ b/specification/communitytraining/resource-manager/Microsoft.Community/stable/2023-11-01/CommunityTrainings.json @@ -425,11 +425,7 @@ "properties": { "$ref": "#/definitions/CommunityTrainingProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "sku": { "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/Sku", diff --git a/specification/confidentialledger/Microsoft.ManagedCcf/service_state.tsp b/specification/confidentialledger/Microsoft.ManagedCcf/service_state.tsp index c9ddd22b76b8..0d84f59a9b4a 100644 --- a/specification/confidentialledger/Microsoft.ManagedCcf/service_state.tsp +++ b/specification/confidentialledger/Microsoft.ManagedCcf/service_state.tsp @@ -58,6 +58,7 @@ union NodeStatus { "Retired", } +#suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" @doc("Common type for attestation information, describing the cryptographically-endorsed claim of what code is executing, and what platform it is executing on. Derived types contain platform-specific details.") @discriminator("format") model QuoteInfo {} diff --git a/specification/containerservice/Fleet.Management/fleet.tsp b/specification/containerservice/Fleet.Management/fleet.tsp index a333c7d5b36e..df75bf9acedc 100644 --- a/specification/containerservice/Fleet.Management/fleet.tsp +++ b/specification/containerservice/Fleet.Management/fleet.tsp @@ -33,7 +33,7 @@ model Fleet is TrackedResource { #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "https://github.com/Azure/typespec-azure/issues/2840" @added(Versions.v2023_06_15_preview) @doc("Managed identity.") - identity?: Azure.ResourceManager.Foundations.ManagedServiceIdentity; + identity?: Azure.ResourceManager.Legacy.ManagedServiceIdentityV4; } @doc("Fleet properties.") @@ -154,7 +154,7 @@ model FleetPatch { #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "https://github.com/Azure/typespec-azure/issues/2840" @added(Versions.v2023_06_15_preview) @doc("Managed identity.") - identity?: Azure.ResourceManager.Foundations.ManagedServiceIdentity; + identity?: Azure.ResourceManager.Legacy.ManagedServiceIdentityV4; } @doc("One credential result item.") @@ -181,14 +181,17 @@ interface Fleets { @doc("Gets a Fleet.") get is ArmResourceRead; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "must change at next update" #suppress "@azure-tools/typespec-azure-core/no-operation-id" "changing the operation-id on an existing operation is an SDK breaking change" @doc("Creates or updates a Fleet.") @operationId("Fleets_CreateOrUpdate") + @Azure.Core.useFinalStateVia("azure-async-operation") create is ArmResourceCreateOrUpdateAsync< Fleet, Azure.ResourceManager.Foundations.BaseParameters & IfMatchParameters & - IfNoneMatchParameters + IfNoneMatchParameters, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader >; #suppress "@azure-tools/typespec-providerhub/non-breaking-versioning" "Actual breaking change" diff --git a/specification/containerservice/Fleet.Management/fleetmember.tsp b/specification/containerservice/Fleet.Management/fleetmember.tsp index 6a954722b77c..970f6dd7cd42 100644 --- a/specification/containerservice/Fleet.Management/fleetmember.tsp +++ b/specification/containerservice/Fleet.Management/fleetmember.tsp @@ -76,11 +76,14 @@ union FleetMemberProvisioningState { interface FleetMembers { get is ArmResourceRead; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "must change at next release" + @Azure.Core.useFinalStateVia("azure-async-operation") create is ArmResourceCreateOrUpdateAsync< FleetMember, Azure.ResourceManager.Foundations.BaseParameters & IfMatchParameters & - IfNoneMatchParameters + IfNoneMatchParameters, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader >; #suppress "@azure-tools/typespec-providerhub/non-breaking-versioning" "Actual breaking change" diff --git a/specification/containerservice/Fleet.Management/update/common.tsp b/specification/containerservice/Fleet.Management/update/common.tsp index 1c78837a6ed1..258ff298c61a 100644 --- a/specification/containerservice/Fleet.Management/update/common.tsp +++ b/specification/containerservice/Fleet.Management/update/common.tsp @@ -4,14 +4,14 @@ using TypeSpec.OpenAPI; namespace Microsoft.ContainerService; @doc(""" -Defines the update sequence of the clusters via stages and groups. - -Stages within a run are executed sequentially one after another. -Groups within a stage are executed in parallel. -Member clusters within a group are updated sequentially one after another. - -A valid strategy contains no duplicate groups within or across stages. -""") + Defines the update sequence of the clusters via stages and groups. + + Stages within a run are executed sequentially one after another. + Groups within a stage are executed in parallel. + Member clusters within a group are updated sequentially one after another. + + A valid strategy contains no duplicate groups within or across stages. + """) model UpdateRunStrategy { @extension("x-ms-identifiers", ["name"]) @doc("The list of stages that compose this update run. Min size: 1.") diff --git a/specification/containerservice/Fleet.Management/update/run.tsp b/specification/containerservice/Fleet.Management/update/run.tsp index 659fede185b6..004f32fcca0c 100644 --- a/specification/containerservice/Fleet.Management/update/run.tsp +++ b/specification/containerservice/Fleet.Management/update/run.tsp @@ -51,14 +51,14 @@ model UpdateRunProperties { @doc(""" The resource id of the FleetUpdateStrategy resource to reference. - + When creating a new run, there are three ways to define a strategy for the run: 1. Define a new strategy in place: Set the "strategy" field. 2. Use an existing strategy: Set the "updateStrategyId" field. (since 2023-08-15-preview) 3. Use the default strategy to update all the members one by one: Leave both "updateStrategyId" and "strategy" unset. (since 2023-08-15-preview) - + Setting both "updateStrategyId" and "strategy" is invalid. - + UpdateRuns created by "updateStrategyId" snapshot the referenced UpdateStrategy at the time of creation and store it in the "strategy" field. Subsequent changes to the referenced FleetUpdateStrategy resource do not propagate. UpdateRunStrategy changes can be made directly on the "strategy" field before launching the UpdateRun. @@ -67,10 +67,10 @@ model UpdateRunProperties { updateStrategyId?: FleetUpdateStrategyResourceId; @doc(""" -The strategy defines the order in which the clusters will be updated. -If not set, all members will be updated sequentially. The UpdateRun status will show a single UpdateStage and a single UpdateGroup targeting all members. -The strategy of the UpdateRun can be modified until the run is started. -""") + The strategy defines the order in which the clusters will be updated. + If not set, all members will be updated sequentially. The UpdateRun status will show a single UpdateStage and a single UpdateGroup targeting all members. + The strategy of the UpdateRun can be modified until the run is started. + """) strategy?: UpdateRunStrategy; @doc("The update to be applied to all clusters in the UpdateRun. The managedClusterUpdate can be modified until the run is started.") @@ -314,10 +314,10 @@ model SkipTarget { type: TargetType; @doc(""" - The skip target's name. - To skip a member/group/stage, use the member/group/stage's name; - Tp skip an after stage wait, use the parent stage's name. - """) + The skip target's name. + To skip a member/group/stage, use the member/group/stage's name; + Tp skip an after stage wait, use the parent stage's name. + """) name: string; } @@ -334,11 +334,14 @@ model SkipProperties { interface UpdateRuns { get is ArmResourceRead; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE AT NEXT VERSION" + @Azure.Core.useFinalStateVia("azure-async-operation") createOrUpdate is ArmResourceCreateOrUpdateAsync< UpdateRun, Azure.ResourceManager.Foundations.BaseParameters & IfMatchParameters & - IfNoneMatchParameters + IfNoneMatchParameters, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader >; #suppress "deprecated" "Existing API" diff --git a/specification/containerservice/Fleet.Management/update/strategy.tsp b/specification/containerservice/Fleet.Management/update/strategy.tsp index 87fe0259b543..6e44e7ee30ff 100644 --- a/specification/containerservice/Fleet.Management/update/strategy.tsp +++ b/specification/containerservice/Fleet.Management/update/strategy.tsp @@ -55,11 +55,14 @@ model FleetUpdateStrategyProperties { interface FleetUpdateStrategies { get is ArmResourceRead; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE AT NEXT API VERSION UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") createOrUpdate is ArmResourceCreateOrUpdateAsync< FleetUpdateStrategy, Azure.ResourceManager.Foundations.BaseParameters & IfMatchParameters & - IfNoneMatchParameters + IfNoneMatchParameters, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader >; #suppress "deprecated" "Existing API" diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/fleet/preview/2022-09-02-preview/fleets.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/fleet/preview/2022-09-02-preview/fleets.json index ac851bd682c4..787b575865e6 100644 --- a/specification/containerservice/resource-manager/Microsoft.ContainerService/fleet/preview/2022-09-02-preview/fleets.json +++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/fleet/preview/2022-09-02-preview/fleets.json @@ -805,11 +805,7 @@ "properties": { "$ref": "#/definitions/FleetProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "eTag": { "type": "string", @@ -912,11 +908,7 @@ "properties": { "$ref": "#/definitions/FleetMemberProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "eTag": { "type": "string", diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/fleet/preview/2023-03-15-preview/fleets.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/fleet/preview/2023-03-15-preview/fleets.json index 32b7be221206..bf1161cc3a11 100644 --- a/specification/containerservice/resource-manager/Microsoft.ContainerService/fleet/preview/2023-03-15-preview/fleets.json +++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/fleet/preview/2023-03-15-preview/fleets.json @@ -1345,11 +1345,7 @@ "properties": { "$ref": "#/definitions/FleetProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "eTag": { "type": "string", @@ -1452,11 +1448,7 @@ "properties": { "$ref": "#/definitions/FleetMemberProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "eTag": { "type": "string", @@ -1802,11 +1794,7 @@ "properties": { "$ref": "#/definitions/UpdateRunProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "eTag": { "type": "string", diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/fleet/preview/2023-06-15-preview/fleets.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/fleet/preview/2023-06-15-preview/fleets.json index ac52d0f232dd..ea0d25f30e1d 100644 --- a/specification/containerservice/resource-manager/Microsoft.ContainerService/fleet/preview/2023-06-15-preview/fleets.json +++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/fleet/preview/2023-06-15-preview/fleets.json @@ -1425,11 +1425,7 @@ "properties": { "$ref": "#/definitions/FleetProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "eTag": { "type": "string", @@ -1552,11 +1548,7 @@ "properties": { "$ref": "#/definitions/FleetMemberProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "eTag": { "type": "string", @@ -2000,11 +1992,7 @@ "properties": { "$ref": "#/definitions/UpdateRunProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "eTag": { "type": "string", diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/fleet/preview/2023-08-15-preview/fleets.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/fleet/preview/2023-08-15-preview/fleets.json index f747f3811aa2..783d024a09ab 100644 --- a/specification/containerservice/resource-manager/Microsoft.ContainerService/fleet/preview/2023-08-15-preview/fleets.json +++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/fleet/preview/2023-08-15-preview/fleets.json @@ -1729,11 +1729,7 @@ "properties": { "$ref": "#/definitions/FleetProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "eTag": { "type": "string", @@ -1861,11 +1857,7 @@ "properties": { "$ref": "#/definitions/FleetMemberProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "eTag": { "type": "string", @@ -2089,11 +2081,7 @@ "properties": { "$ref": "#/definitions/FleetUpdateStrategyProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "eTag": { "type": "string", @@ -2421,11 +2409,7 @@ "properties": { "$ref": "#/definitions/UpdateRunProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "eTag": { "type": "string", diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/fleet/preview/2024-02-02-preview/fleets.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/fleet/preview/2024-02-02-preview/fleets.json index 22140dbc468d..a83cfbde5750 100644 --- a/specification/containerservice/resource-manager/Microsoft.ContainerService/fleet/preview/2024-02-02-preview/fleets.json +++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/fleet/preview/2024-02-02-preview/fleets.json @@ -1823,11 +1823,7 @@ "properties": { "$ref": "#/definitions/FleetProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "eTag": { "type": "string", @@ -1955,11 +1951,7 @@ "properties": { "$ref": "#/definitions/FleetMemberProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "eTag": { "type": "string", @@ -2183,11 +2175,7 @@ "properties": { "$ref": "#/definitions/FleetUpdateStrategyProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "eTag": { "type": "string", @@ -2595,11 +2583,7 @@ "properties": { "$ref": "#/definitions/UpdateRunProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "eTag": { "type": "string", diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/fleet/stable/2023-10-15/fleets.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/fleet/stable/2023-10-15/fleets.json index d6c7e2156661..c184493e1f2d 100644 --- a/specification/containerservice/resource-manager/Microsoft.ContainerService/fleet/stable/2023-10-15/fleets.json +++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/fleet/stable/2023-10-15/fleets.json @@ -1677,11 +1677,7 @@ "properties": { "$ref": "#/definitions/FleetProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "eTag": { "type": "string", @@ -1761,11 +1757,7 @@ "properties": { "$ref": "#/definitions/FleetMemberProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "eTag": { "type": "string", @@ -1985,11 +1977,7 @@ "properties": { "$ref": "#/definitions/FleetUpdateStrategyProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "eTag": { "type": "string", @@ -2305,11 +2293,7 @@ "properties": { "$ref": "#/definitions/UpdateRunProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "eTag": { "type": "string", diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/fleet/stable/2024-04-01/fleets.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/fleet/stable/2024-04-01/fleets.json index 1c2444f69b89..01ed08549633 100644 --- a/specification/containerservice/resource-manager/Microsoft.ContainerService/fleet/stable/2024-04-01/fleets.json +++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/fleet/stable/2024-04-01/fleets.json @@ -1807,11 +1807,7 @@ "properties": { "$ref": "#/definitions/FleetProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "eTag": { "type": "string", @@ -1939,11 +1935,7 @@ "properties": { "$ref": "#/definitions/FleetMemberProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "eTag": { "type": "string", @@ -2167,11 +2159,7 @@ "properties": { "$ref": "#/definitions/FleetUpdateStrategyProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "eTag": { "type": "string", @@ -2579,11 +2567,7 @@ "properties": { "$ref": "#/definitions/UpdateRunProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "eTag": { "type": "string", diff --git a/specification/containerstorage/ContainerStorage.Management/pool.tsp b/specification/containerstorage/ContainerStorage.Management/pool.tsp index 7bcdb9fbf61c..662e943c31e3 100644 --- a/specification/containerstorage/ContainerStorage.Management/pool.tsp +++ b/specification/containerstorage/ContainerStorage.Management/pool.tsp @@ -12,13 +12,18 @@ namespace Microsoft.ContainerStorage; @armResourceOperations interface Pools { get is ArmResourceRead; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" @extension( "x-ms-long-running-operation-options", { `final-state-via`: "location", } ) - createOrUpdate is ArmResourceCreateOrReplaceAsync; + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrReplaceAsync< + Pool, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; delete is ArmResourceDeleteWithoutOkAsync; update is ArmResourcePatchAsync; listByResourceGroup is ArmResourceListByParent; @@ -187,7 +192,7 @@ model Encryption { @doc("The URI of the key vault.") keyVaultUri: string; - ...ManagedServiceIdentityProperty; + ...Legacy.ManagedServiceIdentityV4Property; } @doc("Elastic San Pool Properties") diff --git a/specification/containerstorage/ContainerStorage.Management/snapshot.tsp b/specification/containerstorage/ContainerStorage.Management/snapshot.tsp index bd864fb92543..ed79f69d3d59 100644 --- a/specification/containerstorage/ContainerStorage.Management/snapshot.tsp +++ b/specification/containerstorage/ContainerStorage.Management/snapshot.tsp @@ -12,13 +12,18 @@ namespace Microsoft.ContainerStorage; @armResourceOperations interface Snapshots { get is ArmResourceRead; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" @extension( "x-ms-long-running-operation-options", { `final-state-via`: "location", } ) - createOrUpdate is ArmResourceCreateOrReplaceAsync; + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrReplaceAsync< + Snapshot, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; delete is ArmResourceDeleteWithoutOkAsync; listByPool is ArmResourceListByParent; } diff --git a/specification/containerstorage/ContainerStorage.Management/volume.tsp b/specification/containerstorage/ContainerStorage.Management/volume.tsp index ebd7e7977645..4187903a5615 100644 --- a/specification/containerstorage/ContainerStorage.Management/volume.tsp +++ b/specification/containerstorage/ContainerStorage.Management/volume.tsp @@ -12,13 +12,18 @@ namespace Microsoft.ContainerStorage; @armResourceOperations interface Volumes { get is ArmResourceRead; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" @extension( "x-ms-long-running-operation-options", { `final-state-via`: "location", } ) - createOrUpdate is ArmResourceCreateOrReplaceAsync; + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrReplaceAsync< + Volume, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; delete is ArmResourceDeleteWithoutOkAsync; update is ArmResourcePatchAsync; listByPool is ArmResourceListByParent; diff --git a/specification/containerstorage/resource-manager/Microsoft.ContainerStorage/preview/2023-07-01-preview/containerstorage.json b/specification/containerstorage/resource-manager/Microsoft.ContainerStorage/preview/2023-07-01-preview/containerstorage.json index a0b571348b7f..94ead5e8046e 100644 --- a/specification/containerstorage/resource-manager/Microsoft.ContainerStorage/preview/2023-07-01-preview/containerstorage.json +++ b/specification/containerstorage/resource-manager/Microsoft.ContainerStorage/preview/2023-07-01-preview/containerstorage.json @@ -1424,11 +1424,7 @@ "properties": { "$ref": "#/definitions/PoolProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -1742,11 +1738,7 @@ "properties": { "$ref": "#/definitions/SnapshotProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -1813,11 +1805,7 @@ "properties": { "$ref": "#/definitions/VolumeProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ diff --git a/specification/contosowidgetmanager/Contoso.WidgetManager/tspconfig.yaml b/specification/contosowidgetmanager/Contoso.WidgetManager/tspconfig.yaml index 34fc37ff279f..ce5527f45e35 100644 --- a/specification/contosowidgetmanager/Contoso.WidgetManager/tspconfig.yaml +++ b/specification/contosowidgetmanager/Contoso.WidgetManager/tspconfig.yaml @@ -13,6 +13,7 @@ linter: options: "@azure-tools/typespec-autorest": azure-resource-provider-folder: "data-plane" + emit-lro-options: "none" emitter-output-dir: "{project-root}/.." examples-directory: "examples" output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/widgets.json" diff --git a/specification/databasewatcher/DatabaseWatcher.Management/baseTarget.tsp b/specification/databasewatcher/DatabaseWatcher.Management/baseTarget.tsp index 86698fa6d172..41140fbc6587 100644 --- a/specification/databasewatcher/DatabaseWatcher.Management/baseTarget.tsp +++ b/specification/databasewatcher/DatabaseWatcher.Management/baseTarget.tsp @@ -28,6 +28,7 @@ model Target is ProxyResource { name: string; } +#suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" @doc("The generic properties of a target.") @discriminator("targetType") model TargetProperties { diff --git a/specification/databasewatcher/DatabaseWatcher.Management/sharedPrivateLinkResource.tsp b/specification/databasewatcher/DatabaseWatcher.Management/sharedPrivateLinkResource.tsp index 2537460d16d0..c34f20441d50 100644 --- a/specification/databasewatcher/DatabaseWatcher.Management/sharedPrivateLinkResource.tsp +++ b/specification/databasewatcher/DatabaseWatcher.Management/sharedPrivateLinkResource.tsp @@ -12,7 +12,12 @@ using TypeSpec.Rest; @armResourceOperations interface SharedPrivateLinkResources { get is ArmResourceRead; - create is ArmResourceCreateOrUpdateAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + create is ArmResourceCreateOrUpdateAsync< + SharedPrivateLinkResource, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; delete is ArmResourceDeleteWithoutOkAsync; listByParent is ArmResourceListByParent; } diff --git a/specification/databasewatcher/DatabaseWatcher.Management/watcher.tsp b/specification/databasewatcher/DatabaseWatcher.Management/watcher.tsp index 2f261c2e6eb8..4d90639e4cf3 100644 --- a/specification/databasewatcher/DatabaseWatcher.Management/watcher.tsp +++ b/specification/databasewatcher/DatabaseWatcher.Management/watcher.tsp @@ -40,7 +40,7 @@ model Watcher is TrackedResource { @segment("watchers") name: string; - ...ManagedServiceIdentityProperty; + ...Legacy.ManagedServiceIdentityV4Property; } @doc("The RP specific properties of the resource.") @@ -106,7 +106,12 @@ union KustoOfferingType { @armResourceOperations interface Watchers { get is ArmResourceRead; - createOrUpdate is ArmResourceCreateOrReplaceAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrReplaceAsync< + Watcher, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; update is ArmResourcePatchAsync; delete is ArmResourceDeleteWithoutOkAsync; listByResourceGroup is ArmResourceListByParent; diff --git a/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/preview/2023-09-01-preview/Watcher.json b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/preview/2023-09-01-preview/Watcher.json index f14d0a7c82a0..b0562b8ed9cb 100644 --- a/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/preview/2023-09-01-preview/Watcher.json +++ b/specification/databasewatcher/resource-manager/Microsoft.DatabaseWatcher/preview/2023-09-01-preview/Watcher.json @@ -1219,11 +1219,7 @@ "properties": { "$ref": "#/definitions/SharedPrivateLinkResourceProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -1486,11 +1482,7 @@ "properties": { "$ref": "#/definitions/TargetProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -1613,11 +1605,7 @@ "properties": { "$ref": "#/definitions/WatcherProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "identity": { "$ref": "../../../../../common-types/resource-management/v4/managedidentity.json#/definitions/ManagedServiceIdentity", diff --git a/specification/devcenter/DevCenter/DevBox/models.tsp b/specification/devcenter/DevCenter/DevBox/models.tsp index 93179a31531c..63b0321adbda 100644 --- a/specification/devcenter/DevCenter/DevBox/models.tsp +++ b/specification/devcenter/DevCenter/DevBox/models.tsp @@ -408,18 +408,18 @@ model Pool { imageReference?: ImageReference; @doc(""" -Indicates whether owners of Dev Boxes in this pool are local administrators on -the Dev Boxes. -""") + Indicates whether owners of Dev Boxes in this pool are local administrators on + the Dev Boxes. + """) localAdministrator?: LocalAdminStatus; @doc("Stop on disconnect configuration settings for Dev Boxes created in this pool.") stopOnDisconnect?: StopOnDisconnectConfiguration; @doc(""" -Overall health status of the Pool. Indicates whether or not the Pool is -available to create Dev Boxes. -""") + Overall health status of the Pool. Indicates whether or not the Pool is + available to create Dev Boxes. + """) healthStatus: PoolHealthStatus; @doc("Display name of the pool.") @@ -484,15 +484,15 @@ model ImageReference { @doc("Stop on disconnect configuration settings for Dev Boxes created in this pool.") model StopOnDisconnectConfiguration { @doc(""" -Indicates whether the feature to stop the devbox on disconnect once the grace -period has lapsed is enabled. -""") + Indicates whether the feature to stop the devbox on disconnect once the grace + period has lapsed is enabled. + """) status: StopOnDisconnectEnableStatus; @doc(""" -The specified time in minutes to wait before stopping a Dev Box once disconnect -is detected. -""") + The specified time in minutes to wait before stopping a Dev Box once disconnect + is detected. + """) gracePeriodMinutes?: int32; } @@ -575,9 +575,9 @@ model DevBox { provisioningState?: DevBoxProvisioningState; @doc(""" -The current action state of the Dev Box. This is state is based on previous -action performed by user. -""") + The current action state of the Dev Box. This is state is based on previous + action performed by user. + """) @visibility("read") actionState?: string; @@ -586,9 +586,9 @@ action performed by user. powerState?: PowerState; @doc(""" -A unique identifier for the Dev Box. This is a GUID-formatted string (e.g. -00000000-0000-0000-0000-000000000000). -""") + A unique identifier for the Dev Box. This is a GUID-formatted string (e.g. + 00000000-0000-0000-0000-000000000000). + """) @visibility("read") uniqueId?: Azure.Core.uuid; @@ -597,9 +597,9 @@ A unique identifier for the Dev Box. This is a GUID-formatted string (e.g. error?: Azure.Core.Foundations.Error; @doc(""" -Azure region where this Dev Box is located. This will be the same region as the -Virtual Network it is attached to. -""") + Azure region where this Dev Box is located. This will be the same region as the + Virtual Network it is attached to. + """) @visibility("read") location?: Azure.Core.azureLocation; @@ -923,10 +923,10 @@ model CustomizationTaskListValidationError { @added(APIVersions.v2024_05_01_preview) model CustomizationGroup { @doc(""" - Tasks to apply. Note by default tasks are excluded from the response when - listing customization groups. To include them, use the `include=tasks` query - parameter. - """) + Tasks to apply. Note by default tasks are excluded from the response when + listing customization groups. To include them, use the `include=tasks` query + parameter. + """) tasks?: CustomizationTask[]; @doc("The unique URI of the customization group.") diff --git a/specification/devcenter/DevCenter/DevBox/routes.tsp b/specification/devcenter/DevCenter/DevBox/routes.tsp index 1d84033630ad..7b1b78069f00 100644 --- a/specification/devcenter/DevCenter/DevBox/routes.tsp +++ b/specification/devcenter/DevCenter/DevBox/routes.tsp @@ -265,9 +265,9 @@ interface DevBoxes { >; @doc(""" - Lists customization groups on the Dev Box. Listed customization groups exclude - task information unless specified via the include parameter. - """) + Lists customization groups on the Dev Box. Listed customization groups exclude + task information unless specified via the include parameter. + """) @added(APIVersions.v2024_05_01_preview) listCustomizationGroups is StandardResourceOperations.ResourceList< CustomizationGroup, @@ -279,8 +279,8 @@ interface DevBoxes { >; @doc(""" - Gets a customization group. - """) + Gets a customization group. + """) @added(APIVersions.v2024_05_01_preview) getCustomizationGroup is StandardResourceOperations.ResourceRead; @@ -309,9 +309,9 @@ interface DevBoxes { projectName: string; @doc(""" - The AAD object id of the user. If value is 'me', the identity is taken from the - authentication context. - """) + The AAD object id of the user. If value is 'me', the identity is taken from the + authentication context. + """) @maxLength(36) @minLength(2) @pattern("^[a-zA-Z0-9]{8}-([a-zA-Z0-9]{4}-){3}[a-zA-Z0-9]{12}$|^me$") @@ -354,9 +354,9 @@ interface DevBoxes { projectName: string; @doc(""" - The AAD object id of the user. If value is 'me', the identity is taken from the - authentication context. - """) + The AAD object id of the user. If value is 'me', the identity is taken from the + authentication context. + """) @maxLength(36) @minLength(2) @pattern("^[a-zA-Z0-9]{8}-([a-zA-Z0-9]{4}-){3}[a-zA-Z0-9]{12}$|^me$") diff --git a/specification/devcenter/DevCenter/DevCenter/routes.tsp b/specification/devcenter/DevCenter/DevCenter/routes.tsp index 8bbdeab5cd1d..b1fc6f9bcf21 100644 --- a/specification/devcenter/DevCenter/DevCenter/routes.tsp +++ b/specification/devcenter/DevCenter/DevCenter/routes.tsp @@ -32,9 +32,9 @@ interface DevCenter { projectName: string; @doc(""" - The AAD object id of the user. If value is 'me', the identity is taken from the - authentication context. - """) + The AAD object id of the user. If value is 'me', the identity is taken from the + authentication context. + """) @maxLength(36) @minLength(2) @pattern("^[a-zA-Z0-9]{8}-([a-zA-Z0-9]{4}-){3}[a-zA-Z0-9]{12}$|^me$") diff --git a/specification/devcenter/DevCenter/Environments/models.tsp b/specification/devcenter/DevCenter/Environments/models.tsp index 42d07d34e076..06b7c1b03cef 100644 --- a/specification/devcenter/DevCenter/Environments/models.tsp +++ b/specification/devcenter/DevCenter/Environments/models.tsp @@ -225,9 +225,9 @@ alias EnvironmentUpdateProperties = { alias EnvironmentPatchProperties = { @doc(""" - The time the expiration date will be triggered (UTC), after which the - environment and associated resources will be deleted. - """) + The time the expiration date will be triggered (UTC), after which the + environment and associated resources will be deleted. + """) @added(APIVersions.v2024_02_01) expirationDate?: utcDateTime; }; @@ -401,15 +401,15 @@ model EnvironmentDefinitionParameter { default?: string; @doc(""" -A string of one of the basic JSON types (number, integer, array, object, -boolean, string). -""") + A string of one of the basic JSON types (number, integer, array, object, + boolean, string). + """) type: ParameterType; @doc(""" -Whether or not this parameter is read-only. If true, default should have a -value. -""") + Whether or not this parameter is read-only. If true, default should have a + value. + """) readOnly?: boolean; @doc("Whether or not this parameter is required.") @@ -439,10 +439,10 @@ model EnvironmentType { name: string; @doc(""" -Id of a subscription or management group that the environment type will be -mapped to. The environment's resources will be deployed into this subscription -or management group. -""") + Id of a subscription or management group that the environment type will be + mapped to. The environment's resources will be deployed into this subscription + or management group. + """) deploymentTargetId: string; @doc("Indicates whether this environment type is enabled for use in this project.") diff --git a/specification/devcenter/DevCenter/Environments/routes.tsp b/specification/devcenter/DevCenter/Environments/routes.tsp index 47970641d893..f88a5386ca96 100644 --- a/specification/devcenter/DevCenter/Environments/routes.tsp +++ b/specification/devcenter/DevCenter/Environments/routes.tsp @@ -385,9 +385,9 @@ interface Environments { environmentTypeName: string; @doc(""" - The AAD object id of the user. If value is 'me', the identity is taken from the - authentication context. - """) + The AAD object id of the user. If value is 'me', the identity is taken from the + authentication context. + """) @maxLength(36) @minLength(2) @pattern("^[a-zA-Z0-9]{8}-([a-zA-Z0-9]{4}-){3}[a-zA-Z0-9]{12}$|^me$") diff --git a/specification/devcenter/DevCenter/shared/models.tsp b/specification/devcenter/DevCenter/shared/models.tsp index 5c11d664a453..e15a428d5b3e 100644 --- a/specification/devcenter/DevCenter/shared/models.tsp +++ b/specification/devcenter/DevCenter/shared/models.tsp @@ -70,9 +70,9 @@ model Project { description?: string; @doc(""" -When specified, indicates the maximum number of Dev Boxes a single user can -create across all pools in the project. -""") + When specified, indicates the maximum number of Dev Boxes a single user can + create across all pools in the project. + """) @minValue(0) maxDevBoxesPerUser?: int32; diff --git a/specification/devcenter/DevCenter/tspconfig.yaml b/specification/devcenter/DevCenter/tspconfig.yaml index 4036f7c677b4..4aec9f6a6a96 100644 --- a/specification/devcenter/DevCenter/tspconfig.yaml +++ b/specification/devcenter/DevCenter/tspconfig.yaml @@ -8,6 +8,7 @@ linter: options: "@azure-tools/typespec-autorest": azure-resource-provider-folder: "data-plane" + emit-lro-options: "none" emitter-output-dir: "{project-root}/.." output-file: "{azure-resource-provider-folder}/Microsoft.DevCenter/{version-status}/{version}/devcenter.json" examples-directory: "{project-root}/examples" diff --git a/specification/developersigning/DeveloperSigning/main.tsp b/specification/developersigning/DeveloperSigning/main.tsp index ec078c941043..89c0df419a51 100644 --- a/specification/developersigning/DeveloperSigning/main.tsp +++ b/specification/developersigning/DeveloperSigning/main.tsp @@ -150,9 +150,9 @@ model SignResult { signature?: bytes; @doc(""" -Signing certificate corresponding to the private key used to sign the requested -digest. -""") + Signing certificate corresponding to the private key used to sign the requested + digest. + """) signingCertificate?: bytes; } diff --git a/specification/developersigning/DeveloperSigning/tspconfig.yaml b/specification/developersigning/DeveloperSigning/tspconfig.yaml index 38bf662c7e2c..f1458d64cb5c 100644 --- a/specification/developersigning/DeveloperSigning/tspconfig.yaml +++ b/specification/developersigning/DeveloperSigning/tspconfig.yaml @@ -9,6 +9,7 @@ linter: options: "@azure-tools/typespec-autorest": azure-resource-provider-folder: "data-plane" + emit-lro-options: "none" emitter-output-dir: "{project-root}/.." examples-directory: "examples" omit-unreachable-types: true diff --git a/specification/deviceregistry/DeviceRegistry.Management/assetEndpointProfiles.tsp b/specification/deviceregistry/DeviceRegistry.Management/assetEndpointProfiles.tsp index d47412e98703..6dbe9f00e252 100644 --- a/specification/deviceregistry/DeviceRegistry.Management/assetEndpointProfiles.tsp +++ b/specification/deviceregistry/DeviceRegistry.Management/assetEndpointProfiles.tsp @@ -120,7 +120,12 @@ model OwnCertificate { interface AssetEndpointProfiles { get is ArmResourceRead; - createOrReplace is ArmResourceCreateOrReplaceAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrReplace is ArmResourceCreateOrReplaceAsync< + AssetEndpointProfile, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; update is ArmResourcePatchAsync< AssetEndpointProfile, diff --git a/specification/deviceregistry/DeviceRegistry.Management/assets.tsp b/specification/deviceregistry/DeviceRegistry.Management/assets.tsp index 155d378ccea6..d31b2560f6e9 100644 --- a/specification/deviceregistry/DeviceRegistry.Management/assets.tsp +++ b/specification/deviceregistry/DeviceRegistry.Management/assets.tsp @@ -205,7 +205,12 @@ model AssetStatusError { interface Assets { get is ArmResourceRead; - createOrReplace is ArmResourceCreateOrReplaceAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrReplace is ArmResourceCreateOrReplaceAsync< + Asset, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; update is ArmResourcePatchAsync; diff --git a/specification/deviceregistry/DeviceRegistry.Management/main.tsp b/specification/deviceregistry/DeviceRegistry.Management/main.tsp index b20e7ad8756f..5fb0dd46c348 100644 --- a/specification/deviceregistry/DeviceRegistry.Management/main.tsp +++ b/specification/deviceregistry/DeviceRegistry.Management/main.tsp @@ -46,23 +46,8 @@ interface OperationStatus { provider: "Microsoft.DeviceRegistry", ...LocationParameter, - - @path - @segment("operationStatuses") - @minLength(1) - @doc("The ID of an ongoing async operation.") - @armCommonParameter( - "OperationIdParameter", - Azure.ResourceManager.CommonTypes.Versions.v3 - ) - @armCommonParameter( - "OperationIdParameter", - Azure.ResourceManager.CommonTypes.Versions.v4 - ) - @armCommonParameter( - "OperationIdParameter", - Azure.ResourceManager.CommonTypes.Versions.v5 - ) - operationId: string, + ...Foundations.OperationIdParameter, ): ArmResponse | ErrorResponse; } + +@@segment(OperationStatus.get::parameters.operationId, "operationStatuses"); diff --git a/specification/deviceregistry/resource-manager/Microsoft.DeviceRegistry/preview/2023-11-01-preview/deviceregistry.json b/specification/deviceregistry/resource-manager/Microsoft.DeviceRegistry/preview/2023-11-01-preview/deviceregistry.json index 91e1f1a92e08..7af2954f4243 100644 --- a/specification/deviceregistry/resource-manager/Microsoft.DeviceRegistry/preview/2023-11-01-preview/deviceregistry.json +++ b/specification/deviceregistry/resource-manager/Microsoft.DeviceRegistry/preview/2023-11-01-preview/deviceregistry.json @@ -827,11 +827,7 @@ "properties": { "$ref": "#/definitions/AssetProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "extendedLocation": { "$ref": "#/definitions/ExtendedLocation", @@ -858,11 +854,7 @@ "properties": { "$ref": "#/definitions/AssetEndpointProfileProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "extendedLocation": { "$ref": "#/definitions/ExtendedLocation", diff --git a/specification/devopsinfrastructure/Microsoft.DevOpsInfrastructure/main.tsp b/specification/devopsinfrastructure/Microsoft.DevOpsInfrastructure/main.tsp index 96d717c0973e..7ad4b1ced9e7 100644 --- a/specification/devopsinfrastructure/Microsoft.DevOpsInfrastructure/main.tsp +++ b/specification/devopsinfrastructure/Microsoft.DevOpsInfrastructure/main.tsp @@ -61,6 +61,7 @@ model PoolProperties { devCenterProjectResourceId: string; } +#suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" @doc("Defines the organization in which the pool will be used.") @discriminator("kind") model OrganizationProfile {} @@ -131,6 +132,7 @@ union AzureDevOpsPermissionType { "SpecificAccounts", } +#suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" @doc("Defines the type of fabric the agent will run on.") @discriminator("kind") model FabricProfile {} @@ -286,6 +288,7 @@ model NetworkProfile { subnetId: string; } +#suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" @doc("The agent profile of the machines in the pool.") @discriminator("kind") model AgentProfile { @@ -398,7 +401,12 @@ interface Operations extends Azure.ResourceManager.Operations {} @armResourceOperations interface Pools { get is ArmResourceRead; - createOrUpdate is ArmResourceCreateOrUpdateAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrUpdateAsync< + Pool, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; update is ArmResourcePatchAsync; delete is ArmResourceDeleteWithoutOkAsync; listByResourceGroup is ArmResourceListByParent; diff --git a/specification/devopsinfrastructure/resource-manager/Microsoft.DevOpsInfrastructure/preview/2024-04-04-preview/devopsinfrastructure.json b/specification/devopsinfrastructure/resource-manager/Microsoft.DevOpsInfrastructure/preview/2024-04-04-preview/devopsinfrastructure.json index 227e8c4736df..89f071f7e6e0 100644 --- a/specification/devopsinfrastructure/resource-manager/Microsoft.DevOpsInfrastructure/preview/2024-04-04-preview/devopsinfrastructure.json +++ b/specification/devopsinfrastructure/resource-manager/Microsoft.DevOpsInfrastructure/preview/2024-04-04-preview/devopsinfrastructure.json @@ -911,11 +911,7 @@ "properties": { "$ref": "#/definitions/ImageVersionProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -1105,11 +1101,7 @@ "properties": { "$ref": "#/definitions/PoolProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "identity": { "$ref": "../../../../../common-types/resource-management/v5/managedidentity.json#/definitions/ManagedServiceIdentity", @@ -1366,11 +1358,7 @@ "properties": { "$ref": "#/definitions/QuotaProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -1451,11 +1439,7 @@ "properties": { "$ref": "#/definitions/ResourceDetailsObjectProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -1571,11 +1555,7 @@ "properties": { "$ref": "#/definitions/ResourceSkuProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ diff --git a/specification/edgezones/resource-manager/Microsoft.EdgeZones/preview/2024-04-01-preview/edgezones.json b/specification/edgezones/resource-manager/Microsoft.EdgeZones/preview/2024-04-01-preview/edgezones.json index 24673c025ff4..a8bad6587d4a 100644 --- a/specification/edgezones/resource-manager/Microsoft.EdgeZones/preview/2024-04-01-preview/edgezones.json +++ b/specification/edgezones/resource-manager/Microsoft.EdgeZones/preview/2024-04-01-preview/edgezones.json @@ -262,11 +262,7 @@ "properties": { "$ref": "#/definitions/ExtendedZoneProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ diff --git a/specification/eventgrid/Azure.Messaging.EventGrid.SystemEvents/Microsoft.Media/MediaServices.tsp b/specification/eventgrid/Azure.Messaging.EventGrid.SystemEvents/Microsoft.Media/MediaServices.tsp index 83ab45e40a9f..b7662f5bb55c 100644 --- a/specification/eventgrid/Azure.Messaging.EventGrid.SystemEvents/Microsoft.Media/MediaServices.tsp +++ b/specification/eventgrid/Azure.Messaging.EventGrid.SystemEvents/Microsoft.Media/MediaServices.tsp @@ -141,6 +141,7 @@ namespace Microsoft.EventGrid.SystemEvents { @discriminator("@odata.type") model MediaJobOutput { /** The discriminator for derived types. */ + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" #suppress "@azure-tools/typespec-azure-core/casing-style" "Maintain compatibility with existing models." `@odata.type`: string; diff --git a/specification/eventgrid/Azure.Messaging.EventGrid.SystemEvents/tspconfig.yaml b/specification/eventgrid/Azure.Messaging.EventGrid.SystemEvents/tspconfig.yaml index d12042016bb8..b70a5107b6fc 100644 --- a/specification/eventgrid/Azure.Messaging.EventGrid.SystemEvents/tspconfig.yaml +++ b/specification/eventgrid/Azure.Messaging.EventGrid.SystemEvents/tspconfig.yaml @@ -15,6 +15,7 @@ options: omit-unreachable-types: false output-file: "{azure-resource-provider-folder}/Microsoft.EventGrid/{version-status}/{version}/SystemEvents.json" azure-resource-provider-folder: "data-plane" + emit-lro-options: "none" "@azure-tools/typespec-python": package-pprint-name: '"Azure Event Grid System Events"' package-version: 4.12.0b1 diff --git a/specification/eventgrid/Azure.Messaging.EventGrid/tspconfig.yaml b/specification/eventgrid/Azure.Messaging.EventGrid/tspconfig.yaml index 714857f61985..8689784d3655 100644 --- a/specification/eventgrid/Azure.Messaging.EventGrid/tspconfig.yaml +++ b/specification/eventgrid/Azure.Messaging.EventGrid/tspconfig.yaml @@ -15,6 +15,7 @@ options: omit-unreachable-types: true output-file: "{azure-resource-provider-folder}/Microsoft.EventGrid/{version-status}/{version}/EventGrid.json" azure-resource-provider-folder: "data-plane" + emit-lro-options: "none" "@azure-tools/typespec-python": package-pprint-name: '"Azure Event Grid"' package-version: 4.20.0 diff --git a/specification/informatica/Informatica.DataManagement/main.tsp b/specification/informatica/Informatica.DataManagement/main.tsp index 72e6980addfc..5d4910d75a44 100644 --- a/specification/informatica/Informatica.DataManagement/main.tsp +++ b/specification/informatica/Informatica.DataManagement/main.tsp @@ -57,7 +57,12 @@ interface Organizations OrganizationProperties > { get is ArmResourceRead; - createOrUpdate is ArmResourceCreateOrUpdateAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrUpdateAsync< + InformaticaOrganizationResource, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; delete is ArmResourceDeleteWithoutOkAsync; update is ArmCustomPatchSync< InformaticaOrganizationResource, @@ -83,7 +88,12 @@ interface Organizations interface ServerlessRuntimes extends ProxyResourceOperations { get is ArmResourceRead; - createOrUpdate is ArmResourceCreateOrUpdateAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrUpdateAsync< + InformaticaServerlessRuntimeResource, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; delete is ArmResourceDeleteWithoutOkAsync; update is ArmCustomPatchSync< InformaticaServerlessRuntimeResource, @@ -623,7 +633,7 @@ union RuntimeType { model InformaticaOrganizationResourceUpdate is OptionalProperties>> { /** Patchable PropertieInformaticaOrganizationPropertiesUpdates of the Organization observability resource */ properties?: OrganizationPropertiesCustomUpdate; @@ -672,7 +682,7 @@ model CompanyDetailsUpdate model InformaticaServerlessRuntimeResourceUpdate is OptionalProperties>> { /** Patchable PropertieInformaticaOrganizationPropertiesUpdates of the Organization observability resource */ properties?: ServerlessRuntimePropertiesCustomUpdate; diff --git a/specification/informatica/resource-manager/Informatica.DataManagement/stable/2024-05-08/openapi.json b/specification/informatica/resource-manager/Informatica.DataManagement/stable/2024-05-08/openapi.json index e56192027250..8ef8c019e494 100644 --- a/specification/informatica/resource-manager/Informatica.DataManagement/stable/2024-05-08/openapi.json +++ b/specification/informatica/resource-manager/Informatica.DataManagement/stable/2024-05-08/openapi.json @@ -1368,11 +1368,7 @@ "properties": { "$ref": "#/definitions/OrganizationProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -1518,11 +1514,7 @@ "properties": { "$ref": "#/definitions/InformaticaServerlessRuntimeProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ diff --git a/specification/iotoperationsdataprocessor/IoTOperationsDataProcessor.Management/dataset.tsp b/specification/iotoperationsdataprocessor/IoTOperationsDataProcessor.Management/dataset.tsp index 6fa191db96bb..aaa1467a4af4 100644 --- a/specification/iotoperationsdataprocessor/IoTOperationsDataProcessor.Management/dataset.tsp +++ b/specification/iotoperationsdataprocessor/IoTOperationsDataProcessor.Management/dataset.tsp @@ -66,7 +66,12 @@ model DatasetPropertyKey { @armResourceOperations interface Datasets { get is ArmResourceRead; - createOrUpdate is ArmResourceCreateOrUpdateAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrUpdateAsync< + Dataset, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; update is ArmCustomPatchSync; delete is ArmResourceDeleteWithoutOkAsync; listByInstance is ArmResourceListByParent; diff --git a/specification/iotoperationsdataprocessor/IoTOperationsDataProcessor.Management/instance.tsp b/specification/iotoperationsdataprocessor/IoTOperationsDataProcessor.Management/instance.tsp index e5b1bd1d0e8e..7d1ea14a8b4f 100644 --- a/specification/iotoperationsdataprocessor/IoTOperationsDataProcessor.Management/instance.tsp +++ b/specification/iotoperationsdataprocessor/IoTOperationsDataProcessor.Management/instance.tsp @@ -42,7 +42,12 @@ model InstanceProperties { @armResourceOperations interface Instances { get is ArmResourceRead; - createOrUpdate is ArmResourceCreateOrUpdateAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrUpdateAsync< + Instance, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; update is ArmCustomPatchSync; delete is ArmResourceDeleteWithoutOkAsync; listByResourceGroup is ArmResourceListByParent; diff --git a/specification/iotoperationsdataprocessor/IoTOperationsDataProcessor.Management/pipeline.tsp b/specification/iotoperationsdataprocessor/IoTOperationsDataProcessor.Management/pipeline.tsp index a9604ac90e91..7217eb1e207e 100644 --- a/specification/iotoperationsdataprocessor/IoTOperationsDataProcessor.Management/pipeline.tsp +++ b/specification/iotoperationsdataprocessor/IoTOperationsDataProcessor.Management/pipeline.tsp @@ -80,7 +80,12 @@ model PipelineStage is Record { @armResourceOperations interface Pipelines { get is ArmResourceRead; - createOrUpdate is ArmResourceCreateOrUpdateAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrUpdateAsync< + Pipeline, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; update is ArmCustomPatchSync; delete is ArmResourceDeleteWithoutOkAsync; listByInstance is ArmResourceListByParent; diff --git a/specification/iotoperationsdataprocessor/resource-manager/Microsoft.IoTOperationsDataProcessor/preview/2023-10-04-preview/openapi.json b/specification/iotoperationsdataprocessor/resource-manager/Microsoft.IoTOperationsDataProcessor/preview/2023-10-04-preview/openapi.json index 2db1e360a21b..71af4a17cb5a 100644 --- a/specification/iotoperationsdataprocessor/resource-manager/Microsoft.IoTOperationsDataProcessor/preview/2023-10-04-preview/openapi.json +++ b/specification/iotoperationsdataprocessor/resource-manager/Microsoft.IoTOperationsDataProcessor/preview/2023-10-04-preview/openapi.json @@ -1039,11 +1039,7 @@ "properties": { "$ref": "#/definitions/DatasetProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "extendedLocation": { "$ref": "#/definitions/ExtendedLocation", @@ -1173,11 +1169,7 @@ "properties": { "$ref": "#/definitions/InstanceProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "extendedLocation": { "$ref": "#/definitions/ExtendedLocation", @@ -1253,11 +1245,7 @@ "properties": { "$ref": "#/definitions/PipelineProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "extendedLocation": { "$ref": "#/definitions/ExtendedLocation", diff --git a/specification/iotoperationsmq/IoTOperationsMQ.Management/main.tsp b/specification/iotoperationsmq/IoTOperationsMQ.Management/main.tsp index 2a2ec6653290..e75e801e8293 100644 --- a/specification/iotoperationsmq/IoTOperationsMQ.Management/main.tsp +++ b/specification/iotoperationsmq/IoTOperationsMQ.Management/main.tsp @@ -38,7 +38,12 @@ interface Operations extends Azure.ResourceManager.Operations {} @armResourceOperations interface Mq { get is ArmResourceRead; - createOrUpdate is ArmResourceCreateOrUpdateAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrUpdateAsync< + MqResource, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; update is ArmResourcePatchSync; delete is ArmResourceDeleteWithoutOkAsync; listByResourceGroup is ArmResourceListByParent; @@ -49,7 +54,12 @@ interface Mq { @armResourceOperations interface Broker { get is ArmResourceRead; - createOrUpdate is ArmResourceCreateOrUpdateAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrUpdateAsync< + BrokerResource, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; update is ArmResourcePatchSync; delete is ArmResourceDeleteWithoutOkAsync; listByResourceGroup is ArmResourceListByParent; @@ -59,7 +69,12 @@ interface Broker { @armResourceOperations interface BrokerListener { get is ArmResourceRead; - createOrUpdate is ArmResourceCreateOrUpdateAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrUpdateAsync< + BrokerListenerResource, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; update is ArmResourcePatchSync< BrokerListenerResource, BrokerListenerProperties @@ -72,7 +87,12 @@ interface BrokerListener { @armResourceOperations interface BrokerAuthentication { get is ArmResourceRead; - createOrUpdate is ArmResourceCreateOrUpdateAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrUpdateAsync< + BrokerAuthenticationResource, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; update is ArmResourcePatchSync< BrokerAuthenticationResource, BrokerAuthenticationProperties @@ -85,7 +105,12 @@ interface BrokerAuthentication { @armResourceOperations interface BrokerAuthorization { get is ArmResourceRead; - createOrUpdate is ArmResourceCreateOrUpdateAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrUpdateAsync< + BrokerAuthorizationResource, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; update is ArmResourcePatchSync< BrokerAuthorizationResource, BrokerAuthorizationProperties @@ -98,7 +123,12 @@ interface BrokerAuthorization { @armResourceOperations interface MqttBridgeConnector { get is ArmResourceRead; - createOrUpdate is ArmResourceCreateOrUpdateAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrUpdateAsync< + MqttBridgeConnectorResource, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; update is ArmResourcePatchSync< MqttBridgeConnectorResource, MqttBridgeConnectorProperties @@ -111,7 +141,12 @@ interface MqttBridgeConnector { @armResourceOperations interface MqttBridgeTopicMap { get is ArmResourceRead; - createOrUpdate is ArmResourceCreateOrUpdateAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrUpdateAsync< + MqttBridgeTopicMapResource, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; update is ArmResourcePatchSync< MqttBridgeTopicMapResource, MqttBridgeTopicMapProperties @@ -124,7 +159,12 @@ interface MqttBridgeTopicMap { @armResourceOperations interface DiagnosticService { get is ArmResourceRead; - createOrUpdate is ArmResourceCreateOrUpdateAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrUpdateAsync< + DiagnosticServiceResource, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; update is ArmResourcePatchSync< DiagnosticServiceResource, DiagnosticServiceProperties @@ -137,7 +177,12 @@ interface DiagnosticService { @armResourceOperations interface DataLakeConnector { get is ArmResourceRead; - createOrUpdate is ArmResourceCreateOrUpdateAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrUpdateAsync< + DataLakeConnectorResource, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; update is ArmResourcePatchSync< DataLakeConnectorResource, DataLakeConnectorProperties @@ -150,7 +195,12 @@ interface DataLakeConnector { @armResourceOperations interface DataLakeConnectorTopicMap { get is ArmResourceRead; - createOrUpdate is ArmResourceCreateOrUpdateAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrUpdateAsync< + DataLakeTopicMapResource, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; update is ArmResourcePatchSync< DataLakeTopicMapResource, DataLakeConnectorTopicMapProperties @@ -163,7 +213,12 @@ interface DataLakeConnectorTopicMap { @armResourceOperations interface KafkaConnector { get is ArmResourceRead; - createOrUpdate is ArmResourceCreateOrUpdateAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrUpdateAsync< + KafkaConnectorResource, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; update is ArmResourcePatchSync< KafkaConnectorResource, KafkaConnectorProperties @@ -176,7 +231,12 @@ interface KafkaConnector { @armResourceOperations interface KafkaConnectorTopicMap { get is ArmResourceRead; - createOrUpdate is ArmResourceCreateOrUpdateAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrUpdateAsync< + KafkaTopicMapResource, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; update is ArmResourcePatchSync< KafkaTopicMapResource, KafkaTopicMapProperties diff --git a/specification/iotoperationsmq/IoTOperationsMQ.Management/models/base.tsp b/specification/iotoperationsmq/IoTOperationsMQ.Management/models/base.tsp index 7e2df9921356..e08683a47957 100644 --- a/specification/iotoperationsmq/IoTOperationsMQ.Management/models/base.tsp +++ b/specification/iotoperationsmq/IoTOperationsMQ.Management/models/base.tsp @@ -118,10 +118,10 @@ model CertManagerIssuerRef { @doc("SANs for certificate.") model SanForCert { @doc("DNS SANs.") - dns: string[] = []; + dns: string[] = #[]; @doc("IP address SANs.") - ip: string[] = []; + ip: string[] = #[]; } @doc("Mqtt Protocol types") diff --git a/specification/iotoperationsmq/IoTOperationsMQ.Management/models/mqttbroker.tsp b/specification/iotoperationsmq/IoTOperationsMQ.Management/models/mqttbroker.tsp index 29be327356b0..3b60a89c2511 100644 --- a/specification/iotoperationsmq/IoTOperationsMQ.Management/models/mqttbroker.tsp +++ b/specification/iotoperationsmq/IoTOperationsMQ.Management/models/mqttbroker.tsp @@ -679,7 +679,7 @@ model PrincipalDefinition { #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "existing API" @doc("A list of key-value pairs that match the attributes of the clients. The attributes are case-sensitive and must match the attributes provided by the clients during authentication.") @OpenAPI.extension("x-ms-identifiers", []) - attributes?: Record[] = []; + attributes?: Record[] = #[]; @doc("A list of client IDs that match the clients. The client IDs are case-sensitive and must match the client IDs provided by the clients during connection.") clientids?: string[]; diff --git a/specification/iotoperationsmq/resource-manager/Microsoft.IoTOperationsMQ/preview/2023-10-04-preview/iotoperationsmq.json b/specification/iotoperationsmq/resource-manager/Microsoft.IoTOperationsMQ/preview/2023-10-04-preview/iotoperationsmq.json index c6b62c125dfc..0d99a964e857 100644 --- a/specification/iotoperationsmq/resource-manager/Microsoft.IoTOperationsMQ/preview/2023-10-04-preview/iotoperationsmq.json +++ b/specification/iotoperationsmq/resource-manager/Microsoft.IoTOperationsMQ/preview/2023-10-04-preview/iotoperationsmq.json @@ -4396,11 +4396,7 @@ "properties": { "$ref": "#/definitions/BrokerAuthenticationProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "extendedLocation": { "$ref": "#/definitions/ExtendedLocationProperty", @@ -4681,11 +4677,7 @@ "properties": { "$ref": "#/definitions/BrokerAuthorizationProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "extendedLocation": { "$ref": "#/definitions/ExtendedLocationProperty", @@ -4943,11 +4935,7 @@ "properties": { "$ref": "#/definitions/BrokerListenerProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "extendedLocation": { "$ref": "#/definitions/ExtendedLocationProperty", @@ -5221,11 +5209,7 @@ "properties": { "$ref": "#/definitions/BrokerProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "extendedLocation": { "$ref": "#/definitions/ExtendedLocationProperty", @@ -5747,11 +5731,7 @@ "properties": { "$ref": "#/definitions/DataLakeConnectorProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "extendedLocation": { "$ref": "#/definitions/ExtendedLocationProperty", @@ -6103,11 +6083,7 @@ "properties": { "$ref": "#/definitions/DataLakeConnectorTopicMapProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "extendedLocation": { "$ref": "#/definitions/ExtendedLocationProperty", @@ -6428,11 +6404,7 @@ "properties": { "$ref": "#/definitions/DiagnosticServiceProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "extendedLocation": { "$ref": "#/definitions/ExtendedLocationProperty", @@ -6845,11 +6817,7 @@ "properties": { "$ref": "#/definitions/KafkaConnectorProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "extendedLocation": { "$ref": "#/definitions/ExtendedLocationProperty", @@ -7451,11 +7419,7 @@ "properties": { "$ref": "#/definitions/KafkaTopicMapProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "extendedLocation": { "$ref": "#/definitions/ExtendedLocationProperty", @@ -7970,11 +7934,7 @@ "properties": { "$ref": "#/definitions/MqProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "extendedLocation": { "$ref": "#/definitions/ExtendedLocationProperty", @@ -8086,11 +8046,7 @@ "properties": { "$ref": "#/definitions/MqttBridgeConnectorProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "extendedLocation": { "$ref": "#/definitions/ExtendedLocationProperty", @@ -8508,11 +8464,7 @@ "properties": { "$ref": "#/definitions/MqttBridgeTopicMapProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "extendedLocation": { "$ref": "#/definitions/ExtendedLocationProperty", diff --git a/specification/iotoperationsorchestrator/IoTOperationsOrchestrator.Management/instance.tsp b/specification/iotoperationsorchestrator/IoTOperationsOrchestrator.Management/instance.tsp index 2024510d4758..b7150ac379e9 100644 --- a/specification/iotoperationsorchestrator/IoTOperationsOrchestrator.Management/instance.tsp +++ b/specification/iotoperationsorchestrator/IoTOperationsOrchestrator.Management/instance.tsp @@ -60,7 +60,12 @@ model TargetSelectorProperties { @armResourceOperations interface Instances { get is ArmResourceRead; - createOrUpdate is ArmResourceCreateOrUpdateAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrUpdateAsync< + Instance, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; update is ArmCustomPatchSync; delete is ArmResourceDeleteWithoutOkAsync; listByResourceGroup is ArmResourceListByParent; diff --git a/specification/iotoperationsorchestrator/IoTOperationsOrchestrator.Management/solution.tsp b/specification/iotoperationsorchestrator/IoTOperationsOrchestrator.Management/solution.tsp index a66741a1d9d5..32d72ed4b026 100644 --- a/specification/iotoperationsorchestrator/IoTOperationsOrchestrator.Management/solution.tsp +++ b/specification/iotoperationsorchestrator/IoTOperationsOrchestrator.Management/solution.tsp @@ -46,7 +46,12 @@ model SolutionProperties { @armResourceOperations interface Solutions { get is ArmResourceRead; - createOrUpdate is ArmResourceCreateOrUpdateAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrUpdateAsync< + Solution, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; update is ArmCustomPatchSync; delete is ArmResourceDeleteWithoutOkAsync; listByResourceGroup is ArmResourceListByParent; diff --git a/specification/iotoperationsorchestrator/IoTOperationsOrchestrator.Management/target.tsp b/specification/iotoperationsorchestrator/IoTOperationsOrchestrator.Management/target.tsp index 2baa2f60e69b..d736a18ed658 100644 --- a/specification/iotoperationsorchestrator/IoTOperationsOrchestrator.Management/target.tsp +++ b/specification/iotoperationsorchestrator/IoTOperationsOrchestrator.Management/target.tsp @@ -76,7 +76,12 @@ model BindingProperties { @armResourceOperations interface Targets { get is ArmResourceRead; - createOrUpdate is ArmResourceCreateOrUpdateAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrUpdateAsync< + Target, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; update is ArmCustomPatchSync; delete is ArmResourceDeleteWithoutOkAsync; listByResourceGroup is ArmResourceListByParent; diff --git a/specification/iotoperationsorchestrator/resource-manager/Microsoft.IoTOperationsOrchestrator/preview/2023-10-04-preview/openapi.json b/specification/iotoperationsorchestrator/resource-manager/Microsoft.IoTOperationsOrchestrator/preview/2023-10-04-preview/openapi.json index 0d7af904ca10..9ff3def3e27c 100644 --- a/specification/iotoperationsorchestrator/resource-manager/Microsoft.IoTOperationsOrchestrator/preview/2023-10-04-preview/openapi.json +++ b/specification/iotoperationsorchestrator/resource-manager/Microsoft.IoTOperationsOrchestrator/preview/2023-10-04-preview/openapi.json @@ -1139,11 +1139,7 @@ "properties": { "$ref": "#/definitions/InstanceProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "extendedLocation": { "$ref": "#/definitions/ExtendedLocation", @@ -1319,11 +1315,7 @@ "properties": { "$ref": "#/definitions/SolutionProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "extendedLocation": { "$ref": "#/definitions/ExtendedLocation", @@ -1407,11 +1399,7 @@ "properties": { "$ref": "#/definitions/TargetProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "extendedLocation": { "$ref": "#/definitions/ExtendedLocation", diff --git a/specification/kubernetesruntime/KubernetesRuntime.Management/bgppeer.tsp b/specification/kubernetesruntime/KubernetesRuntime.Management/bgppeer.tsp index aff77c287bb5..8fbdcec221ff 100644 --- a/specification/kubernetesruntime/KubernetesRuntime.Management/bgppeer.tsp +++ b/specification/kubernetesruntime/KubernetesRuntime.Management/bgppeer.tsp @@ -36,7 +36,12 @@ model BgpPeerProperties { @armResourceOperations(BgpPeer) interface BgpPeers { get is ArmResourceRead; - createOrUpdate is ArmResourceCreateOrUpdateAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrUpdateAsync< + BgpPeer, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; @sharedRoute @added(Versions.v2024_03_01) delete is ArmResourceDeleteSync; diff --git a/specification/kubernetesruntime/KubernetesRuntime.Management/loadbalancer.tsp b/specification/kubernetesruntime/KubernetesRuntime.Management/loadbalancer.tsp index e3dcd5ac2d5f..2e13742d83cc 100644 --- a/specification/kubernetesruntime/KubernetesRuntime.Management/loadbalancer.tsp +++ b/specification/kubernetesruntime/KubernetesRuntime.Management/loadbalancer.tsp @@ -55,7 +55,12 @@ model LoadBalancerProperties { @armResourceOperations(LoadBalancer) interface LoadBalancers { get is ArmResourceRead; - createOrUpdate is ArmResourceCreateOrUpdateAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrUpdateAsync< + LoadBalancer, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; @sharedRoute @added(Versions.v2024_03_01) delete is ArmResourceDeleteSync; diff --git a/specification/kubernetesruntime/KubernetesRuntime.Management/storageclass.tsp b/specification/kubernetesruntime/KubernetesRuntime.Management/storageclass.tsp index e3842cf67377..c5569c2a21ba 100644 --- a/specification/kubernetesruntime/KubernetesRuntime.Management/storageclass.tsp +++ b/specification/kubernetesruntime/KubernetesRuntime.Management/storageclass.tsp @@ -282,7 +282,12 @@ model StorageClassResource is ExtensionResource { @armResourceOperations(StorageClassResource) interface StorageClass { get is ArmResourceRead; - createOrUpdate is ArmResourceCreateOrUpdateAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrUpdateAsync< + StorageClassResource, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; update is ArmCustomPatchAsync< StorageClassResource, StorageClassResourceUpdate diff --git a/specification/kubernetesruntime/resource-manager/Microsoft.KubernetesRuntime/preview/2023-10-01-preview/kubernetesruntime.json b/specification/kubernetesruntime/resource-manager/Microsoft.KubernetesRuntime/preview/2023-10-01-preview/kubernetesruntime.json index 9c3b696670c1..49d50221a434 100644 --- a/specification/kubernetesruntime/resource-manager/Microsoft.KubernetesRuntime/preview/2023-10-01-preview/kubernetesruntime.json +++ b/specification/kubernetesruntime/resource-manager/Microsoft.KubernetesRuntime/preview/2023-10-01-preview/kubernetesruntime.json @@ -1029,11 +1029,7 @@ "properties": { "$ref": "#/definitions/BgpPeerProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -1186,11 +1182,7 @@ "properties": { "$ref": "#/definitions/LoadBalancerProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -1504,11 +1496,7 @@ "properties": { "$ref": "#/definitions/ServiceProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -1714,11 +1702,7 @@ "properties": { "$ref": "#/definitions/StorageClassProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ diff --git a/specification/kubernetesruntime/resource-manager/Microsoft.KubernetesRuntime/stable/2024-03-01/kubernetesruntime.json b/specification/kubernetesruntime/resource-manager/Microsoft.KubernetesRuntime/stable/2024-03-01/kubernetesruntime.json index 65aa9e986ce0..a890d90a7748 100644 --- a/specification/kubernetesruntime/resource-manager/Microsoft.KubernetesRuntime/stable/2024-03-01/kubernetesruntime.json +++ b/specification/kubernetesruntime/resource-manager/Microsoft.KubernetesRuntime/stable/2024-03-01/kubernetesruntime.json @@ -999,11 +999,7 @@ "properties": { "$ref": "#/definitions/BgpPeerProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -1156,11 +1152,7 @@ "properties": { "$ref": "#/definitions/LoadBalancerProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -1481,11 +1473,7 @@ "properties": { "$ref": "#/definitions/ServiceProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -1691,11 +1679,7 @@ "properties": { "$ref": "#/definitions/StorageClassProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ diff --git a/specification/liftrastronomer/Astronomer.Astro.Management/main.tsp b/specification/liftrastronomer/Astronomer.Astro.Management/main.tsp index d15a786a17fb..e02856267934 100644 --- a/specification/liftrastronomer/Astronomer.Astro.Management/main.tsp +++ b/specification/liftrastronomer/Astronomer.Astro.Management/main.tsp @@ -41,13 +41,18 @@ model OrganizationResource is TrackedResource { @path name: string; - ...ManagedServiceIdentityProperty; + ...Legacy.ManagedServiceIdentityV4Property; } @armResourceOperations interface Organizations { get is ArmResourceRead; - createOrUpdate is ArmResourceCreateOrUpdateAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrUpdateAsync< + OrganizationResource, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; update is ArmResourcePatchAsync; delete is ArmResourceDeleteWithoutOkAsync; listByResourceGroup is ArmResourceListByParent; diff --git a/specification/liftrastronomer/resource-manager/Astronomer.Astro/preview/2023-08-01-preview/astronomer.json b/specification/liftrastronomer/resource-manager/Astronomer.Astro/preview/2023-08-01-preview/astronomer.json index 53e3bf9d2552..3bff98bd57a9 100644 --- a/specification/liftrastronomer/resource-manager/Astronomer.Astro/preview/2023-08-01-preview/astronomer.json +++ b/specification/liftrastronomer/resource-manager/Astronomer.Astro/preview/2023-08-01-preview/astronomer.json @@ -777,11 +777,7 @@ "properties": { "$ref": "#/definitions/LiftrBase.Data.OrganizationProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "identity": { "$ref": "../../../../../common-types/resource-management/v4/managedidentity.json#/definitions/ManagedServiceIdentity", diff --git a/specification/loadtestservice/LoadTestService.Management/routes.tsp b/specification/loadtestservice/LoadTestService.Management/routes.tsp index 1f340ab881b9..22f4caa9240c 100644 --- a/specification/loadtestservice/LoadTestService.Management/routes.tsp +++ b/specification/loadtestservice/LoadTestService.Management/routes.tsp @@ -43,6 +43,7 @@ interface LoadTests { LoadTestResource, LoadTestProperties, LroHeaders = ArmAsyncOperationHeader & + ArmLroLocationHeader & Azure.Core.Foundations.RetryAfterHeader >; diff --git a/specification/loadtestservice/LoadTestService/main.tsp b/specification/loadtestservice/LoadTestService/main.tsp index d5e4c74e2ed9..d10fd6ad079a 100644 --- a/specification/loadtestservice/LoadTestService/main.tsp +++ b/specification/loadtestservice/LoadTestService/main.tsp @@ -21,8 +21,8 @@ using Azure.Core; } ) @doc(""" -These APIs allow end users to create, view and run load tests using Azure Load Test Service. -""") + These APIs allow end users to create, view and run load tests using Azure Load Test Service. + """) namespace Microsoft.LoadTestService; @doc("Azure Load Testing API versions.") diff --git a/specification/loadtestservice/LoadTestService/models.tsp b/specification/loadtestservice/LoadTestService/models.tsp index 40177d088502..d9e53c981582 100644 --- a/specification/loadtestservice/LoadTestService/models.tsp +++ b/specification/loadtestservice/LoadTestService/models.tsp @@ -216,12 +216,12 @@ model Test { autoStopCriteria?: AutoStopCriteria; @doc(""" -Secrets can be stored in an Azure Key Vault or any other secret store. If the -secret is stored in an Azure Key Vault, the value should be the secret -identifier and the type should be AKV_SECRET_URI. If the secret is stored -elsewhere, the secret value should be provided directly and the type should be -SECRET_VALUE. -""") + Secrets can be stored in an Azure Key Vault or any other secret store. If the + secret is stored in an Azure Key Vault, the value should be the secret + identifier and the type should be AKV_SECRET_URI. If the secret is stored + elsewhere, the secret value should be provided directly and the type should be + SECRET_VALUE. + """) secrets?: Record; @doc("Certificates metadata.") @@ -285,11 +285,11 @@ model PassFailMetric { clientMetric?: PFMetrics; @doc(""" -The aggregation function to be applied on the client metric. Allowed functions -- ‘percentage’ - for error metric , ‘avg’, ‘p50’, ‘p90’, ‘p95’, ‘p99’, ‘min’, -‘max’ - for response_time_ms and latency metric, ‘avg’ - for requests_per_sec, -‘count’ - for requests -""") + The aggregation function to be applied on the client metric. Allowed functions + - ‘percentage’ - for error metric , ‘avg’, ‘p50’, ‘p90’, ‘p95’, ‘p99’, ‘min’, + ‘max’ - for response_time_ms and latency metric, ‘avg’ - for requests_per_sec, + ‘count’ - for requests + """) aggregate?: PFAgFunc; @doc("The comparison operator. Supported types ‘>’, ‘<’ ") @@ -299,9 +299,9 @@ The aggregation function to be applied on the client metric. Allowed functions requestName?: string; @doc(""" -The value to compare with the client metric. Allowed values - ‘error : [0.0 , -100.0] unit- % ’, response_time_ms and latency : any integer value unit- ms. -""") + The value to compare with the client metric. Allowed values - ‘error : [0.0 , + 100.0] unit- % ’, response_time_ms and latency : any integer value unit- ms. + """) value?: float64; @doc("Action taken after the threshold is met. Default is ‘continue’.") @@ -353,23 +353,23 @@ model AutoStopCriteria { @doc("Configurations for the load test.") model LoadTestConfiguration { @doc(""" -The number of engine instances to execute load test. Supported values are in range of 1-400. Required for creating a new test. -""") + The number of engine instances to execute load test. Supported values are in range of 1-400. Required for creating a new test. + """) engineInstances?: int32; #suppress "@azure-tools/typespec-azure-core/casing-style" "CSV is an abbervation and should be all caps" @doc(""" -If false, Azure Load Testing copies and processes your input files unmodified -across all test engine instances. If true, Azure Load Testing splits the CSV -input data evenly across all engine instances. If you provide multiple CSV -files, each file will be split evenly. -""") + If false, Azure Load Testing copies and processes your input files unmodified + across all test engine instances. If true, Azure Load Testing splits the CSV + input data evenly across all engine instances. If you provide multiple CSV + files, each file will be split evenly. + """) splitAllCSVs?: boolean = false; @doc(""" -If true, optionalLoadTestConfig is required and JMX script for the load test is -not required to upload. -""") + If true, optionalLoadTestConfig is required and JMX script for the load test is + not required to upload. + """) quickStartTest?: boolean = false; @doc("Configuration for quick load test") @@ -383,15 +383,15 @@ not required to upload. @doc("Region distribution configuration for the load test.") model RegionalConfiguration { @doc(""" - The number of engine instances to execute load test in specified region. Supported values are in range of 1-400. -""") + The number of engine instances to execute load test in specified region. Supported values are in range of 1-400. + """) engineInstances: int32; @doc(""" -Azure region name. -The region name should of format accepted by ARM, and should be a region supported by Azure Load Testing. For example, East US should be passed as "eastus". -The region name must match one of the strings in the "Name" column returned from running the "az account list-locations -o table" Azure CLI command. -""") + Azure region name. + The region name should of format accepted by ARM, and should be a region supported by Azure Load Testing. For example, East US should be passed as "eastus". + The region name must match one of the strings in the "Name" column returned from running the "az account list-locations -o table" Azure CLI command. + """) region: string; } @@ -473,10 +473,10 @@ model FileInfo { @doc("Test app components") model TestAppComponents { @doc(""" -Azure resource collection { resource id (fully qualified resource Id e.g -subscriptions/{subId}/resourceGroups/{rg}/providers/Microsoft.LoadTestService/loadtests/{resName}) -: resource object } -""") + Azure resource collection { resource id (fully qualified resource Id e.g + subscriptions/{subId}/resourceGroups/{rg}/providers/Microsoft.LoadTestService/loadtests/{resName}) + : resource object } + """) components: Record; @doc("Test identifier") @@ -487,12 +487,12 @@ subscriptions/{subId}/resourceGroups/{rg}/providers/Microsoft.LoadTestService/lo } @doc(""" -An Azure resource object (Refer azure generic resource model :https://docs.microsoft.com/en-us/rest/api/resources/resources/get-by-id#genericresource) -""") + An Azure resource object (Refer azure generic resource model :https://docs.microsoft.com/en-us/rest/api/resources/resources/get-by-id#genericresource) + """) model AppComponent { @doc(""" -fully qualified resource Id e.g subscriptions/{subId}/resourceGroups/{rg}/providers/Microsoft.LoadTestService/loadtests/{resName} -""") + fully qualified resource Id e.g subscriptions/{subId}/resourceGroups/{rg}/providers/Microsoft.LoadTestService/loadtests/{resName} + """) @visibility("read") resourceId: string; @@ -524,20 +524,20 @@ model TestServerMetricConfig { testId?: string; @doc(""" -Azure resource metrics collection {metric id : metrics object} (Refer : -https://docs.microsoft.com/en-us/rest/api/monitor/metric-definitions/list#metricdefinition -for metric id). -""") + Azure resource metrics collection {metric id : metrics object} (Refer : + https://docs.microsoft.com/en-us/rest/api/monitor/metric-definitions/list#metricdefinition + for metric id). + """) metrics: Record; ...SystemMetaData; } @doc(""" -Associated metric definition for particular metrics of the azure resource ( -Refer : -https://docs.microsoft.com/en-us/rest/api/monitor/metric-definitions/list#metricdefinition). -""") + Associated metric definition for particular metrics of the azure resource ( + Refer : + https://docs.microsoft.com/en-us/rest/api/monitor/metric-definitions/list#metricdefinition). + """) model ResourceMetric { @doc("Unique name for metric.") @visibility("read") @@ -578,12 +578,12 @@ model TestRun { autoStopCriteria?: AutoStopCriteria; @doc(""" -Secrets can be stored in an Azure Key Vault or any other secret store. If the -secret is stored in an Azure Key Vault, the value should be the secret -identifier and the type should be AKV_SECRET_URI. If the secret is stored -elsewhere, the secret value should be provided directly and the type should be -SECRET_VALUE. -""") + Secrets can be stored in an Azure Key Vault or any other secret store. If the + secret is stored in an Azure Key Vault, the value should be the secret + identifier and the type should be AKV_SECRET_URI. If the secret is stored + elsewhere, the secret value should be provided directly and the type should be + SECRET_VALUE. + """) secrets?: Record; @doc("Certificates metadata") @@ -597,18 +597,18 @@ SECRET_VALUE. errorDetails?: ErrorDetails[]; @doc(""" -Test run statistics. Key is the sampler name and value is the set of statistics for performance metrics like response time, throughput, etc. from the load test run. -The sampler name is the same as the name mentioned in the test script. -Sampler name "Total" represents the aggregated statistics of all the samplers. -""") + Test run statistics. Key is the sampler name and value is the set of statistics for performance metrics like response time, throughput, etc. from the load test run. + The sampler name is the same as the name mentioned in the test script. + Sampler name "Total" represents the aggregated statistics of all the samplers. + """) @visibility("read") testRunStatistics?: Record; @doc(""" -Regional statistics. Key is the Azure region name and value is the test run statistics. -The region name should of format accepted by ARM, and should be a region supported by Azure Load Testing. For example, East US should be passed as "eastus". -The region name must match one of the strings in the "Name" column returned from running the "az account list-locations -o table" Azure CLI command. -""") + Regional statistics. Key is the Azure region name and value is the test run statistics. + The region name should of format accepted by ARM, and should be a region supported by Azure Load Testing. For example, East US should be passed as "eastus". + The region name must match one of the strings in the "Name" column returned from running the "az account list-locations -o table" Azure CLI command. + """) @visibility("read") @added(APIVersions.v2024_03_01_preview) regionalStatistics?: Record; @@ -853,9 +853,9 @@ model MetricDefinition { unit?: MetricUnit; @doc(""" -Metric availability specifies the time grain (aggregation interval or -frequency). -""") + Metric availability specifies the time grain (aggregation interval or + frequency). + """) metricAvailabilities?: MetricAvailability[]; } @@ -871,20 +871,20 @@ model NameAndDesc { @doc("Metric availability specifies the time grain (aggregation interval or frequency)") model MetricAvailability { @doc(""" -The time grain specifies the aggregation interval for the metric. Expressed as -a duration 'PT1M', 'PT1H', etc. -""") + The time grain specifies the aggregation interval for the metric. Expressed as + a duration 'PT1M', 'PT1H', etc. + """) timeGrain?: TimeGrain; } @doc("Filters to fetch the set of metric.") model MetricRequestPayload { @doc(""" -Get metrics for specific dimension values. Example: Metric contains dimension -like SamplerName, Error. To retrieve all the time series data where SamplerName -is equals to HTTPRequest1 or HTTPRequest2, the DimensionFilter value will be -{\"SamplerName\", [\"HTTPRequest1\", \"HTTPRequest2\"} -""") + Get metrics for specific dimension values. Example: Metric contains dimension + like SamplerName, Error. To retrieve all the time series data where SamplerName + is equals to HTTPRequest1 or HTTPRequest2, the DimensionFilter value will be + {\"SamplerName\", [\"HTTPRequest1\", \"HTTPRequest2\"} + """) filters?: DimensionFilter[]; } @@ -958,8 +958,8 @@ model MetricDimensionsRequest { metricNamespace: string; @doc(""" - The timespan of the query. It is a string with the following format 'startDateTime_ISO/endDateTime_ISO'. - """) + The timespan of the query. It is a string with the following format 'startDateTime_ISO/endDateTime_ISO'. + """) @query @clientName("time_interval", "python") timespan: string; @@ -968,10 +968,10 @@ model MetricDimensionsRequest { @doc("Test run app component") model TestRunAppComponents { @doc(""" -Azure resource collection { resource id (fully qualified resource Id e.g -subscriptions/{subId}/resourceGroups/{rg}/providers/Microsoft.LoadTestService/loadtests/{resName}) -: resource object } -""") + Azure resource collection { resource id (fully qualified resource Id e.g + subscriptions/{subId}/resourceGroups/{rg}/providers/Microsoft.LoadTestService/loadtests/{resName}) + : resource object } + """) components: Record; @doc("Test run identifier") @@ -988,10 +988,10 @@ model TestRunServerMetricConfig { testRunId?: string; @doc(""" -Azure resource metrics collection {metric id : metrics object} (Refer : -https://docs.microsoft.com/en-us/rest/api/monitor/metric-definitions/list#metricdefinition -for metric id). -""") + Azure resource metrics collection {metric id : metrics object} (Refer : + https://docs.microsoft.com/en-us/rest/api/monitor/metric-definitions/list#metricdefinition + for metric id). + """) metrics?: Record; ...SystemMetaData; @@ -1000,11 +1000,11 @@ for metric id). @doc("Query parameters for list test run operation") model OldTestRunIdQueryParam { @doc(""" -Existing test run identifier that should be rerun, if this is provided, the -test will run with the JMX file, configuration and app components from the -existing test run. You can override the configuration values for new test run -in the request body. -""") + Existing test run identifier that should be rerun, if this is provided, the + test will run with the JMX file, configuration and app components from the + existing test run. You can override the configuration values for new test run + in the request body. + """) @query oldTestRunId?: string; } @@ -1012,17 +1012,17 @@ in the request body. @doc("Parameters for list test run operation") model ListTestRunQueryParams { @doc(""" -Sort on the supported fields in (field asc/desc) format. eg: executedDateTime -asc. Supported fields - executedDateTime -""") + Sort on the supported fields in (field asc/desc) format. eg: executedDateTime + asc. Supported fields - executedDateTime + """) @query orderby?: string; @doc(""" -Prefix based, case sensitive search on searchable fields - description, -executedUser. For example, to search for a test run, with description 500 VUs, -the search parameter can be 500. -""") + Prefix based, case sensitive search on searchable fields - description, + executedUser. For example, to search for a test run, with description 500 VUs, + the search parameter can be 500. + """) @query search?: string; @@ -1050,29 +1050,29 @@ the search parameter can be 500. @doc("Parameters for list test operation") model ListTestQueryParams { @doc(""" -Sort on the supported fields in (field asc/desc) format. eg: -lastModifiedDateTime asc. Supported fields - lastModifiedDateTime -""") + Sort on the supported fields in (field asc/desc) format. eg: + lastModifiedDateTime asc. Supported fields - lastModifiedDateTime + """) @query orderby?: string; @doc(""" -Prefix based, case sensitive search on searchable fields - displayName, -createdBy. For example, to search for a test, with display name is Login Test, -the search parameter can be Login. -""") + Prefix based, case sensitive search on searchable fields - displayName, + createdBy. For example, to search for a test, with display name is Login Test, + the search parameter can be Login. + """) @query search?: string; @doc(""" -Start DateTime(RFC 3339 literal format) of the last updated time range to filter tests. -""") + Start DateTime(RFC 3339 literal format) of the last updated time range to filter tests. + """) @query lastModifiedStartTime?: utcDateTime; @doc(""" -End DateTime(RFC 3339 literal format) of the last updated time range to filter tests. -""") + End DateTime(RFC 3339 literal format) of the last updated time range to filter tests. + """) @query lastModifiedEndTime?: utcDateTime; diff --git a/specification/loadtestservice/LoadTestService/routes.tsp b/specification/loadtestservice/LoadTestService/routes.tsp index 0992853d9739..9b6118b7dfc9 100644 --- a/specification/loadtestservice/LoadTestService/routes.tsp +++ b/specification/loadtestservice/LoadTestService/routes.tsp @@ -36,13 +36,13 @@ interface LoadTestAdministration { getTest is StandardResourceOperations.ResourceRead; @summary(""" -Get all load tests by the fully qualified resource Id e.g -subscriptions/{subId}/resourceGroups/{rg}/providers/Microsoft.LoadTestService/loadtests/{resName}. -""") + Get all load tests by the fully qualified resource Id e.g + subscriptions/{subId}/resourceGroups/{rg}/providers/Microsoft.LoadTestService/loadtests/{resName}. + """) @doc(""" -Get all load tests by the fully qualified resource Id e.g -subscriptions/{subId}/resourceGroups/{rg}/providers/Microsoft.LoadTestService/loadtests/{resName}. -""") + Get all load tests by the fully qualified resource Id e.g + subscriptions/{subId}/resourceGroups/{rg}/providers/Microsoft.LoadTestService/loadtests/{resName}. + """) listTests is StandardResourceOperations.ResourceList< Test, ListQueryParametersTrait @@ -51,15 +51,15 @@ subscriptions/{subId}/resourceGroups/{rg}/providers/Microsoft.LoadTestService/lo #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Our operation is not following the standard put behavior https://github.com/Azure/typespec-azure/issues/3743" #suppress "@azure-tools/typespec-azure-core/byos" "It is limiting for users to have storage first before creating a load test also it will be breaking change for us." @summary(""" -Upload input file for a given test Id. File size can't be more than 50 MB. -Existing file with same name for the given test will be overwritten. File -should be provided in the request body as application/octet-stream. -""") + Upload input file for a given test Id. File size can't be more than 50 MB. + Existing file with same name for the given test will be overwritten. File + should be provided in the request body as application/octet-stream. + """) @doc(""" -Upload input file for a given test Id. File size can't be more than 50 MB. -Existing file with same name for the given test will be overwritten. File -should be provided in the request body as application/octet-stream. -""") + Upload input file for a given test Id. File size can't be more than 50 MB. + Existing file with same name for the given test will be overwritten. File + should be provided in the request body as application/octet-stream. + """) @route("/tests/{testId}/files/{fileName}") @put uploadTestFile is Azure.Core.Foundations.Operation< @@ -69,9 +69,9 @@ should be provided in the request body as application/octet-stream. contentType: "application/octet-stream"; @doc(""" -Unique name for the load test, must contain only lower-case alphabetic, -numeric, underscore or hyphen characters. -""") + Unique name for the load test, must contain only lower-case alphabetic, + numeric, underscore or hyphen characters. + """) @path @maxLength(50) @minLength(2) @@ -117,9 +117,9 @@ numeric, underscore or hyphen characters. contentType: "application/merge-patch+json"; @doc(""" -Unique name for the load test, must contain only lower-case alphabetic, -numeric, underscore or hyphen characters. -""") + Unique name for the load test, must contain only lower-case alphabetic, + numeric, underscore or hyphen characters. + """) @path @maxLength(50) @minLength(2) @@ -141,9 +141,9 @@ numeric, underscore or hyphen characters. getAppComponents is Azure.Core.Foundations.Operation< { @doc(""" -Unique name for the load test, must contain only lower-case alphabetic, -numeric, underscore or hyphen characters. -""") + Unique name for the load test, must contain only lower-case alphabetic, + numeric, underscore or hyphen characters. + """) @path @maxLength(50) @minLength(2) @@ -165,9 +165,9 @@ numeric, underscore or hyphen characters. contentType: "application/merge-patch+json"; @doc(""" -Unique name for the load test, must contain only lower-case alphabetic, -numeric, underscore or hyphen characters. -""") + Unique name for the load test, must contain only lower-case alphabetic, + numeric, underscore or hyphen characters. + """) @path @maxLength(50) @minLength(2) @@ -189,9 +189,9 @@ numeric, underscore or hyphen characters. getServerMetricsConfig is Azure.Core.Foundations.Operation< { @doc(""" -Unique name for the load test, must contain only lower-case alphabetic, -numeric, underscore or hyphen characters. -""") + Unique name for the load test, must contain only lower-case alphabetic, + numeric, underscore or hyphen characters. + """) @path @maxLength(50) @minLength(2) @@ -245,9 +245,9 @@ interface LoadTestRun { listMetricNamespaces is Azure.Core.Foundations.Operation< { @doc(""" -Unique name for the load test run, must contain only lower-case alphabetic, -numeric, underscore or hyphen characters. -""") + Unique name for the load test run, must contain only lower-case alphabetic, + numeric, underscore or hyphen characters. + """) @path @maxLength(50) @minLength(2) @@ -265,9 +265,9 @@ numeric, underscore or hyphen characters. listMetricDefinitions is Azure.Core.Foundations.Operation< { @doc(""" -Unique name for the load test run, must contain only lower-case alphabetic, -numeric, underscore or hyphen characters. -""") + Unique name for the load test run, must contain only lower-case alphabetic, + numeric, underscore or hyphen characters. + """) @path @maxLength(50) @minLength(2) @@ -289,9 +289,9 @@ numeric, underscore or hyphen characters. listMetrics is Azure.Core.Foundations.Operation< { @doc(""" -Unique name for the load test run, must contain only lower-case alphabetic, -numeric, underscore or hyphen characters. -""") + Unique name for the load test run, must contain only lower-case alphabetic, + numeric, underscore or hyphen characters. + """) @path @maxLength(50) @minLength(2) @@ -318,9 +318,9 @@ numeric, underscore or hyphen characters. listMetricDimensionValues is Azure.Core.Foundations.Operation< { @doc(""" -Unique name for the load test run, must contain only lower-case alphabetic, -numeric, underscore or hyphen characters. -""") + Unique name for the load test run, must contain only lower-case alphabetic, + numeric, underscore or hyphen characters. + """) @path @maxLength(50) @minLength(2) @@ -348,9 +348,9 @@ numeric, underscore or hyphen characters. contentType: "application/merge-patch+json"; @doc(""" -Unique Id for the load test run, must contain only lower-case alphabetic, -numeric, underscore or hyphen characters. -""") + Unique Id for the load test run, must contain only lower-case alphabetic, + numeric, underscore or hyphen characters. + """) @path @maxLength(50) @minLength(2) @@ -366,21 +366,21 @@ numeric, underscore or hyphen characters. #suppress "@azure-tools/typespec-azure-core/use-standard-operations" @summary(""" -Get associated app component (collection of azure resources) for the given test -run. -""") + Get associated app component (collection of azure resources) for the given test + run. + """) @doc(""" -Get associated app component (collection of azure resources) for the given test -run. -""") + Get associated app component (collection of azure resources) for the given test + run. + """) @route("/test-runs/{testRunId}/app-components") @get getAppComponents is Azure.Core.Foundations.Operation< { @doc(""" -Unique name for the load test run, must contain only lower-case alphabetic, -numeric, underscore or hyphen characters. -""") + Unique name for the load test run, must contain only lower-case alphabetic, + numeric, underscore or hyphen characters. + """) @path @maxLength(50) @minLength(2) @@ -402,9 +402,9 @@ numeric, underscore or hyphen characters. contentType: "application/merge-patch+json"; @doc(""" -Unique Id for the load test run, must contain only lower-case alphabetic, -numeric, underscore or hyphen characters. -""") + Unique Id for the load test run, must contain only lower-case alphabetic, + numeric, underscore or hyphen characters. + """) @path @maxLength(50) @minLength(2) @@ -426,9 +426,9 @@ numeric, underscore or hyphen characters. getServerMetricsConfig is Azure.Core.Foundations.Operation< { @doc(""" -Unique name for the load test run, must contain only lower-case alphabetic, -numeric, underscore or hyphen characters. -""") + Unique name for the load test run, must contain only lower-case alphabetic, + numeric, underscore or hyphen characters. + """) @path @maxLength(50) @minLength(2) diff --git a/specification/loadtestservice/LoadTestService/tspconfig.yaml b/specification/loadtestservice/LoadTestService/tspconfig.yaml index 672a679be2ab..520158683e57 100644 --- a/specification/loadtestservice/LoadTestService/tspconfig.yaml +++ b/specification/loadtestservice/LoadTestService/tspconfig.yaml @@ -21,6 +21,7 @@ options: emitter-output-dir: "{project-root}/../" output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/loadtestservice.json" azure-resource-provider-folder: "data-plane" + emit-lro-options: "none" examples-directory: ./examples omit-unreachable-types: true "@azure-tools/typespec-python": diff --git a/specification/loadtestservice/resource-manager/Microsoft.LoadTestService/stable/2022-12-01/loadtestservice.json b/specification/loadtestservice/resource-manager/Microsoft.LoadTestService/stable/2022-12-01/loadtestservice.json index 6a4534491abc..deefcea56e76 100644 --- a/specification/loadtestservice/resource-manager/Microsoft.LoadTestService/stable/2022-12-01/loadtestservice.json +++ b/specification/loadtestservice/resource-manager/Microsoft.LoadTestService/stable/2022-12-01/loadtestservice.json @@ -481,6 +481,10 @@ "type": "string", "description": "A link to the status monitor" }, + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, "Retry-After": { "type": "integer", "format": "int32", @@ -769,11 +773,7 @@ "properties": { "$ref": "#/definitions/LoadTestProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "identity": { "$ref": "../../../../../common-types/resource-management/v5/managedidentity.json#/definitions/ManagedServiceIdentity", @@ -949,11 +949,7 @@ "properties": { "$ref": "#/definitions/QuotaResourceProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ diff --git a/specification/machinelearning/Azure.AI.ChatProtocol/models/common.tsp b/specification/machinelearning/Azure.AI.ChatProtocol/models/common.tsp index 681e4c5401e9..e1d096d3fa7d 100644 --- a/specification/machinelearning/Azure.AI.ChatProtocol/models/common.tsp +++ b/specification/machinelearning/Azure.AI.ChatProtocol/models/common.tsp @@ -33,9 +33,9 @@ union ChatRole { model ContextProperty { #suppress "@azure-tools/typespec-azure-core/bad-record-type" "Protocol defines the type as Record" @doc(""" - Context allows the chat app to receive extra parameters from the client, such as temperature, functions, or - customer_info. These parameters are specific to the chat app and not understood by the generic clients. - """) + Context allows the chat app to receive extra parameters from the client, such as temperature, functions, or + customer_info. These parameters are specific to the chat app and not understood by the generic clients. + """) context?: Record; } @@ -43,11 +43,11 @@ model ContextProperty { model StateProperty { #suppress "@azure-tools/typespec-azure-core/no-unknown" "The protocol defines these as any (object/scalar) for now" @doc(""" - Field that allows the chat app to store and retrieve data, the structure of such data is dependant on the backend - being used. The client must send back the data in this field unchanged in subsequent requests, until the chat app - sends a new one. The data in this field can be used to implement stateful services, such as remembering previous - conversations or user preferences. - """) + Field that allows the chat app to store and retrieve data, the structure of such data is dependant on the backend + being used. The client must send back the data in this field unchanged in subsequent requests, until the chat app + sends a new one. The data in this field can be used to implement stateful services, such as remembering previous + conversations or user preferences. + """) sessionState?: unknown; } diff --git a/specification/machinelearning/Azure.AI.ChatProtocol/tspconfig.yaml b/specification/machinelearning/Azure.AI.ChatProtocol/tspconfig.yaml index 582f1e520dc4..ae4caf53f776 100644 --- a/specification/machinelearning/Azure.AI.ChatProtocol/tspconfig.yaml +++ b/specification/machinelearning/Azure.AI.ChatProtocol/tspconfig.yaml @@ -12,6 +12,7 @@ options: emitter-output-dir: "{project-root}/../" output-file: "{azure-resource-provider-folder}/Azure.AI.ChatProtocol/{version-status}/{version}/generated.json" azure-resource-provider-folder: "data-plane" + emit-lro-options: "none" examples-directory: examples omit-unreachable-types: true "@azure-tools/typespec-csharp": diff --git a/specification/machinelearningservices/AzureAI.Assets/main.tsp b/specification/machinelearningservices/AzureAI.Assets/main.tsp index afdfc49a3a5b..561830ad433b 100644 --- a/specification/machinelearningservices/AzureAI.Assets/main.tsp +++ b/specification/machinelearningservices/AzureAI.Assets/main.tsp @@ -27,8 +27,8 @@ using Azure.Core.Traits; "Machinelearning Services Asset APIs", { @doc(""" -Supported Azure-AI asset endpoints. -""") + Supported Azure-AI asset endpoints. + """) endpoint: url, @doc("The ID of the target subscription.") diff --git a/specification/machinelearningservices/AzureAI.Assets/tspconfig.yaml b/specification/machinelearningservices/AzureAI.Assets/tspconfig.yaml index 3a8f06dc8c95..8b6fccf845f6 100644 --- a/specification/machinelearningservices/AzureAI.Assets/tspconfig.yaml +++ b/specification/machinelearningservices/AzureAI.Assets/tspconfig.yaml @@ -7,6 +7,7 @@ options: "@azure-tools/typespec-autorest": emitter-output-dir: "{project-root}/.." azure-resource-provider-folder: "data-plane" + emit-lro-options: "none" output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/azure-ai-assets.json" examples-directory: "{project-root}/examples" "@azure-tools/typespec-python": diff --git a/specification/mobilepacketcore/resource-manager/Microsoft.MobilePacketCore/preview/2023-10-15-preview/mobilepacketcore.json b/specification/mobilepacketcore/resource-manager/Microsoft.MobilePacketCore/preview/2023-10-15-preview/mobilepacketcore.json index 090f7ccd286c..d435d26ad281 100644 --- a/specification/mobilepacketcore/resource-manager/Microsoft.MobilePacketCore/preview/2023-10-15-preview/mobilepacketcore.json +++ b/specification/mobilepacketcore/resource-manager/Microsoft.MobilePacketCore/preview/2023-10-15-preview/mobilepacketcore.json @@ -2357,11 +2357,7 @@ "properties": { "$ref": "#/definitions/AmfDeploymentResourceProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -2504,11 +2500,7 @@ "properties": { "$ref": "#/definitions/ClusterServiceResourceProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -2705,11 +2697,7 @@ "properties": { "$ref": "#/definitions/NrfDeploymentResourceProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -2801,11 +2789,7 @@ "properties": { "$ref": "#/definitions/NssfDeploymentResourceProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -2897,11 +2881,7 @@ "properties": { "$ref": "#/definitions/ObservabilityServiceResourceProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -3116,11 +3096,7 @@ "properties": { "$ref": "#/definitions/SmfDeploymentResourceProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -3212,11 +3188,7 @@ "properties": { "$ref": "#/definitions/UpfDeploymentResourceProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ diff --git a/specification/mongocluster/DocumentDB.MongoCluster.Management/FirewallRule.tsp b/specification/mongocluster/DocumentDB.MongoCluster.Management/FirewallRule.tsp index 20ef9365bcd5..3ccc13b563ad 100644 --- a/specification/mongocluster/DocumentDB.MongoCluster.Management/FirewallRule.tsp +++ b/specification/mongocluster/DocumentDB.MongoCluster.Management/FirewallRule.tsp @@ -37,7 +37,9 @@ interface FirewallRules { /** Gets information about a mongo cluster firewall rule. */ get is ArmResourceRead; /** Creates a new firewall rule or updates an existing firewall rule on a mongo cluster. */ + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST REMOVE AT NEXT API VERSION UPDATE" #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "Need to support existing 202 response for PUT operations" + @Azure.Core.useFinalStateVia("azure-async-operation") createOrUpdate is ArmResourceCreateOrReplaceAsync< FirewallRule, Response = ArmAcceptedLroResponse<"Resource operation accepted."> | ArmResourceUpdatedResponse | ArmResourceCreatedResponse< diff --git a/specification/mongocluster/DocumentDB.MongoCluster.Management/MongoCluster.tsp b/specification/mongocluster/DocumentDB.MongoCluster.Management/MongoCluster.tsp index 2949ec5c2c85..e024ef88aa50 100644 --- a/specification/mongocluster/DocumentDB.MongoCluster.Management/MongoCluster.tsp +++ b/specification/mongocluster/DocumentDB.MongoCluster.Management/MongoCluster.tsp @@ -26,7 +26,12 @@ interface MongoClusters { /** Gets information about a mongo cluster. */ get is ArmResourceRead; /** Create or update a mongo cluster. Update overwrites all properties for the resource. To only modify some of the properties, use PATCH. */ - createOrUpdate is ArmResourceCreateOrUpdateAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrUpdateAsync< + MongoCluster, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; /** Updates an existing mongo cluster. The request body can contain one to many of the properties present in the normal mongo cluster definition. */ update is ArmResourcePatchAsync; /** Deletes a mongo cluster. */ diff --git a/specification/mongocluster/DocumentDB.MongoCluster.Management/PrivateEndpointConnection.tsp b/specification/mongocluster/DocumentDB.MongoCluster.Management/PrivateEndpointConnection.tsp index 42bdf34f97de..e7656b6c355c 100644 --- a/specification/mongocluster/DocumentDB.MongoCluster.Management/PrivateEndpointConnection.tsp +++ b/specification/mongocluster/DocumentDB.MongoCluster.Management/PrivateEndpointConnection.tsp @@ -17,7 +17,9 @@ interface PrivateEndpointConnections { /** Get a specific private connection */ get is ArmResourceRead; /** Create a Private endpoint connection */ + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST REMOVE AT NEXT API VERSION UPDATE" #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "Need to support existing 202 response for PUT operations" + @Azure.Core.useFinalStateVia("azure-async-operation") create is ArmResourceCreateOrReplaceAsync< PrivateEndpointConnectionResource, Response = ArmAcceptedLroResponse<"Resource operation accepted."> | ArmResourceUpdatedResponse | ArmResourceCreatedResponse< diff --git a/specification/mongocluster/resource-manager/Microsoft.DocumentDB/preview/2024-03-01-preview/mongoCluster.json b/specification/mongocluster/resource-manager/Microsoft.DocumentDB/preview/2024-03-01-preview/mongoCluster.json index 8926b7ebe439..ea08773fcbe3 100644 --- a/specification/mongocluster/resource-manager/Microsoft.DocumentDB/preview/2024-03-01-preview/mongoCluster.json +++ b/specification/mongocluster/resource-manager/Microsoft.DocumentDB/preview/2024-03-01-preview/mongoCluster.json @@ -1119,21 +1119,6 @@ } }, "definitions": { - "Azure.ResourceManager.PrivateEndpointConnection": { - "type": "object", - "description": "The private endpoint connection resource", - "properties": { - "properties": { - "$ref": "../../../../../common-types/resource-management/v5/privatelinks.json#/definitions/PrivateEndpointConnectionProperties", - "description": "The private endpoint connection properties" - } - }, - "allOf": [ - { - "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" - } - ] - }, "ConnectionString": { "type": "object", "description": "Connection string for the mongo cluster", @@ -1181,11 +1166,7 @@ "properties": { "$ref": "#/definitions/FirewallRuleProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -1262,11 +1243,7 @@ "properties": { "$ref": "#/definitions/MongoClusterProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -1373,7 +1350,7 @@ "type": "array", "description": "List of private endpoint connections.", "items": { - "$ref": "#/definitions/Azure.ResourceManager.PrivateEndpointConnection" + "$ref": "../../../../../common-types/resource-management/v5/privatelinks.json#/definitions/PrivateEndpointConnection" }, "readOnly": true } @@ -1578,11 +1555,7 @@ "properties": { "$ref": "../../../../../common-types/resource-management/v5/privatelinks.json#/definitions/PrivateEndpointConnectionProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -1619,11 +1592,7 @@ "properties": { "$ref": "../../../../../common-types/resource-management/v5/privatelinks.json#/definitions/PrivateLinkResourceProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ diff --git a/specification/monitor/Microsoft.Monitor/typespec/azureMonitorWorkspace.tsp b/specification/monitor/Microsoft.Monitor/typespec/azureMonitorWorkspace.tsp index f394158e6235..d02420de7cfc 100644 --- a/specification/monitor/Microsoft.Monitor/typespec/azureMonitorWorkspace.tsp +++ b/specification/monitor/Microsoft.Monitor/typespec/azureMonitorWorkspace.tsp @@ -9,7 +9,6 @@ using TypeSpec.Rest; using TypeSpec.Versioning; using Azure.Core; using Azure.ResourceManager; -using Azure.ResourceManager.Private; using OpenAPI; namespace Microsoft.Monitor; @@ -88,8 +87,13 @@ union PublicNetworkAccess { interface AzureMonitorWorkspaces { @doc("Returns the specific Azure Monitor workspace") get is ArmResourceRead; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" @doc("Create or update a workspace") - createOrUpdate is ArmResourceCreateOrUpdateAsync; + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrUpdateAsync< + AzureMonitorWorkspace, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; @doc("Updates part of a workspace") update is ArmResourcePatchSync< AzureMonitorWorkspace, diff --git a/specification/monitor/Microsoft.Monitor/typespec/pipelineGroup.tsp b/specification/monitor/Microsoft.Monitor/typespec/pipelineGroup.tsp index ff9e1df1fac4..0ceb17c19270 100644 --- a/specification/monitor/Microsoft.Monitor/typespec/pipelineGroup.tsp +++ b/specification/monitor/Microsoft.Monitor/typespec/pipelineGroup.tsp @@ -16,7 +16,6 @@ using TypeSpec.Rest; using TypeSpec.Versioning; using Azure.Core; using Azure.ResourceManager; -using Azure.ResourceManager.Private; using OpenAPI; namespace Microsoft.Monitor; @@ -246,8 +245,13 @@ interface PipelineGroups { @doc("Returns the specific pipeline group instance.") get is ArmResourceRead; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" @doc("Create or update a pipeline group instance.") - createOrUpdate is ArmResourceCreateOrUpdateAsync; + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrUpdateAsync< + PipelineGroup, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; @doc("Delete a pipeline group instance.") delete is ArmResourceDeleteWithoutOkAsync; diff --git a/specification/monitor/Microsoft.Monitor/typespec/service.tsp b/specification/monitor/Microsoft.Monitor/typespec/service.tsp index 0cffc4c28b64..3313dfeee219 100644 --- a/specification/monitor/Microsoft.Monitor/typespec/service.tsp +++ b/specification/monitor/Microsoft.Monitor/typespec/service.tsp @@ -24,6 +24,7 @@ namespace Microsoft.Monitor; @doc("Microsoft.Monitor Versions") enum Versions { @useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1) + @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v4) @doc("API Version 2023-10-01-preview") `2023-10-01-preview`, } diff --git a/specification/monitor/resource-manager/Microsoft.Monitor/preview/2023-10-01-preview/azuremonitor.json b/specification/monitor/resource-manager/Microsoft.Monitor/preview/2023-10-01-preview/azuremonitor.json index c15f4d78e7d5..9692991c5239 100644 --- a/specification/monitor/resource-manager/Microsoft.Monitor/preview/2023-10-01-preview/azuremonitor.json +++ b/specification/monitor/resource-manager/Microsoft.Monitor/preview/2023-10-01-preview/azuremonitor.json @@ -59,20 +59,20 @@ "description": "List the operations for the provider", "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/ApiVersionParameter" } ], "responses": { "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/OperationListResult" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/definitions/OperationListResult" } }, "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/definitions/ErrorResponse" } } }, @@ -95,10 +95,10 @@ "description": "Lists all workspaces in the specified subscription", "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/SubscriptionIdParameter" } ], "responses": { @@ -111,7 +111,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/definitions/ErrorResponse" } } }, @@ -134,10 +134,10 @@ "description": "Lists all workspaces in the specified subscription", "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/SubscriptionIdParameter" } ], "responses": { @@ -150,7 +150,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/definitions/ErrorResponse" } } }, @@ -173,13 +173,13 @@ "description": "Lists all workspaces in the specified resource group", "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/ResourceGroupNameParameter" } ], "responses": { @@ -192,7 +192,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/definitions/ErrorResponse" } } }, @@ -215,13 +215,13 @@ "description": "Returns the specific Azure Monitor workspace", "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "azureMonitorWorkspaceName", @@ -242,7 +242,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/definitions/ErrorResponse" } } }, @@ -260,13 +260,13 @@ "description": "Create or update a workspace", "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "azureMonitorWorkspaceName", @@ -309,7 +309,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/definitions/ErrorResponse" } } }, @@ -331,13 +331,13 @@ "description": "Updates part of a workspace", "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "azureMonitorWorkspaceName", @@ -367,7 +367,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/definitions/ErrorResponse" } } }, @@ -385,13 +385,13 @@ "description": "Delete a workspace", "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "azureMonitorWorkspaceName", @@ -423,7 +423,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/definitions/ErrorResponse" } } }, @@ -447,13 +447,13 @@ "description": "Lists all workspaces in the specified resource group", "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/ResourceGroupNameParameter" } ], "responses": { @@ -466,7 +466,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/definitions/ErrorResponse" } } }, @@ -489,13 +489,13 @@ "description": "Returns the specific pipeline group instance.", "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "pipelineGroupName", @@ -516,7 +516,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/definitions/ErrorResponse" } } }, @@ -534,13 +534,13 @@ "description": "Create or update a pipeline group instance.", "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "pipelineGroupName", @@ -583,7 +583,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/definitions/ErrorResponse" } } }, @@ -614,13 +614,13 @@ "description": "Updates a pipeline group instance", "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "pipelineGroupName", @@ -664,7 +664,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/definitions/ErrorResponse" } } }, @@ -686,13 +686,13 @@ "description": "Delete a pipeline group instance.", "parameters": [ { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/parameters/ResourceGroupNameParameter" }, { "name": "pipelineGroupName", @@ -724,7 +724,7 @@ "default": { "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/definitions/ErrorResponse" } } }, @@ -741,21 +741,6 @@ } }, "definitions": { - "Azure.ResourceManager.PrivateEndpointConnection": { - "type": "object", - "description": "The private endpoint connection resource", - "properties": { - "properties": { - "$ref": "../../../../../common-types/resource-management/v4/privatelinks.json#/definitions/PrivateEndpointConnectionProperties", - "description": "The private endpoint connection properties" - } - }, - "allOf": [ - { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ProxyResource" - } - ] - }, "AzureMonitorWorkspace": { "type": "object", "description": "An Azure Monitor Workspace definition.", @@ -763,16 +748,12 @@ "properties": { "$ref": "#/definitions/AzureMonitorWorkspaceProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/TrackedResource" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/definitions/TrackedResource" } ] }, @@ -871,7 +852,7 @@ "type": "array", "description": "List of private endpoint connections.", "items": { - "$ref": "#/definitions/Azure.ResourceManager.PrivateEndpointConnection" + "$ref": "../../../../../common-types/resource-management/v4/privatelinks.json#/definitions/PrivateEndpointConnection" }, "readOnly": true }, @@ -1254,11 +1235,7 @@ "properties": { "$ref": "#/definitions/PipelineGroupProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "extendedLocation": { "$ref": "#/definitions/ExtendedLocation", @@ -1271,7 +1248,7 @@ }, "allOf": [ { - "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/TrackedResource" + "$ref": "../../../../../common-types/resource-management/v4/types.json#/definitions/TrackedResource" } ] }, diff --git a/specification/mpcnetworkfunction/MpcNetworkFunction.Management/networkfunction.tsp b/specification/mpcnetworkfunction/MpcNetworkFunction.Management/networkfunction.tsp index ce9e0924f4f9..f320daa93bc3 100644 --- a/specification/mpcnetworkfunction/MpcNetworkFunction.Management/networkfunction.tsp +++ b/specification/mpcnetworkfunction/MpcNetworkFunction.Management/networkfunction.tsp @@ -57,7 +57,12 @@ model NetworkFunctionResourceProperties { @armResourceOperations(NetworkFunctionResource) interface NetworkFunctions { get is ArmResourceRead; - createOrUpdate is ArmResourceCreateOrReplaceAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrReplaceAsync< + NetworkFunctionResource, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; updateTags is ArmTagsPatchSync; delete is ArmResourceDeleteSync; listByResourceGroup is ArmResourceListByParent; diff --git a/specification/mpcnetworkfunction/resource-manager/Microsoft.MobilePacketCore/preview/2023-05-15-preview/networkfunction.json b/specification/mpcnetworkfunction/resource-manager/Microsoft.MobilePacketCore/preview/2023-05-15-preview/networkfunction.json index 152b307e1d96..2c32de60fddc 100644 --- a/specification/mpcnetworkfunction/resource-manager/Microsoft.MobilePacketCore/preview/2023-05-15-preview/networkfunction.json +++ b/specification/mpcnetworkfunction/resource-manager/Microsoft.MobilePacketCore/preview/2023-05-15-preview/networkfunction.json @@ -458,11 +458,7 @@ "properties": { "$ref": "#/definitions/NetworkFunctionResourceProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ diff --git a/specification/networkanalytics/NetworkAnalytics.Management/main.tsp b/specification/networkanalytics/NetworkAnalytics.Management/main.tsp index a7f74cb8338b..36853645c013 100644 --- a/specification/networkanalytics/NetworkAnalytics.Management/main.tsp +++ b/specification/networkanalytics/NetworkAnalytics.Management/main.tsp @@ -152,7 +152,7 @@ model DataProduct is TrackedResource { @maxLength(63) name: string; - ...ManagedServiceIdentityProperty; + ...Legacy.ManagedServiceIdentityV4Property; } @doc("The data product properties.") @@ -429,9 +429,9 @@ union DataProductUserRole { "Reader", @doc(""" -Field to specify user of type SensitiveReader. -This user has privileged access to read sensitive data of a data product. -""") + Field to specify user of type SensitiveReader. + This user has privileged access to read sensitive data of a data product. + """) "SensitiveReader", } @@ -531,8 +531,13 @@ interface DataProductsCatalogs { @added(Versions.v2023_11_15) @armResourceOperations interface DataTypes { + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" @doc("Create data type resource.") - create is ArmResourceCreateOrUpdateAsync; + @Azure.Core.useFinalStateVia("azure-async-operation") + create is ArmResourceCreateOrUpdateAsync< + DataType, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; @doc("Retrieve data type resource.") get is ArmResourceRead; @@ -562,8 +567,13 @@ interface DataTypes { @added(Versions.v2023_11_15) @armResourceOperations interface DataProducts { + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" @doc("Create data product resource.") - create is ArmResourceCreateOrUpdateAsync; + @Azure.Core.useFinalStateVia("azure-async-operation") + create is ArmResourceCreateOrUpdateAsync< + DataProduct, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; @doc("Retrieve data product resource.") get is ArmResourceRead; diff --git a/specification/networkanalytics/resource-manager/Microsoft.NetworkAnalytics/stable/2023-11-15/networkanalytics.json b/specification/networkanalytics/resource-manager/Microsoft.NetworkAnalytics/stable/2023-11-15/networkanalytics.json index d778934dca55..d4505aa801b0 100644 --- a/specification/networkanalytics/resource-manager/Microsoft.NetworkAnalytics/stable/2023-11-15/networkanalytics.json +++ b/specification/networkanalytics/resource-manager/Microsoft.NetworkAnalytics/stable/2023-11-15/networkanalytics.json @@ -1607,11 +1607,7 @@ "properties": { "$ref": "#/definitions/DataProductProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "identity": { "$ref": "../../../../../common-types/resource-management/v4/managedidentity.json#/definitions/ManagedServiceIdentity", @@ -1990,11 +1986,7 @@ "properties": { "$ref": "#/definitions/DataProductsCatalogProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -2053,11 +2045,7 @@ "properties": { "$ref": "#/definitions/DataTypeProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ diff --git a/specification/oracle/Oracle.Database/main.tsp b/specification/oracle/Oracle.Database/main.tsp index 616a085c1a96..3594c17ff745 100644 --- a/specification/oracle/Oracle.Database/main.tsp +++ b/specification/oracle/Oracle.Database/main.tsp @@ -1,3 +1,4 @@ +import "@azure-tools/typespec-autorest"; import "./operations/exadata/exadatainfrastructureOperations.tsp"; import "./operations/exadata/dbServersOperations.tsp"; import "./operations/exadata/vmclusterOperations.tsp"; diff --git a/specification/oracle/Oracle.Database/operations/commons.tsp b/specification/oracle/Oracle.Database/operations/commons.tsp index 822a0dcb58ca..029de8a53bb7 100644 --- a/specification/oracle/Oracle.Database/operations/commons.tsp +++ b/specification/oracle/Oracle.Database/operations/commons.tsp @@ -14,10 +14,16 @@ interface OracleSubscriptionLevelResource< TProperties extends TypeSpec.Reflection.Model > extends ResourceListBySubscription, - ResourceCreateAsync, ResourceRead, ResourceUpdateAsync, - ResourceDeleteWithoutOkAsync {} + ResourceDeleteWithoutOkAsync { + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "REMOVE THIS SUPPRESSION AT THE NEXT API VERSION UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrUpdateAsync< + T, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; +} @armResourceOperations(T) interface OracleTrackedResource< @@ -44,10 +50,14 @@ interface OracleLocationBasedResource interface OracleChildResource< T extends Foundations.Resource, TProperties extends TypeSpec.Reflection.Model -> - extends ResourceCreateAsync, - ResourceRead, - ResourceDeleteWithoutOkAsync {} +> extends ResourceRead, ResourceDeleteWithoutOkAsync { + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "REMOVE THIS SUPPRESSION AT THE NEXT API VERSION UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrUpdateAsync< + T, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; +} @armResourceOperations interface ListActions { diff --git a/specification/oracle/resource-manager/Oracle.Database/preview/2023-09-01-preview/openapi.json b/specification/oracle/resource-manager/Oracle.Database/preview/2023-09-01-preview/openapi.json index 7240ac650bcc..99c09e6891a0 100644 --- a/specification/oracle/resource-manager/Oracle.Database/preview/2023-09-01-preview/openapi.json +++ b/specification/oracle/resource-manager/Oracle.Database/preview/2023-09-01-preview/openapi.json @@ -3897,11 +3897,7 @@ "properties": { "$ref": "#/definitions/AutonomousDatabaseBaseProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -3917,11 +3913,7 @@ "properties": { "$ref": "#/definitions/AutonomousDatabaseBackupProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -4724,11 +4716,7 @@ "properties": { "$ref": "#/definitions/AutonomousDatabaseCharacterSetProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -5020,11 +5008,7 @@ "properties": { "$ref": "#/definitions/AutonomousDatabaseNationalCharacterSetProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -5378,11 +5362,7 @@ "properties": { "$ref": "#/definitions/AutonomousDbVersionProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -5622,11 +5602,7 @@ "properties": { "$ref": "#/definitions/CloudExadataInfrastructureProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "zones": { "type": "array", @@ -6031,11 +6007,7 @@ "properties": { "$ref": "#/definitions/CloudVmClusterProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -6951,11 +6923,7 @@ "properties": { "$ref": "#/definitions/DbNodeProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -7259,11 +7227,7 @@ "properties": { "$ref": "#/definitions/DbServerProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -7544,11 +7508,7 @@ "properties": { "$ref": "#/definitions/DbSystemShapeProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -7763,11 +7723,7 @@ "properties": { "$ref": "#/definitions/DnsPrivateViewProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -7895,11 +7851,7 @@ "properties": { "$ref": "#/definitions/DnsPrivateZoneProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -8155,11 +8107,7 @@ "properties": { "$ref": "#/definitions/GiVersionProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -8659,11 +8607,7 @@ "properties": { "$ref": "#/definitions/OracleSubscriptionProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "plan": { "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/Plan", @@ -9465,11 +9409,7 @@ "properties": { "$ref": "#/definitions/SystemVersionProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -9663,11 +9603,7 @@ "properties": { "$ref": "#/definitions/VirtualNetworkAddressProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ diff --git a/specification/playwrighttesting/PlaywrightTesting.Management/main.tsp b/specification/playwrighttesting/PlaywrightTesting.Management/main.tsp index 69a49a3e37e8..f90575183eac 100644 --- a/specification/playwrighttesting/PlaywrightTesting.Management/main.tsp +++ b/specification/playwrighttesting/PlaywrightTesting.Management/main.tsp @@ -92,6 +92,12 @@ interface Accounts extends TrackedResourceOperations { @doc("Adds check global name availability operation, normally used if a resource name must be globally unique.") checkNameAvailability is checkGlobalNameAvailability; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST REMOVE AT NEXT API VERSION UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrUpdateAsync< + Account, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; } @doc("The location of subscription quota resource.") diff --git a/specification/playwrighttesting/PlaywrightTesting/tspconfig.yaml b/specification/playwrighttesting/PlaywrightTesting/tspconfig.yaml index 8de6f39b8b80..7ec6149d4529 100644 --- a/specification/playwrighttesting/PlaywrightTesting/tspconfig.yaml +++ b/specification/playwrighttesting/PlaywrightTesting/tspconfig.yaml @@ -9,6 +9,7 @@ parameters: options: "@azure-tools/typespec-autorest": azure-resource-provider-folder: "data-plane" + emit-lro-options: "none" emitter-output-dir: "{project-root}/.." examples-directory: "{project-root}/examples" output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/playwrighttesting.json" diff --git a/specification/playwrighttesting/resource-manager/Microsoft.AzurePlaywrightService/preview/2024-02-01-preview/playwrighttesting.json b/specification/playwrighttesting/resource-manager/Microsoft.AzurePlaywrightService/preview/2024-02-01-preview/playwrighttesting.json index 94efedc41032..b6f9d850e114 100644 --- a/specification/playwrighttesting/resource-manager/Microsoft.AzurePlaywrightService/preview/2024-02-01-preview/playwrighttesting.json +++ b/specification/playwrighttesting/resource-manager/Microsoft.AzurePlaywrightService/preview/2024-02-01-preview/playwrighttesting.json @@ -699,11 +699,7 @@ "properties": { "$ref": "#/definitions/AccountProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -877,11 +873,7 @@ "properties": { "$ref": "#/definitions/AccountQuotaProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -1135,11 +1127,7 @@ "properties": { "$ref": "#/definitions/QuotaProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ diff --git a/specification/portalservices/Extension.Management/models.tsp b/specification/portalservices/Extension.Management/models.tsp index 0cb843dea6d9..d6cf7d03efae 100644 --- a/specification/portalservices/Extension.Management/models.tsp +++ b/specification/portalservices/Extension.Management/models.tsp @@ -428,6 +428,7 @@ model PortalExtensionListSourcesFolder { /** * The content metadata of a file */ +#suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" @discriminator("kind") model PortalExtensionListSourcesFile { /** diff --git a/specification/portalservices/resource-manager/Microsoft.PortalServices/copilotSettings/preview/2024-04-01-preview/copilotSettings.json b/specification/portalservices/resource-manager/Microsoft.PortalServices/copilotSettings/preview/2024-04-01-preview/copilotSettings.json index c841b0db39a8..cf8c28b43cbd 100644 --- a/specification/portalservices/resource-manager/Microsoft.PortalServices/copilotSettings/preview/2024-04-01-preview/copilotSettings.json +++ b/specification/portalservices/resource-manager/Microsoft.PortalServices/copilotSettings/preview/2024-04-01-preview/copilotSettings.json @@ -291,11 +291,7 @@ "properties": { "$ref": "#/definitions/CopilotSettingsProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ diff --git a/specification/programmableconnectivity/Azure.ProgrammableConnectivity/apis/number.tsp b/specification/programmableconnectivity/Azure.ProgrammableConnectivity/apis/number.tsp index e28cc2a40819..550e6d3d4477 100644 --- a/specification/programmableconnectivity/Azure.ProgrammableConnectivity/apis/number.tsp +++ b/specification/programmableconnectivity/Azure.ProgrammableConnectivity/apis/number.tsp @@ -11,17 +11,17 @@ namespace Azure.ProgrammableConnectivity; /// Interfaces @doc(""" - Number operations include Frontend Authentication. - - Users first make a call to the endpoint /Number:verify, which returns a redirect to the device's - Network. This is followed by the device to authenticate directly with the Network. The Network - responds with a token and a redirect. This token can be exchanged with APC for a code. + Number operations include Frontend Authentication. - Users make a second call to the endpoint /Number:verify including the code. The code is used - to verify the device number. The second response is a 200 containing the result of the query. - - For more information on the steps required to use Number Verificaiton, see the APC documentation. -""") + Users first make a call to the endpoint /Number:verify, which returns a redirect to the device's + Network. This is followed by the device to authenticate directly with the Network. The Network + responds with a token and a redirect. This token can be exchanged with APC for a code. + + Users make a second call to the endpoint /Number:verify including the code. The code is used + to verify the device number. The second response is a 200 containing the result of the query. + + For more information on the steps required to use Number Verificaiton, see the APC documentation. + """) interface NumberVerification { #suppress "@azure-tools/typespec-azure-core/no-response-body" "302 redirect has no response body" @doc("Verifies the phone number (MSISDN) associated with a device. As part of the frontend authorization flow, the device is redirected to the operator network to authenticate directly.") diff --git a/specification/programmableconnectivity/Azure.ProgrammableConnectivity/tspconfig.yaml b/specification/programmableconnectivity/Azure.ProgrammableConnectivity/tspconfig.yaml index 0c7cf5d47927..14d312af735b 100644 --- a/specification/programmableconnectivity/Azure.ProgrammableConnectivity/tspconfig.yaml +++ b/specification/programmableconnectivity/Azure.ProgrammableConnectivity/tspconfig.yaml @@ -9,6 +9,7 @@ emit: options: "@azure-tools/typespec-autorest": azure-resource-provider-folder: "data-plane" + emit-lro-options: "none" emitter-output-dir: "{project-root}/.." examples-directory: "{project-root}/examples" output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/openapi.json" diff --git a/specification/purview/Azure.Analytics.Purview.DataMap/main.tsp b/specification/purview/Azure.Analytics.Purview.DataMap/main.tsp index 67657574ea86..bec1c82a4957 100644 --- a/specification/purview/Azure.Analytics.Purview.DataMap/main.tsp +++ b/specification/purview/Azure.Analytics.Purview.DataMap/main.tsp @@ -17,11 +17,11 @@ using TypeSpec.Versioning; } ) @doc(""" -Purview Data Map Service is a fully managed cloud service whose users can -discover the data sources they need and understand the data sources they find. -At the same time, Data Map helps organizations get more value from their -existing investments. This spec defines REST API of Purview Data Map Service. -""") + Purview Data Map Service is a fully managed cloud service whose users can + discover the data sources they need and understand the data sources they find. + At the same time, Data Map helps organizations get more value from their + existing investments. This spec defines REST API of Purview Data Map Service. + """) @useAuth(AuthToken) @versioned(ApiVersions) namespace PurviewDataMap; diff --git a/specification/purview/Azure.Analytics.Purview.DataMap/models.tsp b/specification/purview/Azure.Analytics.Purview.DataMap/models.tsp index 2edf89e54833..dc511d8f89e4 100644 --- a/specification/purview/Azure.Analytics.Purview.DataMap/models.tsp +++ b/specification/purview/Azure.Analytics.Purview.DataMap/models.tsp @@ -275,9 +275,9 @@ union FilterOperator { } @doc(""" -An instance of an entity along with extended info - like hive_table, -hive_database. -""") + An instance of an entity along with extended info - like hive_table, + hive_database. + """) model AtlasEntityWithExtInfo { ...AtlasEntityExtInfo; @@ -335,9 +335,9 @@ model AtlasEntity { relationshipAttributes?: Record; @doc(""" -Status of the entity - can be active or deleted. Deleted entities are not -removed. -""") + Status of the entity - can be active or deleted. Deleted entities are not + removed. + """) status?: EntityStatus; @doc("The update time of the record.") @@ -354,9 +354,9 @@ removed. } @doc(""" -An instance of a classification; it doesn't have an identity, this object -exists only when associated with an entity. -""") + An instance of a classification; it doesn't have an identity, this object + exists only when associated with an entity. + """) model AtlasClassification { ...AtlasStruct; @@ -364,9 +364,9 @@ model AtlasClassification { entityGuid?: string; @doc(""" -Status of the entity - can be active or deleted. Deleted entities are not -removed. -""") + Status of the entity - can be active or deleted. Deleted entities are not + removed. + """) entityStatus?: EntityStatus; @doc("Determines if propagations will be removed on entity deletion.") @@ -389,9 +389,9 @@ model TimeBoundary { } @doc(""" -Captures details of struct contents. Not instantiated directly, used only via -AtlasEntity, AtlasClassification. -""") + Captures details of struct contents. Not instantiated directly, used only via + AtlasEntity, AtlasClassification. + """) model AtlasStruct { #suppress "@azure-tools/typespec-azure-core/bad-record-type" "Should use Record to model Map" @doc("The attributes of the struct.") @@ -445,9 +445,9 @@ model ContactInfo { } @doc(""" -An instance of an entity along with extended info - like hive_table, -hive_database. -""") + An instance of an entity along with extended info - like hive_table, + hive_database. + """) model AtlasEntityExtInfo { @doc("The referred entities.") referredEntities?: Record; @@ -494,9 +494,9 @@ model AtlasEntityHeader { meanings?: AtlasTermAssignmentHeader[]; @doc(""" -Status of the entity - can be active or deleted. Deleted entities are not -removed. -""") + Status of the entity - can be active or deleted. Deleted entities are not + removed. + """) status?: EntityStatus; } @@ -514,9 +514,9 @@ model AtlasErrorResponse { } @doc(""" -An instance of an entity along with extended info - like hive_table, -hive_database. -""") + An instance of an entity along with extended info - like hive_table, + hive_database. + """) model AtlasEntitiesWithExtInfo { ...AtlasEntityExtInfo; @@ -527,9 +527,9 @@ model AtlasEntitiesWithExtInfo { @doc("The request payload for classification association.") model ClassificationAssociateOptions { @doc(""" -An instance of a classification; it doesn't have an identity, this object -exists only when associated with an entity. -""") + An instance of a classification; it doesn't have an identity, this object + exists only when associated with an entity. + """) classification?: AtlasClassification; @doc("The GUID of the entity.") @@ -770,10 +770,10 @@ model AtlasGlossaryTerm { #suppress "@azure-tools/typespec-azure-core/bad-record-type" "Should use Recode to model Map" @doc(""" -The custom attributes of the term, which is map>. -The -key of the first layer map is term template name. -""") + The custom attributes of the term, which is map>. + The + key of the first layer map is term template name. + """) attributes?: Record>; @doc("An array of related object IDs.") @@ -869,9 +869,9 @@ model ResourceLink { } @doc(""" -Reference to an object-instance of AtlasEntity type used in relationship -attribute values -""") + Reference to an object-instance of AtlasEntity type used in relationship + attribute values + """) model AtlasRelatedObjectId { ...AtlasObjectId; @@ -879,18 +879,18 @@ model AtlasRelatedObjectId { displayText?: string; @doc(""" -Status of the entity - can be active or deleted. Deleted entities are not -removed. -""") + Status of the entity - can be active or deleted. Deleted entities are not + removed. + """) entityStatus?: EntityStatus; @doc("Relationship type") relationshipType?: string; @doc(""" -Captures details of struct contents. Not instantiated directly, used only via -AtlasEntity, AtlasClassification. -""") + Captures details of struct contents. Not instantiated directly, used only via + AtlasEntity, AtlasClassification. + """) relationshipAttributes?: AtlasStruct; @doc("The GUID of the relationship.") @@ -935,15 +935,15 @@ model QueryOptions { keywords?: string; @doc(""" -The limit of the number of the search result. default value is 50; maximum -value is 1000. -""") + The limit of the number of the search result. default value is 50; maximum + value is 1000. + """) limit?: int32; @doc(""" -The token used to get next batch of data. Default 'Null' to get the first -batch, and will return new token in each response unless there's no more data. -""") + The token used to get next batch of data. Default 'Null' to get the first + batch, and will return new token in each response unless there's no more data. + """) continuationToken?: string; #suppress "@azure-tools/typespec-azure-core/bad-record-type" "This is a flexible property" @@ -1005,9 +1005,9 @@ model SearchTaxonomySetting { @doc("The result of the search result.") model QueryResult { @doc(""" -The total number of search results (not the number of documents in a single -page). -""") + The total number of search results (not the number of documents in a single + page). + """) @encodedName("application/json", "@search.count") searchCount?: int32; @@ -1019,10 +1019,10 @@ page). continuationToken?: string; @doc(""" -A facet list that consists of index fields assetType ,classification, -contactId, and label. When the facet is specified in the request, the value of -the facet is returned as an element of @search.facets. -""") + A facet list that consists of index fields assetType ,classification, + contactId, and label. When the facet is specified in the request, the value of + the facet is returned as an element of @search.facets. + """) @encodedName("application/json", "@search.facets") searchFacets?: SearchFacetResultValue; @@ -1031,10 +1031,10 @@ the facet is returned as an element of @search.facets. } @doc(""" -A facet list that consists of index fields assetType ,classification, -contactId, and label. When the facet is specified in the request, the value of -the facet is returned as an element of @search.facets. -""") + A facet list that consists of index fields assetType ,classification, + contactId, and label. When the facet is specified in the request, the value of + the facet is returned as an element of @search.facets. + """) model SearchFacetResultValue { @doc("Entity type") entityType?: SearchFacetItemValue[]; @@ -1079,25 +1079,25 @@ model SearchFacetItemValue { @doc("The value item of the search result.") model SearchResultValue { @doc(""" -The search score calculated by the search engine. The results are ordered by -search score by default. -""") + The search score calculated by the search engine. The results are ordered by + search score by default. + """) @encodedName("application/json", "@search.score") searchScore?: float32; @doc(""" -A highlight list that consists of index fields id ,qualifiedName, name, -description, entityType. When the keyword appears in those fields, the value of -the field, attached with emphasis mark, is returned as an element of -@search.highlights. -""") + A highlight list that consists of index fields id ,qualifiedName, name, + description, entityType. When the keyword appears in those fields, the value of + the field, attached with emphasis mark, is returned as an element of + @search.highlights. + """) @encodedName("application/json", "@search.highlights") searchHighlights?: SearchHighlights; @doc(""" -The object type of the record. Object type is the top-level property to -distinguish whether a record is an asset or a term. -""") + The object type of the record. Object type is the top-level property to + distinguish whether a record is an asset or a term. + """) objectType?: string; @doc("The create time of the record. The Unix epoch format.") @@ -1143,9 +1143,9 @@ distinguish whether a record is an asset or a term. assetType?: string[]; @doc(""" -The type name of the term. Could be AtlasGlossary, AtlasGlossaryTerm or -AtlasGlossaryCategory. -""") + The type name of the term. Could be AtlasGlossary, AtlasGlossaryTerm or + AtlasGlossaryCategory. + """) glossaryType?: string; @doc("The glossary name of the term.") @@ -1162,11 +1162,11 @@ AtlasGlossaryCategory. } @doc(""" -A highlight list that consists of index fields id ,qualifiedName, name, -description, entityType. When the keyword appears in those fields, the value of -the field, attached with emphasis mark, is returned as an element of -@search.highlights. -""") + A highlight list that consists of index fields id ,qualifiedName, name, + description, entityType. When the keyword appears in those fields, the value of + the field, attached with emphasis mark, is returned as an element of + @search.highlights. + """) model SearchHighlights { @doc("Id") id?: string[]; @@ -1205,26 +1205,26 @@ model ContactSearchResultValue { info?: string; @doc(""" -The type of the contact. It can be Expert or Owner for an entity. It can be -Expert or Steward for a glossary term. -""") + The type of the contact. It can be Expert or Owner for an entity. It can be + Expert or Steward for a glossary term. + """) contactType?: string; } @doc("The payload of suggest request.") model SuggestOptions { @doc(""" -The keywords applied to all fields that support suggest operation. It must be -at least 1 character, and no more than 100 characters. In the index schema we -defined a default suggester which lists all the supported fields and specifies -a search mode. -""") + The keywords applied to all fields that support suggest operation. It must be + at least 1 character, and no more than 100 characters. In the index schema we + defined a default suggester which lists all the supported fields and specifies + a search mode. + """) keywords?: string; @doc(""" -The number of suggestions we hope to return. The default value is 5. The value -must be a number between 1 and 100. -""") + The number of suggestions we hope to return. The default value is 5. The value + must be a number between 1 and 100. + """) limit?: int32; #suppress "@azure-tools/typespec-azure-core/no-unknown" "Should use unknown to model Object" @@ -1241,23 +1241,23 @@ model SuggestResult { @doc("The value item of the search suggest.") model SuggestResultValue { @doc(""" -The search score calculated by the search engine. The results are ordered by -search score by default. -""") + The search score calculated by the search engine. The results are ordered by + search score by default. + """) @encodedName("application/json", "@search.score") searchScore?: float32; @doc(""" -The target text that contains the keyword as prefix. The keyword is wrapped -with emphasis mark. -""") + The target text that contains the keyword as prefix. The keyword is wrapped + with emphasis mark. + """) @encodedName("application/json", "@search.text") searchText?: string; @doc(""" -The object type of the record. Object type is the top-level property to -distinguish whether a record is an asset or a term. -""") + The object type of the record. Object type is the top-level property to + distinguish whether a record is an asset or a term. + """) objectType?: string; @doc("The create time of the record. The Unix epoch format.") @@ -1303,9 +1303,9 @@ distinguish whether a record is an asset or a term. assetType?: string[]; @doc(""" -The type name of the term. Could be AtlasGlossary, AtlasGlossaryTerm or -AtlasGlossaryCategory. -""") + The type name of the term. Could be AtlasGlossary, AtlasGlossaryTerm or + AtlasGlossaryCategory. + """) glossaryType?: string; @doc("The glossary name of the term.") @@ -1324,15 +1324,15 @@ AtlasGlossaryCategory. @doc("The payload of autocomplete request.") model AutoCompleteOptions { @doc(""" -The keywords applied to all fields that support autocomplete operation. It must -be at least 1 character, and no more than 100 characters. -""") + The keywords applied to all fields that support autocomplete operation. It must + be at least 1 character, and no more than 100 characters. + """) keywords?: string; @doc(""" -The number of autocomplete results we hope to return. The default value is 50. -The value must be a number between 1 and 100. -""") + The number of autocomplete results we hope to return. The default value is 50. + The value must be a number between 1 and 100. + """) limit?: int32; #suppress "@azure-tools/typespec-azure-core/no-unknown" "Should use unknown to model Object" @@ -1671,29 +1671,29 @@ model AtlasClassificationDef { ...AtlasStructDef; @doc(""" -Specifying a list of entityType names in the classificationDef, ensures that -classifications can -only be applied to those entityTypes. - -Any subtypes of the entity types inherit the restriction. - -Any classificationDef subtypes inherit the parents entityTypes restrictions. - -Any classificationDef subtypes can further restrict the parents entityTypes -restrictions by specifying a subset of the entityTypes. - -An empty entityTypes list when there are no parent restrictions means there are no -restrictions. - -An empty entityTypes list when there are parent -restrictions means that the subtype picks up the parents -restrictions. - -If a list of entityTypes are supplied, where one inherits -from another, this will be rejected. This should encourage cleaner -classificationsDefs. - -""") + Specifying a list of entityType names in the classificationDef, ensures that + classifications can + only be applied to those entityTypes. + + Any subtypes of the entity types inherit the restriction. + + Any classificationDef subtypes inherit the parents entityTypes restrictions. + + Any classificationDef subtypes can further restrict the parents entityTypes + restrictions by specifying a subset of the entityTypes. + + An empty entityTypes list when there are no parent restrictions means there are no + restrictions. + + An empty entityTypes list when there are parent + restrictions means that the subtype picks up the parents + restrictions. + + If a list of entityTypes are supplied, where one inherits + from another, this will be rejected. This should encourage cleaner + classificationsDefs. + + """) entityTypes?: string[]; @doc("An array of sub types.") @@ -1718,11 +1718,11 @@ model AtlasEntityDef { } @doc(""" -The relationshipEndDef represents an end of the relationship. The end of the -relationship is defined by a type, an -attribute name, cardinality and whether -it is the container end of the relationship. -""") + The relationshipEndDef represents an end of the relationship. The end of the + relationship is defined by a type, an + attribute name, cardinality and whether + it is the container end of the relationship. + """) model AtlasRelationshipAttributeDef { ...AtlasAttributeDef; @@ -1757,74 +1757,74 @@ model AtlasEnumElementDef { } @doc(""" -AtlasRelationshipDef is a TypeDef that defines a relationship. -As with other typeDefs the AtlasRelationshipDef has a name. Once created the -RelationshipDef has a guid. -The name and the guid are the 2 ways that the -RelationshipDef is identified. -RelationshipDefs have 2 ends, each of which -specify cardinality, an EntityDef type name and name and optionally -whether the -end is a container. -RelationshipDefs can have AttributeDefs - though only -primitive types are allowed. -RelationshipDefs have a relationshipCategory -specifying the UML type of relationship required -The way EntityDefs and -RelationshipDefs are intended to be used is that EntityDefs will define -AttributeDefs these AttributeDefs -will not specify an EntityDef type name as -their types. -RelationshipDefs introduce new attributes to the entity -instances. For example -EntityDef A might have attributes attr1,attr2,attr3 - -EntityDef B might have attributes attr4,attr5,attr6 -RelationshipDef -AtoB might define 2 ends - -end1: type A, name attr7 -end2: type B, name attr8 - -When an instance of EntityDef A is created, it -will have attributes attr1,attr2,attr3,attr7 -When an instance of EntityDef -B is created, it will have attributes attr4,attr5,attr6,attr8 - -In this way -relationshipDefs can be authored separately from entityDefs and can inject -relationship attributes into -the entity instances -""") + AtlasRelationshipDef is a TypeDef that defines a relationship. + As with other typeDefs the AtlasRelationshipDef has a name. Once created the + RelationshipDef has a guid. + The name and the guid are the 2 ways that the + RelationshipDef is identified. + RelationshipDefs have 2 ends, each of which + specify cardinality, an EntityDef type name and name and optionally + whether the + end is a container. + RelationshipDefs can have AttributeDefs - though only + primitive types are allowed. + RelationshipDefs have a relationshipCategory + specifying the UML type of relationship required + The way EntityDefs and + RelationshipDefs are intended to be used is that EntityDefs will define + AttributeDefs these AttributeDefs + will not specify an EntityDef type name as + their types. + RelationshipDefs introduce new attributes to the entity + instances. For example + EntityDef A might have attributes attr1,attr2,attr3 + + EntityDef B might have attributes attr4,attr5,attr6 + RelationshipDef + AtoB might define 2 ends + + end1: type A, name attr7 + end2: type B, name attr8 + + When an instance of EntityDef A is created, it + will have attributes attr1,attr2,attr3,attr7 + When an instance of EntityDef + B is created, it will have attributes attr4,attr5,attr6,attr8 + + In this way + relationshipDefs can be authored separately from entityDefs and can inject + relationship attributes into + the entity instances + """) model AtlasRelationshipDef { ...AtlasStructDef; @doc(""" -The relationshipEndDef represents an end of the relationship. The end of the -relationship is defined by a type, an -attribute name, cardinality and whether -it is the container end of the relationship. -""") + The relationshipEndDef represents an end of the relationship. The end of the + relationship is defined by a type, an + attribute name, cardinality and whether + it is the container end of the relationship. + """) endDef1?: AtlasRelationshipEndDef; @doc(""" -The relationshipEndDef represents an end of the relationship. The end of the -relationship is defined by a type, an -attribute name, cardinality and whether -it is the container end of the relationship. -""") + The relationshipEndDef represents an end of the relationship. The end of the + relationship is defined by a type, an + attribute name, cardinality and whether + it is the container end of the relationship. + """) endDef2?: AtlasRelationshipEndDef; @doc(""" -The Relationship category determines the style of relationship around -containment and lifecycle. -UML terminology is used for the values. -ASSOCIATION is a relationship with no containment. -COMPOSITION and AGGREGATION are containment relationships. -The difference being in the lifecycles of the container and its children. -In the COMPOSITION case, the children cannot exist without the container. -For AGGREGATION, the life cycles of the container and children are totally independent. -""") + The Relationship category determines the style of relationship around + containment and lifecycle. + UML terminology is used for the values. + ASSOCIATION is a relationship with no containment. + COMPOSITION and AGGREGATION are containment relationships. + The difference being in the lifecycles of the container and its children. + In the COMPOSITION case, the children cannot exist without the container. + For AGGREGATION, the life cycles of the container and children are totally independent. + """) relationshipCategory?: RelationshipCategory; @doc("The label of the relationship.") @@ -1832,11 +1832,11 @@ For AGGREGATION, the life cycles of the container and children are totally indep } @doc(""" -The relationshipEndDef represents an end of the relationship. The end of the -relationship is defined by a type, an -attribute name, cardinality and whether -it is the container end of the relationship. -""") + The relationshipEndDef represents an end of the relationship. The end of the + relationship is defined by a type, an + attribute name, cardinality and whether + it is the container end of the relationship. + """) model AtlasRelationshipEndDef { @doc("single-valued attribute or multi-valued attribute.") cardinality?: CardinalityValue; @@ -1866,29 +1866,29 @@ model AtlasTypeDef { @doc("Extra properties for a type.") model AtlasExtraTypeDef { @doc(""" -Specifying a list of entityType names in the classificationDef, ensures that -classifications can -only be applied to those entityTypes. - -Any subtypes of the entity types inherit the restriction. - -Any classificationDef subtypes inherit the parents entityTypes restrictions. - -Any classificationDef subtypes can further restrict the parents entityTypes -restrictions by specifying a subset of the entityTypes. - -An empty entityTypes list when there are no parent restrictions means there are no -restrictions. - -An empty entityTypes list when there are parent -restrictions means that the subtype picks up the parents -restrictions. - -If a list of entityTypes are supplied, where one inherits -from another, this will be rejected. This should encourage cleaner -classificationsDefs. - -""") + Specifying a list of entityType names in the classificationDef, ensures that + classifications can + only be applied to those entityTypes. + + Any subtypes of the entity types inherit the restriction. + + Any classificationDef subtypes inherit the parents entityTypes restrictions. + + Any classificationDef subtypes can further restrict the parents entityTypes + restrictions by specifying a subset of the entityTypes. + + An empty entityTypes list when there are no parent restrictions means there are no + restrictions. + + An empty entityTypes list when there are parent + restrictions means that the subtype picks up the parents + restrictions. + + If a list of entityTypes are supplied, where one inherits + from another, this will be rejected. This should encourage cleaner + classificationsDefs. + + """) entityTypes?: string[]; @doc("An array of sub types.") @@ -1907,33 +1907,33 @@ classificationsDefs. elementDefs?: AtlasEnumElementDef[]; @doc(""" -The relationshipEndDef represents an end of the relationship. The end of the -relationship is defined by a type, an -attribute name, cardinality and whether -it is the container end of the relationship. -""") + The relationshipEndDef represents an end of the relationship. The end of the + relationship is defined by a type, an + attribute name, cardinality and whether + it is the container end of the relationship. + """) endDef1?: AtlasRelationshipEndDef; @doc(""" -The relationshipEndDef represents an end of the relationship. The end of the -relationship is defined by a type, an -attribute name, cardinality and whether -it is the container end of the relationship. -""") + The relationshipEndDef represents an end of the relationship. The end of the + relationship is defined by a type, an + attribute name, cardinality and whether + it is the container end of the relationship. + """) endDef2?: AtlasRelationshipEndDef; @doc(""" -The Relationship category determines the style of relationship around -containment and lifecycle. -UML terminology is used for the values. - -ASSOCIATION is a relationship with no containment. -COMPOSITION and AGGREGATION are containment relationships. - -The difference being in the lifecycles of the container and its children. -In the COMPOSITION case, the children cannot exist without the container. -For AGGREGATION, the life cycles of the container and children are totally independent. -""") + The Relationship category determines the style of relationship around + containment and lifecycle. + UML terminology is used for the values. + + ASSOCIATION is a relationship with no containment. + COMPOSITION and AGGREGATION are containment relationships. + + The difference being in the lifecycles of the container and its children. + In the COMPOSITION case, the children cannot exist without the container. + For AGGREGATION, the life cycles of the container and children are totally independent. + """) relationshipCategory?: RelationshipCategory; @doc("The label of the relationship.") diff --git a/specification/purview/Azure.Analytics.Purview.DataMap/routes.tsp b/specification/purview/Azure.Analytics.Purview.DataMap/routes.tsp index c7a68f0284e1..d47f16bf8ce1 100644 --- a/specification/purview/Azure.Analytics.Purview.DataMap/routes.tsp +++ b/specification/purview/Azure.Analytics.Purview.DataMap/routes.tsp @@ -91,29 +91,29 @@ alias MultipartFormDataRequestHeadersTraits = Azure.Core.Traits.RequestHeadersTr interface Entity { #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "This is Atlas API" @doc(""" -Create or update an entity. -Existing entity is matched using its unique guid if -supplied or by its unique attributes eg: qualifiedName. -Map and array of -collections are not well supported. E.g., array>, array>. -For each contact type, the maximum number of contacts is 20. -""") + Create or update an entity. + Existing entity is matched using its unique guid if + supplied or by its unique attributes eg: qualifiedName. + Map and array of + collections are not well supported. E.g., array>, array>. + For each contact type, the maximum number of contacts is 20. + """) @route("/atlas/v2/entity") @post createOrUpdate is AtlasOperation< { @doc(""" -Used to define the update behavior for business attributes when updating -entities. -""") + Used to define the update behavior for business attributes when updating + entities. + """) @query businessAttributeUpdateBehavior?: BusinessAttributeUpdateBehavior; @doc(""" -The collection where entities will be moved to. Only specify a value if you -need to move an entity to another collection. -""") + The collection where entities will be moved to. Only specify a value if you + need to move an entity to another collection. + """) @query collectionId?: string; } & AtlasEntityWithExtInfo, @@ -148,30 +148,30 @@ need to move an entity to another collection. #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "This is Atlas API" @doc(""" -Create or update entities in bulk. -Existing entity is matched using its unique -guid if supplied or by its unique attributes eg: qualifiedName. -Map and array -of collections are not well supported. E.g., array>, -array>. -For each contact type, the maximum number of contacts -is 20. -""") + Create or update entities in bulk. + Existing entity is matched using its unique + guid if supplied or by its unique attributes eg: qualifiedName. + Map and array + of collections are not well supported. E.g., array>, + array>. + For each contact type, the maximum number of contacts + is 20. + """) @route("/atlas/v2/entity/bulk") @post bulkCreateOrUpdate is AtlasOperation< { @doc(""" -The collection where entities will be moved to. Only specify a value if you -need to move an entity to another collection. -""") + The collection where entities will be moved to. Only specify a value if you + need to move an entity to another collection. + """) @query collectionId?: string; @doc(""" -Used to define the update behavior for business attributes when updating -entities. -""") + Used to define the update behavior for business attributes when updating + entities. + """) @query businessAttributeUpdateBehavior?: BusinessAttributeUpdateBehavior; } & AtlasEntitiesWithExtInfo, @@ -183,9 +183,9 @@ entities. #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "This is Atlas API" #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "This is Atlas API, which does not require api version" @doc(""" -Delete a list of entities in bulk identified by their GUIDs or unique -attributes. -""") + Delete a list of entities in bulk identified by their GUIDs or unique + attributes. + """) @route("/atlas/v2/entity/bulk") @delete bulkDelete is AtlasOperation< @@ -233,12 +233,12 @@ attributes. #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "This is Atlas API" #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "This is Atlas API, which does not require api version" @doc(""" -Update entity partially - create or update entity attribute identified by its -GUID. -Supports only primitive attribute type and entity references. -It does not support updating complex types like arrays, and maps. -Null updates are not possible. -""") + Update entity partially - create or update entity attribute identified by its + GUID. + Supports only primitive attribute type and entity references. + It does not support updating complex types like arrays, and maps. + Null updates are not possible. + """) @route("/atlas/v2/entity/guid/{guid}") @put partialUpdateAttributeByGuid is AtlasOperation< @@ -371,21 +371,21 @@ Null updates are not possible. #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "This is Atlas API" #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "This is Atlas API, which does not require api version" @doc(""" -Get complete definition of an entity given its type and unique attribute. - -In -addition to the typeName path parameter, attribute key-value pair(s) can be -provided in the following format: -attr:\\=. - -NOTE: The -attrName and attrValue should be unique across entities, eg. -qualifiedName. - -The REST request would look something like this: -GET -/v2/entity/uniqueAttribute/type/aType?attr:aTypeAttribute=someValue. -""") + Get complete definition of an entity given its type and unique attribute. + + In + addition to the typeName path parameter, attribute key-value pair(s) can be + provided in the following format: + attr:\\=. + + NOTE: The + attrName and attrValue should be unique across entities, eg. + qualifiedName. + + The REST request would look something like this: + GET + /v2/entity/uniqueAttribute/type/aType?attr:aTypeAttribute=someValue. + """) @route("/atlas/v2/entity/uniqueAttribute/type/{typeName}") @get getByUniqueAttributes is AtlasOperation< @@ -403,9 +403,9 @@ GET ignoreRelationships?: boolean; @doc(""" -The qualified name of the entity. (This is only an example. qualifiedName can -be changed to other unique attributes) -""") + The qualified name of the entity. (This is only an example. qualifiedName can + be changed to other unique attributes) + """) @query("attr:qualifiedName") attribute?: string; }, @@ -416,23 +416,23 @@ be changed to other unique attributes) #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "This is Atlas API" #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "This is Atlas API, which does not require api version" @doc(""" -Update entity partially - Allow a subset of attributes to be updated on an -entity which is identified by its type and unique attribute eg: -Referenceable.qualifiedName. Null updates are not possible. - -In addition to the -typeName path parameter, attribute key-value pair(s) can be provided in the -following format: - -attr:=. -NOTE: The attrName and -attrValue should be unique across entities, eg. qualifiedName. - -The REST -request would look something like this: -PUT -/v2/entity/uniqueAttribute/type/aType?attr:aTypeAttribute=someValue. -""") + Update entity partially - Allow a subset of attributes to be updated on an + entity which is identified by its type and unique attribute eg: + Referenceable.qualifiedName. Null updates are not possible. + + In addition to the + typeName path parameter, attribute key-value pair(s) can be provided in the + following format: + + attr:=. + NOTE: The attrName and + attrValue should be unique across entities, eg. qualifiedName. + + The REST + request would look something like this: + PUT + /v2/entity/uniqueAttribute/type/aType?attr:aTypeAttribute=someValue. + """) @route("/atlas/v2/entity/uniqueAttribute/type/{typeName}") @put partialUpdateByUniqueAttributes is AtlasOperation< @@ -442,9 +442,9 @@ PUT typeName: string; @doc(""" -The qualified name of the entity. (This is only an example. qualifiedName can -be changed to other unique attributes) -""") + The qualified name of the entity. (This is only an example. qualifiedName can + be changed to other unique attributes) + """) @query("attr:qualifiedName") attribute?: string; } & AtlasEntityWithExtInfo, @@ -455,19 +455,19 @@ be changed to other unique attributes) #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "This is Atlas API" #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "This is Atlas API, which does not require api version" @doc(""" -Delete an entity identified by its type and unique attributes. -In addition to -the typeName path parameter, attribute key-value pair(s) can be provided in the -following format: -attr:\\=\\. -NOTE: The attrName and -attrValue should be unique across entities, eg. qualifiedName. - -The REST -request would look something like this: -DELETE -/v2/entity/uniqueAttribute/type/aType?attr:aTypeAttribute=someValue. -""") + Delete an entity identified by its type and unique attributes. + In addition to + the typeName path parameter, attribute key-value pair(s) can be provided in the + following format: + attr:\\=\\. + NOTE: The attrName and + attrValue should be unique across entities, eg. qualifiedName. + + The REST + request would look something like this: + DELETE + /v2/entity/uniqueAttribute/type/aType?attr:aTypeAttribute=someValue. + """) @route("/atlas/v2/entity/uniqueAttribute/type/{typeName}") @delete deleteByUniqueAttribute is AtlasOperation< @@ -477,9 +477,9 @@ DELETE typeName: string; @doc(""" -The qualified name of the entity. (This is only an example. qualifiedName can -be changed to other unique attributes) -""") + The qualified name of the entity. (This is only an example. qualifiedName can + be changed to other unique attributes) + """) @query("attr:qualifiedName") attribute?: string; }, @@ -490,9 +490,9 @@ be changed to other unique attributes) #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "This is Atlas API" #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "This is Atlas API, which does not require api version" @doc(""" -Delete a given classification from an entity identified by its type and unique -attributes. -""") + Delete a given classification from an entity identified by its type and unique + attributes. + """) @route("/atlas/v2/entity/uniqueAttribute/type/{typeName}/classification/{classificationName}") @delete removeClassificationByUniqueAttribute is AtlasOperation< @@ -506,9 +506,9 @@ attributes. classificationName: string; @doc(""" -The qualified name of the entity. (This is only an example. qualifiedName can -be changed to other unique attributes) -""") + The qualified name of the entity. (This is only an example. qualifiedName can + be changed to other unique attributes) + """) @query("attr:qualifiedName") attribute?: string; }, @@ -529,9 +529,9 @@ be changed to other unique attributes) typeName: string; @doc(""" -The qualified name of the entity. (This is only an example. qualifiedName can -be changed to other unique attributes) -""") + The qualified name of the entity. (This is only an example. qualifiedName can + be changed to other unique attributes) + """) @query("attr:qualifiedName") attribute?: string; @@ -556,9 +556,9 @@ be changed to other unique attributes) typeName: string; @doc(""" -The qualified name of the entity. (This is only an example. qualifiedName can -be changed to other unique attributes) -""") + The qualified name of the entity. (This is only an example. qualifiedName can + be changed to other unique attributes) + """) @query("attr:qualifiedName") attribute?: string; @@ -585,25 +585,25 @@ be changed to other unique attributes) #suppress "@azure-tools/typespec-azure-core/casing-style" "This is Atlas API behavior" #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "This is Atlas API, which does not require api version" @doc(""" -Bulk API to retrieve list of entities identified by its unique attributes. -In -addition to the typeName path parameter, attribute key-value pair(s) can be -provided in the following -format - -typeName=\\&attr_1:\\=\\&attr_2:\\=\\&attr_3:\\=\\ - -NOTE: -The attrName should be an unique attribute for the given entity-type. -The REST -request would look something like this - -GET -/v2/entity/bulk/uniqueAttribute/type/hive_db?attr_1:qualifiedName=db1@cl1&attr_2:qualifiedName=db2@cl1 - -Note: -at least one unique attribute must be provided. -""") + Bulk API to retrieve list of entities identified by its unique attributes. + In + addition to the typeName path parameter, attribute key-value pair(s) can be + provided in the following + format + + typeName=\\&attr_1:\\=\\&attr_2:\\=\\&attr_3:\\=\\ + + NOTE: + The attrName should be an unique attribute for the given entity-type. + The REST + request would look something like this + + GET + /v2/entity/bulk/uniqueAttribute/type/hive_db?attr_1:qualifiedName=db1@cl1&attr_2:qualifiedName=db2@cl1 + + Note: + at least one unique attribute must be provided. + """) @route("/atlas/v2/entity/bulk/uniqueAttribute/type/{typeName}") @get listByUniqueAttributes is AtlasOperation< @@ -621,10 +621,10 @@ at least one unique attribute must be provided. ignoreRelationships?: boolean; @doc(""" -Qualified name of an entity. E.g. to find 2 entities you can set -attrs_1:qualifiedName=db1@cl1&attrs_2:qualifiedName=db2@cl1. (This is only an -example. qualifiedName can be changed to other unique attributes) -""") + Qualified name of an entity. E.g. to find 2 entities you can set + attrs_1:qualifiedName=db1@cl1&attrs_2:qualifiedName=db2@cl1. (This is only an + example. qualifiedName can be changed to other unique attributes) + """) @query `attr_N:qualifiedName`?: string; }, @@ -679,9 +679,9 @@ example. qualifiedName can be changed to other unique attributes) guid: string; @doc(""" -Whether to overwrite the existing business metadata on the entity or not, -default is false. -""") + Whether to overwrite the existing business metadata on the entity or not, + default is false. + """) @query("isOverwrite") overwrite?: boolean; @@ -834,20 +834,20 @@ default is false. #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "This is Atlas API" #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "This is Atlas API, which does not require api version" @doc(""" -Delete given labels to a given entity identified by its type and unique -attribute. - -If labels is null/empty, no labels will be removed. - -If any labels -in labels set are non-existing labels, they will be ignored, only existing -labels will be removed. In addition to the typeName path parameter, attribute -key-value pair(s) can be provided in the following format: -attr:=. NOTE: The attrName and attrValue should be unique -across entities, eg. qualifiedName. The REST request would look something like -this: DELETE -/v2/entity/uniqueAttribute/type/aType?attr:aTypeAttribute=someValue. -""") + Delete given labels to a given entity identified by its type and unique + attribute. + + If labels is null/empty, no labels will be removed. + + If any labels + in labels set are non-existing labels, they will be ignored, only existing + labels will be removed. In addition to the typeName path parameter, attribute + key-value pair(s) can be provided in the following format: + attr:=. NOTE: The attrName and attrValue should be unique + across entities, eg. qualifiedName. The REST request would look something like + this: DELETE + /v2/entity/uniqueAttribute/type/aType?attr:aTypeAttribute=someValue. + """) @route("/atlas/v2/entity/uniqueAttribute/type/{typeName}/labels") @delete removeLabelsByUniqueAttribute is AtlasOperation< @@ -857,9 +857,9 @@ this: DELETE typeName: string; @doc(""" -The qualified name of the entity. (This is only an example. qualifiedName can -be changed to other unique attributes) -""") + The qualified name of the entity. (This is only an example. qualifiedName can + be changed to other unique attributes) + """) @query("attr:qualifiedName") attribute?: string; @@ -875,22 +875,22 @@ be changed to other unique attributes) #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "This is Atlas API" #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "This is Atlas API, which does not require api version" @doc(""" -Set labels to a given entity identified by its type and unique attributes. - -If -labels is null/empty, existing labels will all be removed. - -In addition to the -typeName path parameter, attribute key-value pair(s) can be provided in the -following format: attr:=. - -NOTE: The attrName and -attrValue should be unique across entities, eg. qualifiedName. - -The REST -request would look something like this: POST -/v2/entity/uniqueAttribute/type/aType?attr:aTypeAttribute=someValue. -""") + Set labels to a given entity identified by its type and unique attributes. + + If + labels is null/empty, existing labels will all be removed. + + In addition to the + typeName path parameter, attribute key-value pair(s) can be provided in the + following format: attr:=. + + NOTE: The attrName and + attrValue should be unique across entities, eg. qualifiedName. + + The REST + request would look something like this: POST + /v2/entity/uniqueAttribute/type/aType?attr:aTypeAttribute=someValue. + """) @route("/atlas/v2/entity/uniqueAttribute/type/{typeName}/labels") @post setLabelsByUniqueAttribute is AtlasOperation< @@ -900,9 +900,9 @@ request would look something like this: POST typeName: string; @doc(""" -The qualified name of the entity. (This is only an example. qualifiedName can -be changed to other unique attributes) -""") + The qualified name of the entity. (This is only an example. qualifiedName can + be changed to other unique attributes) + """) @query("attr:qualifiedName") attribute?: string; @@ -918,22 +918,22 @@ be changed to other unique attributes) #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "This is Atlas API" #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "This is Atlas API, which does not require api version" @doc(""" -Add given labels to a given entity identified by its type and unique -attributes. - -If labels is null/empty, no labels will be added. - -In addition to -the typeName path parameter, attribute key-value pair(s) can be provided in the -following format: attr:=. - -NOTE: The attrName and -attrValue should be unique across entities, eg. qualifiedName. - -The REST -request would look something like this: PUT -/v2/entity/uniqueAttribute/type/aType?attr:aTypeAttribute=someValue. -""") + Add given labels to a given entity identified by its type and unique + attributes. + + If labels is null/empty, no labels will be added. + + In addition to + the typeName path parameter, attribute key-value pair(s) can be provided in the + following format: attr:=. + + NOTE: The attrName and + attrValue should be unique across entities, eg. qualifiedName. + + The REST + request would look something like this: PUT + /v2/entity/uniqueAttribute/type/aType?attr:aTypeAttribute=someValue. + """) @route("/atlas/v2/entity/uniqueAttribute/type/{typeName}/labels") @put addLabelsByUniqueAttribute is AtlasOperation< @@ -943,9 +943,9 @@ request would look something like this: PUT typeName: string; @doc(""" -The qualified name of the entity. (This is only an example. qualifiedName can -be changed to other unique attributes) -""") + The qualified name of the entity. (This is only an example. qualifiedName can + be changed to other unique attributes) + """) @query("attr:qualifiedName") attribute?: string; @@ -976,15 +976,15 @@ be changed to other unique attributes) interface Glossary { #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "This is Atlas API" @doc(""" -Get all glossaries. Recommend using limit/offset to get pagination result. -Recommend using 'ignoreTermsAndCategories=true' and fetch terms/categories -separately using - - 'GET /datamap/api/atlas/v2/glossary/{glossaryId}/terms' -and - - 'GET '/datamap/api/atlas/v2/glossary/{glossaryId}/categories'. -""") + Get all glossaries. Recommend using limit/offset to get pagination result. + Recommend using 'ignoreTermsAndCategories=true' and fetch terms/categories + separately using + + 'GET /datamap/api/atlas/v2/glossary/{glossaryId}/terms' + and + + 'GET '/datamap/api/atlas/v2/glossary/{glossaryId}/categories'. + """) @route("/atlas/v2/glossary") @get list is AtlasOperation< @@ -1093,9 +1093,9 @@ and #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "This is Atlas API, which does not require api version" #suppress "@azure-tools/typespec-azure-core/no-unknown" "Should use unknown to model Object" @doc(""" -Update the glossary category partially. So far we only supports partial -updating shortDescription and longDescription for category. -""") + Update the glossary category partially. So far we only supports partial + updating shortDescription and longDescription for category. + """) @route("/atlas/v2/glossary/category/{categoryId}/partial") @put partialUpdateCategory is AtlasOperation< @@ -1105,9 +1105,9 @@ updating shortDescription and longDescription for category. categoryId: string; @doc(""" -A map containing keys as attribute names and values as corresponding attribute -values for partial update. -""") + A map containing keys as attribute names and values as corresponding attribute + values for partial update. + """) @bodyRoot body: Record; }, @@ -1118,9 +1118,9 @@ values for partial update. #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "This is Atlas API" #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "This is Atlas API, which does not require api version" @doc(""" -Get all related categories (parent and children). Limit, offset, and sort -parameters are currently not being enabled and won't work even they are passed. -""") + Get all related categories (parent and children). Limit, offset, and sort + parameters are currently not being enabled and won't work even they are passed. + """) @route("/atlas/v2/glossary/category/{categoryId}/related") @get listRelatedCategories is AtlasOperation< @@ -1237,9 +1237,9 @@ parameters are currently not being enabled and won't work even they are passed. #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "This is Atlas API" #suppress "@azure-tools/typespec-azure-core/no-unknown" "Should use unknown to model Object" @doc(""" -Update the glossary term partially. So far we only supports partial updating -shortDescription, longDescription, abbreviation, usage and status for term. -""") + Update the glossary term partially. So far we only supports partial updating + shortDescription, longDescription, abbreviation, usage and status for term. + """) @route("/atlas/v2/glossary/term/{termId}/partial") @put partialUpdateTerm is AtlasOperation< @@ -1253,9 +1253,9 @@ shortDescription, longDescription, abbreviation, usage and status for term. includeTermHierarchy?: boolean; @doc(""" -A map containing keys as attribute names and values as corresponding attribute -values to be updated. -""") + A map containing keys as attribute names and values as corresponding attribute + values to be updated. + """) @bodyRoot body: Record; }, @@ -1285,9 +1285,9 @@ values to be updated. #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "This is Atlas API" #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "This is Atlas API, which does not require api version" @doc(""" -List all related objects assigned with the specified term. Recommend using -limit/offset to get pagination result. -""") + List all related objects assigned with the specified term. Recommend using + limit/offset to get pagination result. + """) @route("/atlas/v2/glossary/terms/{termId}/assignedEntities") @get listEntitiesAssignedWithTerm is AtlasOperation< @@ -1316,13 +1316,13 @@ limit/offset to get pagination result. #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "This is Atlas API" #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "This is Atlas API, which does not require api version" @doc(""" -Assign the given term to the provided list of related objects. Recommend using -small batches with multiple API calls. - -[Entities Create Or Update -operation](https://learn.microsoft.com/en-us/rest/api/purview/datamapdataplane/entity/bulk-create-or-update?tabs=HTTP) -is an alternative to assign a term to multiple entities. -""") + Assign the given term to the provided list of related objects. Recommend using + small batches with multiple API calls. + + [Entities Create Or Update + operation](https://learn.microsoft.com/en-us/rest/api/purview/datamapdataplane/entity/bulk-create-or-update?tabs=HTTP) + is an alternative to assign a term to multiple entities. + """) @route("/atlas/v2/glossary/terms/{termId}/assignedEntities") @post assignTermToEntities is AtlasOperation< @@ -1361,9 +1361,9 @@ is an alternative to assign a term to multiple entities. #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "This is Atlas API" @doc(""" -Get all related terms for a specific term by its GUID. Limit, offset, and sort -parameters are currently not being enabled and won't work even they are passed. -""") + Get all related terms for a specific term by its GUID. Limit, offset, and sort + parameters are currently not being enabled and won't work even they are passed. + """) @route("/atlas/v2/glossary/terms/{termId}/related") @get listRelatedTerms is AtlasOperation< @@ -1424,9 +1424,9 @@ parameters are currently not being enabled and won't work even they are passed. #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "This is Atlas API" #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "This is Atlas API, which does not require api version" @doc(""" -Delete a glossary. Will delete underlying terms/categories together. Recommend -separate delete terms and categories. -""") + Delete a glossary. Will delete underlying terms/categories together. Recommend + separate delete terms and categories. + """) @route("/atlas/v2/glossary/{glossaryId}") @delete delete is AtlasOperation< @@ -1442,9 +1442,9 @@ separate delete terms and categories. #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "This is Atlas API" #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "This is Atlas API, which does not require api version" @doc(""" -Get the categories belonging to a specific glossary. Recommend using -limit/offset to get pagination result. -""") + Get the categories belonging to a specific glossary. Recommend using + limit/offset to get pagination result. + """) @route("/atlas/v2/glossary/{glossaryId}/categories") @get listCategories is AtlasOperation< @@ -1472,9 +1472,9 @@ limit/offset to get pagination result. #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "This is Atlas API" #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "This is Atlas API, which does not require api version" @doc(""" -Get the category headers belonging to a specific glossary. Recommend using -limit/offset to get pagination result. -""") + Get the category headers belonging to a specific glossary. Recommend using + limit/offset to get pagination result. + """) @route("/atlas/v2/glossary/{glossaryId}/categories/headers") @get listCategoriesHeaders is AtlasOperation< @@ -1501,15 +1501,15 @@ limit/offset to get pagination result. #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "This is Atlas API" @doc(""" -Get a specific glossary with detailed information. This API is not -recommend. - -Recommend to fetch terms/categories details separately using - -GET /datamap/api/atlas/v2/glossary/{glossaryId}/terms and - -GET /datamap/api/atlas/v2/glossary/{glossaryId}/categories. -""") + Get a specific glossary with detailed information. This API is not + recommend. + + Recommend to fetch terms/categories details separately using + + GET /datamap/api/atlas/v2/glossary/{glossaryId}/terms and + + GET /datamap/api/atlas/v2/glossary/{glossaryId}/categories. + """) @route("/atlas/v2/glossary/{glossaryId}/detailed") @get getDetailed is AtlasOperation< @@ -1525,15 +1525,15 @@ GET /datamap/api/atlas/v2/glossary/{glossaryId}/categories. #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "This is Atlas API" #suppress "@azure-tools/typespec-azure-core/no-unknown" "Should use unknown to model Object" @doc(""" -Update the glossary partially. Some properties such as qualifiedName are not -allowed to be updated. - -So far we only supports partial updating -shortDescription, longDescription, language and usage for glossary. - -Recommend -using 'ignoreTermsAndCategories=true' to reduce response body size. -""") + Update the glossary partially. Some properties such as qualifiedName are not + allowed to be updated. + + So far we only supports partial updating + shortDescription, longDescription, language and usage for glossary. + + Recommend + using 'ignoreTermsAndCategories=true' to reduce response body size. + """) @route("/atlas/v2/glossary/{glossaryId}/partial") @put partialUpdate is AtlasOperation< @@ -1547,9 +1547,9 @@ using 'ignoreTermsAndCategories=true' to reduce response body size. ignoreTermsAndCategories?: boolean; @doc(""" -A map containing keys as attribute names and values as corresponding attribute -values. -""") + A map containing keys as attribute names and values as corresponding attribute + values. + """) @bodyRoot body: Record; }, @@ -1559,9 +1559,9 @@ values. #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "This is Atlas API" @doc(""" -Get terms belonging to a specific glossary. Recommend using limit/offset to get -pagination result. -""") + Get terms belonging to a specific glossary. Recommend using limit/offset to get + pagination result. + """) @route("/atlas/v2/glossary/{glossaryId}/terms") @get listTerms is AtlasOperation< @@ -1589,9 +1589,9 @@ pagination result. #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "This is Atlas API" #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "This is Atlas API, which does not require api version" @doc(""" -Get term headers belonging to a specific glossary. Recommend using limit/offset -to get pagination result. -""") + Get term headers belonging to a specific glossary. Recommend using limit/offset + to get pagination result. + """) @route("/atlas/v2/glossary/{glossaryId}/terms/headers") @get listTermHeaders is AtlasOperation< @@ -1705,23 +1705,23 @@ interface Lineage { #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "This is Atlas API" #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "This is Atlas API, which does not require api version" @doc(""" -Return lineage info about entity. - -In addition to the typeName path parameter, -attribute key-value pair(s) can be provided in the following -format - -attr:[attrName]=[attrValue] - -NOTE: The attrName and attrValue should be -unique across entities, eg. qualifiedName. - -The REST request would look -something like this: - -GET -/v2/lineage/uniqueAttribute/type/aType?attr:aTypeAttribute=someValue. -""") + Return lineage info about entity. + + In addition to the typeName path parameter, + attribute key-value pair(s) can be provided in the following + format + + attr:[attrName]=[attrValue] + + NOTE: The attrName and attrValue should be + unique across entities, eg. qualifiedName. + + The REST request would look + something like this: + + GET + /v2/lineage/uniqueAttribute/type/aType?attr:aTypeAttribute=someValue. + """) @route("/atlas/v2/lineage/uniqueAttribute/type/{typeName}") @get getByUniqueAttribute is AtlasOperation< @@ -1739,9 +1739,9 @@ GET direction: LineageDirection; @doc(""" -The qualified name of the entity. (This is only an example. qualifiedName can -be changed to other unique attributes) -""") + The qualified name of the entity. (This is only an example. qualifiedName can + be changed to other unique attributes) + """) @query("attr:qualifiedName") attribute?: string; }, @@ -2033,10 +2033,10 @@ interface Type { list is AtlasOperation< { @doc(""" -Whether include termtemplatedef when return all typedefs. -This is always true -when search filter type=term_template -""") + Whether include termtemplatedef when return all typedefs. + This is always true + when search filter type=term_template + """) @query includeTermTemplate?: boolean; @@ -2051,10 +2051,10 @@ when search filter type=term_template #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "This is Atlas API" #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "This is Atlas API, which does not require api version" @doc(""" -Create all atlas type definitions in bulk, only new definitions will be -created. -Any changes to the existing definitions will be discarded. -""") + Create all atlas type definitions in bulk, only new definitions will be + created. + Any changes to the existing definitions will be discarded. + """) @route("/atlas/v2/types/typedefs") @post bulkCreate is AtlasOperation; @@ -2062,9 +2062,9 @@ Any changes to the existing definitions will be discarded. #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "This is Atlas API" #suppress "@azure-tools/typespec-azure-core/operation-missing-api-version" "This is Atlas API, which does not require api version" @doc(""" -Update all types in bulk, changes detected in the type definitions would be -persisted. -""") + Update all types in bulk, changes detected in the type definitions would be + persisted. + """) @route("/atlas/v2/types/typedefs") @put bulkUpdate is AtlasOperation; @@ -2083,10 +2083,10 @@ persisted. listHeaders is AtlasOperation< { @doc(""" -Whether include termtemplatedef when return all typedefs. -This is always true -when search filter type=term_template -""") + Whether include termtemplatedef when return all typedefs. + This is always true + when search filter type=term_template + """) @query includeTermTemplate?: boolean; diff --git a/specification/purview/Azure.Analytics.Purview.DataMap/tspconfig.yaml b/specification/purview/Azure.Analytics.Purview.DataMap/tspconfig.yaml index 728bf1d6c2e4..2168a282a9a0 100644 --- a/specification/purview/Azure.Analytics.Purview.DataMap/tspconfig.yaml +++ b/specification/purview/Azure.Analytics.Purview.DataMap/tspconfig.yaml @@ -9,6 +9,7 @@ emit: options: "@azure-tools/typespec-autorest": azure-resource-provider-folder: "data-plane" + emit-lro-options: "none" emitter-output-dir: "{project-root}/.." examples-directory: "{project-root}/examples" output-file: "{azure-resource-provider-folder}/Azure.Analytics.Purview.DataMap/{version-status}/{version}/purviewdatamap.json" diff --git a/specification/purviewpolicy/PurviewPolicy.Management/backcompat.tsp b/specification/purviewpolicy/PurviewPolicy.Management/backcompat.tsp index 84328570e6a6..e9c3ff64e9e5 100644 --- a/specification/purviewpolicy/PurviewPolicy.Management/backcompat.tsp +++ b/specification/purviewpolicy/PurviewPolicy.Management/backcompat.tsp @@ -5,7 +5,7 @@ using TypeSpec.Http; using Azure.ResourceManager; @@path(ResourceUriParameter.resourceUri, "scope"); -@@Azure.ResourceManager.Private.armCommonParameter(ResourceUriParameter.resourceUri, +@@Azure.ResourceManager.CommonTypes.Private.armCommonParameter(ResourceUriParameter.resourceUri, "ScopeParameter", Azure.ResourceManager.CommonTypes.Versions.v5 ); diff --git a/specification/quantum/Quantum.Workspace/common/base-operations.tsp b/specification/quantum/Quantum.Workspace/common/base-operations.tsp index 64d0e6e4af81..b1f9552cecdd 100644 --- a/specification/quantum/Quantum.Workspace/common/base-operations.tsp +++ b/specification/quantum/Quantum.Workspace/common/base-operations.tsp @@ -41,10 +41,10 @@ namespace Quantum.Workspace.BaseOperations { /** Operation to patch a resource. */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" """ - There is no support for JsonPatch in Azure.Core. - The Azure.Core.ResourceUpdate does not support NoContentResponse and the JsonPatchDocument request body. - See https://github.com/Azure/typespec-azure/issues/475 - """ + There is no support for JsonPatch in Azure.Core. + The Azure.Core.ResourceUpdate does not support NoContentResponse and the JsonPatchDocument request body. + See https://github.com/Azure/typespec-azure/issues/475 + """ @updatesResource(Resource) @patch @Azure.Core.Foundations.Private.ensureVerb("PatchOperation", "PATCH") diff --git a/specification/quantum/Quantum.Workspace/main.tsp b/specification/quantum/Quantum.Workspace/main.tsp index ca91b5c67586..66d2637d36e1 100644 --- a/specification/quantum/Quantum.Workspace/main.tsp +++ b/specification/quantum/Quantum.Workspace/main.tsp @@ -52,20 +52,20 @@ using OpenAPI; }) namespace Quantum.Workspace.Services { #suppress "@azure-tools/typespec-azure-core/use-standard-operations" """ - There is no support for JsonPatch in Azure.Core. - The Azure.Core.ResourceUpdate does not support NoContentResponse and the JsonPatchDocument request body. - See https://github.com/Azure/typespec-azure/issues/475 - """ + There is no support for JsonPatch in Azure.Core. + The Azure.Core.ResourceUpdate does not support NoContentResponse and the JsonPatchDocument request body. + See https://github.com/Azure/typespec-azure/issues/475 + """ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" """ - We had to use a custom ResourceList to avoid an autoroute bug for workspace/jobs and sesssions/{sessionId}/jobs. - See https://github.com/Azure/typespec-azure/issues/494 - """ + We had to use a custom ResourceList to avoid an autoroute bug for workspace/jobs and sesssions/{sessionId}/jobs. + See https://github.com/Azure/typespec-azure/issues/494 + """ interface Jobs extends Quantum.Workspace.Operations.JobOperations {} #suppress "@azure-tools/typespec-azure-core/use-standard-operations" """ - We had to use a custom ResourceList to avoid an autoroute bug for workspace/jobs and sesssions/{sessionId}/jobs. - See https://github.com/Azure/typespec-azure/issues/494 - """ + We had to use a custom ResourceList to avoid an autoroute bug for workspace/jobs and sesssions/{sessionId}/jobs. + See https://github.com/Azure/typespec-azure/issues/494 + """ interface Sessions extends Quantum.Workspace.Operations.SessionOperations {} interface Providers extends Quantum.Workspace.Operations.ProviderOperations {} diff --git a/specification/quantum/Quantum.Workspace/operations/jobs.tsp b/specification/quantum/Quantum.Workspace/operations/jobs.tsp index 3d9449312f4f..32035bbcc2d2 100644 --- a/specification/quantum/Quantum.Workspace/operations/jobs.tsp +++ b/specification/quantum/Quantum.Workspace/operations/jobs.tsp @@ -131,10 +131,10 @@ namespace Quantum.Workspace.Operations { /** Update job properties. */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" """ - There is no support for JsonPatch in Azure.Core. - The Azure.Core.ResourceUpdate does not support NoContentResponse and the JsonPatchDocument request body. - See https://github.com/Azure/typespec-azure/issues/475 - """ + There is no support for JsonPatch in Azure.Core. + The Azure.Core.ResourceUpdate does not support NoContentResponse and the JsonPatchDocument request body. + See https://github.com/Azure/typespec-azure/issues/475 + """ update is PatchOperation; /** Request the cancellation of an existing job. */ @@ -145,9 +145,9 @@ namespace Quantum.Workspace.Operations { /** List all jobs. */ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" """ - We had to use a custom ResourceList to avoid an autoroute bug for workspace/jobs and sesssions/{sessionId}/jobs. - See https://github.com/Azure/typespec-azure/issues/494 - """ + We had to use a custom ResourceList to avoid an autoroute bug for workspace/jobs and sesssions/{sessionId}/jobs. + See https://github.com/Azure/typespec-azure/issues/494 + """ list is CustomListOperation< Resource = JobDetails, Response = PagedJobDetails diff --git a/specification/quantum/Quantum.Workspace/operations/sessions.tsp b/specification/quantum/Quantum.Workspace/operations/sessions.tsp index b76d055c6a12..3d2ab6dea487 100644 --- a/specification/quantum/Quantum.Workspace/operations/sessions.tsp +++ b/specification/quantum/Quantum.Workspace/operations/sessions.tsp @@ -86,9 +86,9 @@ namespace Quantum.Workspace.Operations { /** List jobs in a session. */ #suppress "@azure-tools/typespec-azure-core/no-operation-id" "The nesting of Jobs under a Session makes the auto-generated ID to be Sessions_JobsList, which is not in a Noun_Verb format." #suppress "@azure-tools/typespec-azure-core/use-standard-operations" """ - We had to use a custom ResourceList to avoid an autoroute bug for workspace/jobs and sesssions/{sessionId}/jobs. - See https://github.com/Azure/typespec-azure/issues/494 - """ + We had to use a custom ResourceList to avoid an autoroute bug for workspace/jobs and sesssions/{sessionId}/jobs. + See https://github.com/Azure/typespec-azure/issues/494 + """ @operationId("SessionsJobs_List") jobsList is CustomListOperation< Resource = JobDetails, diff --git a/specification/quantum/Quantum.Workspace/tspconfig.yaml b/specification/quantum/Quantum.Workspace/tspconfig.yaml index 603f3eb0f1c4..2e36cf34ec56 100644 --- a/specification/quantum/Quantum.Workspace/tspconfig.yaml +++ b/specification/quantum/Quantum.Workspace/tspconfig.yaml @@ -14,6 +14,7 @@ linter: options: "@azure-tools/typespec-autorest": azure-resource-provider-folder: "data-plane" + emit-lro-options: "none" examples-directory: examples omit-unreachable-types: true output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/quantum.json" diff --git a/specification/riskiq/Easm/models.tsp b/specification/riskiq/Easm/models.tsp index a131384ce3bc..74f37c48bd0b 100644 --- a/specification/riskiq/Easm/models.tsp +++ b/specification/riskiq/Easm/models.tsp @@ -220,6 +220,7 @@ model AssetPageResult { @resource("assets") model AssetResource { /** Discriminator property for AssetResource. */ + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" kind: string; @doc("The system generated unique id for the resource.") @@ -483,6 +484,7 @@ model DataConnectionProperties {} @clientName("DataConnectionPayload", "csharp") model DataConnectionData { /** Discriminator property for DataConnectionData. */ + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" kind: string; @doc("The name of data connection") @@ -503,6 +505,7 @@ model DataConnectionData { @resource("dataConnections") model DataConnection { /** Discriminator property for DataConnection. */ + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" kind: string; @doc("The system generated unique id for the resource.") diff --git a/specification/riskiq/Easm/tspconfig.yaml b/specification/riskiq/Easm/tspconfig.yaml index 635dd75f996e..2f6eaacb276e 100644 --- a/specification/riskiq/Easm/tspconfig.yaml +++ b/specification/riskiq/Easm/tspconfig.yaml @@ -11,6 +11,7 @@ linter: options: "@azure-tools/typespec-autorest": azure-resource-provider-folder: "data-plane" + emit-lro-options: "none" emitter-output-dir: "{project-root}/.." examples-directory: "examples" output-file: "{azure-resource-provider-folder}/Microsoft.Easm/{version-status}/{version}/easm.json" diff --git a/specification/schemaregistry/SchemaRegistry/tspconfig.yaml b/specification/schemaregistry/SchemaRegistry/tspconfig.yaml index 4672f92ac03c..71bf18d7f2bd 100644 --- a/specification/schemaregistry/SchemaRegistry/tspconfig.yaml +++ b/specification/schemaregistry/SchemaRegistry/tspconfig.yaml @@ -12,6 +12,7 @@ linter: options: "@azure-tools/typespec-autorest": azure-resource-provider-folder: "data-plane" + emit-lro-options: "none" emitter-output-dir: "{project-root}/../" output-file: "data-plane/Microsoft.SchemaRegistry/{version-status}/{version}/schemaregistry.json" examples-directory: examples diff --git a/specification/schemaregistry/data-plane/Microsoft.SchemaRegistry/stable/2021-10/schemaregistry.json b/specification/schemaregistry/data-plane/Microsoft.SchemaRegistry/stable/2021-10/schemaregistry.json index 67fe4fb35cad..87373cea78d2 100644 --- a/specification/schemaregistry/data-plane/Microsoft.SchemaRegistry/stable/2021-10/schemaregistry.json +++ b/specification/schemaregistry/data-plane/Microsoft.SchemaRegistry/stable/2021-10/schemaregistry.json @@ -374,17 +374,6 @@ "type": "file" }, "headers": { - "Content-Type": { - "type": "string", - "description": "The content type for given schema.", - "enum": [ - "application/json; serialization=Avro" - ], - "x-ms-enum": { - "modelAsString": false - }, - "x-nullable": false - }, "Location": { "type": "string", "description": "URL location of schema, identified by schema group, schema name, and version." @@ -460,17 +449,6 @@ "type": "file" }, "headers": { - "Content-Type": { - "type": "string", - "description": "The content type for given schema.", - "enum": [ - "application/json; serialization=Avro" - ], - "x-ms-enum": { - "modelAsString": false - }, - "x-nullable": false - }, "Location": { "type": "string", "description": "URL location of schema, identified by schema group, schema name, and version." diff --git a/specification/schemaregistry/data-plane/Microsoft.SchemaRegistry/stable/2022-10/schemaregistry.json b/specification/schemaregistry/data-plane/Microsoft.SchemaRegistry/stable/2022-10/schemaregistry.json index 54130caa7a12..153b174d8800 100644 --- a/specification/schemaregistry/data-plane/Microsoft.SchemaRegistry/stable/2022-10/schemaregistry.json +++ b/specification/schemaregistry/data-plane/Microsoft.SchemaRegistry/stable/2022-10/schemaregistry.json @@ -380,36 +380,6 @@ "type": "file" }, "headers": { - "Content-Type": { - "type": "string", - "description": "The content type for given schema.", - "enum": [ - "application/json; serialization=Avro", - "application/json; serialization=Json", - "text/plain; charset=utf-8" - ], - "x-ms-enum": { - "name": "SchemaContentTypeValues", - "modelAsString": false, - "values": [ - { - "name": "avro", - "value": "application/json; serialization=Avro", - "description": "Avro encoding." - }, - { - "name": "json", - "value": "application/json; serialization=Json", - "description": "JSON encoding" - }, - { - "name": "custom", - "value": "text/plain; charset=utf-8", - "description": "Plain text custom encoding." - } - ] - } - }, "Location": { "type": "string", "description": "URL location of schema, identified by schema group, schema name, and version." @@ -487,36 +457,6 @@ "type": "file" }, "headers": { - "Content-Type": { - "type": "string", - "description": "The content type for given schema.", - "enum": [ - "application/json; serialization=Avro", - "application/json; serialization=Json", - "text/plain; charset=utf-8" - ], - "x-ms-enum": { - "name": "SchemaContentTypeValues", - "modelAsString": false, - "values": [ - { - "name": "avro", - "value": "application/json; serialization=Avro", - "description": "Avro encoding." - }, - { - "name": "json", - "value": "application/json; serialization=Json", - "description": "JSON encoding" - }, - { - "name": "custom", - "value": "text/plain; charset=utf-8", - "description": "Plain text custom encoding." - } - ] - } - }, "Location": { "type": "string", "description": "URL location of schema, identified by schema group, schema name, and version." diff --git a/specification/schemaregistry/data-plane/Microsoft.SchemaRegistry/stable/2023-07-01/schemaregistry.json b/specification/schemaregistry/data-plane/Microsoft.SchemaRegistry/stable/2023-07-01/schemaregistry.json index cbd2f391aac3..f0d5d664e0d2 100644 --- a/specification/schemaregistry/data-plane/Microsoft.SchemaRegistry/stable/2023-07-01/schemaregistry.json +++ b/specification/schemaregistry/data-plane/Microsoft.SchemaRegistry/stable/2023-07-01/schemaregistry.json @@ -383,42 +383,6 @@ "type": "file" }, "headers": { - "Content-Type": { - "type": "string", - "description": "The content type for given schema.", - "enum": [ - "application/json; serialization=Avro", - "application/json; serialization=Json", - "text/plain; charset=utf-8", - "text/vnd.ms.protobuf" - ], - "x-ms-enum": { - "name": "SchemaContentTypeValues", - "modelAsString": false, - "values": [ - { - "name": "avro", - "value": "application/json; serialization=Avro", - "description": "Avro encoding." - }, - { - "name": "json", - "value": "application/json; serialization=Json", - "description": "JSON encoding" - }, - { - "name": "custom", - "value": "text/plain; charset=utf-8", - "description": "Plain text custom encoding." - }, - { - "name": "protobuf", - "value": "text/vnd.ms.protobuf", - "description": "Protobuf encoding." - } - ] - } - }, "Location": { "type": "string", "description": "URL location of schema, identified by schema group, schema name, and version." @@ -497,42 +461,6 @@ "type": "file" }, "headers": { - "Content-Type": { - "type": "string", - "description": "The content type for given schema.", - "enum": [ - "application/json; serialization=Avro", - "application/json; serialization=Json", - "text/plain; charset=utf-8", - "text/vnd.ms.protobuf" - ], - "x-ms-enum": { - "name": "SchemaContentTypeValues", - "modelAsString": false, - "values": [ - { - "name": "avro", - "value": "application/json; serialization=Avro", - "description": "Avro encoding." - }, - { - "name": "json", - "value": "application/json; serialization=Json", - "description": "JSON encoding" - }, - { - "name": "custom", - "value": "text/plain; charset=utf-8", - "description": "Plain text custom encoding." - }, - { - "name": "protobuf", - "value": "text/vnd.ms.protobuf", - "description": "Protobuf encoding." - } - ] - } - }, "Location": { "type": "string", "description": "URL location of schema, identified by schema group, schema name, and version." diff --git a/specification/scvmm/ScVmm.Management/Cloud.tsp b/specification/scvmm/ScVmm.Management/Cloud.tsp index 11df2b42e155..8c6534b30723 100644 --- a/specification/scvmm/ScVmm.Management/Cloud.tsp +++ b/specification/scvmm/ScVmm.Management/Cloud.tsp @@ -31,8 +31,13 @@ interface Clouds { @summary("Gets a Cloud.") get is ArmResourceRead; /** Onboards the ScVmm fabric cloud as an Azure cloud resource. */ + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" @summary("Implements Clouds PUT method.") - createOrUpdate is ArmResourceCreateOrReplaceAsync; + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrReplaceAsync< + Cloud, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; /** Updates the Clouds resource. */ @summary("Implements the Clouds PATCH method.") @extension( diff --git a/specification/scvmm/ScVmm.Management/GuestAgent.tsp b/specification/scvmm/ScVmm.Management/GuestAgent.tsp index e2433aecf13a..d44f3bdae9cc 100644 --- a/specification/scvmm/ScVmm.Management/GuestAgent.tsp +++ b/specification/scvmm/ScVmm.Management/GuestAgent.tsp @@ -30,8 +30,13 @@ interface GuestAgents { @summary("Gets GuestAgent.") get is ArmResourceRead; /** Create Or Update GuestAgent. */ + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" @summary("Implements GuestAgent PUT method.") - create is ArmResourceCreateOrReplaceAsync; + @Azure.Core.useFinalStateVia("azure-async-operation") + create is ArmResourceCreateOrReplaceAsync< + GuestAgent, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; /** Implements GuestAgent DELETE method. */ @summary("Deletes a GuestAgent resource.") delete is ArmResourceDeleteSync; diff --git a/specification/scvmm/ScVmm.Management/VirtualMachineInstance.tsp b/specification/scvmm/ScVmm.Management/VirtualMachineInstance.tsp index 49377ff789d6..2fc0b9c11303 100644 --- a/specification/scvmm/ScVmm.Management/VirtualMachineInstance.tsp +++ b/specification/scvmm/ScVmm.Management/VirtualMachineInstance.tsp @@ -57,8 +57,13 @@ interface VirtualMachineInstances { @summary("Gets a virtual machine.") get is ArmResourceRead; /** The operation to create or update a virtual machine instance. Please note some properties can be set only during virtual machine instance creation. */ + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" @summary("Implements virtual machine PUT method.") - createOrUpdate is ArmResourceCreateOrUpdateAsync; + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrUpdateAsync< + VirtualMachineInstance, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; /** The operation to update a virtual machine instance. */ @summary("Updates a virtual machine.") @extension( diff --git a/specification/scvmm/ScVmm.Management/VirtualMachineTemplate.tsp b/specification/scvmm/ScVmm.Management/VirtualMachineTemplate.tsp index 4f047ef22e0e..0ed42912c736 100644 --- a/specification/scvmm/ScVmm.Management/VirtualMachineTemplate.tsp +++ b/specification/scvmm/ScVmm.Management/VirtualMachineTemplate.tsp @@ -32,8 +32,13 @@ interface VirtualMachineTemplates { @summary("Gets a VirtualMachineTemplate.") get is ArmResourceRead; /** Onboards the ScVmm VM Template as an Azure VM Template resource. */ + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" @summary("Implements VirtualMachineTemplates PUT method.") - createOrUpdate is ArmResourceCreateOrUpdateAsync; + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrUpdateAsync< + VirtualMachineTemplate, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; /** Updates the VirtualMachineTemplate resource. */ @summary("Implements the VirtualMachineTemplate PATCH method.") @extension( diff --git a/specification/scvmm/ScVmm.Management/VirtualNetwork.tsp b/specification/scvmm/ScVmm.Management/VirtualNetwork.tsp index 12a8e500b1f8..e879baffdb67 100644 --- a/specification/scvmm/ScVmm.Management/VirtualNetwork.tsp +++ b/specification/scvmm/ScVmm.Management/VirtualNetwork.tsp @@ -31,8 +31,13 @@ interface VirtualNetworks { @summary("Gets a VirtualNetwork.") get is ArmResourceRead; /** Onboards the ScVmm virtual network as an Azure virtual network resource. */ + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" @summary("Implements VirtualNetworks PUT method.") - createOrUpdate is ArmResourceCreateOrUpdateAsync; + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrUpdateAsync< + VirtualNetwork, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; /** Updates the VirtualNetworks resource. */ @summary("Implements the VirtualNetworks PATCH method.") @extension( diff --git a/specification/scvmm/ScVmm.Management/VmmServer.tsp b/specification/scvmm/ScVmm.Management/VmmServer.tsp index 3926037810b0..78273c31048b 100644 --- a/specification/scvmm/ScVmm.Management/VmmServer.tsp +++ b/specification/scvmm/ScVmm.Management/VmmServer.tsp @@ -31,8 +31,13 @@ interface VmmServers { @summary("Gets a VMMServer.") get is ArmResourceRead; /** Onboards the SCVmm fabric as an Azure VmmServer resource. */ + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" @summary("Implements VmmServers PUT method.") - createOrUpdate is ArmResourceCreateOrUpdateAsync; + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrUpdateAsync< + VmmServer, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; /** Updates the VmmServers resource. */ @summary("Implements VmmServers PATCH method.") @extension( diff --git a/specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/scvmm.json b/specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/scvmm.json index bc3f2a2f3c66..b363355e44c4 100644 --- a/specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/scvmm.json +++ b/specification/scvmm/resource-manager/Microsoft.ScVmm/stable/2023-10-07/scvmm.json @@ -3142,11 +3142,7 @@ "properties": { "$ref": "#/definitions/AvailabilitySetProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "extendedLocation": { "$ref": "#/definitions/ExtendedLocation", @@ -3278,11 +3274,7 @@ "properties": { "$ref": "#/definitions/CloudProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "extendedLocation": { "$ref": "#/definitions/ExtendedLocation", @@ -3495,11 +3487,7 @@ "properties": { "$ref": "#/definitions/GuestAgentProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -3819,11 +3807,7 @@ "properties": { "$ref": "#/definitions/InventoryItemProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "kind": { "type": "string", @@ -4578,11 +4562,7 @@ "properties": { "$ref": "#/definitions/VirtualMachineInstanceProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "extendedLocation": { "$ref": "#/definitions/ExtendedLocation", @@ -4785,11 +4765,7 @@ "properties": { "$ref": "#/definitions/VirtualMachineTemplateProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "extendedLocation": { "$ref": "#/definitions/ExtendedLocation", @@ -5002,11 +4978,7 @@ "properties": { "$ref": "#/definitions/VirtualNetworkProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "extendedLocation": { "$ref": "#/definitions/ExtendedLocation", @@ -5111,11 +5083,7 @@ "properties": { "$ref": "#/definitions/VmInstanceHybridIdentityMetadataProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -5192,11 +5160,7 @@ "properties": { "$ref": "#/definitions/VmmServerProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "extendedLocation": { "$ref": "#/definitions/ExtendedLocation", diff --git a/specification/servicenetworking/ServiceNetworking.Management/main.tsp b/specification/servicenetworking/ServiceNetworking.Management/main.tsp index 170ee278e7cc..f42b4988387f 100644 --- a/specification/servicenetworking/ServiceNetworking.Management/main.tsp +++ b/specification/servicenetworking/ServiceNetworking.Management/main.tsp @@ -223,7 +223,12 @@ model ResourceId { @armResourceOperations interface AssociationsInterface { get is ArmResourceRead; - createOrUpdate is ArmResourceCreateOrReplaceAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrReplaceAsync< + Association, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; update is ArmResourcePatchSync; delete is ArmResourceDeleteWithoutOkAsync; listByResourceGroup is ArmResourceListByParent; @@ -232,7 +237,12 @@ interface AssociationsInterface { @armResourceOperations interface FrontendsInterface { get is ArmResourceRead; - createOrUpdate is ArmResourceCreateOrReplaceAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrReplaceAsync< + Frontend, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; update is ArmResourcePatchSync; delete is ArmResourceDeleteWithoutOkAsync; listByResourceGroup is ArmResourceListByParent; @@ -242,7 +252,12 @@ interface FrontendsInterface { @armResourceOperations interface SecurityPoliciesInterface { get is ArmResourceRead; - createOrUpdate is ArmResourceCreateOrReplaceAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrReplaceAsync< + SecurityPolicy, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; update is ArmResourcePatchSync; delete is ArmResourceDeleteWithoutOkAsync; listByResourceGroup is ArmResourceListByParent; @@ -251,7 +266,12 @@ interface SecurityPoliciesInterface { @armResourceOperations interface TrafficControllerInterface { get is ArmResourceRead; - createOrUpdate is ArmResourceCreateOrReplaceAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrReplaceAsync< + TrafficController, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; update is ArmResourcePatchSync< TrafficController, TrafficControllerProperties diff --git a/specification/servicenetworking/resource-manager/Microsoft.ServiceNetworking/preview/2024-05-01-preview/TrafficController.json b/specification/servicenetworking/resource-manager/Microsoft.ServiceNetworking/preview/2024-05-01-preview/TrafficController.json index 9d1d97a9baab..d406c4d8ddef 100644 --- a/specification/servicenetworking/resource-manager/Microsoft.ServiceNetworking/preview/2024-05-01-preview/TrafficController.json +++ b/specification/servicenetworking/resource-manager/Microsoft.ServiceNetworking/preview/2024-05-01-preview/TrafficController.json @@ -1356,11 +1356,7 @@ "properties": { "$ref": "#/definitions/AssociationProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -1491,11 +1487,7 @@ "properties": { "$ref": "#/definitions/FrontendProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -1646,11 +1638,7 @@ "properties": { "$ref": "#/definitions/SecurityPolicyProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -1757,11 +1745,7 @@ "properties": { "$ref": "#/definitions/TrafficControllerProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ diff --git a/specification/servicenetworking/resource-manager/Microsoft.ServiceNetworking/stable/2023-11-01/TrafficController.json b/specification/servicenetworking/resource-manager/Microsoft.ServiceNetworking/stable/2023-11-01/TrafficController.json index 4d2dab80fd7c..69b74f74c5c0 100644 --- a/specification/servicenetworking/resource-manager/Microsoft.ServiceNetworking/stable/2023-11-01/TrafficController.json +++ b/specification/servicenetworking/resource-manager/Microsoft.ServiceNetworking/stable/2023-11-01/TrafficController.json @@ -1039,11 +1039,7 @@ "properties": { "$ref": "#/definitions/AssociationProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -1174,11 +1170,7 @@ "properties": { "$ref": "#/definitions/FrontendProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -1311,11 +1303,7 @@ "properties": { "$ref": "#/definitions/TrafficControllerProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ diff --git a/specification/sphere/Sphere.Management/catalog.tsp b/specification/sphere/Sphere.Management/catalog.tsp index 5433c0aaffc2..4455d2403c5e 100644 --- a/specification/sphere/Sphere.Management/catalog.tsp +++ b/specification/sphere/Sphere.Management/catalog.tsp @@ -29,7 +29,12 @@ interface Catalogs { /** * Create a Catalog */ - createOrUpdate is ArmResourceCreateOrReplaceAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrReplaceAsync< + Catalog, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; /** * Update a Catalog diff --git a/specification/sphere/Sphere.Management/deployment.tsp b/specification/sphere/Sphere.Management/deployment.tsp index 93528a9375cb..9df999337d4b 100644 --- a/specification/sphere/Sphere.Management/deployment.tsp +++ b/specification/sphere/Sphere.Management/deployment.tsp @@ -29,7 +29,12 @@ interface Deployments { /** * Create a Deployment. '.default' and '.unassigned' are system defined values and cannot be used for product or device group name. */ - createOrUpdate is ArmResourceCreateOrReplaceAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrReplaceAsync< + Deployment, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; /** * Delete a Deployment. '.default' and '.unassigned' are system defined values and cannot be used for product or device group name. diff --git a/specification/sphere/Sphere.Management/device.tsp b/specification/sphere/Sphere.Management/device.tsp index aacac197e1eb..d75447d78ada 100644 --- a/specification/sphere/Sphere.Management/device.tsp +++ b/specification/sphere/Sphere.Management/device.tsp @@ -30,7 +30,12 @@ interface Devices { /** * Create a Device. Use '.unassigned' or '.default' for the device group and product names to claim a device to the catalog only. */ - createOrUpdate is ArmResourceCreateOrReplaceAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrReplaceAsync< + Device, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; /** * Update a Device. Use '.unassigned' or '.default' for the device group and product names to move a device to the catalog level. @@ -40,7 +45,8 @@ interface Devices { update is ArmCustomPatchAsync< Device, DeviceUpdate, - LroHeaders = Azure.Core.Foundations.RetryAfterHeader + LroHeaders = ArmLroLocationHeader & + Azure.Core.Foundations.RetryAfterHeader >; /** diff --git a/specification/sphere/Sphere.Management/deviceGroup.tsp b/specification/sphere/Sphere.Management/deviceGroup.tsp index 45278f314465..0bfd227bee5b 100644 --- a/specification/sphere/Sphere.Management/deviceGroup.tsp +++ b/specification/sphere/Sphere.Management/deviceGroup.tsp @@ -30,7 +30,12 @@ interface DeviceGroups { /** * Create a DeviceGroup. '.default' and '.unassigned' are system defined values and cannot be used for product or device group name. */ - createOrUpdate is ArmResourceCreateOrReplaceAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrReplaceAsync< + DeviceGroup, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; /** * Update a DeviceGroup. '.default' and '.unassigned' are system defined values and cannot be used for product or device group name. diff --git a/specification/sphere/Sphere.Management/image.tsp b/specification/sphere/Sphere.Management/image.tsp index 287eba68d7ba..49932e5b06e9 100644 --- a/specification/sphere/Sphere.Management/image.tsp +++ b/specification/sphere/Sphere.Management/image.tsp @@ -30,7 +30,12 @@ interface Images { /** * Create a Image */ - createOrUpdate is ArmResourceCreateOrReplaceAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrReplaceAsync< + Image, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; /** * Delete a Image diff --git a/specification/sphere/Sphere.Management/product.tsp b/specification/sphere/Sphere.Management/product.tsp index b470d59b440f..bc62bde56bc0 100644 --- a/specification/sphere/Sphere.Management/product.tsp +++ b/specification/sphere/Sphere.Management/product.tsp @@ -37,7 +37,12 @@ interface Products { /** * Create a Product. '.default' and '.unassigned' are system defined values and cannot be used for product name. */ - createOrUpdate is ArmResourceCreateOrReplaceAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrReplaceAsync< + Product, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; /** * Update a Product. '.default' and '.unassigned' are system defined values and cannot be used for product name. diff --git a/specification/sphere/resource-manager/Microsoft.AzureSphere/stable/2024-04-01/azuresphere.json b/specification/sphere/resource-manager/Microsoft.AzureSphere/stable/2024-04-01/azuresphere.json index 8dec71e19fd5..e3f5e4f8b6cc 100644 --- a/specification/sphere/resource-manager/Microsoft.AzureSphere/stable/2024-04-01/azuresphere.json +++ b/specification/sphere/resource-manager/Microsoft.AzureSphere/stable/2024-04-01/azuresphere.json @@ -2772,6 +2772,10 @@ "202": { "description": "Resource update request accepted.", "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, "Retry-After": { "type": "integer", "format": "int32", @@ -3167,11 +3171,7 @@ "properties": { "$ref": "#/definitions/CatalogProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -3237,11 +3237,7 @@ "properties": { "$ref": "#/definitions/CertificateProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -3416,11 +3412,7 @@ "properties": { "$ref": "#/definitions/DeploymentProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -3493,11 +3485,7 @@ "properties": { "$ref": "#/definitions/DeviceProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -3513,11 +3501,7 @@ "properties": { "$ref": "#/definitions/DeviceGroupProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -3782,11 +3766,7 @@ "properties": { "$ref": "#/definitions/ImageProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -4095,11 +4075,7 @@ "properties": { "$ref": "#/definitions/ProductProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ diff --git a/specification/splitio/SplitIO.Experimentation.Management/main.tsp b/specification/splitio/SplitIO.Experimentation.Management/main.tsp index f3c23e1cd34d..c65478dc7e8a 100644 --- a/specification/splitio/SplitIO.Experimentation.Management/main.tsp +++ b/specification/splitio/SplitIO.Experimentation.Management/main.tsp @@ -119,7 +119,12 @@ namespace SplitIO.Experimentation { @armResourceOperations interface ExperimentationWorkspaces { get is ArmResourceRead; - create is ArmResourceCreateOrUpdateAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + create is ArmResourceCreateOrUpdateAsync< + ExperimentationWorkspace, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; update is ArmResourcePatchAsync< ExperimentationWorkspace, ExperimentationWorkspaceProperties diff --git a/specification/splitio/resource-manager/SplitIO.Experimentation/preview/2024-03-01-preview/splitio.json b/specification/splitio/resource-manager/SplitIO.Experimentation/preview/2024-03-01-preview/splitio.json index bda2742acea8..fdc038996b8b 100644 --- a/specification/splitio/resource-manager/SplitIO.Experimentation/preview/2024-03-01-preview/splitio.json +++ b/specification/splitio/resource-manager/SplitIO.Experimentation/preview/2024-03-01-preview/splitio.json @@ -576,11 +576,7 @@ "properties": { "$ref": "#/definitions/ExperimentationWorkspaceProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "sku": { "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/Sku", diff --git a/specification/standbypool/StandbyPool.Management/standbyContainerGroupPool.tsp b/specification/standbypool/StandbyPool.Management/standbyContainerGroupPool.tsp index 0a75e1a67e71..1ba16b8eb60d 100644 --- a/specification/standbypool/StandbyPool.Management/standbyContainerGroupPool.tsp +++ b/specification/standbypool/StandbyPool.Management/standbyContainerGroupPool.tsp @@ -106,7 +106,12 @@ model Subnet { @armResourceOperations interface StandbyContainerGroupPools { get is ArmResourceRead; - createOrUpdate is ArmResourceCreateOrUpdateAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrUpdateAsync< + StandbyContainerGroupPoolResource, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; delete is ArmResourceDeleteWithoutOkAsync; update is ArmResourcePatchSync< StandbyContainerGroupPoolResource, diff --git a/specification/standbypool/StandbyPool.Management/standbyVMPool.tsp b/specification/standbypool/StandbyPool.Management/standbyVMPool.tsp index 4e880f4196aa..01a6d30ecd75 100644 --- a/specification/standbypool/StandbyPool.Management/standbyVMPool.tsp +++ b/specification/standbypool/StandbyPool.Management/standbyVMPool.tsp @@ -77,7 +77,12 @@ model StandbyVirtualMachinePoolElasticityProfile { @armResourceOperations interface StandbyVirtualMachinePools { get is ArmResourceRead; - createOrUpdate is ArmResourceCreateOrUpdateAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrUpdateAsync< + StandbyVirtualMachinePoolResource, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; delete is ArmResourceDeleteWithoutOkAsync; update is ArmResourcePatchSync< StandbyVirtualMachinePoolResource, diff --git a/specification/standbypool/resource-manager/Microsoft.StandbyPool/preview/2023-12-01-preview/standbypool.json b/specification/standbypool/resource-manager/Microsoft.StandbyPool/preview/2023-12-01-preview/standbypool.json index dc398d937518..868c8cfac56d 100644 --- a/specification/standbypool/resource-manager/Microsoft.StandbyPool/preview/2023-12-01-preview/standbypool.json +++ b/specification/standbypool/resource-manager/Microsoft.StandbyPool/preview/2023-12-01-preview/standbypool.json @@ -1006,11 +1006,7 @@ "properties": { "$ref": "#/definitions/StandbyContainerGroupPoolResourceProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -1130,11 +1126,7 @@ "properties": { "$ref": "#/definitions/StandbyVirtualMachinePoolResourceProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -1254,11 +1246,7 @@ "properties": { "$ref": "#/definitions/StandbyVirtualMachineResourceProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ diff --git a/specification/translation/Azure.AI.DocumentTranslation/models.tsp b/specification/translation/Azure.AI.DocumentTranslation/models.tsp index 73ec6c09922c..98f36a54789c 100644 --- a/specification/translation/Azure.AI.DocumentTranslation/models.tsp +++ b/specification/translation/Azure.AI.DocumentTranslation/models.tsp @@ -11,33 +11,33 @@ namespace DocumentTranslation; @doc("Document Translate Request Content") model DocumentTranslateContent { @doc(""" - Specifies source language of the input document. - If this parameter isn't specified, automatic language detection is applied to determine the source language. - For example if the source document is written in English, then use sourceLanguage=en - """) + Specifies source language of the input document. + If this parameter isn't specified, automatic language detection is applied to determine the source language. + For example if the source document is written in English, then use sourceLanguage=en + """) @query("sourceLanguage") sourceLanguage?: string; @doc(""" - Specifies the language of the output document. - The target language must be one of the supported languages included in the translation scope. - For example if you want to translate the document in German language, then use targetLanguage=de - """) + Specifies the language of the output document. + The target language must be one of the supported languages included in the translation scope. + For example if you want to translate the document in German language, then use targetLanguage=de + """) @query("targetLanguage") targetLanguage: string; @doc(""" - A string specifying the category (domain) of the translation. This parameter is used to get translations - from a customized system built with Custom Translator. Add the Category ID from your Custom Translator - project details to this parameter to use your deployed customized system. Default value is: general. - """) + A string specifying the category (domain) of the translation. This parameter is used to get translations + from a customized system built with Custom Translator. Add the Category ID from your Custom Translator + project details to this parameter to use your deployed customized system. Default value is: general. + """) @query("category") category?: string = "general"; @doc(""" - Specifies that the service is allowed to fall back to a general system when a custom system doesn't exist. - Possible values are: true (default) or false. - """) + Specifies that the service is allowed to fall back to a general system when a custom system doesn't exist. + Possible values are: true (default) or false. + """) @query("allowFallback") allowFallback?: boolean; @@ -183,9 +183,9 @@ model SourceInput { filter?: DocumentFilter; @doc(""" -Language code -If none is specified, we will perform auto detect on the document -""") + Language code + If none is specified, we will perform auto detect on the document + """) language?: string; @doc("Storage Source") @@ -195,18 +195,18 @@ If none is specified, we will perform auto detect on the document @doc("Document filter") model DocumentFilter { @doc(""" -A case-sensitive prefix string to filter documents in the source path for -translation. -For example, when using a Azure storage blob Uri, use the prefix -to restrict sub folders for translation. -""") + A case-sensitive prefix string to filter documents in the source path for + translation. + For example, when using a Azure storage blob Uri, use the prefix + to restrict sub folders for translation. + """) prefix?: string; @doc(""" -A case-sensitive suffix string to filter documents in the source path for -translation. -This is most often use for file extensions -""") + A case-sensitive suffix string to filter documents in the source path for + translation. + This is most often use for file extensions + """) suffix?: string; } @@ -231,13 +231,13 @@ model TargetInput { @doc("Glossary / translation memory for the request") model Glossary { @doc(""" -Location of the glossary. -We will use the file extension to extract the -formatting if the format parameter is not supplied. - -If the translation -language pair is not present in the glossary, it will not be applied -""") + Location of the glossary. + We will use the file extension to extract the + formatting if the format parameter is not supplied. + + If the translation + language pair is not present in the glossary, it will not be applied + """) glossaryUrl: string; @doc("Format") @@ -251,26 +251,26 @@ language pair is not present in the glossary, it will not be applied } @doc(""" -Contains unified error information used for HTTP responses across any Cognitive -Service. Instances -can be created either through -Microsoft.CloudAI.Containers.HttpStatusExceptionV2 or by returning it directly -from -a controller. -""") + Contains unified error information used for HTTP responses across any Cognitive + Service. Instances + can be created either through + Microsoft.CloudAI.Containers.HttpStatusExceptionV2 or by returning it directly + from + a controller. + """) @error model TranslationErrorResponse { @doc(""" -This contains an outer error with error code, message, details, target and an -inner error with more descriptive details. -""") + This contains an outer error with error code, message, details, target and an + inner error with more descriptive details. + """) error?: TranslationError; } @doc(""" -This contains an outer error with error code, message, details, target and an -inner error with more descriptive details. -""") + This contains an outer error with error code, message, details, target and an + inner error with more descriptive details. + """) model TranslationError { @doc("Enums containing high level error codes.") code: TranslationErrorCode; @@ -279,32 +279,32 @@ model TranslationError { message: string; @doc(""" -Gets the source of the error. -For example it would be \"documents\" or -\"document id\" in case of invalid document. -""") + Gets the source of the error. + For example it would be \"documents\" or + \"document id\" in case of invalid document. + """) @visibility("read") target?: string; @doc(""" -New Inner Error format which conforms to Cognitive Services API Guidelines -which is available at -https://microsoft.sharepoint.com/%3Aw%3A/t/CognitiveServicesPMO/EUoytcrjuJdKpeOKIK_QRC8BPtUYQpKBi8JsWyeDMRsWlQ?e=CPq8ow. -This -contains required properties ErrorCode, message and optional properties target, -details(key value pair), inner error(this can be nested). -""") + New Inner Error format which conforms to Cognitive Services API Guidelines + which is available at + https://microsoft.sharepoint.com/%3Aw%3A/t/CognitiveServicesPMO/EUoytcrjuJdKpeOKIK_QRC8BPtUYQpKBi8JsWyeDMRsWlQ?e=CPq8ow. + This + contains required properties ErrorCode, message and optional properties target, + details(key value pair), inner error(this can be nested). + """) innerError?: InnerTranslationError; } @doc(""" -New Inner Error format which conforms to Cognitive Services API Guidelines -which is available at -https://microsoft.sharepoint.com/%3Aw%3A/t/CognitiveServicesPMO/EUoytcrjuJdKpeOKIK_QRC8BPtUYQpKBi8JsWyeDMRsWlQ?e=CPq8ow. -This -contains required properties ErrorCode, message and optional properties target, -details(key value pair), inner error(this can be nested). -""") + New Inner Error format which conforms to Cognitive Services API Guidelines + which is available at + https://microsoft.sharepoint.com/%3Aw%3A/t/CognitiveServicesPMO/EUoytcrjuJdKpeOKIK_QRC8BPtUYQpKBi8JsWyeDMRsWlQ?e=CPq8ow. + This + contains required properties ErrorCode, message and optional properties target, + details(key value pair), inner error(this can be nested). + """) model InnerTranslationError { @doc("Gets code error string.") code: string; @@ -313,21 +313,21 @@ model InnerTranslationError { message: string; @doc(""" -Gets the source of the error. -For example it would be \"documents\" or -\"document id\" in case of invalid document. -""") + Gets the source of the error. + For example it would be \"documents\" or + \"document id\" in case of invalid document. + """) @visibility("read") target?: string; @doc(""" -New Inner Error format which conforms to Cognitive Services API Guidelines -which is available at -https://microsoft.sharepoint.com/%3Aw%3A/t/CognitiveServicesPMO/EUoytcrjuJdKpeOKIK_QRC8BPtUYQpKBi8JsWyeDMRsWlQ?e=CPq8ow. -This -contains required properties ErrorCode, message and optional properties target, -details(key value pair), inner error(this can be nested). -""") + New Inner Error format which conforms to Cognitive Services API Guidelines + which is available at + https://microsoft.sharepoint.com/%3Aw%3A/t/CognitiveServicesPMO/EUoytcrjuJdKpeOKIK_QRC8BPtUYQpKBi8JsWyeDMRsWlQ?e=CPq8ow. + This + contains required properties ErrorCode, message and optional properties target, + details(key value pair), inner error(this can be nested). + """) innerError?: InnerTranslationError; } @@ -360,9 +360,9 @@ model TranslationStatus { status: Status; @doc(""" -This contains an outer error with error code, message, details, target and an -inner error with more descriptive details. -""") + This contains an outer error with error code, message, details, target and an + inner error with more descriptive details. + """) error?: TranslationError; @doc("Status Summary") @@ -416,9 +416,9 @@ model DocumentStatus { to: string; @doc(""" -This contains an outer error with error code, message, details, target and an -inner error with more descriptive details. -""") + This contains an outer error with error code, message, details, target and an + inner error with more descriptive details. + """) error?: TranslationError; @doc("Progress of the translation if available") diff --git a/specification/translation/Azure.AI.DocumentTranslation/routes.tsp b/specification/translation/Azure.AI.DocumentTranslation/routes.tsp index 4216fe4f0747..63a640672fd5 100644 --- a/specification/translation/Azure.AI.DocumentTranslation/routes.tsp +++ b/specification/translation/Azure.AI.DocumentTranslation/routes.tsp @@ -30,26 +30,26 @@ interface DocumentTranslationOperations { #suppress "@azure-tools/typespec-azure-core/long-running-polling-operation-required" @summary("Submit a document translation request to the Document Translation service") @doc(""" -Use this API to submit a bulk (batch) translation request to the Document -Translation service. -Each request can contain multiple documents and must -contain a source and destination container for each document. - -The -prefix and suffix filter (if supplied) are used to filter folders. The prefix -is applied to the subpath after the container name. - -Glossaries / -Translation memory can be included in the request and are applied by the -service when the document is translated. - -If the glossary is -invalid or unreachable during translation, an error is indicated in the -document status. -If a file with the same name already exists at the -destination, it will be overwritten. The targetUrl for each target language -must be unique. -""") + Use this API to submit a bulk (batch) translation request to the Document + Translation service. + Each request can contain multiple documents and must + contain a source and destination container for each document. + + The + prefix and suffix filter (if supplied) are used to filter folders. The prefix + is applied to the subpath after the container name. + + Glossaries / + Translation memory can be included in the request and are applied by the + service when the document is translated. + + If the glossary is + invalid or unreachable during translation, an error is indicated in the + document status. + If a file with the same name already exists at the + destination, it will be overwritten. The targetUrl for each target language + must be unique. + """) @pollingOperation(DocumentTranslationOperations.getTranslationStatus) @route("/document/batches") @post @@ -70,110 +70,110 @@ must be unique. #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Doesn't fit standard ops" @summary("Returns a list of batch requests submitted and the status for each request") @doc(""" -Returns a list of batch requests submitted and the status for each -request. -This list only contains batch requests submitted by the user (based on -the resource). - -If the number of requests exceeds our paging limit, -server-side paging is used. Paginated responses indicate a partial result and -include a continuation token in the response. -The absence of a continuation -token means that no additional pages are available. - -top, skip -and maxpagesize query parameters can be used to specify a number of results to -return and an offset for the collection. - -top indicates the total -number of records the user wants to be returned across all pages. -skip -indicates the number of records to skip from the list of batches based on the -sorting method specified. By default, we sort by descending start -time. -maxpagesize is the maximum items returned in a page. If more items are -requested via top (or top is not specified and there are more items to be -returned), @nextLink will contain the link to the next page. - - -orderby query parameter can be used to sort the returned list (ex -\"orderby=createdDateTimeUtc asc\" or \"orderby=createdDateTimeUtc -desc\"). -The default sorting is descending by createdDateTimeUtc. -Some query -parameters can be used to filter the returned list (ex: -\"status=Succeeded,Cancelled\") will only return succeeded and cancelled -operations. -createdDateTimeUtcStart and createdDateTimeUtcEnd can be used -combined or separately to specify a range of datetime to filter the returned -list by. -The supported filtering query parameters are (status, ids, -createdDateTimeUtcStart, createdDateTimeUtcEnd). - -The server honors -the values specified by the client. However, clients must be prepared to handle -responses that contain a different page size or contain a continuation token. - - -When both top and skip are included, the server should first apply -skip and then top on the collection. -Note: If the server can't honor top -and/or skip, the server must return an error to the client informing about it -instead of just ignoring the query options. -This reduces the risk of the client -making assumptions about the data returned. -""") + Returns a list of batch requests submitted and the status for each + request. + This list only contains batch requests submitted by the user (based on + the resource). + + If the number of requests exceeds our paging limit, + server-side paging is used. Paginated responses indicate a partial result and + include a continuation token in the response. + The absence of a continuation + token means that no additional pages are available. + + top, skip + and maxpagesize query parameters can be used to specify a number of results to + return and an offset for the collection. + + top indicates the total + number of records the user wants to be returned across all pages. + skip + indicates the number of records to skip from the list of batches based on the + sorting method specified. By default, we sort by descending start + time. + maxpagesize is the maximum items returned in a page. If more items are + requested via top (or top is not specified and there are more items to be + returned), @nextLink will contain the link to the next page. + + + orderby query parameter can be used to sort the returned list (ex + \"orderby=createdDateTimeUtc asc\" or \"orderby=createdDateTimeUtc + desc\"). + The default sorting is descending by createdDateTimeUtc. + Some query + parameters can be used to filter the returned list (ex: + \"status=Succeeded,Cancelled\") will only return succeeded and cancelled + operations. + createdDateTimeUtcStart and createdDateTimeUtcEnd can be used + combined or separately to specify a range of datetime to filter the returned + list by. + The supported filtering query parameters are (status, ids, + createdDateTimeUtcStart, createdDateTimeUtcEnd). + + The server honors + the values specified by the client. However, clients must be prepared to handle + responses that contain a different page size or contain a continuation token. + + + When both top and skip are included, the server should first apply + skip and then top on the collection. + Note: If the server can't honor top + and/or skip, the server must return an error to the client informing about it + instead of just ignoring the query options. + This reduces the risk of the client + making assumptions about the data returned. + """) @route("/document/batches") @get getTranslationsStatus is Azure.Core.Foundations.Operation< { @doc(""" -top indicates the total number of records the user wants to be returned across -all pages. - -Clients MAY use top and skip query parameters to -specify a number of results to return and an offset into the collection. -When -both top and skip are given by a client, the server SHOULD first apply skip -and then top on the collection. - -Note: If the server can't honor -top and/or skip, the server MUST return an error to the client informing -about it instead of just ignoring the query options. -""") + top indicates the total number of records the user wants to be returned across + all pages. + + Clients MAY use top and skip query parameters to + specify a number of results to return and an offset into the collection. + When + both top and skip are given by a client, the server SHOULD first apply skip + and then top on the collection. + + Note: If the server can't honor + top and/or skip, the server MUST return an error to the client informing + about it instead of just ignoring the query options. + """) @maxValue(2147483647) @query("top") top?: int32; @doc(""" -skip indicates the number of records to skip from the list of records held by -the server based on the sorting method specified. By default, we sort by -descending start time. - -Clients MAY use top and skip query -parameters to specify a number of results to return and an offset into the -collection. -When both top and skip are given by a client, the server SHOULD -first apply skip and then top on the collection. - -Note: If the -server can't honor top and/or skip, the server MUST return an error to the -client informing about it instead of just ignoring the query options. -""") + skip indicates the number of records to skip from the list of records held by + the server based on the sorting method specified. By default, we sort by + descending start time. + + Clients MAY use top and skip query + parameters to specify a number of results to return and an offset into the + collection. + When both top and skip are given by a client, the server SHOULD + first apply skip and then top on the collection. + + Note: If the + server can't honor top and/or skip, the server MUST return an error to the + client informing about it instead of just ignoring the query options. + """) @maxValue(2147483647) @query("skip") skip?: int32; @doc(""" -maxpagesize is the maximum items returned in a page. If more items are -requested via top (or top is not specified and there are more items to be -returned), @nextLink will contain the link to the next page. - - -Clients MAY request server-driven paging with a specific page size by -specifying a maxpagesize preference. The server SHOULD honor this preference -if the specified page size is smaller than the server's default page size. -""") + maxpagesize is the maximum items returned in a page. If more items are + requested via top (or top is not specified and there are more items to be + returned), @nextLink will contain the link to the next page. + + + Clients MAY request server-driven paging with a specific page size by + specifying a maxpagesize preference. The server SHOULD honor this preference + if the specified page size is smaller than the server's default page size. + """) @maxValue(100) @minValue(1) @query("maxpagesize") @@ -214,9 +214,9 @@ if the specified page size is smaller than the server's default page size. #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Doesn't fit standard ops" @summary("Returns the status for a specific document") @doc(""" -Returns the translation status for a specific document based on the request Id -and document Id. -""") + Returns the translation status for a specific document based on the request Id + and document Id. + """) @route("/document/batches/{id}/documents/{documentId}") @get getDocumentStatus is Azure.Core.Foundations.Operation< @@ -235,11 +235,11 @@ and document Id. #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Doesn't fit standard ops" @summary("Returns the status for a document translation request") @doc(""" -Returns the status for a document translation request. -The status includes the -overall request status, as well as the status for documents that are being -translated as part of that request. -""") + Returns the status for a document translation request. + The status includes the + overall request status, as well as the status for documents that are being + translated as part of that request. + """) @route("/document/batches/{id}") @get getTranslationStatus is Azure.Core.Foundations.Operation< @@ -254,15 +254,15 @@ translated as part of that request. #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Doesn't fit standard ops" @summary("Cancel a currently processing or queued translation") @doc(""" -Cancel a currently processing or queued translation. -A translation will not be -cancelled if it is already completed or failed or cancelling. A bad request -will be returned. -All documents that have completed translation will not be -cancelled and will be charged. -All pending documents will be cancelled if -possible. -""") + Cancel a currently processing or queued translation. + A translation will not be + cancelled if it is already completed or failed or cancelling. A bad request + will be returned. + All documents that have completed translation will not be + cancelled and will be charged. + All pending documents will be cancelled if + possible. + """) @route("/document/batches/{id}") @delete cancelTranslation is Azure.Core.Foundations.Operation< @@ -277,53 +277,53 @@ possible. #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Doesn't fit standard ops" @summary("Returns the status for all documents in a batch document translation request") @doc(""" -Returns the status for all documents in a batch document translation request. - - -If the number of documents in the response exceeds our paging limit, -server-side paging is used. -Paginated responses indicate a partial result and -include a continuation token in the response. The absence of a continuation -token means that no additional pages are available. - -top, skip -and maxpagesize query parameters can be used to specify a number of results to -return and an offset for the collection. - -top indicates the total -number of records the user wants to be returned across all pages. -skip -indicates the number of records to skip from the list of document status held -by the server based on the sorting method specified. By default, we sort by -descending start time. -maxpagesize is the maximum items returned in a page. -If more items are requested via top (or top is not specified and there are -more items to be returned), @nextLink will contain the link to the next page. - - -orderby query parameter can be used to sort the returned list (ex -\"orderby=createdDateTimeUtc asc\" or \"orderby=createdDateTimeUtc -desc\"). -The default sorting is descending by createdDateTimeUtc. -Some query -parameters can be used to filter the returned list (ex: -\"status=Succeeded,Cancelled\") will only return succeeded and cancelled -documents. -createdDateTimeUtcStart and createdDateTimeUtcEnd can be used -combined or separately to specify a range of datetime to filter the returned -list by. -The supported filtering query parameters are (status, ids, -createdDateTimeUtcStart, createdDateTimeUtcEnd). - -When both top -and skip are included, the server should first apply skip and then top on -the collection. -Note: If the server can't honor top and/or skip, the server -must return an error to the client informing about it instead of just ignoring -the query options. -This reduces the risk of the client making assumptions about -the data returned. -""") + Returns the status for all documents in a batch document translation request. + + + If the number of documents in the response exceeds our paging limit, + server-side paging is used. + Paginated responses indicate a partial result and + include a continuation token in the response. The absence of a continuation + token means that no additional pages are available. + + top, skip + and maxpagesize query parameters can be used to specify a number of results to + return and an offset for the collection. + + top indicates the total + number of records the user wants to be returned across all pages. + skip + indicates the number of records to skip from the list of document status held + by the server based on the sorting method specified. By default, we sort by + descending start time. + maxpagesize is the maximum items returned in a page. + If more items are requested via top (or top is not specified and there are + more items to be returned), @nextLink will contain the link to the next page. + + + orderby query parameter can be used to sort the returned list (ex + \"orderby=createdDateTimeUtc asc\" or \"orderby=createdDateTimeUtc + desc\"). + The default sorting is descending by createdDateTimeUtc. + Some query + parameters can be used to filter the returned list (ex: + \"status=Succeeded,Cancelled\") will only return succeeded and cancelled + documents. + createdDateTimeUtcStart and createdDateTimeUtcEnd can be used + combined or separately to specify a range of datetime to filter the returned + list by. + The supported filtering query parameters are (status, ids, + createdDateTimeUtcStart, createdDateTimeUtcEnd). + + When both top + and skip are included, the server should first apply skip and then top on + the collection. + Note: If the server can't honor top and/or skip, the server + must return an error to the client informing about it instead of just ignoring + the query options. + This reduces the risk of the client making assumptions about + the data returned. + """) @route("/document/batches/{id}/documents") @get getDocumentsStatus is Azure.Core.Foundations.Operation< @@ -333,52 +333,52 @@ the data returned. id: uuid; @doc(""" -top indicates the total number of records the user wants to be returned across -all pages. - -Clients MAY use top and skip query parameters to -specify a number of results to return and an offset into the collection. -When -both top and skip are given by a client, the server SHOULD first apply skip -and then top on the collection. - -Note: If the server can't honor -top and/or skip, the server MUST return an error to the client informing -about it instead of just ignoring the query options. -""") + top indicates the total number of records the user wants to be returned across + all pages. + + Clients MAY use top and skip query parameters to + specify a number of results to return and an offset into the collection. + When + both top and skip are given by a client, the server SHOULD first apply skip + and then top on the collection. + + Note: If the server can't honor + top and/or skip, the server MUST return an error to the client informing + about it instead of just ignoring the query options. + """) @maxValue(2147483647) @query("top") top?: int32; @doc(""" -skip indicates the number of records to skip from the list of records held by -the server based on the sorting method specified. By default, we sort by -descending start time. - -Clients MAY use top and skip query -parameters to specify a number of results to return and an offset into the -collection. -When both top and skip are given by a client, the server SHOULD -first apply skip and then top on the collection. - -Note: If the -server can't honor top and/or skip, the server MUST return an error to the -client informing about it instead of just ignoring the query options. -""") + skip indicates the number of records to skip from the list of records held by + the server based on the sorting method specified. By default, we sort by + descending start time. + + Clients MAY use top and skip query + parameters to specify a number of results to return and an offset into the + collection. + When both top and skip are given by a client, the server SHOULD + first apply skip and then top on the collection. + + Note: If the + server can't honor top and/or skip, the server MUST return an error to the + client informing about it instead of just ignoring the query options. + """) @maxValue(2147483647) @query("skip") skip?: int32; @doc(""" -maxpagesize is the maximum items returned in a page. If more items are -requested via top (or top is not specified and there are more items to be -returned), @nextLink will contain the link to the next page. - - -Clients MAY request server-driven paging with a specific page size by -specifying a maxpagesize preference. The server SHOULD honor this preference -if the specified page size is smaller than the server's default page size. -""") + maxpagesize is the maximum items returned in a page. If more items are + requested via top (or top is not specified and there are more items to be + returned), @nextLink will contain the link to the next page. + + + Clients MAY request server-driven paging with a specific page size by + specifying a maxpagesize preference. The server SHOULD honor this preference + if the specified page size is smaller than the server's default page size. + """) @maxValue(100) @minValue(1) @query("maxpagesize") @@ -419,11 +419,11 @@ if the specified page size is smaller than the server's default page size. #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "Doesn't fit standard ops" @summary("Returns a list of supported document formats") @doc(""" -The list of supported formats supported by the Document Translation -service. -The list includes the common file extension, as well as the -content-type if using the upload API. -""") + The list of supported formats supported by the Document Translation + service. + The list includes the common file extension, as well as the + content-type if using the upload API. + """) @route("/document/formats") @get getSupportedFormats is Azure.Core.Foundations.Operation< diff --git a/specification/translation/Azure.AI.DocumentTranslation/tspconfig.yaml b/specification/translation/Azure.AI.DocumentTranslation/tspconfig.yaml index 67f3ba7f125c..f673994872f2 100644 --- a/specification/translation/Azure.AI.DocumentTranslation/tspconfig.yaml +++ b/specification/translation/Azure.AI.DocumentTranslation/tspconfig.yaml @@ -12,6 +12,7 @@ linter: options: "@azure-tools/typespec-autorest": azure-resource-provider-folder: "data-plane" + emit-lro-options: "none" emitter-output-dir: "{project-root}/.." examples-directory: "{project-root}/examples" output-file: "{azure-resource-provider-folder}/Azure.AI.DocumentTranslation/{version-status}/{version}/openapi.json" diff --git a/specification/translation/Azure.AI.TextTranslation/main.tsp b/specification/translation/Azure.AI.TextTranslation/main.tsp index 15d1567ee80a..80a0f963b586 100644 --- a/specification/translation/Azure.AI.TextTranslation/main.tsp +++ b/specification/translation/Azure.AI.TextTranslation/main.tsp @@ -16,31 +16,31 @@ using TypeSpec.Versioning; "Text translation is a cloud-based REST API feature of the Translator service that uses neural machine translation technology to enable quick and accurate source-to-target text translation in real time across all supported languages.", { @doc(""" -Supported Text Translation endpoints (protocol and hostname, for example: - https://api.cognitive.microsofttranslator.com). -""") + Supported Text Translation endpoints (protocol and hostname, for example: + https://api.cognitive.microsofttranslator.com). + """) Endpoint: url, } ) @doc(""" -Text translation is a cloud-based REST API feature of the Translator service that uses neural -machine translation technology to enable quick and accurate source-to-target text translation -in real time across all supported languages. - -The following methods are supported by the Text Translation feature: - -Languages. Returns a list of languages supported by Translate, Transliterate, and Dictionary Lookup operations. - -Translate. Renders single source-language text to multiple target-language texts with a single request. - -Transliterate. Converts characters or letters of a source language to the corresponding characters or letters of a target language. - -Detect. Returns the source code language code and a boolean variable denoting whether the detected language is supported for text translation and transliteration. - -Dictionary lookup. Returns equivalent words for the source term in the target language. - -Dictionary example Returns grammatical structure and context examples for the source term and target term pair. -""") + Text translation is a cloud-based REST API feature of the Translator service that uses neural + machine translation technology to enable quick and accurate source-to-target text translation + in real time across all supported languages. + + The following methods are supported by the Text Translation feature: + + Languages. Returns a list of languages supported by Translate, Transliterate, and Dictionary Lookup operations. + + Translate. Renders single source-language text to multiple target-language texts with a single request. + + Transliterate. Converts characters or letters of a source language to the corresponding characters or letters of a target language. + + Detect. Returns the source code language code and a boolean variable denoting whether the detected language is supported for text translation and transliteration. + + Dictionary lookup. Returns equivalent words for the source term in the target language. + + Dictionary example Returns grammatical structure and context examples for the source term and target term pair. + """) @versioned(APIVersion) namespace TextTranslation; diff --git a/specification/translation/Azure.AI.TextTranslation/models-languages.tsp b/specification/translation/Azure.AI.TextTranslation/models-languages.tsp index 340b68b4bd28..1e7e697ccf79 100644 --- a/specification/translation/Azure.AI.TextTranslation/models-languages.tsp +++ b/specification/translation/Azure.AI.TextTranslation/models-languages.tsp @@ -72,9 +72,9 @@ alias BaseLanguage = { }; @doc(""" -The value of the translation property is a dictionary of (key, value) pairs. Each key is a BCP 47 language tag. -A key identifies a language for which text can be translated to or translated from. -""") + The value of the translation property is a dictionary of (key, value) pairs. Each key is a BCP 47 language tag. + A key identifies a language for which text can be translated to or translated from. + """) model TranslationLanguage { ...BaseLanguage; @@ -83,10 +83,10 @@ model TranslationLanguage { } @doc(""" -The value of the transliteration property is a dictionary of (key, value) pairs. -Each key is a BCP 47 language tag. A key identifies a language for which text can be converted from one script -to another script. -""") + The value of the transliteration property is a dictionary of (key, value) pairs. + Each key is a BCP 47 language tag. A key identifies a language for which text can be converted from one script + to another script. + """) model TransliterationLanguage { ...BaseLanguage; diff --git a/specification/translation/Azure.AI.TextTranslation/models-translate.tsp b/specification/translation/Azure.AI.TextTranslation/models-translate.tsp index 0f938702d8c2..669300202e73 100644 --- a/specification/translation/Azure.AI.TextTranslation/models-translate.tsp +++ b/specification/translation/Azure.AI.TextTranslation/models-translate.tsp @@ -30,7 +30,7 @@ model TranslateParameters { Specifies the language of the input text. Find which languages are available to translate from by looking up supported languages using the translation scope. If the from parameter isn't specified, automatic language detection is applied to determine the source language. - + You must use the from parameter rather than autodetection when using the dynamic dictionary feature. Note: the dynamic dictionary feature is case-sensitive. """) @@ -103,7 +103,7 @@ model TranslateParameters { @doc(""" Specifies that the service is allowed to fall back to a general system when a custom system doesn't exist. Possible values are: true (default) or false. - + allowFallback=false specifies that the translation should only use systems trained for the category specified by the request. If a translation for language X to language Y requires chaining through a pivot language E, then all the systems in the chain (X → E and E → Y) will need to be custom and have the same category. @@ -125,7 +125,7 @@ model TranslationResult { @doc(""" Specifies the system type that was used for translation for each 'to' language requested for translation. The value is a comma-separated list of strings. Each string indicates a type: - + * Custom - Request includes a custom system and at least one custom system was used during translation. * Team - All other requests """) diff --git a/specification/translation/Azure.AI.TextTranslation/tspconfig.yaml b/specification/translation/Azure.AI.TextTranslation/tspconfig.yaml index e8e1187c7105..754f49ac6449 100644 --- a/specification/translation/Azure.AI.TextTranslation/tspconfig.yaml +++ b/specification/translation/Azure.AI.TextTranslation/tspconfig.yaml @@ -14,6 +14,7 @@ linter: options: "@azure-tools/typespec-autorest": azure-resource-provider-folder: "data-plane" + emit-lro-options: "none" emitter-output-dir: "{project-root}/.." examples-directory: "examples" output-file: "{azure-resource-provider-folder}/Azure.AI.TextTranslation/stable/v3.0/openapi.json" diff --git a/specification/verifiedid/Microsoft.VerifiedId/main.tsp b/specification/verifiedid/Microsoft.VerifiedId/main.tsp index 01f85aabab69..e33db6e1b6f7 100644 --- a/specification/verifiedid/Microsoft.VerifiedId/main.tsp +++ b/specification/verifiedid/Microsoft.VerifiedId/main.tsp @@ -71,7 +71,12 @@ model AuthorityProperties { @armResourceOperations(Authority) interface Authorities { get is ArmResourceRead; - createOrUpdate is ArmResourceCreateOrReplaceAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrReplaceAsync< + Authority, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; update is ArmResourcePatchSync; delete is ArmResourceDeleteSync; listByResourceGroup is ArmResourceListByParent; diff --git a/specification/verifiedid/resource-manager/Microsoft.VerifiedId/preview/2024-01-26-preview/verifiedid.json b/specification/verifiedid/resource-manager/Microsoft.VerifiedId/preview/2024-01-26-preview/verifiedid.json index a97a1e596f5e..b87b4bc7ecab 100644 --- a/specification/verifiedid/resource-manager/Microsoft.VerifiedId/preview/2024-01-26-preview/verifiedid.json +++ b/specification/verifiedid/resource-manager/Microsoft.VerifiedId/preview/2024-01-26-preview/verifiedid.json @@ -390,11 +390,7 @@ "properties": { "$ref": "#/definitions/AuthorityProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ diff --git a/specification/vmware/Microsoft.AVS/models.tsp b/specification/vmware/Microsoft.AVS/models.tsp index c1989f67724b..96139932f959 100644 --- a/specification/vmware/Microsoft.AVS/models.tsp +++ b/specification/vmware/Microsoft.AVS/models.tsp @@ -600,7 +600,7 @@ model Location is ProxyResource { @key("location") @path @segment("locations") - @Azure.ResourceManager.Private.armCommonParameter( + @Azure.ResourceManager.CommonTypes.Private.armCommonParameter( "LocationParameter", Azure.ResourceManager.CommonTypes.Versions.v5 ) @@ -672,11 +672,11 @@ model PrivateCloudUpdateProperties { encryption?: Encryption; @doc(""" -Array of additional networks noncontiguous with networkBlock. Networks must be -unique and non-overlapping across VNet in your subscription, on-premise, and -this privateCloud networkBlock attribute. Make sure the CIDR format conforms to -(A.B.C.D/X). -""") + Array of additional networks noncontiguous with networkBlock. Networks must be + unique and non-overlapping across VNet in your subscription, on-premise, and + this privateCloud networkBlock attribute. Make sure the CIDR format conforms to + (A.B.C.D/X). + """) extendedNetworkBlocks?: string[]; @doc("The type of DNS zone to use.") @@ -703,11 +703,11 @@ model PrivateCloudProperties { encryption?: Encryption; @doc(""" -Array of additional networks noncontiguous with networkBlock. Networks must be -unique and non-overlapping across VNet in your subscription, on-premise, and -this privateCloud networkBlock attribute. Make sure the CIDR format conforms to -(A.B.C.D/X). -""") + Array of additional networks noncontiguous with networkBlock. Networks must be + unique and non-overlapping across VNet in your subscription, on-premise, and + this privateCloud networkBlock attribute. Make sure the CIDR format conforms to + (A.B.C.D/X). + """) extendedNetworkBlocks?: string[]; @doc("The provisioning state") @@ -722,10 +722,10 @@ this privateCloud networkBlock attribute. Make sure the CIDR format conforms to endpoints?: Endpoints; @doc(""" -The block of addresses should be unique across VNet in your subscription as -well as on-premise. Make sure the CIDR format is conformed to (A.B.C.D/X) where -A,B,C,D are between 0 and 255, and X is between 0 and 22 -""") + The block of addresses should be unique across VNet in your subscription as + well as on-premise. Make sure the CIDR format is conformed to (A.B.C.D/X) where + A,B,C,D are between 0 and 255, and X is between 0 and 22 + """) networkBlock: string; @doc("Network used to access vCenter Server and NSX-T Manager") @@ -761,15 +761,15 @@ A,B,C,D are between 0 and 255, and X is between 0 and 22 externalCloudLinks?: string[]; @doc(""" -A secondary expressRoute circuit from a separate AZ. Only present in a -stretched private cloud -""") + A secondary expressRoute circuit from a separate AZ. Only present in a + stretched private cloud + """) secondaryCircuit?: Circuit; @doc(""" -Flag to indicate whether the private cloud has the quota for provisioned NSX -Public IP count raised from 64 to 1024 -""") + Flag to indicate whether the private cloud has the quota for provisioned NSX + Public IP count raised from 64 to 1024 + """) @visibility("read") nsxPublicIpQuotaRaised?: NsxPublicIpQuotaRaisedEnum; @@ -887,15 +887,15 @@ model IdentitySource { ssl?: SslEnum; @doc(""" -The ID of an Active Directory user with a minimum of read-only access to Base -DN for users and group -""") + The ID of an Active Directory user with a minimum of read-only access to Base + DN for users and group + """) username?: string; @doc(""" -The password of the Active Directory user with a minimum of read-only access to -Base DN for users and groups. -""") + The password of the Active Directory user with a minimum of read-only access to + Base DN for users and groups. + """) @secret password?: string; } @@ -1045,9 +1045,9 @@ model DiskPoolVolume { lunName: string; @doc(""" -Mode that describes whether the LUN has to be mounted as a datastore or -attached as a LUN -""") + Mode that describes whether the LUN has to be mounted as a datastore or + attached as a LUN + """) mountOption?: MountOptionEnum = MountOptionEnum.MOUNT; @doc("Device path") @@ -1173,16 +1173,16 @@ model GlobalReachConnectionProperties { provisioningState?: GlobalReachConnectionProvisioningState; @doc(""" -The network used for global reach carved out from the original network block -provided for the private cloud -""") + The network used for global reach carved out from the original network block + provided for the private cloud + """) @visibility("read") addressPrefix?: string; @doc(""" -Authorization key from the peer express route used for the global reach -connection -""") + Authorization key from the peer express route used for the global reach + connection + """) authorizationKey?: string; @doc("The connection status of the global reach connection") @@ -1190,15 +1190,15 @@ connection circuitConnectionStatus?: GlobalReachConnectionStatus; @doc(""" -Identifier of the ExpressRoute Circuit to peer with in the global reach -connection -""") + Identifier of the ExpressRoute Circuit to peer with in the global reach + connection + """) peerExpressRouteCircuit?: string; @doc(""" -The ID of the Private Cloud's ExpressRoute Circuit that is participating in the -global reach connection -""") + The ID of the Private Cloud's ExpressRoute Circuit that is participating in the + global reach connection + """) expressRouteId?: string; } @@ -1331,9 +1331,9 @@ union DhcpTypeEnum { string, } @doc(""" -Base class for WorkloadNetworkDhcpServer and WorkloadNetworkDhcpRelay to -inherit from -""") + Base class for WorkloadNetworkDhcpServer and WorkloadNetworkDhcpRelay to + inherit from + """) @discriminator("dhcpType") model WorkloadNetworkDhcpEntity { @doc("Type of DHCP: SERVER or RELAY.") @@ -1945,9 +1945,9 @@ union ScriptCmdletAudience { @doc("An parameter that the script will accept") model ScriptParameter { @doc(""" -The type of parameter the script is expecting. psCredential is a -PSCredentialObject -""") + The type of parameter the script is expecting. psCredential is a + PSCredentialObject + """) @visibility("read") type?: ScriptParameterTypes; @@ -1959,9 +1959,9 @@ PSCredentialObject description?: string; @doc(""" -Should this parameter be visible to arm and passed in the parameters argument -when executing -""") + Should this parameter be visible to arm and passed in the parameters argument + when executing + """) @visibility("read") visibility?: VisibilityParameterEnum; @@ -1992,15 +1992,15 @@ model ScriptExecutionProperties { #suppress "@azure-tools/typespec-azure-resource-manager/missing-x-ms-identifiers" @doc(""" -Parameters that will be hidden/not visible to ARM, such as passwords and -credentials -""") + Parameters that will be hidden/not visible to ARM, such as passwords and + credentials + """) hiddenParameters?: ScriptExecutionParameter[]; @doc(""" -Error message if the script was able to run, but if the script itself had -errors or powershell threw an exception -""") + Error message if the script was able to run, but if the script itself had + errors or powershell threw an exception + """) failureReason?: string; @doc("Time limit for execution") diff --git a/specification/vmware/Microsoft.AVS/routes.tsp b/specification/vmware/Microsoft.AVS/routes.tsp index 6cb36ffd5f2c..b380e6871654 100644 --- a/specification/vmware/Microsoft.AVS/routes.tsp +++ b/specification/vmware/Microsoft.AVS/routes.tsp @@ -34,23 +34,29 @@ interface Locations { ): ArmResponse | ErrorResponse; } +alias PrivateCloudList = ResourceList; @armResourceOperations interface PrivateClouds { #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Can not change existing operationId." @operationId("PrivateClouds_List") list is ArmResourceListByParent< PrivateCloud, - Response = ArmResponse> + Response = ArmResponse >; listInSubscription is ArmListBySubscription< PrivateCloud, - Response = ArmResponse> + Response = ArmResponse >; get is ArmResourceRead; - createOrUpdate is ArmResourceCreateOrUpdateAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrUpdateAsync< + PrivateCloud, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; // This could be modeled with ArmCustomPatchAsync if a 202 response with no body is used instead of a 201. // update is ArmCustomPatchAsync; @@ -122,7 +128,12 @@ interface Clusters { get is ArmResourceRead; - createOrUpdate is ArmResourceCreateOrUpdateAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrUpdateAsync< + Cluster, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; // This could be modeled with ArmCustomPatchAsync if a 202 response with no body is used instead of a 201. // update is ArmCustomPatchAsync; @@ -183,7 +194,12 @@ interface Datastores { get is ArmResourceRead; - createOrUpdate is ArmResourceCreateOrUpdateAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrUpdateAsync< + Datastore, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; #suppress "deprecated" #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" @@ -239,9 +255,12 @@ interface Authorizations { get is ArmResourceRead; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST REMOVE AT NEXT API VERSION UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") createOrUpdate is ArmResourceCreateOrUpdateAsync< ExpressRouteAuthorization, - BaseParameters + BaseParameters, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader >; #suppress "deprecated" @@ -272,7 +291,12 @@ interface GlobalReachConnections { get is ArmResourceRead; - createOrUpdate is ArmResourceCreateOrUpdateAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrUpdateAsync< + GlobalReachConnection, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; #suppress "deprecated" #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" @@ -319,8 +343,13 @@ interface WorkloadNetworkSegments { get is ArmResourceRead; #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Can not change existing operationId." + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" @operationId("WorkloadNetworks_CreateSegments") - create is ArmResourceCreateOrUpdateAsync; + @Azure.Core.useFinalStateVia("azure-async-operation") + create is ArmResourceCreateOrUpdateAsync< + WorkloadNetworkSegment, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Can not change existing operationId." @operationId("WorkloadNetworks_UpdateSegments") @@ -386,8 +415,13 @@ interface WorkloadNetworkDhcpConfigurations { ): ArmResponse | ErrorResponse; #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Can not change existing operationId." + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" @operationId("WorkloadNetworks_CreateDhcp") - create is ArmResourceCreateOrUpdateAsync; + @Azure.Core.useFinalStateVia("azure-async-operation") + create is ArmResourceCreateOrUpdateAsync< + WorkloadNetworkDhcp, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Can not change existing operationId." @operationId("WorkloadNetworks_UpdateDhcp") @@ -467,8 +501,13 @@ interface WorkloadNetworkPortMirroringProfiles { get is ArmResourceRead; #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Can not change existing operationId." + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" @operationId("WorkloadNetworks_CreatePortMirroring") - create is ArmResourceCreateOrUpdateAsync; + @Azure.Core.useFinalStateVia("azure-async-operation") + create is ArmResourceCreateOrUpdateAsync< + WorkloadNetworkPortMirroring, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Can not change existing operationId." @operationId("WorkloadNetworks_UpdatePortMirroring") @@ -544,8 +583,13 @@ interface WorkloadNetworkVmGroups { get is ArmResourceRead; #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Can not change existing operationId." + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" @operationId("WorkloadNetworks_CreateVMGroup") - create is ArmResourceCreateOrUpdateAsync; + @Azure.Core.useFinalStateVia("azure-async-operation") + create is ArmResourceCreateOrUpdateAsync< + WorkloadNetworkVMGroup, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Can not change existing operationId." @operationId("WorkloadNetworks_UpdateVMGroup") @@ -642,8 +686,13 @@ interface WorkloadNetworkDnsServices { get is ArmResourceRead; #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Can not change existing operationId." + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" @operationId("WorkloadNetworks_CreateDnsService") - create is ArmResourceCreateOrUpdateAsync; + @Azure.Core.useFinalStateVia("azure-async-operation") + create is ArmResourceCreateOrUpdateAsync< + WorkloadNetworkDnsService, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Can not change existing operationId." @operationId("WorkloadNetworks_UpdateDnsService") @@ -719,8 +768,13 @@ interface WorkloadNetworkDnsZones { get is ArmResourceRead; #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Can not change existing operationId." + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" @operationId("WorkloadNetworks_CreateDnsZone") - create is ArmResourceCreateOrUpdateAsync; + @Azure.Core.useFinalStateVia("azure-async-operation") + create is ArmResourceCreateOrUpdateAsync< + WorkloadNetworkDnsZone, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Can not change existing operationId." @operationId("WorkloadNetworks_UpdateDnsZone") @@ -795,8 +849,13 @@ interface WorkloadNetworkPublicIps { get is ArmResourceRead; #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Can not change existing operationId." + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" @operationId("WorkloadNetworks_CreatePublicIP") - create is ArmResourceCreateOrUpdateAsync; + @Azure.Core.useFinalStateVia("azure-async-operation") + create is ArmResourceCreateOrUpdateAsync< + WorkloadNetworkPublicIP, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-operation" "PublicIPIdParameter should be last, but it is breaking to correct it." #suppress "@azure-tools/typespec-azure-core/no-operation-id" "Can not change existing operationId." @@ -846,7 +905,12 @@ interface CloudLinks { get is ArmResourceRead; - createOrUpdate is ArmResourceCreateOrUpdateAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrUpdateAsync< + CloudLink, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; #suppress "deprecated" #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" @@ -874,7 +938,12 @@ interface Addons { get is ArmResourceRead; - createOrUpdate is ArmResourceCreateOrUpdateAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrUpdateAsync< + Addon, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; #suppress "deprecated" #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" @@ -930,7 +999,12 @@ interface PlacementPolicies { get is ArmResourceRead; - createOrUpdate is ArmResourceCreateOrUpdateAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrUpdateAsync< + PlacementPolicy, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; // 202 response has a body, but it should not to match ArmCustomPatchAsync. // update is ArmCustomPatchAsync; @@ -1013,7 +1087,12 @@ interface ScriptExecutions { get is ArmResourceRead; - createOrUpdate is ArmResourceCreateOrUpdateAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrUpdateAsync< + ScriptExecution, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; #suppress "deprecated" #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" @@ -1058,7 +1137,12 @@ interface IscsiPaths { get is ArmResourceRead; - createOrUpdate is ArmResourceCreateOrUpdateAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + createOrUpdate is ArmResourceCreateOrUpdateAsync< + IscsiPath, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; #suppress "deprecated" #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" diff --git a/specification/vmware/resource-manager/Microsoft.AVS/stable/2023-09-01/vmware.json b/specification/vmware/resource-manager/Microsoft.AVS/stable/2023-09-01/vmware.json index 81a5cb077afb..fb82d0d15cb2 100644 --- a/specification/vmware/resource-manager/Microsoft.AVS/stable/2023-09-01/vmware.json +++ b/specification/vmware/resource-manager/Microsoft.AVS/stable/2023-09-01/vmware.json @@ -2629,6 +2629,9 @@ "$ref": "./examples/VirtualMachines_RestrictMovement.json" } }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, "x-ms-long-running-operation": true } }, @@ -6513,11 +6516,7 @@ "properties": { "$ref": "#/definitions/AddonProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -6903,11 +6902,7 @@ "properties": { "$ref": "#/definitions/CloudLinkProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -7037,11 +7032,7 @@ "properties": { "$ref": "#/definitions/ClusterProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "sku": { "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/Sku", @@ -7233,11 +7224,7 @@ "properties": { "$ref": "#/definitions/DatastoreProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -7753,11 +7740,7 @@ "properties": { "$ref": "#/definitions/ExpressRouteAuthorizationProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -7856,11 +7839,7 @@ "properties": { "$ref": "#/definitions/GlobalReachConnectionProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -7997,11 +7976,7 @@ "properties": { "$ref": "#/definitions/HcxEnterpriseSiteProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -8198,11 +8173,7 @@ "properties": { "$ref": "#/definitions/IscsiPathProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -8453,11 +8424,7 @@ "properties": { "$ref": "#/definitions/PlacementPolicyProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -8692,11 +8659,7 @@ "properties": { "$ref": "#/definitions/PrivateCloudProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "sku": { "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/Sku", @@ -9078,11 +9041,7 @@ "properties": { "$ref": "#/definitions/ScriptCmdletProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -9209,11 +9168,7 @@ "properties": { "$ref": "#/definitions/ScriptExecutionProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -9495,11 +9450,7 @@ "properties": { "$ref": "#/definitions/ScriptPackageProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -9859,11 +9810,7 @@ "properties": { "$ref": "#/definitions/VirtualMachineProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -10090,11 +10037,7 @@ "properties": { "$ref": "#/definitions/WorkloadNetworkProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -10110,11 +10053,7 @@ "properties": { "$ref": "#/definitions/WorkloadNetworkDhcpEntity", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -10354,11 +10293,7 @@ "properties": { "$ref": "#/definitions/WorkloadNetworkDnsServiceProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -10499,11 +10434,7 @@ "properties": { "$ref": "#/definitions/WorkloadNetworkDnsZoneProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -10643,11 +10574,7 @@ "properties": { "$ref": "#/definitions/WorkloadNetworkGatewayProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -10725,11 +10652,7 @@ "properties": { "$ref": "#/definitions/WorkloadNetworkPortMirroringProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -10923,11 +10846,7 @@ "properties": { "$ref": "#/definitions/WorkloadNetworkPublicIPProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -11038,11 +10957,7 @@ "properties": { "$ref": "#/definitions/WorkloadNetworkSegmentProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -11208,11 +11123,7 @@ "properties": { "$ref": "#/definitions/WorkloadNetworkVMGroupProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -11341,11 +11252,7 @@ "properties": { "$ref": "#/definitions/WorkloadNetworkVirtualMachineProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ diff --git a/specification/voiceservices/VoiceServices.Provisioning/tspconfig.yaml b/specification/voiceservices/VoiceServices.Provisioning/tspconfig.yaml index 0690263a97e1..203ad187961a 100644 --- a/specification/voiceservices/VoiceServices.Provisioning/tspconfig.yaml +++ b/specification/voiceservices/VoiceServices.Provisioning/tspconfig.yaml @@ -10,6 +10,7 @@ emit: options: "@azure-tools/typespec-autorest": azure-resource-provider-folder: "data-plane" + emit-lro-options: "none" emitter-output-dir: "{project-root}/.." examples-directory: "{project-root}/examples" output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/swagger.json" diff --git a/specification/workloads/Workloads.SAPDiscoverySite.Management/SAPDiscoverySite.tsp b/specification/workloads/Workloads.SAPDiscoverySite.Management/SAPDiscoverySite.tsp index cf1c04eb5504..a3b3b3193aaf 100644 --- a/specification/workloads/Workloads.SAPDiscoverySite.Management/SAPDiscoverySite.tsp +++ b/specification/workloads/Workloads.SAPDiscoverySite.Management/SAPDiscoverySite.tsp @@ -36,7 +36,12 @@ interface SAPDiscoverySites { /** * Creates a discovery site resource for SAP Migration. This resource will be used to run system discovery and assessment with Azure Migrate. */ - create is ArmResourceCreateOrReplaceAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + create is ArmResourceCreateOrReplaceAsync< + SAPDiscoverySite, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; /** * Updates a SAP Migration discovery site resource. diff --git a/specification/workloads/Workloads.SAPDiscoverySite.Management/SAPInstance.tsp b/specification/workloads/Workloads.SAPDiscoverySite.Management/SAPInstance.tsp index f70c9a2bce2e..4fc5f70be91c 100644 --- a/specification/workloads/Workloads.SAPDiscoverySite.Management/SAPInstance.tsp +++ b/specification/workloads/Workloads.SAPDiscoverySite.Management/SAPInstance.tsp @@ -32,7 +32,12 @@ interface SAPInstances { /** * Creates the SAP Instance resource.

This will be used by service only. PUT operation on this resource by end user will return a Bad Request error. */ - create is ArmResourceCreateOrReplaceAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + create is ArmResourceCreateOrReplaceAsync< + SAPInstance, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; /** * Updates the SAP Instance resource. diff --git a/specification/workloads/Workloads.SAPDiscoverySite.Management/ServerInstance.tsp b/specification/workloads/Workloads.SAPDiscoverySite.Management/ServerInstance.tsp index 053290d8b0bf..b6d6be8903e9 100644 --- a/specification/workloads/Workloads.SAPDiscoverySite.Management/ServerInstance.tsp +++ b/specification/workloads/Workloads.SAPDiscoverySite.Management/ServerInstance.tsp @@ -29,7 +29,12 @@ interface ServerInstances { /** * Creates the Server Instance resource.

;This will be used by service only. PUT operation on this resource by end user will return a Bad Request error. */ - create is ArmResourceCreateOrReplaceAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + create is ArmResourceCreateOrReplaceAsync< + ServerInstance, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; /** * Updates the Server Instance resource. This operation on a resource by end user will return a Bad Request error. diff --git a/specification/workloads/Workloads.SAPMonitor.Management/Monitor.tsp b/specification/workloads/Workloads.SAPMonitor.Management/Monitor.tsp index 52a5d27b84c8..542752e4af90 100644 --- a/specification/workloads/Workloads.SAPMonitor.Management/Monitor.tsp +++ b/specification/workloads/Workloads.SAPMonitor.Management/Monitor.tsp @@ -31,7 +31,12 @@ interface Monitors { /** * Creates a SAP monitor for the specified subscription, resource group, and resource name. */ - create is ArmResourceCreateOrReplaceAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + create is ArmResourceCreateOrReplaceAsync< + Monitor, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; /** * Patches the Tags field of a SAP monitor for the specified subscription, resource group, and SAP monitor name. diff --git a/specification/workloads/Workloads.SAPMonitor.Management/ProviderInstance.tsp b/specification/workloads/Workloads.SAPMonitor.Management/ProviderInstance.tsp index 2e43d502005a..a5a36bfb2c24 100644 --- a/specification/workloads/Workloads.SAPMonitor.Management/ProviderInstance.tsp +++ b/specification/workloads/Workloads.SAPMonitor.Management/ProviderInstance.tsp @@ -29,7 +29,12 @@ interface ProviderInstances { /** * Creates a provider instance for the specified subscription, resource group, SAP monitor name, and resource name. */ - create is ArmResourceCreateOrReplaceAsync; + #suppress "@azure-tools/typespec-azure-core/invalid-final-state" "MUST CHANGE ON NEXT UPDATE" + @Azure.Core.useFinalStateVia("azure-async-operation") + create is ArmResourceCreateOrReplaceAsync< + ProviderInstance, + LroHeaders = Azure.Core.Foundations.RetryAfterHeader + >; /** * Deletes a provider instance for the specified subscription, resource group, SAP monitor name, and resource name. diff --git a/specification/workloads/Workloads.SAPMonitor.Management/models.tsp b/specification/workloads/Workloads.SAPMonitor.Management/models.tsp index 1821020722b0..f2473c62f089 100644 --- a/specification/workloads/Workloads.SAPMonitor.Management/models.tsp +++ b/specification/workloads/Workloads.SAPMonitor.Management/models.tsp @@ -272,6 +272,7 @@ model ProviderSpecificProperties { /** * The provider type. For example, the value can be SapHana. */ + #suppress "@azure-tools/typespec-azure-core/no-string-discriminator" "Existing" @visibility("read", "create") providerType: string; } diff --git a/specification/workloads/resource-manager/Microsoft.Workloads/SAPDiscoverySites/preview/2023-10-01-preview/SAPDiscoverySites.json b/specification/workloads/resource-manager/Microsoft.Workloads/SAPDiscoverySites/preview/2023-10-01-preview/SAPDiscoverySites.json index 72f5ae3e013c..1774bbafa200 100644 --- a/specification/workloads/resource-manager/Microsoft.Workloads/SAPDiscoverySites/preview/2023-10-01-preview/SAPDiscoverySites.json +++ b/specification/workloads/resource-manager/Microsoft.Workloads/SAPDiscoverySites/preview/2023-10-01-preview/SAPDiscoverySites.json @@ -1477,11 +1477,7 @@ "properties": { "$ref": "#/definitions/SAPDiscoverySiteProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "extendedLocation": { "$ref": "#/definitions/ExtendedLocation", @@ -1559,11 +1555,7 @@ "properties": { "$ref": "#/definitions/SAPInstanceProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -1762,11 +1754,7 @@ "properties": { "$ref": "#/definitions/ServerInstanceProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ diff --git a/specification/workloads/resource-manager/Microsoft.Workloads/monitors/preview/2023-12-01-preview/monitors.json b/specification/workloads/resource-manager/Microsoft.Workloads/monitors/preview/2023-12-01-preview/monitors.json index 6c6243b4b835..927ac4174174 100644 --- a/specification/workloads/resource-manager/Microsoft.Workloads/monitors/preview/2023-12-01-preview/monitors.json +++ b/specification/workloads/resource-manager/Microsoft.Workloads/monitors/preview/2023-12-01-preview/monitors.json @@ -1126,11 +1126,7 @@ "properties": { "$ref": "#/definitions/MonitorProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true }, "identity": { "$ref": "../../../../../../common-types/resource-management/v5/managedidentity.json#/definitions/ManagedServiceIdentity", @@ -1335,11 +1331,7 @@ "properties": { "$ref": "#/definitions/ProviderInstanceProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [ @@ -1565,11 +1557,7 @@ "properties": { "$ref": "#/definitions/SapLandscapeMonitorProperties", "description": "The resource-specific properties for this resource.", - "x-ms-client-flatten": true, - "x-ms-mutability": [ - "read", - "create" - ] + "x-ms-client-flatten": true } }, "allOf": [