@typespec/http-specs 0.1.0-alpha.0
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 +33 -0
- package/dist/specs/authentication/api-key/mockapi.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 +33 -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 +30 -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 +29 -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 +167 -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 +103 -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 +22 -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 +20 -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 +50 -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 +76 -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 +155 -0
- package/dist/specs/parameters/spread/mockapi.js.map +1 -0
- package/dist/specs/payload/content-negotiation/mockapi.d.ts +3 -0
- package/dist/specs/payload/content-negotiation/mockapi.d.ts.map +1 -0
- package/dist/specs/payload/content-negotiation/mockapi.js +169 -0
- package/dist/specs/payload/content-negotiation/mockapi.js.map +1 -0
- package/dist/specs/payload/json-merge-patch/mockapi.d.ts +38 -0
- package/dist/specs/payload/json-merge-patch/mockapi.d.ts.map +1 -0
- package/dist/specs/payload/json-merge-patch/mockapi.js +90 -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 +59 -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 +323 -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 +183 -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 +94 -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 +20 -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 +12 -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 +21 -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 +12 -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 +42 -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 +43 -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 +55 -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 +223 -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 +92 -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 +91 -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 +39 -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 +42 -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 +37 -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 +69 -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 +127 -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 +37 -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 +40 -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 +99 -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 +63 -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 +41 -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 +107 -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 +333 -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 +132 -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 +185 -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 +214 -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 +193 -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 +106 -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 +54 -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 +17 -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 +19 -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 +38 -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 +18 -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 +21 -0
- package/dist/specs/versioning/typeChangedFrom/mockapi.js.map +1 -0
- package/package.json +55 -0
- package/spec-summary.md +7463 -0
- package/specs/README.md +3 -0
- package/specs/authentication/api-key/main.tsp +40 -0
- package/specs/authentication/api-key/mockapi.ts +35 -0
- package/specs/authentication/http/custom/main.tsp +40 -0
- package/specs/authentication/http/custom/mockapi.ts +35 -0
- package/specs/authentication/oauth2/main.tsp +45 -0
- package/specs/authentication/oauth2/mockapi.ts +32 -0
- package/specs/authentication/union/main.tsp +30 -0
- package/specs/authentication/union/mockapi.ts +31 -0
- package/specs/encode/bytes/main.tsp +363 -0
- package/specs/encode/bytes/mockapi.ts +297 -0
- package/specs/encode/datetime/main.tsp +339 -0
- package/specs/encode/datetime/mockapi.ts +274 -0
- package/specs/encode/duration/main.tsp +318 -0
- package/specs/encode/duration/mockapi.ts +191 -0
- package/specs/encode/numeric/main.tsp +69 -0
- package/specs/encode/numeric/mockapi.ts +32 -0
- package/specs/helper.ts +8 -0
- package/specs/parameters/basic/main.tsp +58 -0
- package/specs/parameters/basic/mockapi.ts +25 -0
- package/specs/parameters/body-optionality/main.tsp +61 -0
- package/specs/parameters/body-optionality/mockapi.ts +59 -0
- package/specs/parameters/collection-format/main.tsp +92 -0
- package/specs/parameters/collection-format/mockapi.ts +83 -0
- package/specs/parameters/spread/main.tsp +337 -0
- package/specs/parameters/spread/mockapi.ts +165 -0
- package/specs/payload/content-negotiation/main.tsp +61 -0
- package/specs/payload/content-negotiation/mockapi.ts +188 -0
- package/specs/payload/json-merge-patch/main.tsp +184 -0
- package/specs/payload/json-merge-patch/mockapi.ts +95 -0
- package/specs/payload/media-type/main.tsp +52 -0
- package/specs/payload/media-type/mockapi.ts +63 -0
- package/specs/payload/multipart/main.tsp +500 -0
- package/specs/payload/multipart/mockapi.ts +364 -0
- package/specs/payload/xml/main.tsp +302 -0
- package/specs/payload/xml/mockapi.ts +238 -0
- package/specs/routes/main.tsp +477 -0
- package/specs/routes/mockapi.ts +175 -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 +22 -0
- package/specs/server/endpoint/not-defined/main.tsp +20 -0
- package/specs/server/endpoint/not-defined/mockapi.ts +13 -0
- package/specs/server/path/multiple/main.tsp +47 -0
- package/specs/server/path/multiple/mockapi.ts +23 -0
- package/specs/server/path/single/main.tsp +24 -0
- package/specs/server/path/single/mockapi.ts +13 -0
- package/specs/server/versions/not-versioned/main.tsp +40 -0
- package/specs/server/versions/not-versioned/mockapi.ts +51 -0
- package/specs/server/versions/versioned/main.tsp +64 -0
- package/specs/server/versions/versioned/mockapi.ts +64 -0
- package/specs/special-headers/conditional-request/main.tsp +89 -0
- package/specs/special-headers/conditional-request/mockapi.ts +59 -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 +234 -0
- package/specs/special-words/mockapi.ts +384 -0
- package/specs/type/array/main.tsp +108 -0
- package/specs/type/array/mockapi.ts +107 -0
- package/specs/type/dictionary/main.tsp +101 -0
- package/specs/type/dictionary/mockapi.ts +103 -0
- package/specs/type/enum/extensible/main.tsp +65 -0
- package/specs/type/enum/extensible/mockapi.ts +48 -0
- package/specs/type/enum/fixed/main.tsp +60 -0
- package/specs/type/enum/fixed/mockapi.ts +44 -0
- package/specs/type/model/empty/main.tsp +40 -0
- package/specs/type/model/empty/mockapi.ts +40 -0
- package/specs/type/model/inheritance/enum-discriminator/main.tsp +169 -0
- package/specs/type/model/inheritance/enum-discriminator/mockapi.ts +89 -0
- package/specs/type/model/inheritance/nested-discriminator/main.tsp +224 -0
- package/specs/type/model/inheritance/nested-discriminator/mockapi.ts +130 -0
- package/specs/type/model/inheritance/not-discriminated/main.tsp +54 -0
- package/specs/type/model/inheritance/not-discriminated/mockapi.ts +39 -0
- package/specs/type/model/inheritance/recursive/main.tsp +71 -0
- package/specs/type/model/inheritance/recursive/mockapi.ts +41 -0
- package/specs/type/model/inheritance/single-discriminator/main.tsp +172 -0
- package/specs/type/model/inheritance/single-discriminator/mockapi.ts +103 -0
- package/specs/type/model/templated/main.tsp +130 -0
- package/specs/type/model/templated/mockapi.ts +66 -0
- package/specs/type/model/usage/main.tsp +49 -0
- package/specs/type/model/usage/mockapi.ts +45 -0
- package/specs/type/model/visibility/main.tsp +153 -0
- package/specs/type/model/visibility/mockapi.ts +108 -0
- package/specs/type/property/additional-properties/main.tsp +549 -0
- package/specs/type/property/additional-properties/mockapi.ts +464 -0
- package/specs/type/property/nullable/main.tsp +139 -0
- package/specs/type/property/nullable/mockapi.ts +187 -0
- package/specs/type/property/optionality/main.tsp +226 -0
- package/specs/type/property/optionality/mockapi.ts +296 -0
- package/specs/type/property/value-types/main.tsp +244 -0
- package/specs/type/property/value-types/mockapi.ts +300 -0
- package/specs/type/scalar/main.tsp +136 -0
- package/specs/type/scalar/mockapi.ts +199 -0
- package/specs/type/union/main.tsp +249 -0
- package/specs/type/union/mockapi.ts +130 -0
- package/specs/versioning/added/main.tsp +136 -0
- package/specs/versioning/added/mockapi.ts +57 -0
- package/specs/versioning/madeOptional/main.tsp +65 -0
- package/specs/versioning/madeOptional/mockapi.ts +18 -0
- package/specs/versioning/removed/main.tsp +126 -0
- package/specs/versioning/removed/mockapi.ts +20 -0
- package/specs/versioning/renamedFrom/main.tsp +112 -0
- package/specs/versioning/renamedFrom/mockapi.ts +40 -0
- package/specs/versioning/returnTypeChangedFrom/main.tsp +57 -0
- package/specs/versioning/returnTypeChangedFrom/mockapi.ts +19 -0
- package/specs/versioning/typeChangedFrom/main.tsp +71 -0
- package/specs/versioning/typeChangedFrom/mockapi.ts +22 -0
- package/temp/.tsbuildinfo +1 -0
- package/tsconfig.build.json +8 -0
- package/tsconfig.json +11 -0
- package/tspconfig.yaml +2 -0
package/specs/README.md
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import "@typespec/http";
|
|
2
|
+
import "@typespec/spector";
|
|
3
|
+
|
|
4
|
+
using Http;
|
|
5
|
+
using Spector;
|
|
6
|
+
|
|
7
|
+
@scenarioService("/authentication/api-key")
|
|
8
|
+
@doc("Illustrates clients generated with ApiKey authentication.")
|
|
9
|
+
@useAuth(ApiKeyAuth<ApiKeyLocation.header, "x-ms-api-key">)
|
|
10
|
+
namespace Authentication.ApiKey;
|
|
11
|
+
|
|
12
|
+
@scenario
|
|
13
|
+
@scenarioDoc("Expects header 'x-ms-api-key': 'valid-key'")
|
|
14
|
+
@doc("Check whether client is authenticated")
|
|
15
|
+
@get
|
|
16
|
+
@route("/valid")
|
|
17
|
+
op valid(): NoContentResponse;
|
|
18
|
+
|
|
19
|
+
@scenario
|
|
20
|
+
@scenarioDoc("""
|
|
21
|
+
Expect error code 403 and error body:
|
|
22
|
+
```json
|
|
23
|
+
{
|
|
24
|
+
"error": {
|
|
25
|
+
"code": "InvalidApiKey",
|
|
26
|
+
"message": "API key is invalid"
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
""")
|
|
31
|
+
@doc("Check whether client is authenticated.")
|
|
32
|
+
@get
|
|
33
|
+
@route("/invalid")
|
|
34
|
+
op invalid(): NoContentResponse | InvalidAuth;
|
|
35
|
+
|
|
36
|
+
@error
|
|
37
|
+
model InvalidAuth {
|
|
38
|
+
@statusCode _: 403;
|
|
39
|
+
error: string;
|
|
40
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { json, passOnCode, passOnSuccess, ScenarioMockApi } from "@typespec/spec-api";
|
|
2
|
+
|
|
3
|
+
export const Scenarios: Record<string, ScenarioMockApi> = {};
|
|
4
|
+
|
|
5
|
+
Scenarios.Authentication_ApiKey_invalid = passOnCode(403, {
|
|
6
|
+
uri: `/authentication/api-key/invalid`,
|
|
7
|
+
method: `get`,
|
|
8
|
+
request: {
|
|
9
|
+
headers: {
|
|
10
|
+
"x-ms-api-key": "valid-key",
|
|
11
|
+
},
|
|
12
|
+
status: 403,
|
|
13
|
+
},
|
|
14
|
+
response: {
|
|
15
|
+
status: 403,
|
|
16
|
+
body: json({
|
|
17
|
+
error: "invalid-api-key",
|
|
18
|
+
}),
|
|
19
|
+
},
|
|
20
|
+
kind: "MockApiDefinition",
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
Scenarios.Authentication_ApiKey_valid = passOnSuccess({
|
|
24
|
+
uri: `/authentication/api-key/valid`,
|
|
25
|
+
method: `get`,
|
|
26
|
+
request: {
|
|
27
|
+
headers: {
|
|
28
|
+
"x-ms-api-key": "valid-key",
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
response: {
|
|
32
|
+
status: 204,
|
|
33
|
+
},
|
|
34
|
+
kind: "MockApiDefinition",
|
|
35
|
+
});
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import "@typespec/http";
|
|
2
|
+
import "@typespec/spector";
|
|
3
|
+
|
|
4
|
+
using TypeSpec.Http;
|
|
5
|
+
using Spector;
|
|
6
|
+
|
|
7
|
+
@scenarioService("/authentication/http/custom")
|
|
8
|
+
@doc("Illustrates clients generated with generic HTTP auth.")
|
|
9
|
+
@useAuth({
|
|
10
|
+
type: AuthType.http,
|
|
11
|
+
scheme: "SharedAccessKey",
|
|
12
|
+
})
|
|
13
|
+
namespace Authentication.Http.Custom;
|
|
14
|
+
|
|
15
|
+
@scenario
|
|
16
|
+
@scenarioDoc("Expects header 'Authorization': 'SharedAccessKey valid-key'")
|
|
17
|
+
@doc("Check whether client is authenticated")
|
|
18
|
+
@get
|
|
19
|
+
@route("/valid")
|
|
20
|
+
op valid(): NoContentResponse;
|
|
21
|
+
|
|
22
|
+
@scenario
|
|
23
|
+
@scenarioDoc("""
|
|
24
|
+
Expect error code 403 and error body:
|
|
25
|
+
```json
|
|
26
|
+
{
|
|
27
|
+
"error": "invalid-api-key"
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
""")
|
|
31
|
+
@doc("Check whether client is authenticated.")
|
|
32
|
+
@get
|
|
33
|
+
@route("/invalid")
|
|
34
|
+
op invalid(): NoContentResponse | InvalidAuth;
|
|
35
|
+
|
|
36
|
+
@error
|
|
37
|
+
model InvalidAuth {
|
|
38
|
+
@statusCode _: 403;
|
|
39
|
+
error: string;
|
|
40
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { json, passOnCode, passOnSuccess, ScenarioMockApi } from "@typespec/spec-api";
|
|
2
|
+
|
|
3
|
+
export const Scenarios: Record<string, ScenarioMockApi> = {};
|
|
4
|
+
|
|
5
|
+
Scenarios.Authentication_Http_Custom_valid = passOnSuccess({
|
|
6
|
+
uri: `/authentication/http/custom/valid`,
|
|
7
|
+
method: "get",
|
|
8
|
+
request: {
|
|
9
|
+
headers: {
|
|
10
|
+
authorization: "SharedAccessKey valid-key",
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
response: {
|
|
14
|
+
status: 204,
|
|
15
|
+
},
|
|
16
|
+
kind: "MockApiDefinition",
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
Scenarios.Authentication_Http_Custom_invalid = passOnCode(403, {
|
|
20
|
+
uri: `/authentication/http/custom/invalid`,
|
|
21
|
+
method: "get",
|
|
22
|
+
request: {
|
|
23
|
+
headers: {
|
|
24
|
+
authorization: "SharedAccessKey invalid-key",
|
|
25
|
+
},
|
|
26
|
+
status: 403,
|
|
27
|
+
},
|
|
28
|
+
response: {
|
|
29
|
+
status: 403,
|
|
30
|
+
body: json({
|
|
31
|
+
error: "invalid-api-key",
|
|
32
|
+
}),
|
|
33
|
+
},
|
|
34
|
+
kind: "MockApiDefinition",
|
|
35
|
+
});
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import "@typespec/http";
|
|
2
|
+
import "@typespec/spector";
|
|
3
|
+
|
|
4
|
+
using Http;
|
|
5
|
+
using Spector;
|
|
6
|
+
|
|
7
|
+
@scenarioService("/authentication/oauth2")
|
|
8
|
+
@doc("Illustrates clients generated with OAuth2 authentication.")
|
|
9
|
+
@useAuth(OAuth2Auth<[MyFlow]>)
|
|
10
|
+
namespace Authentication.OAuth2;
|
|
11
|
+
|
|
12
|
+
model MyFlow {
|
|
13
|
+
type: OAuth2FlowType.implicit;
|
|
14
|
+
authorizationUrl: "https://login.microsoftonline.com/common/oauth2/authorize";
|
|
15
|
+
scopes: ["https://security.microsoft.com/.default"];
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
@scenario
|
|
19
|
+
@scenarioDoc("Expects header 'authorization': 'Bearer https://security.microsoft.com/.default'")
|
|
20
|
+
@doc("Check whether client is authenticated")
|
|
21
|
+
@get
|
|
22
|
+
@route("/valid")
|
|
23
|
+
op valid(): NoContentResponse;
|
|
24
|
+
|
|
25
|
+
@scenario
|
|
26
|
+
@scenarioDoc("""
|
|
27
|
+
Expect error code 400 and error body:
|
|
28
|
+
```json
|
|
29
|
+
{
|
|
30
|
+
"message": "Expected Bearer x but got Bearer y",
|
|
31
|
+
"expected": "Bearer x",
|
|
32
|
+
"actual": "Bearer y",
|
|
33
|
+
}
|
|
34
|
+
```
|
|
35
|
+
""")
|
|
36
|
+
@doc("Check whether client is authenticated. Will return an invalid bearer error.")
|
|
37
|
+
@get
|
|
38
|
+
@route("/invalid")
|
|
39
|
+
op invalid(): NoContentResponse | InvalidAuth;
|
|
40
|
+
|
|
41
|
+
@error
|
|
42
|
+
model InvalidAuth {
|
|
43
|
+
@statusCode _: 403;
|
|
44
|
+
error: string;
|
|
45
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { json, passOnCode, passOnSuccess, ScenarioMockApi } from "@typespec/spec-api";
|
|
2
|
+
|
|
3
|
+
export const Scenarios: Record<string, ScenarioMockApi> = {};
|
|
4
|
+
|
|
5
|
+
Scenarios.Authentication_OAuth2_valid = passOnSuccess({
|
|
6
|
+
uri: `/authentication/oauth2/valid`,
|
|
7
|
+
method: "get",
|
|
8
|
+
request: {
|
|
9
|
+
headers: {
|
|
10
|
+
authorization: "Bearer https://security.microsoft.com/.default",
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
response: {
|
|
14
|
+
status: 204,
|
|
15
|
+
},
|
|
16
|
+
kind: "MockApiDefinition",
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
Scenarios.Authentication_OAuth2_invalid = passOnCode(403, {
|
|
20
|
+
uri: `/authentication/oauth2/invalid`,
|
|
21
|
+
method: "get",
|
|
22
|
+
request: {
|
|
23
|
+
status: 403,
|
|
24
|
+
},
|
|
25
|
+
response: {
|
|
26
|
+
status: 403,
|
|
27
|
+
body: json({
|
|
28
|
+
error: "invalid-grant",
|
|
29
|
+
}),
|
|
30
|
+
},
|
|
31
|
+
kind: "MockApiDefinition",
|
|
32
|
+
});
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import "@typespec/http";
|
|
2
|
+
import "@typespec/spector";
|
|
3
|
+
|
|
4
|
+
using Http;
|
|
5
|
+
using Spector;
|
|
6
|
+
|
|
7
|
+
@scenarioService("/authentication/union")
|
|
8
|
+
@doc("Illustrates clients generated with ApiKey and OAuth2 authentication.")
|
|
9
|
+
@useAuth(ApiKeyAuth<ApiKeyLocation.header, "x-ms-api-key"> | OAuth2Auth<[MyFlow]>)
|
|
10
|
+
namespace Authentication.Union;
|
|
11
|
+
|
|
12
|
+
model MyFlow {
|
|
13
|
+
type: OAuth2FlowType.implicit;
|
|
14
|
+
authorizationUrl: "https://login.microsoftonline.com/common/oauth2/authorize";
|
|
15
|
+
scopes: ["https://security.microsoft.com/.default"];
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
@scenario
|
|
19
|
+
@scenarioDoc("Expects header 'x-ms-api-key': 'valid-key'")
|
|
20
|
+
@doc("Check whether client is authenticated")
|
|
21
|
+
@get
|
|
22
|
+
@route("/validkey")
|
|
23
|
+
op validKey(): NoContentResponse;
|
|
24
|
+
|
|
25
|
+
@scenario
|
|
26
|
+
@scenarioDoc("Expects header 'authorization': 'Bearer https://security.microsoft.com/.default'")
|
|
27
|
+
@doc("Check whether client is authenticated")
|
|
28
|
+
@get
|
|
29
|
+
@route("/validtoken")
|
|
30
|
+
op validToken(): NoContentResponse;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { passOnSuccess, ScenarioMockApi } from "@typespec/spec-api";
|
|
2
|
+
|
|
3
|
+
export const Scenarios: Record<string, ScenarioMockApi> = {};
|
|
4
|
+
|
|
5
|
+
Scenarios.Authentication_Union_validKey = passOnSuccess({
|
|
6
|
+
uri: `/authentication/union/validkey`,
|
|
7
|
+
method: "get",
|
|
8
|
+
request: {
|
|
9
|
+
headers: {
|
|
10
|
+
"x-ms-api-key": "valid-key",
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
response: {
|
|
14
|
+
status: 204,
|
|
15
|
+
},
|
|
16
|
+
kind: "MockApiDefinition",
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
Scenarios.Authentication_Union_validToken = passOnSuccess({
|
|
20
|
+
uri: `/authentication/union/validtoken`,
|
|
21
|
+
method: "get",
|
|
22
|
+
request: {
|
|
23
|
+
headers: {
|
|
24
|
+
authorization: "Bearer https://security.microsoft.com/.default",
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
response: {
|
|
28
|
+
status: 204,
|
|
29
|
+
},
|
|
30
|
+
kind: "MockApiDefinition",
|
|
31
|
+
});
|
|
@@ -0,0 +1,363 @@
|
|
|
1
|
+
import "@typespec/http";
|
|
2
|
+
import "@typespec/spector";
|
|
3
|
+
|
|
4
|
+
using Http;
|
|
5
|
+
using Spector;
|
|
6
|
+
|
|
7
|
+
@doc("Test for encode decorator on bytes.")
|
|
8
|
+
@scenarioService("/encode/bytes")
|
|
9
|
+
namespace Encode.Bytes;
|
|
10
|
+
|
|
11
|
+
@encode(BytesKnownEncoding.base64url)
|
|
12
|
+
scalar base64urlBytes extends bytes;
|
|
13
|
+
|
|
14
|
+
@route("/query")
|
|
15
|
+
namespace Query {
|
|
16
|
+
@route("/default")
|
|
17
|
+
@scenario
|
|
18
|
+
@scenarioDoc("""
|
|
19
|
+
Test default encode (base64) for bytes query parameter.
|
|
20
|
+
Expected query parameter:
|
|
21
|
+
value=dGVzdA== (base64 encode of test)
|
|
22
|
+
""")
|
|
23
|
+
op default(
|
|
24
|
+
@query
|
|
25
|
+
value: bytes,
|
|
26
|
+
): NoContentResponse;
|
|
27
|
+
|
|
28
|
+
@route("/base64")
|
|
29
|
+
@scenario
|
|
30
|
+
@scenarioDoc("""
|
|
31
|
+
Test base64 encode for bytes query parameter.
|
|
32
|
+
Expected query parameter:
|
|
33
|
+
value=dGVzdA== (base64 encode of test)
|
|
34
|
+
""")
|
|
35
|
+
op base64(
|
|
36
|
+
@query
|
|
37
|
+
@encode(BytesKnownEncoding.base64)
|
|
38
|
+
value: bytes,
|
|
39
|
+
): NoContentResponse;
|
|
40
|
+
|
|
41
|
+
@route("/base64url")
|
|
42
|
+
@scenario
|
|
43
|
+
@scenarioDoc("""
|
|
44
|
+
Test base64url encode for bytes query parameter.
|
|
45
|
+
Expected query parameter:
|
|
46
|
+
value=dGVzdA (base64url encode of test)
|
|
47
|
+
""")
|
|
48
|
+
op base64url(
|
|
49
|
+
@query
|
|
50
|
+
@encode(BytesKnownEncoding.base64url)
|
|
51
|
+
value: bytes,
|
|
52
|
+
): NoContentResponse;
|
|
53
|
+
|
|
54
|
+
@route("/base64url-array")
|
|
55
|
+
@scenario
|
|
56
|
+
@scenarioDoc("""
|
|
57
|
+
Test base64url encode for bytes array query parameter.
|
|
58
|
+
Expected query parameter:
|
|
59
|
+
value=dGVzdA, dGVzdA
|
|
60
|
+
""")
|
|
61
|
+
op base64urlArray(
|
|
62
|
+
#suppress "deprecated" "Deprecated in next release"
|
|
63
|
+
@query({
|
|
64
|
+
format: "csv",
|
|
65
|
+
})
|
|
66
|
+
value: base64urlBytes[],
|
|
67
|
+
): NoContentResponse;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
model DefaultBytesProperty {
|
|
71
|
+
value: bytes;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
model Base64BytesProperty {
|
|
75
|
+
@encode(BytesKnownEncoding.base64)
|
|
76
|
+
value: bytes;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
model Base64urlBytesProperty {
|
|
80
|
+
@encode(BytesKnownEncoding.base64url)
|
|
81
|
+
value: bytes;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
model Base64urlArrayBytesProperty {
|
|
85
|
+
value: base64urlBytes[];
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
@route("/property")
|
|
89
|
+
namespace Property {
|
|
90
|
+
@route("/default")
|
|
91
|
+
@scenario
|
|
92
|
+
@scenarioDoc("""
|
|
93
|
+
Test operation with request and response model contains bytes properties with default encode (base64).
|
|
94
|
+
Expected request body:
|
|
95
|
+
```json
|
|
96
|
+
{
|
|
97
|
+
"value": "dGVzdA==" // base64 encode of test
|
|
98
|
+
}
|
|
99
|
+
```
|
|
100
|
+
Expected response body:
|
|
101
|
+
```json
|
|
102
|
+
{
|
|
103
|
+
"value": "dGVzdA=="
|
|
104
|
+
}
|
|
105
|
+
```
|
|
106
|
+
""")
|
|
107
|
+
@post
|
|
108
|
+
op default(@body body: DefaultBytesProperty): DefaultBytesProperty;
|
|
109
|
+
|
|
110
|
+
@route("/base64")
|
|
111
|
+
@scenario
|
|
112
|
+
@scenarioDoc("""
|
|
113
|
+
Test operation with request and response model contains bytes properties with base64 encode.
|
|
114
|
+
Expected request body:
|
|
115
|
+
```json
|
|
116
|
+
{
|
|
117
|
+
"value": "dGVzdA==" // base64 encode of test
|
|
118
|
+
}
|
|
119
|
+
```
|
|
120
|
+
Expected response body:
|
|
121
|
+
```json
|
|
122
|
+
{
|
|
123
|
+
"value": "dGVzdA=="
|
|
124
|
+
}
|
|
125
|
+
```
|
|
126
|
+
""")
|
|
127
|
+
@post
|
|
128
|
+
op base64(@body body: Base64BytesProperty): Base64BytesProperty;
|
|
129
|
+
|
|
130
|
+
@route("/base64url")
|
|
131
|
+
@scenario
|
|
132
|
+
@scenarioDoc("""
|
|
133
|
+
Test operation with request and response model contains bytes properties with base64url encode.
|
|
134
|
+
Expected request body:
|
|
135
|
+
```json
|
|
136
|
+
{
|
|
137
|
+
"value": "dGVzdA" // base64url encode of test
|
|
138
|
+
}
|
|
139
|
+
```
|
|
140
|
+
Expected response body:
|
|
141
|
+
```json
|
|
142
|
+
{
|
|
143
|
+
"value": "dGVzdA"
|
|
144
|
+
}
|
|
145
|
+
```
|
|
146
|
+
""")
|
|
147
|
+
@post
|
|
148
|
+
op base64url(@body body: Base64urlBytesProperty): Base64urlBytesProperty;
|
|
149
|
+
|
|
150
|
+
@route("/base64url-array")
|
|
151
|
+
@scenario
|
|
152
|
+
@scenarioDoc("""
|
|
153
|
+
Test operation with request and response model contains bytes array properties with base64url encode.
|
|
154
|
+
Expected request body:
|
|
155
|
+
```json
|
|
156
|
+
{
|
|
157
|
+
"value": ["dGVzdA", "dGVzdA"]
|
|
158
|
+
}
|
|
159
|
+
```
|
|
160
|
+
Expected response body:
|
|
161
|
+
```json
|
|
162
|
+
{
|
|
163
|
+
"value": ["dGVzdA", "dGVzdA"]
|
|
164
|
+
}
|
|
165
|
+
```
|
|
166
|
+
""")
|
|
167
|
+
@post
|
|
168
|
+
op base64urlArray(@body body: Base64urlArrayBytesProperty): Base64urlArrayBytesProperty;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
@route("/header")
|
|
172
|
+
namespace Header {
|
|
173
|
+
@route("/default")
|
|
174
|
+
@scenario
|
|
175
|
+
@scenarioDoc("""
|
|
176
|
+
Test default encode (base64) for bytes header.
|
|
177
|
+
Expected header:
|
|
178
|
+
value=dGVzdA== (base64 encode of test)
|
|
179
|
+
""")
|
|
180
|
+
op default(
|
|
181
|
+
@header
|
|
182
|
+
value: bytes,
|
|
183
|
+
): NoContentResponse;
|
|
184
|
+
|
|
185
|
+
@route("/base64")
|
|
186
|
+
@scenario
|
|
187
|
+
@scenarioDoc("""
|
|
188
|
+
Test base64 encode for bytes header.
|
|
189
|
+
Expected header:
|
|
190
|
+
value=dGVzdA== (base64 encode of test)
|
|
191
|
+
""")
|
|
192
|
+
op base64(
|
|
193
|
+
@header
|
|
194
|
+
@encode(BytesKnownEncoding.base64)
|
|
195
|
+
value: bytes,
|
|
196
|
+
): NoContentResponse;
|
|
197
|
+
|
|
198
|
+
@route("/base64url")
|
|
199
|
+
@scenario
|
|
200
|
+
@scenarioDoc("""
|
|
201
|
+
Test base64url encode for bytes header.
|
|
202
|
+
Expected header:
|
|
203
|
+
value=dGVzdA (base64url encode of test)
|
|
204
|
+
""")
|
|
205
|
+
op base64url(
|
|
206
|
+
@header
|
|
207
|
+
@encode(BytesKnownEncoding.base64url)
|
|
208
|
+
value: bytes,
|
|
209
|
+
): NoContentResponse;
|
|
210
|
+
|
|
211
|
+
@route("/base64url-array")
|
|
212
|
+
@scenario
|
|
213
|
+
@scenarioDoc("""
|
|
214
|
+
Test base64url encode for bytes array header.
|
|
215
|
+
Expected header:
|
|
216
|
+
value=dGVzdA,dGVzdA
|
|
217
|
+
""")
|
|
218
|
+
op base64urlArray(
|
|
219
|
+
@header({
|
|
220
|
+
format: "csv",
|
|
221
|
+
})
|
|
222
|
+
value: base64urlBytes[],
|
|
223
|
+
): NoContentResponse;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
@route("/body/request")
|
|
227
|
+
namespace RequestBody {
|
|
228
|
+
@route("/default")
|
|
229
|
+
@scenario
|
|
230
|
+
@scenarioDoc("""
|
|
231
|
+
Test default encode (base64) for bytes in a json body.
|
|
232
|
+
Expected body:
|
|
233
|
+
"dGVzdA==" (base64 encode of test, in JSON string)
|
|
234
|
+
""")
|
|
235
|
+
@post
|
|
236
|
+
op default(
|
|
237
|
+
@body
|
|
238
|
+
value: bytes,
|
|
239
|
+
): NoContentResponse;
|
|
240
|
+
|
|
241
|
+
@route("/octet-stream")
|
|
242
|
+
@scenario
|
|
243
|
+
@scenarioDoc("""
|
|
244
|
+
When content type is application/octet-stream and body is `bytes` the payload is a binary file.
|
|
245
|
+
File should match packages/cadl-ranch-specs/assets/image.png
|
|
246
|
+
""")
|
|
247
|
+
@post
|
|
248
|
+
op octetStream(
|
|
249
|
+
@header
|
|
250
|
+
contentType: "application/octet-stream",
|
|
251
|
+
|
|
252
|
+
@body
|
|
253
|
+
value: bytes,
|
|
254
|
+
): NoContentResponse;
|
|
255
|
+
|
|
256
|
+
@route("/custom-content-type")
|
|
257
|
+
@scenario
|
|
258
|
+
@scenarioDoc("""
|
|
259
|
+
When content type is a custom type(image/png here) and body is `bytes` the payload is a binary file.
|
|
260
|
+
File should match packages/cadl-ranch-specs/assets/image.png
|
|
261
|
+
""")
|
|
262
|
+
@post
|
|
263
|
+
op customContentType(
|
|
264
|
+
@header
|
|
265
|
+
contentType: "image/png",
|
|
266
|
+
|
|
267
|
+
@body
|
|
268
|
+
value: bytes,
|
|
269
|
+
): NoContentResponse;
|
|
270
|
+
|
|
271
|
+
@route("/base64")
|
|
272
|
+
@scenario
|
|
273
|
+
@scenarioDoc("""
|
|
274
|
+
Test base64 encode for bytes body.
|
|
275
|
+
Expected body:
|
|
276
|
+
"dGVzdA==" (base64 encode of test, in JSON string)
|
|
277
|
+
""")
|
|
278
|
+
@post
|
|
279
|
+
op base64(
|
|
280
|
+
@body
|
|
281
|
+
@encode(BytesKnownEncoding.base64)
|
|
282
|
+
value: bytes,
|
|
283
|
+
): NoContentResponse;
|
|
284
|
+
|
|
285
|
+
@route("/base64url")
|
|
286
|
+
@scenario
|
|
287
|
+
@scenarioDoc("""
|
|
288
|
+
Test base64url encode for bytes body.
|
|
289
|
+
Expected body:
|
|
290
|
+
"dGVzdA" (base64url encode of test, in JSON string)
|
|
291
|
+
""")
|
|
292
|
+
@post
|
|
293
|
+
op base64url(
|
|
294
|
+
@body
|
|
295
|
+
@encode(BytesKnownEncoding.base64url)
|
|
296
|
+
value: bytes,
|
|
297
|
+
): NoContentResponse;
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
@route("/body/response")
|
|
301
|
+
namespace ResponseBody {
|
|
302
|
+
@route("/default")
|
|
303
|
+
@scenario
|
|
304
|
+
@scenarioDoc("""
|
|
305
|
+
Test default encode (base64) for bytes in a json body.
|
|
306
|
+
Expected body:
|
|
307
|
+
"dGVzdA==" (base64 encode of test, in JSON string)
|
|
308
|
+
""")
|
|
309
|
+
op default(): {
|
|
310
|
+
@body
|
|
311
|
+
value: bytes;
|
|
312
|
+
};
|
|
313
|
+
|
|
314
|
+
@route("/octet-stream")
|
|
315
|
+
@scenario
|
|
316
|
+
@scenarioDoc("""
|
|
317
|
+
When content type is application/octet-stream and body is `bytes` the payload is a binary file.
|
|
318
|
+
File should match packages/cadl-ranch-specs/assets/image.png
|
|
319
|
+
""")
|
|
320
|
+
op octetStream(): {
|
|
321
|
+
@header
|
|
322
|
+
contentType: "application/octet-stream";
|
|
323
|
+
|
|
324
|
+
@body
|
|
325
|
+
value: bytes;
|
|
326
|
+
};
|
|
327
|
+
|
|
328
|
+
@route("/custom-content-type")
|
|
329
|
+
@scenario
|
|
330
|
+
@scenarioDoc("""
|
|
331
|
+
When content type is a custom type(image/png here) and body is `bytes` the payload is a binary file.
|
|
332
|
+
File should match packages/cadl-ranch-specs/assets/image.png
|
|
333
|
+
""")
|
|
334
|
+
op customContentType(): {
|
|
335
|
+
@header
|
|
336
|
+
contentType: "image/png";
|
|
337
|
+
|
|
338
|
+
@body
|
|
339
|
+
value: bytes;
|
|
340
|
+
};
|
|
341
|
+
|
|
342
|
+
@route("/base64")
|
|
343
|
+
@scenario
|
|
344
|
+
@scenarioDoc("""
|
|
345
|
+
Test base64 encode for bytes body.
|
|
346
|
+
Expected body:
|
|
347
|
+
"dGVzdA==" (base64 encode of test, in JSON string)
|
|
348
|
+
""")
|
|
349
|
+
op base64(): {
|
|
350
|
+
@body
|
|
351
|
+
@encode(BytesKnownEncoding.base64)
|
|
352
|
+
value: bytes;
|
|
353
|
+
};
|
|
354
|
+
|
|
355
|
+
@route("/base64url")
|
|
356
|
+
@scenario
|
|
357
|
+
@scenarioDoc("""
|
|
358
|
+
Test base64url encode for bytes body.
|
|
359
|
+
Expected body:
|
|
360
|
+
"dGVzdA" (base64url encode of test, in JSON string)
|
|
361
|
+
""")
|
|
362
|
+
op base64url(): base64urlBytes;
|
|
363
|
+
}
|