@typespec/http-specs 0.37.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1 -0
- package/LICENSE +21 -0
- package/README.md +36 -0
- package/assets/image.jpg +0 -0
- package/assets/image.png +0 -0
- package/dist/specs/authentication/api-key/mockapi.d.ts +3 -0
- package/dist/specs/authentication/api-key/mockapi.d.ts.map +1 -0
- package/dist/specs/authentication/api-key/mockapi.js +45 -0
- package/dist/specs/authentication/api-key/mockapi.js.map +1 -0
- package/dist/specs/authentication/commonapi.d.ts +9 -0
- package/dist/specs/authentication/commonapi.d.ts.map +1 -0
- package/dist/specs/authentication/commonapi.js +19 -0
- package/dist/specs/authentication/commonapi.js.map +1 -0
- package/dist/specs/authentication/http/custom/mockapi.d.ts +3 -0
- package/dist/specs/authentication/http/custom/mockapi.d.ts.map +1 -0
- package/dist/specs/authentication/http/custom/mockapi.js +45 -0
- package/dist/specs/authentication/http/custom/mockapi.js.map +1 -0
- package/dist/specs/authentication/oauth2/mockapi.d.ts +3 -0
- package/dist/specs/authentication/oauth2/mockapi.d.ts.map +1 -0
- package/dist/specs/authentication/oauth2/mockapi.js +42 -0
- package/dist/specs/authentication/oauth2/mockapi.js.map +1 -0
- package/dist/specs/authentication/union/mockapi.d.ts +3 -0
- package/dist/specs/authentication/union/mockapi.d.ts.map +1 -0
- package/dist/specs/authentication/union/mockapi.js +37 -0
- package/dist/specs/authentication/union/mockapi.js.map +1 -0
- package/dist/specs/encode/bytes/mockapi.d.ts +3 -0
- package/dist/specs/encode/bytes/mockapi.d.ts.map +1 -0
- package/dist/specs/encode/bytes/mockapi.js +179 -0
- package/dist/specs/encode/bytes/mockapi.js.map +1 -0
- package/dist/specs/encode/datetime/mockapi.d.ts +3 -0
- package/dist/specs/encode/datetime/mockapi.d.ts.map +1 -0
- package/dist/specs/encode/datetime/mockapi.js +160 -0
- package/dist/specs/encode/datetime/mockapi.js.map +1 -0
- package/dist/specs/encode/duration/mockapi.d.ts +3 -0
- package/dist/specs/encode/duration/mockapi.d.ts.map +1 -0
- package/dist/specs/encode/duration/mockapi.js +116 -0
- package/dist/specs/encode/duration/mockapi.js.map +1 -0
- package/dist/specs/encode/numeric/mockapi.d.ts +3 -0
- package/dist/specs/encode/numeric/mockapi.d.ts.map +1 -0
- package/dist/specs/encode/numeric/mockapi.js +29 -0
- package/dist/specs/encode/numeric/mockapi.js.map +1 -0
- package/dist/specs/helper.d.ts +3 -0
- package/dist/specs/helper.d.ts.map +1 -0
- package/dist/specs/helper.js +7 -0
- package/dist/specs/helper.js.map +1 -0
- package/dist/specs/parameters/basic/mockapi.d.ts +3 -0
- package/dist/specs/parameters/basic/mockapi.d.ts.map +1 -0
- package/dist/specs/parameters/basic/mockapi.js +24 -0
- package/dist/specs/parameters/basic/mockapi.js.map +1 -0
- package/dist/specs/parameters/body-optionality/mockapi.d.ts +3 -0
- package/dist/specs/parameters/body-optionality/mockapi.d.ts.map +1 -0
- package/dist/specs/parameters/body-optionality/mockapi.js +62 -0
- package/dist/specs/parameters/body-optionality/mockapi.js.map +1 -0
- package/dist/specs/parameters/collection-format/mockapi.d.ts +3 -0
- package/dist/specs/parameters/collection-format/mockapi.d.ts.map +1 -0
- package/dist/specs/parameters/collection-format/mockapi.js +106 -0
- package/dist/specs/parameters/collection-format/mockapi.js.map +1 -0
- package/dist/specs/parameters/spread/mockapi.d.ts +3 -0
- package/dist/specs/parameters/spread/mockapi.d.ts.map +1 -0
- package/dist/specs/parameters/spread/mockapi.js +206 -0
- package/dist/specs/parameters/spread/mockapi.js.map +1 -0
- package/dist/specs/payload/json-merge-patch/mockapi.d.ts +40 -0
- package/dist/specs/payload/json-merge-patch/mockapi.d.ts.map +1 -0
- package/dist/specs/payload/json-merge-patch/mockapi.js +141 -0
- package/dist/specs/payload/json-merge-patch/mockapi.js.map +1 -0
- package/dist/specs/payload/media-type/mockapi.d.ts +3 -0
- package/dist/specs/payload/media-type/mockapi.d.ts.map +1 -0
- package/dist/specs/payload/media-type/mockapi.js +84 -0
- package/dist/specs/payload/media-type/mockapi.js.map +1 -0
- package/dist/specs/payload/multipart/mockapi.d.ts +3 -0
- package/dist/specs/payload/multipart/mockapi.d.ts.map +1 -0
- package/dist/specs/payload/multipart/mockapi.js +153 -0
- package/dist/specs/payload/multipart/mockapi.js.map +1 -0
- package/dist/specs/payload/xml/mockapi.d.ts +15 -0
- package/dist/specs/payload/xml/mockapi.d.ts.map +1 -0
- package/dist/specs/payload/xml/mockapi.js +189 -0
- package/dist/specs/payload/xml/mockapi.js.map +1 -0
- package/dist/specs/routes/mockapi.d.ts +3 -0
- package/dist/specs/routes/mockapi.d.ts.map +1 -0
- package/dist/specs/routes/mockapi.js +63 -0
- package/dist/specs/routes/mockapi.js.map +1 -0
- package/dist/specs/serialization/encoded-name/json/mockapi.d.ts +3 -0
- package/dist/specs/serialization/encoded-name/json/mockapi.d.ts.map +1 -0
- package/dist/specs/serialization/encoded-name/json/mockapi.js +32 -0
- package/dist/specs/serialization/encoded-name/json/mockapi.js.map +1 -0
- package/dist/specs/server/endpoint/not-defined/mockapi.d.ts +3 -0
- package/dist/specs/server/endpoint/not-defined/mockapi.d.ts.map +1 -0
- package/dist/specs/server/endpoint/not-defined/mockapi.js +15 -0
- package/dist/specs/server/endpoint/not-defined/mockapi.js.map +1 -0
- package/dist/specs/server/path/multiple/mockapi.d.ts +3 -0
- package/dist/specs/server/path/multiple/mockapi.d.ts.map +1 -0
- package/dist/specs/server/path/multiple/mockapi.js +27 -0
- package/dist/specs/server/path/multiple/mockapi.js.map +1 -0
- package/dist/specs/server/path/single/mockapi.d.ts +3 -0
- package/dist/specs/server/path/single/mockapi.d.ts.map +1 -0
- package/dist/specs/server/path/single/mockapi.js +15 -0
- package/dist/specs/server/path/single/mockapi.js.map +1 -0
- package/dist/specs/server/versions/not-versioned/mockapi.d.ts +3 -0
- package/dist/specs/server/versions/not-versioned/mockapi.d.ts.map +1 -0
- package/dist/specs/server/versions/not-versioned/mockapi.js +46 -0
- package/dist/specs/server/versions/not-versioned/mockapi.js.map +1 -0
- package/dist/specs/server/versions/versioned/mockapi.d.ts +3 -0
- package/dist/specs/server/versions/versioned/mockapi.d.ts.map +1 -0
- package/dist/specs/server/versions/versioned/mockapi.js +47 -0
- package/dist/specs/server/versions/versioned/mockapi.js.map +1 -0
- package/dist/specs/special-headers/conditional-request/mockapi.d.ts +3 -0
- package/dist/specs/special-headers/conditional-request/mockapi.d.ts.map +1 -0
- package/dist/specs/special-headers/conditional-request/mockapi.js +79 -0
- package/dist/specs/special-headers/conditional-request/mockapi.js.map +1 -0
- package/dist/specs/special-headers/repeatability/mockapi.d.ts +3 -0
- package/dist/specs/special-headers/repeatability/mockapi.d.ts.map +1 -0
- package/dist/specs/special-headers/repeatability/mockapi.js +36 -0
- package/dist/specs/special-headers/repeatability/mockapi.js.map +1 -0
- package/dist/specs/special-words/dec.d.ts +22 -0
- package/dist/specs/special-words/dec.d.ts.map +1 -0
- package/dist/specs/special-words/dec.js +37 -0
- package/dist/specs/special-words/dec.js.map +1 -0
- package/dist/specs/special-words/mockapi.d.ts +3 -0
- package/dist/specs/special-words/mockapi.d.ts.map +1 -0
- package/dist/specs/special-words/mockapi.js +246 -0
- package/dist/specs/special-words/mockapi.js.map +1 -0
- package/dist/specs/type/array/mockapi.d.ts +3 -0
- package/dist/specs/type/array/mockapi.d.ts.map +1 -0
- package/dist/specs/type/array/mockapi.js +104 -0
- package/dist/specs/type/array/mockapi.js.map +1 -0
- package/dist/specs/type/dictionary/mockapi.d.ts +3 -0
- package/dist/specs/type/dictionary/mockapi.d.ts.map +1 -0
- package/dist/specs/type/dictionary/mockapi.js +103 -0
- package/dist/specs/type/dictionary/mockapi.js.map +1 -0
- package/dist/specs/type/enum/extensible/mockapi.d.ts +3 -0
- package/dist/specs/type/enum/extensible/mockapi.d.ts.map +1 -0
- package/dist/specs/type/enum/extensible/mockapi.js +46 -0
- package/dist/specs/type/enum/extensible/mockapi.js.map +1 -0
- package/dist/specs/type/enum/fixed/mockapi.d.ts +3 -0
- package/dist/specs/type/enum/fixed/mockapi.d.ts.map +1 -0
- package/dist/specs/type/enum/fixed/mockapi.js +53 -0
- package/dist/specs/type/enum/fixed/mockapi.js.map +1 -0
- package/dist/specs/type/model/empty/mockapi.d.ts +3 -0
- package/dist/specs/type/model/empty/mockapi.d.ts.map +1 -0
- package/dist/specs/type/model/empty/mockapi.js +48 -0
- package/dist/specs/type/model/empty/mockapi.js.map +1 -0
- package/dist/specs/type/model/inheritance/enum-discriminator/mockapi.d.ts +3 -0
- package/dist/specs/type/model/inheritance/enum-discriminator/mockapi.d.ts.map +1 -0
- package/dist/specs/type/model/inheritance/enum-discriminator/mockapi.js +79 -0
- package/dist/specs/type/model/inheritance/enum-discriminator/mockapi.js.map +1 -0
- package/dist/specs/type/model/inheritance/nested-discriminator/mockapi.d.ts +3 -0
- package/dist/specs/type/model/inheritance/nested-discriminator/mockapi.d.ts.map +1 -0
- package/dist/specs/type/model/inheritance/nested-discriminator/mockapi.js +147 -0
- package/dist/specs/type/model/inheritance/nested-discriminator/mockapi.js.map +1 -0
- package/dist/specs/type/model/inheritance/not-discriminated/mockapi.d.ts +3 -0
- package/dist/specs/type/model/inheritance/not-discriminated/mockapi.d.ts.map +1 -0
- package/dist/specs/type/model/inheritance/not-discriminated/mockapi.js +47 -0
- package/dist/specs/type/model/inheritance/not-discriminated/mockapi.js.map +1 -0
- package/dist/specs/type/model/inheritance/recursive/mockapi.d.ts +3 -0
- package/dist/specs/type/model/inheritance/recursive/mockapi.d.ts.map +1 -0
- package/dist/specs/type/model/inheritance/recursive/mockapi.js +47 -0
- package/dist/specs/type/model/inheritance/recursive/mockapi.js.map +1 -0
- package/dist/specs/type/model/inheritance/single-discriminator/mockapi.d.ts +3 -0
- package/dist/specs/type/model/inheritance/single-discriminator/mockapi.d.ts.map +1 -0
- package/dist/specs/type/model/inheritance/single-discriminator/mockapi.js +122 -0
- package/dist/specs/type/model/inheritance/single-discriminator/mockapi.js.map +1 -0
- package/dist/specs/type/model/templated/mockapi.d.ts +3 -0
- package/dist/specs/type/model/templated/mockapi.d.ts.map +1 -0
- package/dist/specs/type/model/templated/mockapi.js +99 -0
- package/dist/specs/type/model/templated/mockapi.js.map +1 -0
- package/dist/specs/type/model/usage/mockapi.d.ts +3 -0
- package/dist/specs/type/model/usage/mockapi.d.ts.map +1 -0
- package/dist/specs/type/model/usage/mockapi.js +52 -0
- package/dist/specs/type/model/usage/mockapi.js.map +1 -0
- package/dist/specs/type/model/visibility/mockapi.d.ts +3 -0
- package/dist/specs/type/model/visibility/mockapi.d.ts.map +1 -0
- package/dist/specs/type/model/visibility/mockapi.js +138 -0
- package/dist/specs/type/model/visibility/mockapi.js.map +1 -0
- package/dist/specs/type/property/additional-properties/mockapi.d.ts +3 -0
- package/dist/specs/type/property/additional-properties/mockapi.d.ts.map +1 -0
- package/dist/specs/type/property/additional-properties/mockapi.js +346 -0
- package/dist/specs/type/property/additional-properties/mockapi.js.map +1 -0
- package/dist/specs/type/property/nullable/mockapi.d.ts +3 -0
- package/dist/specs/type/property/nullable/mockapi.d.ts.map +1 -0
- package/dist/specs/type/property/nullable/mockapi.js +147 -0
- package/dist/specs/type/property/nullable/mockapi.js.map +1 -0
- package/dist/specs/type/property/optionality/mockapi.d.ts +3 -0
- package/dist/specs/type/property/optionality/mockapi.d.ts.map +1 -0
- package/dist/specs/type/property/optionality/mockapi.js +197 -0
- package/dist/specs/type/property/optionality/mockapi.js.map +1 -0
- package/dist/specs/type/property/value-types/mockapi.d.ts +3 -0
- package/dist/specs/type/property/value-types/mockapi.d.ts.map +1 -0
- package/dist/specs/type/property/value-types/mockapi.js +213 -0
- package/dist/specs/type/property/value-types/mockapi.js.map +1 -0
- package/dist/specs/type/scalar/mockapi.d.ts +3 -0
- package/dist/specs/type/scalar/mockapi.d.ts.map +1 -0
- package/dist/specs/type/scalar/mockapi.js +274 -0
- package/dist/specs/type/scalar/mockapi.js.map +1 -0
- package/dist/specs/type/union/mockapi.d.ts +3 -0
- package/dist/specs/type/union/mockapi.d.ts.map +1 -0
- package/dist/specs/type/union/mockapi.js +113 -0
- package/dist/specs/type/union/mockapi.js.map +1 -0
- package/dist/specs/versioning/added/mockapi.d.ts +3 -0
- package/dist/specs/versioning/added/mockapi.d.ts.map +1 -0
- package/dist/specs/versioning/added/mockapi.js +76 -0
- package/dist/specs/versioning/added/mockapi.js.map +1 -0
- package/dist/specs/versioning/madeOptional/mockapi.d.ts +3 -0
- package/dist/specs/versioning/madeOptional/mockapi.d.ts.map +1 -0
- package/dist/specs/versioning/madeOptional/mockapi.js +24 -0
- package/dist/specs/versioning/madeOptional/mockapi.js.map +1 -0
- package/dist/specs/versioning/removed/mockapi.d.ts +3 -0
- package/dist/specs/versioning/removed/mockapi.d.ts.map +1 -0
- package/dist/specs/versioning/removed/mockapi.js +26 -0
- package/dist/specs/versioning/removed/mockapi.js.map +1 -0
- package/dist/specs/versioning/renamedFrom/mockapi.d.ts +3 -0
- package/dist/specs/versioning/renamedFrom/mockapi.d.ts.map +1 -0
- package/dist/specs/versioning/renamedFrom/mockapi.js +53 -0
- package/dist/specs/versioning/renamedFrom/mockapi.js.map +1 -0
- package/dist/specs/versioning/returnTypeChangedFrom/mockapi.d.ts +3 -0
- package/dist/specs/versioning/returnTypeChangedFrom/mockapi.d.ts.map +1 -0
- package/dist/specs/versioning/returnTypeChangedFrom/mockapi.js +25 -0
- package/dist/specs/versioning/returnTypeChangedFrom/mockapi.js.map +1 -0
- package/dist/specs/versioning/typeChangedFrom/mockapi.d.ts +3 -0
- package/dist/specs/versioning/typeChangedFrom/mockapi.d.ts.map +1 -0
- package/dist/specs/versioning/typeChangedFrom/mockapi.js +29 -0
- package/dist/specs/versioning/typeChangedFrom/mockapi.js.map +1 -0
- package/package.json +53 -0
- package/specs/README.md +3 -0
- package/specs/authentication/api-key/main.tsp +39 -0
- package/specs/authentication/api-key/mockapi.ts +47 -0
- package/specs/authentication/commonapi.ts +43 -0
- package/specs/authentication/http/custom/main.tsp +39 -0
- package/specs/authentication/http/custom/mockapi.ts +47 -0
- package/specs/authentication/oauth2/main.tsp +44 -0
- package/specs/authentication/oauth2/mockapi.ts +44 -0
- package/specs/authentication/union/main.tsp +29 -0
- package/specs/authentication/union/mockapi.ts +39 -0
- package/specs/encode/bytes/main.tsp +369 -0
- package/specs/encode/bytes/mockapi.ts +309 -0
- package/specs/encode/datetime/main.tsp +344 -0
- package/specs/encode/datetime/mockapi.ts +274 -0
- package/specs/encode/duration/main.tsp +322 -0
- package/specs/encode/duration/mockapi.ts +204 -0
- package/specs/encode/numeric/main.tsp +71 -0
- package/specs/encode/numeric/mockapi.ts +39 -0
- package/specs/helper.ts +8 -0
- package/specs/parameters/basic/main.tsp +61 -0
- package/specs/parameters/basic/mockapi.ts +29 -0
- package/specs/parameters/body-optionality/main.tsp +63 -0
- package/specs/parameters/body-optionality/mockapi.ts +71 -0
- package/specs/parameters/collection-format/main.tsp +95 -0
- package/specs/parameters/collection-format/mockapi.ts +113 -0
- package/specs/parameters/spread/main.tsp +340 -0
- package/specs/parameters/spread/mockapi.ts +216 -0
- package/specs/payload/json-merge-patch/main.tsp +183 -0
- package/specs/payload/json-merge-patch/mockapi.ts +146 -0
- package/specs/payload/media-type/main.tsp +54 -0
- package/specs/payload/media-type/mockapi.ts +88 -0
- package/specs/payload/multipart/main.tsp +499 -0
- package/specs/payload/multipart/mockapi.ts +226 -0
- package/specs/payload/xml/main.tsp +312 -0
- package/specs/payload/xml/mockapi.ts +244 -0
- package/specs/routes/main.tsp +476 -0
- package/specs/routes/mockapi.ts +158 -0
- package/specs/scratch/.gitignore +3 -0
- package/specs/serialization/encoded-name/json/main.tsp +45 -0
- package/specs/serialization/encoded-name/json/mockapi.ts +34 -0
- package/specs/server/endpoint/not-defined/main.tsp +19 -0
- package/specs/server/endpoint/not-defined/mockapi.ts +16 -0
- package/specs/server/path/multiple/main.tsp +46 -0
- package/specs/server/path/multiple/mockapi.ts +29 -0
- package/specs/server/path/single/main.tsp +23 -0
- package/specs/server/path/single/mockapi.ts +16 -0
- package/specs/server/versions/not-versioned/main.tsp +39 -0
- package/specs/server/versions/not-versioned/mockapi.ts +55 -0
- package/specs/server/versions/versioned/main.tsp +65 -0
- package/specs/server/versions/versioned/mockapi.ts +68 -0
- package/specs/special-headers/conditional-request/main.tsp +89 -0
- package/specs/special-headers/conditional-request/mockapi.ts +83 -0
- package/specs/special-headers/repeatability/main.tsp +39 -0
- package/specs/special-headers/repeatability/mockapi.ts +47 -0
- package/specs/special-words/dec.js +52 -0
- package/specs/special-words/main.tsp +238 -0
- package/specs/special-words/mockapi.ts +407 -0
- package/specs/type/array/main.tsp +132 -0
- package/specs/type/array/mockapi.ts +119 -0
- package/specs/type/dictionary/main.tsp +122 -0
- package/specs/type/dictionary/mockapi.ts +115 -0
- package/specs/type/enum/extensible/main.tsp +64 -0
- package/specs/type/enum/extensible/mockapi.ts +55 -0
- package/specs/type/enum/fixed/main.tsp +60 -0
- package/specs/type/enum/fixed/mockapi.ts +55 -0
- package/specs/type/model/empty/main.tsp +39 -0
- package/specs/type/model/empty/mockapi.ts +51 -0
- package/specs/type/model/inheritance/enum-discriminator/main.tsp +169 -0
- package/specs/type/model/inheritance/enum-discriminator/mockapi.ts +99 -0
- package/specs/type/model/inheritance/nested-discriminator/main.tsp +223 -0
- package/specs/type/model/inheritance/nested-discriminator/mockapi.ts +150 -0
- package/specs/type/model/inheritance/not-discriminated/main.tsp +53 -0
- package/specs/type/model/inheritance/not-discriminated/mockapi.ts +49 -0
- package/specs/type/model/inheritance/recursive/main.tsp +70 -0
- package/specs/type/model/inheritance/recursive/mockapi.ts +48 -0
- package/specs/type/model/inheritance/single-discriminator/main.tsp +171 -0
- package/specs/type/model/inheritance/single-discriminator/mockapi.ts +126 -0
- package/specs/type/model/templated/main.tsp +130 -0
- package/specs/type/model/templated/mockapi.ts +102 -0
- package/specs/type/model/usage/main.tsp +48 -0
- package/specs/type/model/usage/mockapi.ts +56 -0
- package/specs/type/model/visibility/main.tsp +152 -0
- package/specs/type/model/visibility/mockapi.ts +139 -0
- package/specs/type/property/additional-properties/main.tsp +591 -0
- package/specs/type/property/additional-properties/mockapi.ts +477 -0
- package/specs/type/property/nullable/client.tsp +21 -0
- package/specs/type/property/nullable/main.tsp +162 -0
- package/specs/type/property/nullable/mockapi.ts +202 -0
- package/specs/type/property/optionality/main.tsp +258 -0
- package/specs/type/property/optionality/mockapi.ts +308 -0
- package/specs/type/property/value-types/main.tsp +285 -0
- package/specs/type/property/value-types/mockapi.ts +297 -0
- package/specs/type/scalar/main.tsp +164 -0
- package/specs/type/scalar/mockapi.ts +280 -0
- package/specs/type/union/main.tsp +262 -0
- package/specs/type/union/mockapi.ts +137 -0
- package/specs/versioning/added/main.tsp +135 -0
- package/specs/versioning/added/mockapi.ts +79 -0
- package/specs/versioning/madeOptional/main.tsp +64 -0
- package/specs/versioning/madeOptional/mockapi.ts +25 -0
- package/specs/versioning/removed/main.tsp +125 -0
- package/specs/versioning/removed/mockapi.ts +27 -0
- package/specs/versioning/renamedFrom/main.tsp +111 -0
- package/specs/versioning/renamedFrom/mockapi.ts +55 -0
- package/specs/versioning/returnTypeChangedFrom/main.tsp +56 -0
- package/specs/versioning/returnTypeChangedFrom/mockapi.ts +26 -0
- package/specs/versioning/typeChangedFrom/main.tsp +70 -0
- package/specs/versioning/typeChangedFrom/mockapi.ts +30 -0
- package/temp/.tsbuildinfo +1 -0
- package/tsconfig.build.json +9 -0
- package/tsconfig.json +11 -0
- package/tspconfig.yaml +2 -0
|
@@ -0,0 +1,591 @@
|
|
|
1
|
+
import "@typespec/http";
|
|
2
|
+
import "@typespec/spec-lib";
|
|
3
|
+
|
|
4
|
+
using TypeSpec.Http;
|
|
5
|
+
using Azure.ClientGenerator.Core;
|
|
6
|
+
|
|
7
|
+
@doc("Tests for additional properties of models")
|
|
8
|
+
@scenarioService("/type/property/additionalProperties")
|
|
9
|
+
namespace Type.Property.AdditionalProperties;
|
|
10
|
+
|
|
11
|
+
@doc("Template to have models operations")
|
|
12
|
+
interface ModelOperations<TModel, TDoc extends string> {
|
|
13
|
+
#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "For testing"
|
|
14
|
+
@scenario
|
|
15
|
+
@scenarioDoc(
|
|
16
|
+
"""
|
|
17
|
+
Expected response body:
|
|
18
|
+
```json
|
|
19
|
+
{doc}
|
|
20
|
+
```
|
|
21
|
+
""",
|
|
22
|
+
{
|
|
23
|
+
doc: TDoc,
|
|
24
|
+
}
|
|
25
|
+
)
|
|
26
|
+
@get
|
|
27
|
+
@doc("Get call")
|
|
28
|
+
get(): TModel;
|
|
29
|
+
|
|
30
|
+
#suppress "@azure-tools/typespec-azure-core/use-standard-operations" "For testing"
|
|
31
|
+
#suppress "@azure-tools/typespec-azure-core/bad-record-type" "For testing"
|
|
32
|
+
@scenario
|
|
33
|
+
@scenarioDoc(
|
|
34
|
+
"""
|
|
35
|
+
Expected input body:
|
|
36
|
+
```json
|
|
37
|
+
{doc}
|
|
38
|
+
```
|
|
39
|
+
""",
|
|
40
|
+
{
|
|
41
|
+
doc: TDoc,
|
|
42
|
+
}
|
|
43
|
+
)
|
|
44
|
+
@put
|
|
45
|
+
@doc("Put operation")
|
|
46
|
+
put(@body @doc("body") body: TModel): void;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// ********************************************** Record<unknown> **********************************************
|
|
50
|
+
#suppress "@azure-tools/typespec-azure-core/bad-record-type" "For testing"
|
|
51
|
+
@doc("The model extends from Record<unknown> type.")
|
|
52
|
+
model ExtendsUnknownAdditionalProperties extends Record<unknown> {
|
|
53
|
+
@doc("The name property")
|
|
54
|
+
name: string;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
@route("/extendsRecordUnknown")
|
|
58
|
+
@operationGroup
|
|
59
|
+
interface ExtendsUnknown
|
|
60
|
+
extends ModelOperations<
|
|
61
|
+
ExtendsUnknownAdditionalProperties,
|
|
62
|
+
"{'name': 'ExtendsUnknownAdditionalProperties', 'prop1': 32, 'prop2': true, 'prop3': 'abc'}"
|
|
63
|
+
> {}
|
|
64
|
+
|
|
65
|
+
@doc("The model extends from a type that extends from Record<unknown>.")
|
|
66
|
+
model ExtendsUnknownAdditionalPropertiesDerived extends ExtendsUnknownAdditionalProperties {
|
|
67
|
+
@doc("The index property")
|
|
68
|
+
index: int32;
|
|
69
|
+
|
|
70
|
+
@doc("The age property")
|
|
71
|
+
age?: float32;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
@route("/extendsRecordUnknownDerived")
|
|
75
|
+
@operationGroup
|
|
76
|
+
interface ExtendsUnknownDerived
|
|
77
|
+
extends ModelOperations<
|
|
78
|
+
ExtendsUnknownAdditionalPropertiesDerived,
|
|
79
|
+
"{'name': 'ExtendsUnknownAdditionalProperties', 'index': 314, 'age': 2.71875, 'prop1': 32, 'prop2': true, 'prop3': 'abc'}"
|
|
80
|
+
> {}
|
|
81
|
+
|
|
82
|
+
@doc("The model extends from Record<unknown> with a discriminator.")
|
|
83
|
+
@discriminator("kind")
|
|
84
|
+
model ExtendsUnknownAdditionalPropertiesDiscriminated extends Record<unknown> {
|
|
85
|
+
@doc("The name property")
|
|
86
|
+
name: string;
|
|
87
|
+
|
|
88
|
+
@doc("The discriminator")
|
|
89
|
+
kind: string;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
@doc("The derived discriminated type")
|
|
93
|
+
model ExtendsUnknownAdditionalPropertiesDiscriminatedDerived
|
|
94
|
+
extends ExtendsUnknownAdditionalPropertiesDiscriminated {
|
|
95
|
+
kind: "derived";
|
|
96
|
+
|
|
97
|
+
@doc("The index property")
|
|
98
|
+
index: int32;
|
|
99
|
+
|
|
100
|
+
@doc("The age property")
|
|
101
|
+
age?: float32;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
@route("/extendsUnknownDiscriminated")
|
|
105
|
+
@operationGroup
|
|
106
|
+
interface ExtendsUnknownDiscriminated
|
|
107
|
+
extends ModelOperations<
|
|
108
|
+
ExtendsUnknownAdditionalPropertiesDiscriminated,
|
|
109
|
+
"{'kind': 'derived', 'name': 'Derived', 'index': 314, 'age': 2.71875, 'prop1': 32, 'prop2': true, 'prop3': 'abc'}"
|
|
110
|
+
> {}
|
|
111
|
+
|
|
112
|
+
#suppress "@azure-tools/typespec-azure-core/bad-record-type" "For testing"
|
|
113
|
+
@doc("The model is from Record<unknown> type.")
|
|
114
|
+
model IsUnknownAdditionalProperties is Record<unknown> {
|
|
115
|
+
@doc("The name property")
|
|
116
|
+
name: string;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
@route("/isRecordUnknown")
|
|
120
|
+
@operationGroup
|
|
121
|
+
interface IsUnknown
|
|
122
|
+
extends ModelOperations<
|
|
123
|
+
IsUnknownAdditionalProperties,
|
|
124
|
+
"{'name': 'IsUnknownAdditionalProperties', 'prop1': 32, 'prop2': true, 'prop3': 'abc'}"
|
|
125
|
+
> {}
|
|
126
|
+
|
|
127
|
+
@doc("The model extends from a type that is Record<unknown> type")
|
|
128
|
+
model IsUnknownAdditionalPropertiesDerived extends IsUnknownAdditionalProperties {
|
|
129
|
+
@doc("The index property")
|
|
130
|
+
index: int32;
|
|
131
|
+
|
|
132
|
+
@doc("The age property")
|
|
133
|
+
age?: float32;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
@route("/isRecordUnknownDerived")
|
|
137
|
+
@operationGroup
|
|
138
|
+
interface IsUnknownDerived
|
|
139
|
+
extends ModelOperations<
|
|
140
|
+
IsUnknownAdditionalPropertiesDerived,
|
|
141
|
+
"{'name': 'IsUnknownAdditionalProperties', 'index': 314, 'age': 2.71875, 'prop1': 32, 'prop2': true, 'prop3': 'abc'}"
|
|
142
|
+
> {}
|
|
143
|
+
|
|
144
|
+
@doc("The model is Record<unknown> with a discriminator.")
|
|
145
|
+
@discriminator("kind")
|
|
146
|
+
model IsUnknownAdditionalPropertiesDiscriminated is Record<unknown> {
|
|
147
|
+
@doc("The name property")
|
|
148
|
+
name: string;
|
|
149
|
+
|
|
150
|
+
@doc("The discriminator")
|
|
151
|
+
kind: string;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
@doc("The derived discriminated type")
|
|
155
|
+
model IsUnknownAdditionalPropertiesDiscriminatedDerived
|
|
156
|
+
extends IsUnknownAdditionalPropertiesDiscriminated {
|
|
157
|
+
kind: "derived";
|
|
158
|
+
|
|
159
|
+
@doc("The index property")
|
|
160
|
+
index: int32;
|
|
161
|
+
|
|
162
|
+
@doc("The age property")
|
|
163
|
+
age?: float32;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
@route("/isUnknownDiscriminated")
|
|
167
|
+
@operationGroup
|
|
168
|
+
interface IsUnknownDiscriminated
|
|
169
|
+
extends ModelOperations<
|
|
170
|
+
IsUnknownAdditionalPropertiesDiscriminated,
|
|
171
|
+
"{'kind': 'derived', 'name': 'Derived', 'index': 314, 'age': 2.71875, 'prop1': 32, 'prop2': true, 'prop3': 'abc'}"
|
|
172
|
+
> {}
|
|
173
|
+
|
|
174
|
+
// ***************** Known properties type is the same with additional properties type **************************
|
|
175
|
+
// ********************************************** Record<string> **********************************************
|
|
176
|
+
#suppress "@azure-tools/typespec-azure-core/bad-record-type" "For testing"
|
|
177
|
+
@doc("The model extends from Record<string> type.")
|
|
178
|
+
model ExtendsStringAdditionalProperties extends Record<string> {
|
|
179
|
+
@doc("The name property")
|
|
180
|
+
name: string;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
@route("/extendsRecordString")
|
|
184
|
+
@operationGroup
|
|
185
|
+
interface ExtendsString
|
|
186
|
+
extends ModelOperations<
|
|
187
|
+
ExtendsStringAdditionalProperties,
|
|
188
|
+
"{'name': 'ExtendsStringAdditionalProperties', 'prop': 'abc'}"
|
|
189
|
+
> {}
|
|
190
|
+
|
|
191
|
+
#suppress "@azure-tools/typespec-azure-core/bad-record-type" "For testing"
|
|
192
|
+
@doc("The model is from Record<string> type.")
|
|
193
|
+
model IsStringAdditionalProperties is Record<string> {
|
|
194
|
+
@doc("The name property")
|
|
195
|
+
name: string;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
@route("/isRecordstring")
|
|
199
|
+
@operationGroup
|
|
200
|
+
interface IsString
|
|
201
|
+
extends ModelOperations<
|
|
202
|
+
IsStringAdditionalProperties,
|
|
203
|
+
"{'name': 'IsStringAdditionalProperties', 'prop': 'abc'}"
|
|
204
|
+
> {}
|
|
205
|
+
|
|
206
|
+
@doc("The model spread Record<string> with the same known property type")
|
|
207
|
+
model SpreadStringRecord {
|
|
208
|
+
@doc("The name property")
|
|
209
|
+
name: string;
|
|
210
|
+
|
|
211
|
+
...Record<string>;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
@route("/spreadRecordString")
|
|
215
|
+
@operationGroup
|
|
216
|
+
interface SpreadString
|
|
217
|
+
extends ModelOperations<SpreadStringRecord, "{'name': 'SpreadSpringRecord', 'prop': 'abc'}"> {}
|
|
218
|
+
|
|
219
|
+
// ********************************************** Record<float32> **********************************************
|
|
220
|
+
#suppress "@azure-tools/typespec-azure-core/bad-record-type" "For testing"
|
|
221
|
+
@doc("The model extends from Record<float32> type.")
|
|
222
|
+
model ExtendsFloatAdditionalProperties extends Record<float32> {
|
|
223
|
+
@doc("The id property")
|
|
224
|
+
id: float32;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
@route("/extendsRecordFloat")
|
|
228
|
+
@operationGroup
|
|
229
|
+
interface ExtendsFloat
|
|
230
|
+
extends ModelOperations<ExtendsFloatAdditionalProperties, "{'id': 43.125, 'prop': 43.125}"> {}
|
|
231
|
+
|
|
232
|
+
#suppress "@azure-tools/typespec-azure-core/bad-record-type" "For testing"
|
|
233
|
+
@doc("The model is from Record<float32> type.")
|
|
234
|
+
model IsFloatAdditionalProperties is Record<float32> {
|
|
235
|
+
@doc("The id property")
|
|
236
|
+
id: float32;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
@route("/isRecordFloat")
|
|
240
|
+
@operationGroup
|
|
241
|
+
interface IsFloat
|
|
242
|
+
extends ModelOperations<IsFloatAdditionalProperties, "{'id': 43.125, 'prop': 43.125}"> {}
|
|
243
|
+
|
|
244
|
+
@doc("The model spread Record<float32> with the same known property type")
|
|
245
|
+
model SpreadFloatRecord {
|
|
246
|
+
@doc("The id property")
|
|
247
|
+
id: float32;
|
|
248
|
+
|
|
249
|
+
...Record<float32>;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
@route("/spreadRecordFloat")
|
|
253
|
+
@operationGroup
|
|
254
|
+
interface SpreadFloat
|
|
255
|
+
extends ModelOperations<SpreadFloatRecord, "{'id': 43.125, 'prop': 43.125}"> {}
|
|
256
|
+
|
|
257
|
+
// ********************************************** Record<Model> **********************************************
|
|
258
|
+
@doc("model for record")
|
|
259
|
+
model ModelForRecord {
|
|
260
|
+
@doc("The state property")
|
|
261
|
+
state: string;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
#suppress "@azure-tools/typespec-azure-core/bad-record-type" "For testing"
|
|
265
|
+
@doc("The model extends from Record<ModelForRecord> type.")
|
|
266
|
+
model ExtendsModelAdditionalProperties extends Record<ModelForRecord> {
|
|
267
|
+
knownProp: ModelForRecord;
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
@route("/extendsRecordModel")
|
|
271
|
+
@operationGroup
|
|
272
|
+
interface ExtendsModel
|
|
273
|
+
extends ModelOperations<
|
|
274
|
+
ExtendsModelAdditionalProperties,
|
|
275
|
+
"{'knownProp': {'state': 'ok'}, 'prop': {'state': 'ok'}}"
|
|
276
|
+
> {}
|
|
277
|
+
|
|
278
|
+
#suppress "@azure-tools/typespec-azure-core/bad-record-type" "For testing"
|
|
279
|
+
@doc("The model is from Record<ModelForRecord> type.")
|
|
280
|
+
model IsModelAdditionalProperties is Record<ModelForRecord> {
|
|
281
|
+
knownProp: ModelForRecord;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
@route("/isRecordModel")
|
|
285
|
+
@operationGroup
|
|
286
|
+
interface IsModel
|
|
287
|
+
extends ModelOperations<
|
|
288
|
+
IsModelAdditionalProperties,
|
|
289
|
+
"{'knownProp': {'state': 'ok'}, 'prop': {'state': 'ok'}}"
|
|
290
|
+
> {}
|
|
291
|
+
|
|
292
|
+
@doc("The model spread Record<ModelForRecord> with the same known property type")
|
|
293
|
+
model SpreadModelRecord {
|
|
294
|
+
knownProp: ModelForRecord;
|
|
295
|
+
...Record<ModelForRecord>;
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
@route("/spreadRecordModel")
|
|
299
|
+
@operationGroup
|
|
300
|
+
interface SpreadModel
|
|
301
|
+
extends ModelOperations<
|
|
302
|
+
SpreadModelRecord,
|
|
303
|
+
"{'knownProp': {'state': 'ok'}, 'prop': {'state': 'ok'}}"
|
|
304
|
+
> {}
|
|
305
|
+
|
|
306
|
+
// ********************************************** Record<Model[]> **********************************************
|
|
307
|
+
#suppress "@azure-tools/typespec-azure-core/bad-record-type" "For testing"
|
|
308
|
+
@doc("The model extends from Record<ModelForRecord[]> type.")
|
|
309
|
+
model ExtendsModelArrayAdditionalProperties extends Record<ModelForRecord[]> {
|
|
310
|
+
knownProp: ModelForRecord[];
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
@route("/extendsRecordModelArray")
|
|
314
|
+
@operationGroup
|
|
315
|
+
interface ExtendsModelArray
|
|
316
|
+
extends ModelOperations<
|
|
317
|
+
ExtendsModelArrayAdditionalProperties,
|
|
318
|
+
"{'knownProp': [{'state': 'ok'}, {'state': 'ok'}], 'prop': [{'state': 'ok'}, {'state': 'ok'}]}"
|
|
319
|
+
> {}
|
|
320
|
+
|
|
321
|
+
#suppress "@azure-tools/typespec-azure-core/bad-record-type" "For testing"
|
|
322
|
+
@doc("The model is from Record<ModelForRecord[]> type.")
|
|
323
|
+
model IsModelArrayAdditionalProperties is Record<ModelForRecord[]> {
|
|
324
|
+
knownProp: ModelForRecord[];
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
@route("/isRecordModelArray")
|
|
328
|
+
@operationGroup
|
|
329
|
+
interface IsModelArray
|
|
330
|
+
extends ModelOperations<
|
|
331
|
+
IsModelArrayAdditionalProperties,
|
|
332
|
+
"{'knownProp': [{'state': 'ok'}, {'state': 'ok'}], 'prop': [{'state': 'ok'}, {'state': 'ok'}]}"
|
|
333
|
+
> {}
|
|
334
|
+
|
|
335
|
+
model SpreadModelArrayRecord {
|
|
336
|
+
knownProp: ModelForRecord[];
|
|
337
|
+
...Record<ModelForRecord[]>;
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
@route("/spreadRecordModelArray")
|
|
341
|
+
@operationGroup
|
|
342
|
+
interface SpreadModelArray
|
|
343
|
+
extends ModelOperations<
|
|
344
|
+
SpreadModelArrayRecord,
|
|
345
|
+
"{'knownProp': [{'state': 'ok'}, {'state': 'ok'}], 'prop': [{'state': 'ok'}, {'state': 'ok'}]}"
|
|
346
|
+
> {}
|
|
347
|
+
|
|
348
|
+
// ****************** Known properties type is different from additional properties type **************************
|
|
349
|
+
// ********************************************** Record<string> **********************************************
|
|
350
|
+
@doc("The model spread Record<string> with the different known property type")
|
|
351
|
+
model DifferentSpreadStringRecord {
|
|
352
|
+
@doc("The name property")
|
|
353
|
+
id: float32;
|
|
354
|
+
|
|
355
|
+
...Record<string>;
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
@route("/spreadDifferentRecordString")
|
|
359
|
+
@operationGroup
|
|
360
|
+
interface SpreadDifferentString
|
|
361
|
+
extends ModelOperations<DifferentSpreadStringRecord, "{'id': 43.125, 'prop': 'abc'}"> {}
|
|
362
|
+
|
|
363
|
+
// ********************************************** Record<float32> **********************************************
|
|
364
|
+
@doc("The model spread Record<float32> with the different known property type")
|
|
365
|
+
model DifferentSpreadFloatRecord {
|
|
366
|
+
@doc("The id property")
|
|
367
|
+
name: string;
|
|
368
|
+
|
|
369
|
+
...Record<float32>;
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
@route("/spreadDifferentRecordFloat")
|
|
373
|
+
@operationGroup
|
|
374
|
+
interface SpreadDifferentFloat
|
|
375
|
+
extends ModelOperations<DifferentSpreadFloatRecord, "{'name': 'abc', 'prop': 43.125}"> {}
|
|
376
|
+
|
|
377
|
+
// ********************************************** Record<Model> **********************************************
|
|
378
|
+
@doc("The model spread Record<ModelForRecord> with the different known property type")
|
|
379
|
+
model DifferentSpreadModelRecord {
|
|
380
|
+
knownProp: string;
|
|
381
|
+
...Record<ModelForRecord>;
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
@route("/spreadDifferentRecordModel")
|
|
385
|
+
@operationGroup
|
|
386
|
+
interface SpreadDifferentModel
|
|
387
|
+
extends ModelOperations<
|
|
388
|
+
DifferentSpreadModelRecord,
|
|
389
|
+
"{'knownProp': 'abc', 'prop': {'state': 'ok'}}"
|
|
390
|
+
> {}
|
|
391
|
+
|
|
392
|
+
// ********************************************** Record<Model[]> **********************************************
|
|
393
|
+
@doc("The model spread Record<ModelForRecord[]> with the different known property type")
|
|
394
|
+
model DifferentSpreadModelArrayRecord {
|
|
395
|
+
knownProp: string;
|
|
396
|
+
...Record<ModelForRecord[]>;
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
@route("/spreadDifferentRecordModelArray")
|
|
400
|
+
@operationGroup
|
|
401
|
+
interface SpreadDifferentModelArray
|
|
402
|
+
extends ModelOperations<
|
|
403
|
+
DifferentSpreadModelArrayRecord,
|
|
404
|
+
"{'knownProp': 'abc', 'prop': [{'state': 'ok'}, {'state': 'ok'}]}"
|
|
405
|
+
> {}
|
|
406
|
+
|
|
407
|
+
// ****************** extends model has spread Record<string> **************************
|
|
408
|
+
@doc("The model extends from a model that spread Record<string> with the different known property type")
|
|
409
|
+
model DifferentSpreadStringDerived extends DifferentSpreadStringRecord {
|
|
410
|
+
@doc("The index property")
|
|
411
|
+
derivedProp: string;
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
@route("/extendsDifferentSpreadString")
|
|
415
|
+
@operationGroup
|
|
416
|
+
interface ExtendsDifferentSpreadString
|
|
417
|
+
extends ModelOperations<
|
|
418
|
+
DifferentSpreadStringDerived,
|
|
419
|
+
"{'id': 43.125, 'prop': 'abc', 'derivedProp': 'abc'}"
|
|
420
|
+
> {}
|
|
421
|
+
|
|
422
|
+
// ****************** extends model has spread Record<float32> **************************
|
|
423
|
+
@doc("The model extends from a model that spread Record<float32> with the different known property type")
|
|
424
|
+
model DifferentSpreadFloatDerived extends DifferentSpreadFloatRecord {
|
|
425
|
+
@doc("The index property")
|
|
426
|
+
derivedProp: float32;
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
@route("/extendsDifferentSpreadFloat")
|
|
430
|
+
@operationGroup
|
|
431
|
+
interface ExtendsDifferentSpreadFloat
|
|
432
|
+
extends ModelOperations<
|
|
433
|
+
DifferentSpreadFloatDerived,
|
|
434
|
+
"{'name': 'abc', 'prop': 43.125, 'derivedProp': 43.125}"
|
|
435
|
+
> {}
|
|
436
|
+
|
|
437
|
+
// ****************** extends model has spread Record<Model> **************************
|
|
438
|
+
|
|
439
|
+
@doc("The model extends from a model that spread Record<ModelForRecord> with the different known property type")
|
|
440
|
+
model DifferentSpreadModelDerived extends DifferentSpreadModelRecord {
|
|
441
|
+
@doc("The index property")
|
|
442
|
+
derivedProp: ModelForRecord;
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
@route("/extendsDifferentSpreadModel")
|
|
446
|
+
@operationGroup
|
|
447
|
+
interface ExtendsDifferentSpreadModel
|
|
448
|
+
extends ModelOperations<
|
|
449
|
+
DifferentSpreadModelDerived,
|
|
450
|
+
"{'knownProp': 'abc', 'prop': {'state': 'ok'}, 'derivedProp': {'state': 'ok'}}"
|
|
451
|
+
> {}
|
|
452
|
+
|
|
453
|
+
// ****************** extends model has spread Record<Model[]> **************************
|
|
454
|
+
@doc("The model extends from a model that spread Record<ModelForRecord[]> with the different known property type")
|
|
455
|
+
model DifferentSpreadModelArrayDerived extends DifferentSpreadModelArrayRecord {
|
|
456
|
+
@doc("The index property")
|
|
457
|
+
derivedProp: ModelForRecord[];
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
@route("/extendsDifferentSpreadModelArray")
|
|
461
|
+
@operationGroup
|
|
462
|
+
interface ExtendsDifferentSpreadModelArray
|
|
463
|
+
extends ModelOperations<
|
|
464
|
+
DifferentSpreadModelArrayDerived,
|
|
465
|
+
"{'knownProp': 'abc', 'prop': [{'state': 'ok'}, {'state': 'ok'}], 'derivedProp': [{'state': 'ok'}, {'state': 'ok'}]}"
|
|
466
|
+
> {}
|
|
467
|
+
|
|
468
|
+
// ****************** multiple spread of records **************************
|
|
469
|
+
@doc("The model spread Record<string> and Record<float32>")
|
|
470
|
+
model MultipleSpreadRecord {
|
|
471
|
+
@doc("The name property")
|
|
472
|
+
flag: boolean;
|
|
473
|
+
|
|
474
|
+
...Record<string>;
|
|
475
|
+
...Record<float32>;
|
|
476
|
+
}
|
|
477
|
+
|
|
478
|
+
@route("/multipleSpreadRecord")
|
|
479
|
+
@operationGroup
|
|
480
|
+
interface MultipleSpread
|
|
481
|
+
extends ModelOperations<
|
|
482
|
+
MultipleSpreadRecord,
|
|
483
|
+
"{'flag': true, 'prop1': 'abc', 'prop2': 43.125}"
|
|
484
|
+
> {}
|
|
485
|
+
|
|
486
|
+
// ****************** spread record of unions **************************
|
|
487
|
+
@doc("The model spread Record<string | float32>")
|
|
488
|
+
model SpreadRecordForUnion {
|
|
489
|
+
@doc("The name property")
|
|
490
|
+
flag: boolean;
|
|
491
|
+
|
|
492
|
+
...Record<string | float32>;
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
@route("/spreadRecordUnion")
|
|
496
|
+
@operationGroup
|
|
497
|
+
interface SpreadRecordUnion
|
|
498
|
+
extends ModelOperations<
|
|
499
|
+
SpreadRecordForUnion,
|
|
500
|
+
"{'flag': true, 'prop1': 'abc', 'prop2': 43.125}"
|
|
501
|
+
> {}
|
|
502
|
+
|
|
503
|
+
// ****************** spread record of discriminated unions **************************
|
|
504
|
+
@discriminator("kind")
|
|
505
|
+
union WidgetData {
|
|
506
|
+
kind0: WidgetData0,
|
|
507
|
+
kind1: WidgetData1,
|
|
508
|
+
}
|
|
509
|
+
|
|
510
|
+
model WidgetData0 {
|
|
511
|
+
kind: "kind0";
|
|
512
|
+
fooProp: string;
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
model WidgetData1 {
|
|
516
|
+
kind: "kind1";
|
|
517
|
+
start: utcDateTime;
|
|
518
|
+
end?: utcDateTime;
|
|
519
|
+
}
|
|
520
|
+
|
|
521
|
+
model WidgetData2 {
|
|
522
|
+
kind: "kind1";
|
|
523
|
+
start: string;
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
@doc("The model spread Record<WidgetData>")
|
|
527
|
+
model SpreadRecordForDiscriminatedUnion {
|
|
528
|
+
@doc("The name property")
|
|
529
|
+
name: string;
|
|
530
|
+
|
|
531
|
+
...Record<WidgetData>;
|
|
532
|
+
}
|
|
533
|
+
|
|
534
|
+
@route("/spreadRecordDiscriminatedUnion")
|
|
535
|
+
@operationGroup
|
|
536
|
+
interface SpreadRecordDiscriminatedUnion
|
|
537
|
+
extends ModelOperations<
|
|
538
|
+
SpreadRecordForDiscriminatedUnion,
|
|
539
|
+
"{'name': 'abc', 'prop1': {'kind': 'kind0', 'fooProp': 'abc'}, 'prop2': {'kind': 'kind1', 'start': '2021-01-01T00:00:00Z', 'end': '2021-01-02T00:00:00Z'}}"
|
|
540
|
+
> {}
|
|
541
|
+
|
|
542
|
+
// ****************** spread record of non-discriminated unions but could guess a discriminator **************************
|
|
543
|
+
@doc("The model spread Record<WidgetData0 | WidgetData1>")
|
|
544
|
+
model SpreadRecordForNonDiscriminatedUnion {
|
|
545
|
+
@doc("The name property")
|
|
546
|
+
name: string;
|
|
547
|
+
|
|
548
|
+
...Record<WidgetData0 | WidgetData1>;
|
|
549
|
+
}
|
|
550
|
+
|
|
551
|
+
@route("/spreadRecordNonDiscriminatedUnion")
|
|
552
|
+
@operationGroup
|
|
553
|
+
interface SpreadRecordNonDiscriminatedUnion
|
|
554
|
+
extends ModelOperations<
|
|
555
|
+
SpreadRecordForNonDiscriminatedUnion,
|
|
556
|
+
"{'name': 'abc', 'prop1': {'kind': 'kind0', 'fooProp': 'abc'}, 'prop2': {'kind': 'kind1', 'start': '2021-01-01T00:00:00Z', 'end': '2021-01-02T00:00:00Z'}}"
|
|
557
|
+
> {}
|
|
558
|
+
|
|
559
|
+
// ****************** spread record of non-discriminated unions **************************
|
|
560
|
+
@doc("The model spread Record<WidgetData2 | WidgetData1>")
|
|
561
|
+
model SpreadRecordForNonDiscriminatedUnion2 {
|
|
562
|
+
@doc("The name property")
|
|
563
|
+
name: string;
|
|
564
|
+
|
|
565
|
+
...Record<WidgetData2 | WidgetData1>;
|
|
566
|
+
}
|
|
567
|
+
|
|
568
|
+
@route("/spreadRecordNonDiscriminatedUnion2")
|
|
569
|
+
@operationGroup
|
|
570
|
+
interface SpreadRecordNonDiscriminatedUnion2
|
|
571
|
+
extends ModelOperations<
|
|
572
|
+
SpreadRecordForNonDiscriminatedUnion2,
|
|
573
|
+
"{'name': 'abc', 'prop1': {'kind': 'kind1', 'start': '2021-01-01T00:00:00Z'}, 'prop2': {'kind': 'kind1', 'start': '2021-01-01T00:00:00Z', 'end': '2021-01-02T00:00:00Z'}}"
|
|
574
|
+
> {}
|
|
575
|
+
|
|
576
|
+
// ****************** spread record of non-discriminated unions **************************
|
|
577
|
+
@doc("The model spread Record<WidgetData2[] | WidgetData1>")
|
|
578
|
+
model SpreadRecordForNonDiscriminatedUnion3 {
|
|
579
|
+
@doc("The name property")
|
|
580
|
+
name: string;
|
|
581
|
+
|
|
582
|
+
...Record<WidgetData2[] | WidgetData1>;
|
|
583
|
+
}
|
|
584
|
+
|
|
585
|
+
@route("/spreadRecordNonDiscriminatedUnion3")
|
|
586
|
+
@operationGroup
|
|
587
|
+
interface SpreadRecordNonDiscriminatedUnion3
|
|
588
|
+
extends ModelOperations<
|
|
589
|
+
SpreadRecordForNonDiscriminatedUnion3,
|
|
590
|
+
"{'name': 'abc', 'prop1': [{'kind': 'kind1', 'start': '2021-01-01T00:00:00Z'}, {'kind': 'kind1', 'start': '2021-01-01T00:00:00Z'], 'prop2': {'kind': 'kind1', 'start': '2021-01-01T00:00:00Z', 'end': '2021-01-02T00:00:00Z'}}"
|
|
591
|
+
> {}
|