diff --git a/fern.schema.json b/fern.schema.json index e21d8fc2f1bf..b2bc2efff833 100644 --- a/fern.schema.json +++ b/fern.schema.json @@ -73,6 +73,16 @@ } ] }, + "webhook-signature": { + "oneOf": [ + { + "$ref": "#/definitions/webhooks.WebhookSignatureSchema" + }, + { + "type": "null" + } + ] + }, "channel": { "oneOf": [ { @@ -3950,6 +3960,16 @@ "path": { "type": "string" }, + "connect-method-name": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, "headers": { "oneOf": [ { diff --git a/fern/apis/fern-definition/definition/file.yml b/fern/apis/fern-definition/definition/file.yml index e7c27789243e..e546e29e19f9 100644 --- a/fern/apis/fern-definition/definition/file.yml +++ b/fern/apis/fern-definition/definition/file.yml @@ -23,6 +23,11 @@ types: service: optional errors: optional> webhooks: optional> + webhook-signature: + type: optional + docs: | + Default webhook signature verification configuration. + Applied to all webhooks in this file that do not declare their own signature. channel: optional ## Package marker file ## diff --git a/fern/apis/fern-definition/definition/websocket.yml b/fern/apis/fern-definition/definition/websocket.yml index d579c52669b9..b9d569f562b0 100644 --- a/fern/apis/fern-definition/definition/websocket.yml +++ b/fern/apis/fern-definition/definition/websocket.yml @@ -13,6 +13,7 @@ types: auth: boolean url: optional path: string + connect-method-name: optional headers: optional> path-parameters: optional> query-parameters: optional> diff --git a/generators/go-v2/dynamic-snippets/src/EndpointSnippetGenerator.ts b/generators/go-v2/dynamic-snippets/src/EndpointSnippetGenerator.ts index 331a51fc0f62..8f6fe197d102 100644 --- a/generators/go-v2/dynamic-snippets/src/EndpointSnippetGenerator.ts +++ b/generators/go-v2/dynamic-snippets/src/EndpointSnippetGenerator.ts @@ -244,7 +244,12 @@ export class EndpointSnippetGenerator { go.invokeMethod({ on: go.codeblock(CLIENT_VAR_NAME), method: this.getMethod({ endpoint }), - arguments_: [this.context.getContextTodoFunctionInvocation(), ...otherArgs, go.codeblock("nil")] + arguments_: [ + this.context.getContextTodoFunctionInvocation(), + ...otherArgs, + go.codeblock("nil"), + ...optionArgsInvocation + ] }) ); } else { @@ -636,14 +641,16 @@ export class EndpointSnippetGenerator { } private getBytesBodyRequestArg({ value }: { value: unknown }): go.TypeInstantiation { - if (typeof value !== "string") { - this.context.errors.add({ - severity: Severity.Critical, - message: `Expected bytes value to be a string, got ${typeof value}` - }); - return go.TypeInstantiation.nop(); - } - return go.TypeInstantiation.bytes(value as string); + const bytesValue = typeof value === "string" ? (value as string) : ""; + return go.TypeInstantiation.reference( + go.invokeFunc({ + func: go.typeReference({ + name: "NewReader", + importPath: "bytes" + }), + arguments_: [go.TypeInstantiation.bytes(bytesValue)] + }) + ); } private getMethodArgsForInlinedRequest({ @@ -872,7 +879,7 @@ export class EndpointSnippetGenerator { }): go.StructField[] { const args: go.StructField[] = []; - const pathParameters = this.context.associateByWireValue({ + const pathParameters = this.context.associateByWireValueOrDefault({ parameters: namedParameters, values: snippet.pathParameters ?? {} }); diff --git a/generators/go-v2/sdk/src/wire-tests/WireTestGenerator.ts b/generators/go-v2/sdk/src/wire-tests/WireTestGenerator.ts index 05367596c87c..668d7a4aa3f7 100644 --- a/generators/go-v2/sdk/src/wire-tests/WireTestGenerator.ts +++ b/generators/go-v2/sdk/src/wire-tests/WireTestGenerator.ts @@ -721,6 +721,17 @@ export class WireTestGenerator { basePath = basePath.replace(`{${paramName}}`, paramValue.equalTo); }); + // If there are still unresolved path parameter placeholders (e.g., when the example + // doesn't provide path parameter values), substitute them with the same default values + // that associateByWireValueOrDefault synthesizes (i.e., the parameter name itself). + // This ensures the VerifyRequestCount URL matches what the client actually sends. + for (const part of endpoint.fullPath.parts) { + const paramName = part.pathParameter; + if (paramName && basePath.includes(`{${paramName}}`)) { + basePath = basePath.replace(`{${paramName}}`, `%3C${paramName}%3E`); + } + } + return basePath; } diff --git a/generators/go/sdk/versions.yml b/generators/go/sdk/versions.yml index 716905577963..3604b317345c 100644 --- a/generators/go/sdk/versions.yml +++ b/generators/go/sdk/versions.yml @@ -1,4 +1,20 @@ # yaml-language-server: $schema=../../../fern-versions-yml.schema.json +- version: 1.25.0-rc3 + changelogEntry: + - summary: | + Fix dynamic snippet and wire test generation for endpoints with bytes body and path + parameters. Previously, the generator produced `nil` for the `io.Reader` body argument + instead of a valid `bytes.NewReader([]byte(...))` call, causing wire test failures. + Also fixed the nop request branch to include option arguments (e.g. test ID headers) + in the method invocation, fixed path parameter resolution to use + associateByWireValueOrDefault so missing path parameter values are synthesized, and + fixed WireMock stub response generation to return an empty JSON object `{}` instead + of a JSON string `""` when the example response body is null but the endpoint declares + a named (struct) response type. + type: fix + createdAt: "2026-02-24" + irVersion: 61 + - version: 1.25.0-rc2 changelogEntry: - summary: | diff --git a/generators/python-v2/dynamic-snippets/src/EndpointSnippetGenerator.ts b/generators/python-v2/dynamic-snippets/src/EndpointSnippetGenerator.ts index 866274b4dc1e..fe39961c7cd2 100644 --- a/generators/python-v2/dynamic-snippets/src/EndpointSnippetGenerator.ts +++ b/generators/python-v2/dynamic-snippets/src/EndpointSnippetGenerator.ts @@ -702,7 +702,7 @@ export class EndpointSnippetGenerator { } return [ { - name: this.context.getPropertyName(body.bodyKey), + name: REQUEST_BODY_ARG_NAME, value: typeInstantiation } ]; diff --git a/generators/python-v2/sdk/src/wire-tests/WireTestGenerator.ts b/generators/python-v2/sdk/src/wire-tests/WireTestGenerator.ts index 0a84e00c6f13..ce9a0a93bb9b 100644 --- a/generators/python-v2/sdk/src/wire-tests/WireTestGenerator.ts +++ b/generators/python-v2/sdk/src/wire-tests/WireTestGenerator.ts @@ -205,6 +205,12 @@ export class WireTestGenerator { continue; } + // Skip bytes request body endpoints — the IR example system has no + // ExampleRequestBody variant for bytes, so we can't produce a proper example. + if (endpoint.requestBody?.type === "bytes") { + continue; + } + // Always use static IR examples to match WireMock mappings // WireMock mappings are generated from static IR examples, so we must use the same examples const staticExample = this.getStaticIrExample(endpoint); diff --git a/generators/python/sdk/versions.yml b/generators/python/sdk/versions.yml index bc146d1496d3..64683ccb5491 100644 --- a/generators/python/sdk/versions.yml +++ b/generators/python/sdk/versions.yml @@ -1,5 +1,14 @@ # yaml-language-server: $schema=../../../fern-versions-yml.schema.json # For unreleased changes, use unreleased.yml +- version: 4.59.3 + changelogEntry: + - summary: Fix bytes body snippet generation to use `request` parameter name instead of dynamic IR body key. + type: fix + - summary: Skip wire test generation for bytes request body endpoints, which lack IR example support. + type: fix + createdAt: "2026-02-24" + irVersion: 65 + - version: 4.59.2 changelogEntry: - summary: | diff --git a/package-yml.schema.json b/package-yml.schema.json index 1c6fca586369..82163d51f2c4 100644 --- a/package-yml.schema.json +++ b/package-yml.schema.json @@ -63,6 +63,16 @@ } ] }, + "webhook-signature": { + "oneOf": [ + { + "$ref": "#/definitions/webhooks.WebhookSignatureSchema" + }, + { + "type": "null" + } + ] + }, "channel": { "oneOf": [ { @@ -3970,6 +3980,16 @@ "path": { "type": "string" }, + "connect-method-name": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, "headers": { "oneOf": [ { diff --git a/packages/cli/api-importers/asyncapi-to-ir/src/2.x/channel/ChannelConverter2_X.ts b/packages/cli/api-importers/asyncapi-to-ir/src/2.x/channel/ChannelConverter2_X.ts index ae029edab10d..2b5237d01015 100644 --- a/packages/cli/api-importers/asyncapi-to-ir/src/2.x/channel/ChannelConverter2_X.ts +++ b/packages/cli/api-importers/asyncapi-to-ir/src/2.x/channel/ChannelConverter2_X.ts @@ -105,6 +105,7 @@ export class ChannelConverter2_X extends AbstractChannelConverter(channel, FernAsyncAPIExtension.FERN_DISPLAY_NAME), + connectMethodName: getExtension(channel, FernAsyncAPIExtension.FERN_SDK_METHOD_NAME), path, description: channel.description, examples, diff --git a/packages/cli/api-importers/openapi/openapi-ir-parser/src/asyncapi/v3/parseAsyncAPIV3.ts b/packages/cli/api-importers/openapi/openapi-ir-parser/src/asyncapi/v3/parseAsyncAPIV3.ts index 981b5eedcdcc..6821950c42db 100644 --- a/packages/cli/api-importers/openapi/openapi-ir-parser/src/asyncapi/v3/parseAsyncAPIV3.ts +++ b/packages/cli/api-importers/openapi/openapi-ir-parser/src/asyncapi/v3/parseAsyncAPIV3.ts @@ -401,6 +401,9 @@ export function parseAsyncAPIV3({ FernAsyncAPIExtension.FERN_SDK_GROUP_NAME ); + // Extract connect method name from x-fern-sdk-method-name extension + const connectMethodName = getExtension(channel, FernAsyncAPIExtension.FERN_SDK_METHOD_NAME); + const channelServers = ( channel.servers?.map((serverRef) => getServerNameFromServerRef(servers, serverRef)) ?? Object.values(servers) @@ -435,6 +438,7 @@ export function parseAsyncAPIV3({ ), messages, summary: getExtension(channel, FernAsyncAPIExtension.FERN_DISPLAY_NAME), + connectMethodName, servers: channelServers, path: parsedChannelPath, description: channel.description, diff --git a/packages/cli/api-importers/openapi/openapi-ir-to-fern-tests/src/__test__/__snapshots__/openapi-ir/asyncapi-v3-x-fern-sdk-method-name.json b/packages/cli/api-importers/openapi/openapi-ir-to-fern-tests/src/__test__/__snapshots__/openapi-ir/asyncapi-v3-x-fern-sdk-method-name.json index 5dd52bf46eb5..c560ac14faeb 100644 --- a/packages/cli/api-importers/openapi/openapi-ir-to-fern-tests/src/__test__/__snapshots__/openapi-ir/asyncapi-v3-x-fern-sdk-method-name.json +++ b/packages/cli/api-importers/openapi/openapi-ir-to-fern-tests/src/__test__/__snapshots__/openapi-ir/asyncapi-v3-x-fern-sdk-method-name.json @@ -66,6 +66,7 @@ } } ], + "connectMethodName": "createChatConnection", "servers": [ { "name": "production", diff --git a/packages/cli/api-importers/openapi/openapi-ir-to-fern-tests/src/__test__/__snapshots__/openapi-ir/x-fern-webhook-signature.json b/packages/cli/api-importers/openapi/openapi-ir-to-fern-tests/src/__test__/__snapshots__/openapi-ir/x-fern-webhook-signature.json index 9f9692364cba..ebbeae19f1ce 100644 --- a/packages/cli/api-importers/openapi/openapi-ir-to-fern-tests/src/__test__/__snapshots__/openapi-ir/x-fern-webhook-signature.json +++ b/packages/cli/api-importers/openapi/openapi-ir-to-fern-tests/src/__test__/__snapshots__/openapi-ir/x-fern-webhook-signature.json @@ -201,6 +201,62 @@ "file": "../openapi.yml", "type": "openapi" } + }, + { + "audiences": [], + "sdkName": { + "groupName": [ + "webhooks" + ], + "methodName": "refundProcessed" + }, + "method": "POST", + "operationId": "refundProcessed", + "tags": [], + "headers": [], + "generatedPayloadName": "RefundProcessedWebhooksPayload", + "payload": { + "generatedName": "RefundProcessedWebhooksPayload", + "schema": "RefundEvent", + "source": { + "file": "../openapi.yml", + "type": "openapi" + }, + "type": "reference" + }, + "signatureVerification": { + "header": "x-refund-signature", + "asymmetricAlgorithm": "ecdsa-sha256", + "encoding": "hex", + "type": "asymmetric" + }, + "examples": [ + { + "payload": { + "properties": { + "refundId": { + "value": { + "value": "refundId", + "type": "string" + }, + "type": "primitive" + }, + "amount": { + "value": { + "value": 1.1, + "type": "double" + }, + "type": "primitive" + } + }, + "type": "object" + } + } + ], + "source": { + "file": "../openapi.yml", + "type": "openapi" + } } ], "channels": {}, @@ -355,6 +411,67 @@ "type": "openapi" }, "type": "object" + }, + "RefundEvent": { + "allOf": [], + "properties": [ + { + "conflict": {}, + "generatedName": "refundEventRefundId", + "key": "refundId", + "schema": { + "schema": { + "type": "string" + }, + "generatedName": "RefundEventRefundId", + "groupName": [], + "type": "primitive" + }, + "audiences": [] + }, + { + "conflict": {}, + "generatedName": "refundEventAmount", + "key": "amount", + "schema": { + "schema": { + "type": "double" + }, + "generatedName": "RefundEventAmount", + "groupName": [], + "type": "primitive" + }, + "audiences": [] + }, + { + "conflict": {}, + "generatedName": "refundEventReason", + "key": "reason", + "schema": { + "generatedName": "RefundEventReason", + "value": { + "schema": { + "type": "string" + }, + "generatedName": "RefundEventReason", + "groupName": [], + "type": "primitive" + }, + "groupName": [], + "type": "optional" + }, + "audiences": [] + } + ], + "allOfPropertyConflicts": [], + "generatedName": "RefundEvent", + "groupName": [], + "additionalProperties": false, + "source": { + "file": "../openapi.yml", + "type": "openapi" + }, + "type": "object" } }, "namespacedSchemas": {} diff --git a/packages/cli/api-importers/openapi/openapi-ir-to-fern-tests/src/__test__/__snapshots__/openapi/asyncapi-v3-x-fern-sdk-method-name.json b/packages/cli/api-importers/openapi/openapi-ir-to-fern-tests/src/__test__/__snapshots__/openapi/asyncapi-v3-x-fern-sdk-method-name.json index 319f4254d21e..857b6f7e3f5a 100644 --- a/packages/cli/api-importers/openapi/openapi-ir-to-fern-tests/src/__test__/__snapshots__/openapi/asyncapi-v3-x-fern-sdk-method-name.json +++ b/packages/cli/api-importers/openapi/openapi-ir-to-fern-tests/src/__test__/__snapshots__/openapi/asyncapi-v3-x-fern-sdk-method-name.json @@ -84,6 +84,7 @@ "contents": { "channel": { "auth": false, + "connect-method-name": "createChatConnection", "docs": "Chat channel for testing custom method names", "examples": [ { @@ -126,6 +127,7 @@ path: /v1/ws/chat url: production auth: false + connect-method-name: createChatConnection docs: Chat channel for testing custom method names messages: serverNotification: diff --git a/packages/cli/api-importers/openapi/openapi-ir-to-fern-tests/src/__test__/__snapshots__/openapi/x-fern-webhook-signature.json b/packages/cli/api-importers/openapi/openapi-ir-to-fern-tests/src/__test__/__snapshots__/openapi/x-fern-webhook-signature.json index 16ca4029fe20..fdc98ec43b2d 100644 --- a/packages/cli/api-importers/openapi/openapi-ir-to-fern-tests/src/__test__/__snapshots__/openapi/x-fern-webhook-signature.json +++ b/packages/cli/api-importers/openapi/openapi-ir-to-fern-tests/src/__test__/__snapshots__/openapi/x-fern-webhook-signature.json @@ -29,6 +29,18 @@ "openapi": "../openapi.yml", }, }, + "RefundEvent": { + "docs": undefined, + "inline": undefined, + "properties": { + "amount": "double", + "reason": "optional", + "refundId": "string", + }, + "source": { + "openapi": "../openapi.yml", + }, + }, "UserEvent": { "docs": undefined, "inline": undefined, @@ -62,6 +74,13 @@ currency: optional source: openapi: ../openapi.yml + RefundEvent: + properties: + refundId: string + amount: double + reason: optional + source: + openapi: ../openapi.yml ", }, "webhooks.yml": { @@ -137,6 +156,33 @@ "type": "asymmetric", }, }, + "refundProcessed": { + "audiences": [], + "display-name": undefined, + "examples": [ + { + "docs": undefined, + "name": undefined, + "payload": { + "amount": 1.1, + "refundId": "refundId", + }, + }, + ], + "headers": {}, + "method": "POST", + "payload": "root.RefundEvent", + "signature": { + "asymmetric-algorithm": "ecdsa-sha256", + "encoding": "hex", + "header": "x-refund-signature", + "jwks-url": undefined, + "key-id-header": undefined, + "signature-prefix": undefined, + "timestamp": undefined, + "type": "asymmetric", + }, + }, "userCreated": { "audiences": [], "display-name": undefined, @@ -245,6 +291,20 @@ webhooks: - payload: paymentId: paymentId amount: 1.1 + refundProcessed: + audiences: [] + method: POST + headers: {} + payload: root.RefundEvent + signature: + type: asymmetric + header: x-refund-signature + asymmetric-algorithm: ecdsa-sha256 + encoding: hex + examples: + - payload: + refundId: refundId + amount: 1.1 ", }, }, diff --git a/packages/cli/api-importers/openapi/openapi-ir-to-fern-tests/src/__test__/fixtures/asyncapi-v3-x-fern-sdk-method-name/asyncapi.yml b/packages/cli/api-importers/openapi/openapi-ir-to-fern-tests/src/__test__/fixtures/asyncapi-v3-x-fern-sdk-method-name/asyncapi.yml index f82f4ca13159..774f6aa81f4b 100644 --- a/packages/cli/api-importers/openapi/openapi-ir-to-fern-tests/src/__test__/fixtures/asyncapi-v3-x-fern-sdk-method-name/asyncapi.yml +++ b/packages/cli/api-importers/openapi/openapi-ir-to-fern-tests/src/__test__/fixtures/asyncapi-v3-x-fern-sdk-method-name/asyncapi.yml @@ -15,6 +15,7 @@ channels: chat: address: /v1/ws/chat description: Chat channel for testing custom method names + x-fern-sdk-method-name: createChatConnection messages: userMessage: $ref: "#/components/messages/UserMessage" diff --git a/packages/cli/api-importers/openapi/openapi-ir-to-fern-tests/src/__test__/fixtures/x-fern-webhook-signature/openapi.yml b/packages/cli/api-importers/openapi/openapi-ir-to-fern-tests/src/__test__/fixtures/x-fern-webhook-signature/openapi.yml index dad640463855..a4b51f8d2d2f 100644 --- a/packages/cli/api-importers/openapi/openapi-ir-to-fern-tests/src/__test__/fixtures/x-fern-webhook-signature/openapi.yml +++ b/packages/cli/api-importers/openapi/openapi-ir-to-fern-tests/src/__test__/fixtures/x-fern-webhook-signature/openapi.yml @@ -48,7 +48,7 @@ paths: schema: $ref: "#/components/schemas/OrderEvent" - # Webhook that overrides with asymmetric signature + # Webhook that overrides with asymmetric RSA signature via JWKS /webhooks/payment-processed: post: operationId: paymentProcessed @@ -72,6 +72,24 @@ paths: schema: $ref: "#/components/schemas/PaymentEvent" + # Webhook that overrides with asymmetric ECDSA signature using static public key + /webhooks/refund-processed: + post: + operationId: refundProcessed + x-fern-webhook: true + x-fern-sdk-group-name: webhooks + x-fern-sdk-method-name: refundProcessed + x-fern-webhook-signature: + type: asymmetric + header: x-refund-signature + asymmetric-algorithm: ecdsa-sha256 + encoding: hex + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/RefundEvent" + components: schemas: UserEvent: @@ -107,3 +125,16 @@ components: required: - paymentId - amount + + RefundEvent: + type: object + properties: + refundId: + type: string + amount: + type: number + reason: + type: string + required: + - refundId + - amount diff --git a/packages/cli/api-importers/openapi/openapi-ir-to-fern/src/buildChannel.ts b/packages/cli/api-importers/openapi/openapi-ir-to-fern/src/buildChannel.ts index 213ca37ed2ef..f2a84a1604da 100644 --- a/packages/cli/api-importers/openapi/openapi-ir-to-fern/src/buildChannel.ts +++ b/packages/cli/api-importers/openapi/openapi-ir-to-fern/src/buildChannel.ts @@ -60,6 +60,10 @@ export function buildChannel({ convertedChannel["display-name"] = channel.summary; } + if (channel.connectMethodName != null) { + convertedChannel["connect-method-name"] = channel.connectMethodName; + } + if (channel.description != null) { convertedChannel.docs = channel.description; } diff --git a/packages/cli/api-importers/openapi/openapi-ir/fern/definition/finalIr.yml b/packages/cli/api-importers/openapi/openapi-ir/fern/definition/finalIr.yml index b4f16da542e6..614858c6c02f 100644 --- a/packages/cli/api-importers/openapi/openapi-ir/fern/definition/finalIr.yml +++ b/packages/cli/api-importers/openapi/openapi-ir/fern/definition/finalIr.yml @@ -137,6 +137,7 @@ types: path: string groupName: commons.SdkGroupName summary: optional + connectMethodName: optional handshake: WebsocketHandshake messages: list servers: list diff --git a/packages/cli/api-importers/openapi/openapi-ir/src/sdk/api/resources/finalIr/types/WebsocketChannel.ts b/packages/cli/api-importers/openapi/openapi-ir/src/sdk/api/resources/finalIr/types/WebsocketChannel.ts index 24908f7a5b82..05d1bf0571b6 100644 --- a/packages/cli/api-importers/openapi/openapi-ir/src/sdk/api/resources/finalIr/types/WebsocketChannel.ts +++ b/packages/cli/api-importers/openapi/openapi-ir/src/sdk/api/resources/finalIr/types/WebsocketChannel.ts @@ -7,6 +7,7 @@ export interface WebsocketChannel extends FernOpenapiIr.WithDescription, FernOpe path: string; groupName: FernOpenapiIr.SdkGroupName; summary: string | undefined; + connectMethodName: string | undefined; handshake: FernOpenapiIr.WebsocketHandshake; messages: FernOpenapiIr.WebsocketMessageSchema[]; servers: FernOpenapiIr.WebsocketServer[]; diff --git a/packages/cli/api-importers/openapi/openapi-ir/src/sdk/serialization/resources/finalIr/types/WebsocketChannel.ts b/packages/cli/api-importers/openapi/openapi-ir/src/sdk/serialization/resources/finalIr/types/WebsocketChannel.ts index 60ab639e9698..fd34ee90057a 100644 --- a/packages/cli/api-importers/openapi/openapi-ir/src/sdk/serialization/resources/finalIr/types/WebsocketChannel.ts +++ b/packages/cli/api-importers/openapi/openapi-ir/src/sdk/serialization/resources/finalIr/types/WebsocketChannel.ts @@ -20,6 +20,7 @@ export const WebsocketChannel: core.serialization.ObjectSchema< path: core.serialization.string(), groupName: SdkGroupName, summary: core.serialization.string().optional(), + connectMethodName: core.serialization.string().optional(), handshake: WebsocketHandshake, messages: core.serialization.list(WebsocketMessageSchema), servers: core.serialization.list(WebsocketServer), @@ -34,6 +35,7 @@ export declare namespace WebsocketChannel { path: string; groupName: SdkGroupName.Raw; summary?: string | null; + connectMethodName?: string | null; handshake: WebsocketHandshake.Raw; messages: WebsocketMessageSchema.Raw[]; servers: WebsocketServer.Raw[]; diff --git a/packages/cli/cli/versions.yml b/packages/cli/cli/versions.yml index 4efb6f38bda4..0fe108312216 100644 --- a/packages/cli/cli/versions.yml +++ b/packages/cli/cli/versions.yml @@ -1,4 +1,44 @@ # yaml-language-server: $schema=../../../fern-versions-yml.schema.json +- version: 3.86.0 + changelogEntry: + - summary: | + Add support for `x-fern-sdk-method-name` extension on AsyncAPI WebSocket channels + to customize the connection method name in generated SDKs. This field is now + available in both AsyncAPI v2 and v3 specifications. + + **AsyncAPI example** — use `x-fern-sdk-method-name` to customize the WebSocket + connection method instead of the default "connect": + + ```yaml + asyncapi: 3.0.0 + info: + title: Chat API + version: 1.0.0 + channels: + /chat: + x-fern-sdk-method-name: createChatConnection + messages: + userMessage: + payload: + type: object + properties: + content: + type: string + ``` + + This generates `client.createChatConnection()` instead of `client.connect()`, + avoiding confusing APIs where both wrapper creation and actual connection use "connect". + type: feat + createdAt: "2026-02-24" + irVersion: 65 +- version: 3.85.6 + changelogEntry: + - summary: | + Complete document-level `webhook-signature` configuration parsing. Adds validation for webhook + signature configs (algorithms, encodings, timestamp settings, JWKS consistency). + type: chore + createdAt: "2026-02-24" + irVersion: 65 - version: 3.85.5 changelogEntry: - summary: | diff --git a/packages/cli/ete-tests/src/tests/ir/__snapshots__/ir.test.ts.snap b/packages/cli/ete-tests/src/tests/ir/__snapshots__/ir.test.ts.snap index c12e3d5f3185..f118aa5c6145 100644 --- a/packages/cli/ete-tests/src/tests/ir/__snapshots__/ir.test.ts.snap +++ b/packages/cli/ete-tests/src/tests/ir/__snapshots__/ir.test.ts.snap @@ -43311,185 +43311,2077 @@ exports[`ir > {"name":"webhooks"} 1`] = ` }, "headers": [], "idempotencyHeaders": [], - "types": {}, - "errors": {}, - "services": {}, - "constants": { - "errorInstanceIdKey": { + "types": { + "type_webhooks:UserCreatedPayload": { + "inline": null, "name": { - "originalName": "errorInstanceId", - "camelCase": { - "unsafeName": "errorInstanceId", - "safeName": "errorInstanceId" + "name": { + "originalName": "UserCreatedPayload", + "camelCase": { + "unsafeName": "userCreatedPayload", + "safeName": "userCreatedPayload" + }, + "snakeCase": { + "unsafeName": "user_created_payload", + "safeName": "user_created_payload" + }, + "screamingSnakeCase": { + "unsafeName": "USER_CREATED_PAYLOAD", + "safeName": "USER_CREATED_PAYLOAD" + }, + "pascalCase": { + "unsafeName": "UserCreatedPayload", + "safeName": "UserCreatedPayload" + } }, - "snakeCase": { - "unsafeName": "error_instance_id", - "safeName": "error_instance_id" + "fernFilepath": { + "allParts": [ + { + "originalName": "webhooks", + "camelCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" + }, + "snakeCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" + }, + "screamingSnakeCase": { + "unsafeName": "WEBHOOKS", + "safeName": "WEBHOOKS" + }, + "pascalCase": { + "unsafeName": "Webhooks", + "safeName": "Webhooks" + } + } + ], + "packagePath": [], + "file": { + "originalName": "webhooks", + "camelCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" + }, + "snakeCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" + }, + "screamingSnakeCase": { + "unsafeName": "WEBHOOKS", + "safeName": "WEBHOOKS" + }, + "pascalCase": { + "unsafeName": "Webhooks", + "safeName": "Webhooks" + } + } }, - "screamingSnakeCase": { - "unsafeName": "ERROR_INSTANCE_ID", - "safeName": "ERROR_INSTANCE_ID" + "displayName": null, + "typeId": "type_webhooks:UserCreatedPayload" + }, + "shape": { + "_type": "object", + "extends": [], + "properties": [ + { + "name": { + "name": { + "originalName": "userId", + "camelCase": { + "unsafeName": "userId", + "safeName": "userId" + }, + "snakeCase": { + "unsafeName": "user_id", + "safeName": "user_id" + }, + "screamingSnakeCase": { + "unsafeName": "USER_ID", + "safeName": "USER_ID" + }, + "pascalCase": { + "unsafeName": "UserId", + "safeName": "UserId" + } + }, + "wireValue": "userId" + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + }, + "propertyAccess": null, + "v2Examples": { + "userSpecifiedExamples": {}, + "autogeneratedExamples": {} + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "email", + "camelCase": { + "unsafeName": "email", + "safeName": "email" + }, + "snakeCase": { + "unsafeName": "email", + "safeName": "email" + }, + "screamingSnakeCase": { + "unsafeName": "EMAIL", + "safeName": "EMAIL" + }, + "pascalCase": { + "unsafeName": "Email", + "safeName": "Email" + } + }, + "wireValue": "email" + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + }, + "propertyAccess": null, + "v2Examples": { + "userSpecifiedExamples": {}, + "autogeneratedExamples": {} + }, + "availability": null, + "docs": null + } + ], + "extra-properties": false, + "extendedProperties": [] + }, + "referencedTypes": [], + "encoding": { + "json": {}, + "proto": null + }, + "source": null, + "userProvidedExamples": [], + "autogeneratedExamples": [], + "v2Examples": null, + "availability": null, + "docs": null + }, + "type_webhooks:OrderCompletedPayload": { + "inline": null, + "name": { + "name": { + "originalName": "OrderCompletedPayload", + "camelCase": { + "unsafeName": "orderCompletedPayload", + "safeName": "orderCompletedPayload" + }, + "snakeCase": { + "unsafeName": "order_completed_payload", + "safeName": "order_completed_payload" + }, + "screamingSnakeCase": { + "unsafeName": "ORDER_COMPLETED_PAYLOAD", + "safeName": "ORDER_COMPLETED_PAYLOAD" + }, + "pascalCase": { + "unsafeName": "OrderCompletedPayload", + "safeName": "OrderCompletedPayload" + } + }, + "fernFilepath": { + "allParts": [ + { + "originalName": "webhooks", + "camelCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" + }, + "snakeCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" + }, + "screamingSnakeCase": { + "unsafeName": "WEBHOOKS", + "safeName": "WEBHOOKS" + }, + "pascalCase": { + "unsafeName": "Webhooks", + "safeName": "Webhooks" + } + } + ], + "packagePath": [], + "file": { + "originalName": "webhooks", + "camelCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" + }, + "snakeCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" + }, + "screamingSnakeCase": { + "unsafeName": "WEBHOOKS", + "safeName": "WEBHOOKS" + }, + "pascalCase": { + "unsafeName": "Webhooks", + "safeName": "Webhooks" + } + } + }, + "displayName": null, + "typeId": "type_webhooks:OrderCompletedPayload" + }, + "shape": { + "_type": "object", + "extends": [], + "properties": [ + { + "name": { + "name": { + "originalName": "orderId", + "camelCase": { + "unsafeName": "orderId", + "safeName": "orderId" + }, + "snakeCase": { + "unsafeName": "order_id", + "safeName": "order_id" + }, + "screamingSnakeCase": { + "unsafeName": "ORDER_ID", + "safeName": "ORDER_ID" + }, + "pascalCase": { + "unsafeName": "OrderId", + "safeName": "OrderId" + } + }, + "wireValue": "orderId" + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + }, + "propertyAccess": null, + "v2Examples": { + "userSpecifiedExamples": {}, + "autogeneratedExamples": {} + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "total", + "camelCase": { + "unsafeName": "total", + "safeName": "total" + }, + "snakeCase": { + "unsafeName": "total", + "safeName": "total" + }, + "screamingSnakeCase": { + "unsafeName": "TOTAL", + "safeName": "TOTAL" + }, + "pascalCase": { + "unsafeName": "Total", + "safeName": "Total" + } + }, + "wireValue": "total" + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "DOUBLE", + "v2": { + "type": "double", + "default": null, + "validation": null + } + } + }, + "propertyAccess": null, + "v2Examples": { + "userSpecifiedExamples": {}, + "autogeneratedExamples": {} + }, + "availability": null, + "docs": null + } + ], + "extra-properties": false, + "extendedProperties": [] + }, + "referencedTypes": [], + "encoding": { + "json": {}, + "proto": null + }, + "source": null, + "userProvidedExamples": [], + "autogeneratedExamples": [], + "v2Examples": null, + "availability": null, + "docs": null + }, + "type_webhooks:PaymentNotificationPayload": { + "inline": null, + "name": { + "name": { + "originalName": "PaymentNotificationPayload", + "camelCase": { + "unsafeName": "paymentNotificationPayload", + "safeName": "paymentNotificationPayload" + }, + "snakeCase": { + "unsafeName": "payment_notification_payload", + "safeName": "payment_notification_payload" + }, + "screamingSnakeCase": { + "unsafeName": "PAYMENT_NOTIFICATION_PAYLOAD", + "safeName": "PAYMENT_NOTIFICATION_PAYLOAD" + }, + "pascalCase": { + "unsafeName": "PaymentNotificationPayload", + "safeName": "PaymentNotificationPayload" + } + }, + "fernFilepath": { + "allParts": [ + { + "originalName": "webhooks", + "camelCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" + }, + "snakeCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" + }, + "screamingSnakeCase": { + "unsafeName": "WEBHOOKS", + "safeName": "WEBHOOKS" + }, + "pascalCase": { + "unsafeName": "Webhooks", + "safeName": "Webhooks" + } + } + ], + "packagePath": [], + "file": { + "originalName": "webhooks", + "camelCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" + }, + "snakeCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" + }, + "screamingSnakeCase": { + "unsafeName": "WEBHOOKS", + "safeName": "WEBHOOKS" + }, + "pascalCase": { + "unsafeName": "Webhooks", + "safeName": "Webhooks" + } + } + }, + "displayName": null, + "typeId": "type_webhooks:PaymentNotificationPayload" + }, + "shape": { + "_type": "object", + "extends": [], + "properties": [ + { + "name": { + "name": { + "originalName": "paymentId", + "camelCase": { + "unsafeName": "paymentId", + "safeName": "paymentId" + }, + "snakeCase": { + "unsafeName": "payment_id", + "safeName": "payment_id" + }, + "screamingSnakeCase": { + "unsafeName": "PAYMENT_ID", + "safeName": "PAYMENT_ID" + }, + "pascalCase": { + "unsafeName": "PaymentId", + "safeName": "PaymentId" + } + }, + "wireValue": "paymentId" + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + }, + "propertyAccess": null, + "v2Examples": { + "userSpecifiedExamples": {}, + "autogeneratedExamples": {} + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "amount", + "camelCase": { + "unsafeName": "amount", + "safeName": "amount" + }, + "snakeCase": { + "unsafeName": "amount", + "safeName": "amount" + }, + "screamingSnakeCase": { + "unsafeName": "AMOUNT", + "safeName": "AMOUNT" + }, + "pascalCase": { + "unsafeName": "Amount", + "safeName": "Amount" + } + }, + "wireValue": "amount" + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "DOUBLE", + "v2": { + "type": "double", + "default": null, + "validation": null + } + } + }, + "propertyAccess": null, + "v2Examples": { + "userSpecifiedExamples": {}, + "autogeneratedExamples": {} + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "status", + "camelCase": { + "unsafeName": "status", + "safeName": "status" + }, + "snakeCase": { + "unsafeName": "status", + "safeName": "status" + }, + "screamingSnakeCase": { + "unsafeName": "STATUS", + "safeName": "STATUS" + }, + "pascalCase": { + "unsafeName": "Status", + "safeName": "Status" + } + }, + "wireValue": "status" + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + }, + "propertyAccess": null, + "v2Examples": { + "userSpecifiedExamples": {}, + "autogeneratedExamples": {} + }, + "availability": null, + "docs": null + } + ], + "extra-properties": false, + "extendedProperties": [] + }, + "referencedTypes": [], + "encoding": { + "json": {}, + "proto": null + }, + "source": null, + "userProvidedExamples": [], + "autogeneratedExamples": [], + "v2Examples": null, + "availability": null, + "docs": null + }, + "type_webhooks:RefundProcessedPayload": { + "inline": null, + "name": { + "name": { + "originalName": "RefundProcessedPayload", + "camelCase": { + "unsafeName": "refundProcessedPayload", + "safeName": "refundProcessedPayload" + }, + "snakeCase": { + "unsafeName": "refund_processed_payload", + "safeName": "refund_processed_payload" + }, + "screamingSnakeCase": { + "unsafeName": "REFUND_PROCESSED_PAYLOAD", + "safeName": "REFUND_PROCESSED_PAYLOAD" + }, + "pascalCase": { + "unsafeName": "RefundProcessedPayload", + "safeName": "RefundProcessedPayload" + } + }, + "fernFilepath": { + "allParts": [ + { + "originalName": "webhooks", + "camelCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" + }, + "snakeCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" + }, + "screamingSnakeCase": { + "unsafeName": "WEBHOOKS", + "safeName": "WEBHOOKS" + }, + "pascalCase": { + "unsafeName": "Webhooks", + "safeName": "Webhooks" + } + } + ], + "packagePath": [], + "file": { + "originalName": "webhooks", + "camelCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" + }, + "snakeCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" + }, + "screamingSnakeCase": { + "unsafeName": "WEBHOOKS", + "safeName": "WEBHOOKS" + }, + "pascalCase": { + "unsafeName": "Webhooks", + "safeName": "Webhooks" + } + } + }, + "displayName": null, + "typeId": "type_webhooks:RefundProcessedPayload" + }, + "shape": { + "_type": "object", + "extends": [], + "properties": [ + { + "name": { + "name": { + "originalName": "refundId", + "camelCase": { + "unsafeName": "refundId", + "safeName": "refundId" + }, + "snakeCase": { + "unsafeName": "refund_id", + "safeName": "refund_id" + }, + "screamingSnakeCase": { + "unsafeName": "REFUND_ID", + "safeName": "REFUND_ID" + }, + "pascalCase": { + "unsafeName": "RefundId", + "safeName": "RefundId" + } + }, + "wireValue": "refundId" + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + }, + "propertyAccess": null, + "v2Examples": { + "userSpecifiedExamples": {}, + "autogeneratedExamples": {} + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "amount", + "camelCase": { + "unsafeName": "amount", + "safeName": "amount" + }, + "snakeCase": { + "unsafeName": "amount", + "safeName": "amount" + }, + "screamingSnakeCase": { + "unsafeName": "AMOUNT", + "safeName": "AMOUNT" + }, + "pascalCase": { + "unsafeName": "Amount", + "safeName": "Amount" + } + }, + "wireValue": "amount" + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "DOUBLE", + "v2": { + "type": "double", + "default": null, + "validation": null + } + } + }, + "propertyAccess": null, + "v2Examples": { + "userSpecifiedExamples": {}, + "autogeneratedExamples": {} + }, + "availability": null, + "docs": null + }, + { + "name": { + "name": { + "originalName": "reason", + "camelCase": { + "unsafeName": "reason", + "safeName": "reason" + }, + "snakeCase": { + "unsafeName": "reason", + "safeName": "reason" + }, + "screamingSnakeCase": { + "unsafeName": "REASON", + "safeName": "REASON" + }, + "pascalCase": { + "unsafeName": "Reason", + "safeName": "Reason" + } + }, + "wireValue": "reason" + }, + "valueType": { + "_type": "container", + "container": { + "_type": "optional", + "optional": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + } + } + }, + "propertyAccess": null, + "v2Examples": { + "userSpecifiedExamples": {}, + "autogeneratedExamples": {} + }, + "availability": null, + "docs": null + } + ], + "extra-properties": false, + "extendedProperties": [] + }, + "referencedTypes": [], + "encoding": { + "json": {}, + "proto": null + }, + "source": null, + "userProvidedExamples": [], + "autogeneratedExamples": [], + "v2Examples": null, + "availability": null, + "docs": null + } + }, + "errors": {}, + "services": {}, + "constants": { + "errorInstanceIdKey": { + "name": { + "originalName": "errorInstanceId", + "camelCase": { + "unsafeName": "errorInstanceId", + "safeName": "errorInstanceId" + }, + "snakeCase": { + "unsafeName": "error_instance_id", + "safeName": "error_instance_id" + }, + "screamingSnakeCase": { + "unsafeName": "ERROR_INSTANCE_ID", + "safeName": "ERROR_INSTANCE_ID" + }, + "pascalCase": { + "unsafeName": "ErrorInstanceId", + "safeName": "ErrorInstanceId" + } + }, + "wireValue": "errorInstanceId" + } + }, + "environments": null, + "errorDiscriminationStrategy": { + "type": "statusCode" + }, + "basePath": null, + "pathParameters": [], + "variables": [], + "serviceTypeReferenceInfo": { + "typesReferencedOnlyByService": {}, + "sharedTypes": [ + "type_webhooks:UserCreatedPayload", + "type_webhooks:OrderCompletedPayload", + "type_webhooks:PaymentNotificationPayload", + "type_webhooks:RefundProcessedPayload" + ] + }, + "webhookGroups": { + "webhooks_webhooks": [ + { + "id": "webhooks_webhooks.userCreated", + "displayName": null, + "method": "POST", + "name": { + "originalName": "userCreated", + "camelCase": { + "unsafeName": "userCreated", + "safeName": "userCreated" + }, + "snakeCase": { + "unsafeName": "user_created", + "safeName": "user_created" + }, + "screamingSnakeCase": { + "unsafeName": "USER_CREATED", + "safeName": "USER_CREATED" + }, + "pascalCase": { + "unsafeName": "UserCreated", + "safeName": "UserCreated" + } + }, + "headers": [], + "payload": { + "type": "reference", + "payloadType": { + "_type": "named", + "name": { + "originalName": "UserCreatedPayload", + "camelCase": { + "unsafeName": "userCreatedPayload", + "safeName": "userCreatedPayload" + }, + "snakeCase": { + "unsafeName": "user_created_payload", + "safeName": "user_created_payload" + }, + "screamingSnakeCase": { + "unsafeName": "USER_CREATED_PAYLOAD", + "safeName": "USER_CREATED_PAYLOAD" + }, + "pascalCase": { + "unsafeName": "UserCreatedPayload", + "safeName": "UserCreatedPayload" + } + }, + "fernFilepath": { + "allParts": [ + { + "originalName": "webhooks", + "camelCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" + }, + "snakeCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" + }, + "screamingSnakeCase": { + "unsafeName": "WEBHOOKS", + "safeName": "WEBHOOKS" + }, + "pascalCase": { + "unsafeName": "Webhooks", + "safeName": "Webhooks" + } + } + ], + "packagePath": [], + "file": { + "originalName": "webhooks", + "camelCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" + }, + "snakeCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" + }, + "screamingSnakeCase": { + "unsafeName": "WEBHOOKS", + "safeName": "WEBHOOKS" + }, + "pascalCase": { + "unsafeName": "Webhooks", + "safeName": "Webhooks" + } + } + }, + "displayName": null, + "typeId": "type_webhooks:UserCreatedPayload", + "default": null, + "inline": null + }, + "docs": null + }, + "signatureVerification": { + "type": "hmac", + "signatureHeaderName": { + "name": { + "originalName": "x-webhook-signature", + "camelCase": { + "unsafeName": "xWebhookSignature", + "safeName": "xWebhookSignature" + }, + "snakeCase": { + "unsafeName": "x_webhook_signature", + "safeName": "x_webhook_signature" + }, + "screamingSnakeCase": { + "unsafeName": "X_WEBHOOK_SIGNATURE", + "safeName": "X_WEBHOOK_SIGNATURE" + }, + "pascalCase": { + "unsafeName": "XWebhookSignature", + "safeName": "XWebhookSignature" + } + }, + "wireValue": "x-webhook-signature" + }, + "algorithm": "SHA256", + "encoding": "HEX", + "signaturePrefix": "sha256=", + "payloadFormat": { + "components": [ + "TIMESTAMP", + "BODY" + ], + "delimiter": "." + }, + "timestamp": { + "headerName": { + "name": { + "originalName": "x-webhook-timestamp", + "camelCase": { + "unsafeName": "xWebhookTimestamp", + "safeName": "xWebhookTimestamp" + }, + "snakeCase": { + "unsafeName": "x_webhook_timestamp", + "safeName": "x_webhook_timestamp" + }, + "screamingSnakeCase": { + "unsafeName": "X_WEBHOOK_TIMESTAMP", + "safeName": "X_WEBHOOK_TIMESTAMP" + }, + "pascalCase": { + "unsafeName": "XWebhookTimestamp", + "safeName": "XWebhookTimestamp" + } + }, + "wireValue": "x-webhook-timestamp" + }, + "format": "UNIX_SECONDS", + "tolerance": 300 + } + }, + "fileUploadPayload": null, + "responses": null, + "examples": null, + "v2Examples": null, + "availability": null, + "docs": "Fired when a new user is created." + }, + { + "id": "webhooks_webhooks.orderCompleted", + "displayName": null, + "method": "POST", + "name": { + "originalName": "orderCompleted", + "camelCase": { + "unsafeName": "orderCompleted", + "safeName": "orderCompleted" + }, + "snakeCase": { + "unsafeName": "order_completed", + "safeName": "order_completed" + }, + "screamingSnakeCase": { + "unsafeName": "ORDER_COMPLETED", + "safeName": "ORDER_COMPLETED" + }, + "pascalCase": { + "unsafeName": "OrderCompleted", + "safeName": "OrderCompleted" + } + }, + "headers": [], + "payload": { + "type": "reference", + "payloadType": { + "_type": "named", + "name": { + "originalName": "OrderCompletedPayload", + "camelCase": { + "unsafeName": "orderCompletedPayload", + "safeName": "orderCompletedPayload" + }, + "snakeCase": { + "unsafeName": "order_completed_payload", + "safeName": "order_completed_payload" + }, + "screamingSnakeCase": { + "unsafeName": "ORDER_COMPLETED_PAYLOAD", + "safeName": "ORDER_COMPLETED_PAYLOAD" + }, + "pascalCase": { + "unsafeName": "OrderCompletedPayload", + "safeName": "OrderCompletedPayload" + } + }, + "fernFilepath": { + "allParts": [ + { + "originalName": "webhooks", + "camelCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" + }, + "snakeCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" + }, + "screamingSnakeCase": { + "unsafeName": "WEBHOOKS", + "safeName": "WEBHOOKS" + }, + "pascalCase": { + "unsafeName": "Webhooks", + "safeName": "Webhooks" + } + } + ], + "packagePath": [], + "file": { + "originalName": "webhooks", + "camelCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" + }, + "snakeCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" + }, + "screamingSnakeCase": { + "unsafeName": "WEBHOOKS", + "safeName": "WEBHOOKS" + }, + "pascalCase": { + "unsafeName": "Webhooks", + "safeName": "Webhooks" + } + } + }, + "displayName": null, + "typeId": "type_webhooks:OrderCompletedPayload", + "default": null, + "inline": null + }, + "docs": null + }, + "signatureVerification": { + "type": "hmac", + "signatureHeaderName": { + "name": { + "originalName": "x-webhook-signature", + "camelCase": { + "unsafeName": "xWebhookSignature", + "safeName": "xWebhookSignature" + }, + "snakeCase": { + "unsafeName": "x_webhook_signature", + "safeName": "x_webhook_signature" + }, + "screamingSnakeCase": { + "unsafeName": "X_WEBHOOK_SIGNATURE", + "safeName": "X_WEBHOOK_SIGNATURE" + }, + "pascalCase": { + "unsafeName": "XWebhookSignature", + "safeName": "XWebhookSignature" + } + }, + "wireValue": "x-webhook-signature" + }, + "algorithm": "SHA256", + "encoding": "HEX", + "signaturePrefix": "sha256=", + "payloadFormat": { + "components": [ + "TIMESTAMP", + "BODY" + ], + "delimiter": "." + }, + "timestamp": { + "headerName": { + "name": { + "originalName": "x-webhook-timestamp", + "camelCase": { + "unsafeName": "xWebhookTimestamp", + "safeName": "xWebhookTimestamp" + }, + "snakeCase": { + "unsafeName": "x_webhook_timestamp", + "safeName": "x_webhook_timestamp" + }, + "screamingSnakeCase": { + "unsafeName": "X_WEBHOOK_TIMESTAMP", + "safeName": "X_WEBHOOK_TIMESTAMP" + }, + "pascalCase": { + "unsafeName": "XWebhookTimestamp", + "safeName": "XWebhookTimestamp" + } + }, + "wireValue": "x-webhook-timestamp" + }, + "format": "UNIX_SECONDS", + "tolerance": 300 + } + }, + "fileUploadPayload": null, + "responses": null, + "examples": null, + "v2Examples": null, + "availability": null, + "docs": "Fired when an order is completed." + }, + { + "id": "webhooks_webhooks.paymentNotification", + "displayName": null, + "method": "POST", + "name": { + "originalName": "paymentNotification", + "camelCase": { + "unsafeName": "paymentNotification", + "safeName": "paymentNotification" + }, + "snakeCase": { + "unsafeName": "payment_notification", + "safeName": "payment_notification" + }, + "screamingSnakeCase": { + "unsafeName": "PAYMENT_NOTIFICATION", + "safeName": "PAYMENT_NOTIFICATION" + }, + "pascalCase": { + "unsafeName": "PaymentNotification", + "safeName": "PaymentNotification" + } + }, + "headers": [], + "payload": { + "type": "reference", + "payloadType": { + "_type": "named", + "name": { + "originalName": "PaymentNotificationPayload", + "camelCase": { + "unsafeName": "paymentNotificationPayload", + "safeName": "paymentNotificationPayload" + }, + "snakeCase": { + "unsafeName": "payment_notification_payload", + "safeName": "payment_notification_payload" + }, + "screamingSnakeCase": { + "unsafeName": "PAYMENT_NOTIFICATION_PAYLOAD", + "safeName": "PAYMENT_NOTIFICATION_PAYLOAD" + }, + "pascalCase": { + "unsafeName": "PaymentNotificationPayload", + "safeName": "PaymentNotificationPayload" + } + }, + "fernFilepath": { + "allParts": [ + { + "originalName": "webhooks", + "camelCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" + }, + "snakeCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" + }, + "screamingSnakeCase": { + "unsafeName": "WEBHOOKS", + "safeName": "WEBHOOKS" + }, + "pascalCase": { + "unsafeName": "Webhooks", + "safeName": "Webhooks" + } + } + ], + "packagePath": [], + "file": { + "originalName": "webhooks", + "camelCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" + }, + "snakeCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" + }, + "screamingSnakeCase": { + "unsafeName": "WEBHOOKS", + "safeName": "WEBHOOKS" + }, + "pascalCase": { + "unsafeName": "Webhooks", + "safeName": "Webhooks" + } + } + }, + "displayName": null, + "typeId": "type_webhooks:PaymentNotificationPayload", + "default": null, + "inline": null + }, + "docs": null + }, + "signatureVerification": { + "type": "asymmetric", + "signatureHeaderName": { + "name": { + "originalName": "x-payment-signature", + "camelCase": { + "unsafeName": "xPaymentSignature", + "safeName": "xPaymentSignature" + }, + "snakeCase": { + "unsafeName": "x_payment_signature", + "safeName": "x_payment_signature" + }, + "screamingSnakeCase": { + "unsafeName": "X_PAYMENT_SIGNATURE", + "safeName": "X_PAYMENT_SIGNATURE" + }, + "pascalCase": { + "unsafeName": "XPaymentSignature", + "safeName": "XPaymentSignature" + } + }, + "wireValue": "x-payment-signature" + }, + "algorithm": "RSA_SHA256", + "encoding": "BASE64", + "signaturePrefix": "rsa=", + "keySource": { + "type": "jwks", + "url": "https://api.example.com/.well-known/jwks.json", + "keyIdHeader": { + "name": { + "originalName": "x-key-id", + "camelCase": { + "unsafeName": "xKeyId", + "safeName": "xKeyId" + }, + "snakeCase": { + "unsafeName": "x_key_id", + "safeName": "x_key_id" + }, + "screamingSnakeCase": { + "unsafeName": "X_KEY_ID", + "safeName": "X_KEY_ID" + }, + "pascalCase": { + "unsafeName": "XKeyId", + "safeName": "XKeyId" + } + }, + "wireValue": "x-key-id" + } + }, + "timestamp": { + "headerName": { + "name": { + "originalName": "x-payment-timestamp", + "camelCase": { + "unsafeName": "xPaymentTimestamp", + "safeName": "xPaymentTimestamp" + }, + "snakeCase": { + "unsafeName": "x_payment_timestamp", + "safeName": "x_payment_timestamp" + }, + "screamingSnakeCase": { + "unsafeName": "X_PAYMENT_TIMESTAMP", + "safeName": "X_PAYMENT_TIMESTAMP" + }, + "pascalCase": { + "unsafeName": "XPaymentTimestamp", + "safeName": "XPaymentTimestamp" + } + }, + "wireValue": "x-payment-timestamp" + }, + "format": "ISO8601", + "tolerance": null + } }, - "pascalCase": { - "unsafeName": "ErrorInstanceId", - "safeName": "ErrorInstanceId" - } + "fileUploadPayload": null, + "responses": null, + "examples": null, + "v2Examples": null, + "availability": null, + "docs": "Fired when a payment status changes." }, - "wireValue": "errorInstanceId" - } - }, - "environments": null, - "errorDiscriminationStrategy": { - "type": "statusCode" - }, - "basePath": null, - "pathParameters": [], - "variables": [], - "serviceTypeReferenceInfo": { - "typesReferencedOnlyByService": {}, - "sharedTypes": [] - }, - "webhookGroups": { - "webhooks_webhooks": [ { - "id": "webhooks_webhooks.sendNotification", + "id": "webhooks_webhooks.refundProcessed", "displayName": null, "method": "POST", "name": { - "originalName": "sendNotification", + "originalName": "refundProcessed", "camelCase": { - "unsafeName": "sendNotification", - "safeName": "sendNotification" + "unsafeName": "refundProcessed", + "safeName": "refundProcessed" }, "snakeCase": { - "unsafeName": "send_notification", - "safeName": "send_notification" + "unsafeName": "refund_processed", + "safeName": "refund_processed" }, "screamingSnakeCase": { - "unsafeName": "SEND_NOTIFICATION", - "safeName": "SEND_NOTIFICATION" + "unsafeName": "REFUND_PROCESSED", + "safeName": "REFUND_PROCESSED" }, "pascalCase": { - "unsafeName": "SendNotification", - "safeName": "SendNotification" + "unsafeName": "RefundProcessed", + "safeName": "RefundProcessed" + } + }, + "headers": [], + "payload": { + "type": "reference", + "payloadType": { + "_type": "named", + "name": { + "originalName": "RefundProcessedPayload", + "camelCase": { + "unsafeName": "refundProcessedPayload", + "safeName": "refundProcessedPayload" + }, + "snakeCase": { + "unsafeName": "refund_processed_payload", + "safeName": "refund_processed_payload" + }, + "screamingSnakeCase": { + "unsafeName": "REFUND_PROCESSED_PAYLOAD", + "safeName": "REFUND_PROCESSED_PAYLOAD" + }, + "pascalCase": { + "unsafeName": "RefundProcessedPayload", + "safeName": "RefundProcessedPayload" + } + }, + "fernFilepath": { + "allParts": [ + { + "originalName": "webhooks", + "camelCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" + }, + "snakeCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" + }, + "screamingSnakeCase": { + "unsafeName": "WEBHOOKS", + "safeName": "WEBHOOKS" + }, + "pascalCase": { + "unsafeName": "Webhooks", + "safeName": "Webhooks" + } + } + ], + "packagePath": [], + "file": { + "originalName": "webhooks", + "camelCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" + }, + "snakeCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" + }, + "screamingSnakeCase": { + "unsafeName": "WEBHOOKS", + "safeName": "WEBHOOKS" + }, + "pascalCase": { + "unsafeName": "Webhooks", + "safeName": "Webhooks" + } + } + }, + "displayName": null, + "typeId": "type_webhooks:RefundProcessedPayload", + "default": null, + "inline": null + }, + "docs": null + }, + "signatureVerification": { + "type": "asymmetric", + "signatureHeaderName": { + "name": { + "originalName": "x-refund-signature", + "camelCase": { + "unsafeName": "xRefundSignature", + "safeName": "xRefundSignature" + }, + "snakeCase": { + "unsafeName": "x_refund_signature", + "safeName": "x_refund_signature" + }, + "screamingSnakeCase": { + "unsafeName": "X_REFUND_SIGNATURE", + "safeName": "X_REFUND_SIGNATURE" + }, + "pascalCase": { + "unsafeName": "XRefundSignature", + "safeName": "XRefundSignature" + } + }, + "wireValue": "x-refund-signature" + }, + "algorithm": "ECDSA_SHA256", + "encoding": "HEX", + "signaturePrefix": null, + "keySource": { + "type": "static" + }, + "timestamp": null + }, + "fileUploadPayload": null, + "responses": null, + "examples": null, + "v2Examples": null, + "availability": null, + "docs": "Fired when a refund is processed." + } + ] + }, + "websocketChannels": {}, + "readmeConfig": null, + "sourceConfig": null, + "publishConfig": null, + "dynamic": { + "version": "1.0.0", + "types": { + "type_webhooks:UserCreatedPayload": { + "type": "object", + "declaration": { + "name": { + "originalName": "UserCreatedPayload", + "camelCase": { + "unsafeName": "userCreatedPayload", + "safeName": "userCreatedPayload" + }, + "snakeCase": { + "unsafeName": "user_created_payload", + "safeName": "user_created_payload" + }, + "screamingSnakeCase": { + "unsafeName": "USER_CREATED_PAYLOAD", + "safeName": "USER_CREATED_PAYLOAD" + }, + "pascalCase": { + "unsafeName": "UserCreatedPayload", + "safeName": "UserCreatedPayload" + } + }, + "fernFilepath": { + "allParts": [ + { + "originalName": "webhooks", + "camelCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" + }, + "snakeCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" + }, + "screamingSnakeCase": { + "unsafeName": "WEBHOOKS", + "safeName": "WEBHOOKS" + }, + "pascalCase": { + "unsafeName": "Webhooks", + "safeName": "Webhooks" + } + } + ], + "packagePath": [], + "file": { + "originalName": "webhooks", + "camelCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" + }, + "snakeCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" + }, + "screamingSnakeCase": { + "unsafeName": "WEBHOOKS", + "safeName": "WEBHOOKS" + }, + "pascalCase": { + "unsafeName": "Webhooks", + "safeName": "Webhooks" + } + } + } + }, + "properties": [ + { + "name": { + "name": { + "originalName": "userId", + "camelCase": { + "unsafeName": "userId", + "safeName": "userId" + }, + "snakeCase": { + "unsafeName": "user_id", + "safeName": "user_id" + }, + "screamingSnakeCase": { + "unsafeName": "USER_ID", + "safeName": "USER_ID" + }, + "pascalCase": { + "unsafeName": "UserId", + "safeName": "UserId" + } + }, + "wireValue": "userId" + }, + "typeReference": { + "type": "primitive", + "value": "STRING" + }, + "propertyAccess": null, + "variable": null + }, + { + "name": { + "name": { + "originalName": "email", + "camelCase": { + "unsafeName": "email", + "safeName": "email" + }, + "snakeCase": { + "unsafeName": "email", + "safeName": "email" + }, + "screamingSnakeCase": { + "unsafeName": "EMAIL", + "safeName": "EMAIL" + }, + "pascalCase": { + "unsafeName": "Email", + "safeName": "Email" + } + }, + "wireValue": "email" + }, + "typeReference": { + "type": "primitive", + "value": "STRING" + }, + "propertyAccess": null, + "variable": null + } + ], + "extends": null, + "additionalProperties": false + }, + "type_webhooks:OrderCompletedPayload": { + "type": "object", + "declaration": { + "name": { + "originalName": "OrderCompletedPayload", + "camelCase": { + "unsafeName": "orderCompletedPayload", + "safeName": "orderCompletedPayload" + }, + "snakeCase": { + "unsafeName": "order_completed_payload", + "safeName": "order_completed_payload" + }, + "screamingSnakeCase": { + "unsafeName": "ORDER_COMPLETED_PAYLOAD", + "safeName": "ORDER_COMPLETED_PAYLOAD" + }, + "pascalCase": { + "unsafeName": "OrderCompletedPayload", + "safeName": "OrderCompletedPayload" + } + }, + "fernFilepath": { + "allParts": [ + { + "originalName": "webhooks", + "camelCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" + }, + "snakeCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" + }, + "screamingSnakeCase": { + "unsafeName": "WEBHOOKS", + "safeName": "WEBHOOKS" + }, + "pascalCase": { + "unsafeName": "Webhooks", + "safeName": "Webhooks" + } + } + ], + "packagePath": [], + "file": { + "originalName": "webhooks", + "camelCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" + }, + "snakeCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" + }, + "screamingSnakeCase": { + "unsafeName": "WEBHOOKS", + "safeName": "WEBHOOKS" + }, + "pascalCase": { + "unsafeName": "Webhooks", + "safeName": "Webhooks" + } + } + } + }, + "properties": [ + { + "name": { + "name": { + "originalName": "orderId", + "camelCase": { + "unsafeName": "orderId", + "safeName": "orderId" + }, + "snakeCase": { + "unsafeName": "order_id", + "safeName": "order_id" + }, + "screamingSnakeCase": { + "unsafeName": "ORDER_ID", + "safeName": "ORDER_ID" + }, + "pascalCase": { + "unsafeName": "OrderId", + "safeName": "OrderId" + } + }, + "wireValue": "orderId" + }, + "typeReference": { + "type": "primitive", + "value": "STRING" + }, + "propertyAccess": null, + "variable": null + }, + { + "name": { + "name": { + "originalName": "total", + "camelCase": { + "unsafeName": "total", + "safeName": "total" + }, + "snakeCase": { + "unsafeName": "total", + "safeName": "total" + }, + "screamingSnakeCase": { + "unsafeName": "TOTAL", + "safeName": "TOTAL" + }, + "pascalCase": { + "unsafeName": "Total", + "safeName": "Total" + } + }, + "wireValue": "total" + }, + "typeReference": { + "type": "primitive", + "value": "DOUBLE" + }, + "propertyAccess": null, + "variable": null } - }, - "headers": [], - "payload": { - "type": "inlinedPayload", + ], + "extends": null, + "additionalProperties": false + }, + "type_webhooks:PaymentNotificationPayload": { + "type": "object", + "declaration": { "name": { - "originalName": "NotificationPayload", + "originalName": "PaymentNotificationPayload", "camelCase": { - "unsafeName": "notificationPayload", - "safeName": "notificationPayload" + "unsafeName": "paymentNotificationPayload", + "safeName": "paymentNotificationPayload" }, "snakeCase": { - "unsafeName": "notification_payload", - "safeName": "notification_payload" + "unsafeName": "payment_notification_payload", + "safeName": "payment_notification_payload" }, "screamingSnakeCase": { - "unsafeName": "NOTIFICATION_PAYLOAD", - "safeName": "NOTIFICATION_PAYLOAD" + "unsafeName": "PAYMENT_NOTIFICATION_PAYLOAD", + "safeName": "PAYMENT_NOTIFICATION_PAYLOAD" }, "pascalCase": { - "unsafeName": "NotificationPayload", - "safeName": "NotificationPayload" + "unsafeName": "PaymentNotificationPayload", + "safeName": "PaymentNotificationPayload" } }, - "extends": [], - "properties": [ - { + "fernFilepath": { + "allParts": [ + { + "originalName": "webhooks", + "camelCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" + }, + "snakeCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" + }, + "screamingSnakeCase": { + "unsafeName": "WEBHOOKS", + "safeName": "WEBHOOKS" + }, + "pascalCase": { + "unsafeName": "Webhooks", + "safeName": "Webhooks" + } + } + ], + "packagePath": [], + "file": { + "originalName": "webhooks", + "camelCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" + }, + "snakeCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" + }, + "screamingSnakeCase": { + "unsafeName": "WEBHOOKS", + "safeName": "WEBHOOKS" + }, + "pascalCase": { + "unsafeName": "Webhooks", + "safeName": "Webhooks" + } + } + } + }, + "properties": [ + { + "name": { "name": { - "name": { - "originalName": "name", - "camelCase": { - "unsafeName": "name", - "safeName": "name" - }, - "snakeCase": { - "unsafeName": "name", - "safeName": "name" - }, - "screamingSnakeCase": { - "unsafeName": "NAME", - "safeName": "NAME" - }, - "pascalCase": { - "unsafeName": "Name", - "safeName": "Name" - } + "originalName": "paymentId", + "camelCase": { + "unsafeName": "paymentId", + "safeName": "paymentId" + }, + "snakeCase": { + "unsafeName": "payment_id", + "safeName": "payment_id" }, - "wireValue": "name" + "screamingSnakeCase": { + "unsafeName": "PAYMENT_ID", + "safeName": "PAYMENT_ID" + }, + "pascalCase": { + "unsafeName": "PaymentId", + "safeName": "PaymentId" + } }, - "valueType": { - "_type": "primitive", - "primitive": { - "v1": "STRING", - "v2": { - "type": "string", - "default": null, - "validation": null - } + "wireValue": "paymentId" + }, + "typeReference": { + "type": "primitive", + "value": "STRING" + }, + "propertyAccess": null, + "variable": null + }, + { + "name": { + "name": { + "originalName": "amount", + "camelCase": { + "unsafeName": "amount", + "safeName": "amount" + }, + "snakeCase": { + "unsafeName": "amount", + "safeName": "amount" + }, + "screamingSnakeCase": { + "unsafeName": "AMOUNT", + "safeName": "AMOUNT" + }, + "pascalCase": { + "unsafeName": "Amount", + "safeName": "Amount" } }, - "availability": null, - "docs": null + "wireValue": "amount" }, - { + "typeReference": { + "type": "primitive", + "value": "DOUBLE" + }, + "propertyAccess": null, + "variable": null + }, + { + "name": { "name": { - "name": { - "originalName": "urgent", - "camelCase": { - "unsafeName": "urgent", - "safeName": "urgent" - }, - "snakeCase": { - "unsafeName": "urgent", - "safeName": "urgent" - }, - "screamingSnakeCase": { - "unsafeName": "URGENT", - "safeName": "URGENT" - }, - "pascalCase": { - "unsafeName": "Urgent", - "safeName": "Urgent" - } + "originalName": "status", + "camelCase": { + "unsafeName": "status", + "safeName": "status" + }, + "snakeCase": { + "unsafeName": "status", + "safeName": "status" + }, + "screamingSnakeCase": { + "unsafeName": "STATUS", + "safeName": "STATUS" }, - "wireValue": "urgent" + "pascalCase": { + "unsafeName": "Status", + "safeName": "Status" + } }, - "valueType": { - "_type": "primitive", - "primitive": { - "v1": "BOOLEAN", - "v2": { - "type": "boolean", - "default": null - } + "wireValue": "status" + }, + "typeReference": { + "type": "primitive", + "value": "STRING" + }, + "propertyAccess": null, + "variable": null + } + ], + "extends": null, + "additionalProperties": false + }, + "type_webhooks:RefundProcessedPayload": { + "type": "object", + "declaration": { + "name": { + "originalName": "RefundProcessedPayload", + "camelCase": { + "unsafeName": "refundProcessedPayload", + "safeName": "refundProcessedPayload" + }, + "snakeCase": { + "unsafeName": "refund_processed_payload", + "safeName": "refund_processed_payload" + }, + "screamingSnakeCase": { + "unsafeName": "REFUND_PROCESSED_PAYLOAD", + "safeName": "REFUND_PROCESSED_PAYLOAD" + }, + "pascalCase": { + "unsafeName": "RefundProcessedPayload", + "safeName": "RefundProcessedPayload" + } + }, + "fernFilepath": { + "allParts": [ + { + "originalName": "webhooks", + "camelCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" + }, + "snakeCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" + }, + "screamingSnakeCase": { + "unsafeName": "WEBHOOKS", + "safeName": "WEBHOOKS" + }, + "pascalCase": { + "unsafeName": "Webhooks", + "safeName": "Webhooks" } + } + ], + "packagePath": [], + "file": { + "originalName": "webhooks", + "camelCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" }, - "availability": null, - "docs": "Some docs about urgency" + "snakeCase": { + "unsafeName": "webhooks", + "safeName": "webhooks" + }, + "screamingSnakeCase": { + "unsafeName": "WEBHOOKS", + "safeName": "WEBHOOKS" + }, + "pascalCase": { + "unsafeName": "Webhooks", + "safeName": "Webhooks" + } } - ] + } }, - "signatureVerification": null, - "fileUploadPayload": null, - "responses": null, - "examples": null, - "v2Examples": null, - "availability": null, - "docs": "This is a webhook to receive notifications." + "properties": [ + { + "name": { + "name": { + "originalName": "refundId", + "camelCase": { + "unsafeName": "refundId", + "safeName": "refundId" + }, + "snakeCase": { + "unsafeName": "refund_id", + "safeName": "refund_id" + }, + "screamingSnakeCase": { + "unsafeName": "REFUND_ID", + "safeName": "REFUND_ID" + }, + "pascalCase": { + "unsafeName": "RefundId", + "safeName": "RefundId" + } + }, + "wireValue": "refundId" + }, + "typeReference": { + "type": "primitive", + "value": "STRING" + }, + "propertyAccess": null, + "variable": null + }, + { + "name": { + "name": { + "originalName": "amount", + "camelCase": { + "unsafeName": "amount", + "safeName": "amount" + }, + "snakeCase": { + "unsafeName": "amount", + "safeName": "amount" + }, + "screamingSnakeCase": { + "unsafeName": "AMOUNT", + "safeName": "AMOUNT" + }, + "pascalCase": { + "unsafeName": "Amount", + "safeName": "Amount" + } + }, + "wireValue": "amount" + }, + "typeReference": { + "type": "primitive", + "value": "DOUBLE" + }, + "propertyAccess": null, + "variable": null + }, + { + "name": { + "name": { + "originalName": "reason", + "camelCase": { + "unsafeName": "reason", + "safeName": "reason" + }, + "snakeCase": { + "unsafeName": "reason", + "safeName": "reason" + }, + "screamingSnakeCase": { + "unsafeName": "REASON", + "safeName": "REASON" + }, + "pascalCase": { + "unsafeName": "Reason", + "safeName": "Reason" + } + }, + "wireValue": "reason" + }, + "typeReference": { + "type": "optional", + "value": { + "type": "primitive", + "value": "STRING" + } + }, + "propertyAccess": null, + "variable": null + } + ], + "extends": null, + "additionalProperties": false } - ] - }, - "websocketChannels": {}, - "readmeConfig": null, - "sourceConfig": null, - "publishConfig": null, - "dynamic": { - "version": "1.0.0", - "types": {}, + }, "headers": [], "endpoints": {}, "pathParameters": [], @@ -43566,7 +45458,12 @@ exports[`ir > {"name":"webhooks"} 1`] = ` } }, "service": null, - "types": [], + "types": [ + "type_webhooks:UserCreatedPayload", + "type_webhooks:OrderCompletedPayload", + "type_webhooks:PaymentNotificationPayload", + "type_webhooks:RefundProcessedPayload" + ], "errors": [], "subpackages": [], "navigationConfig": null, diff --git a/packages/cli/ete-tests/src/tests/ir/fixtures/webhooks/fern/definition/webhooks.yml b/packages/cli/ete-tests/src/tests/ir/fixtures/webhooks/fern/definition/webhooks.yml index 5d670189e94d..1cfc9dd2ead5 100644 --- a/packages/cli/ete-tests/src/tests/ir/fixtures/webhooks/fern/definition/webhooks.yml +++ b/packages/cli/ete-tests/src/tests/ir/fixtures/webhooks/fern/definition/webhooks.yml @@ -1,11 +1,80 @@ +# Document-level default: HMAC SHA-256 with hex encoding and timestamp-based payload +webhook-signature: + type: hmac + header: x-webhook-signature + algorithm: sha256 + encoding: hex + signature-prefix: "sha256=" + payload-format: + components: + - timestamp + - body + delimiter: "." + timestamp: + header: x-webhook-timestamp + format: unix-seconds + tolerance: 300 + +types: + UserCreatedPayload: + properties: + userId: string + email: string + + OrderCompletedPayload: + properties: + orderId: string + total: double + + PaymentNotificationPayload: + properties: + paymentId: string + amount: double + status: string + + RefundProcessedPayload: + properties: + refundId: string + amount: double + reason: optional + webhooks: - sendNotification: - method: POST - docs: This is a webhook to receive notifications. - payload: - name: NotificationPayload - properties: - name: string - urgent: - type: boolean - docs: Some docs about urgency + # Inherits document-level HMAC config (no explicit signature) + userCreated: + method: POST + docs: Fired when a new user is created. + payload: UserCreatedPayload + + # Inherits document-level HMAC config (no explicit signature) + orderCompleted: + method: POST + docs: Fired when an order is completed. + payload: OrderCompletedPayload + + # Per-webhook override: Asymmetric RSA-SHA256 via JWKS endpoint + paymentNotification: + method: POST + docs: Fired when a payment status changes. + payload: PaymentNotificationPayload + signature: + type: asymmetric + header: x-payment-signature + asymmetric-algorithm: rsa-sha256 + encoding: base64 + signature-prefix: "rsa=" + jwks-url: https://api.example.com/.well-known/jwks.json + key-id-header: x-key-id + timestamp: + header: x-payment-timestamp + format: iso8601 + + # Per-webhook override: Asymmetric ECDSA-SHA256 with static public key + refundProcessed: + method: POST + docs: Fired when a refund is processed. + payload: RefundProcessedPayload + signature: + type: asymmetric + header: x-refund-signature + asymmetric-algorithm: ecdsa-sha256 + encoding: hex diff --git a/packages/cli/fern-definition/formatter/src/FernDefinitionFileFormatter.ts b/packages/cli/fern-definition/formatter/src/FernDefinitionFileFormatter.ts index 95a2cdd3d05b..b4708ce10c79 100644 --- a/packages/cli/fern-definition/formatter/src/FernDefinitionFileFormatter.ts +++ b/packages/cli/fern-definition/formatter/src/FernDefinitionFileFormatter.ts @@ -130,6 +130,7 @@ export class FernDefinitionFileFormatter { case "service": case "errors": case "webhooks": + case "webhook-signature": case "channel": return castedKey; default: @@ -170,6 +171,8 @@ export class FernDefinitionFileFormatter { return "webhook"; } return undefined; + case "webhook-signature": + return undefined; case "channel": if (indent === 1) { return "channel"; diff --git a/packages/cli/fern-definition/schema/src/schemas/api/resources/file/types/DefinitionFileSchema.ts b/packages/cli/fern-definition/schema/src/schemas/api/resources/file/types/DefinitionFileSchema.ts index 7483c04615b7..a28aabb90370 100644 --- a/packages/cli/fern-definition/schema/src/schemas/api/resources/file/types/DefinitionFileSchema.ts +++ b/packages/cli/fern-definition/schema/src/schemas/api/resources/file/types/DefinitionFileSchema.ts @@ -8,5 +8,10 @@ export interface DefinitionFileSchema extends FernDefinition.WithDocsSchema { service?: FernDefinition.HttpServiceSchema; errors?: Record; webhooks?: Record; + /** + * Default webhook signature verification configuration. + * Applied to all webhooks in this file that do not declare their own signature. + */ + "webhook-signature"?: FernDefinition.WebhookSignatureSchema; channel?: FernDefinition.WebSocketChannelSchema; } diff --git a/packages/cli/fern-definition/schema/src/schemas/api/resources/websocket/types/WebSocketChannelSchema.ts b/packages/cli/fern-definition/schema/src/schemas/api/resources/websocket/types/WebSocketChannelSchema.ts index 76c3038b9bc5..d44fdaedba82 100644 --- a/packages/cli/fern-definition/schema/src/schemas/api/resources/websocket/types/WebSocketChannelSchema.ts +++ b/packages/cli/fern-definition/schema/src/schemas/api/resources/websocket/types/WebSocketChannelSchema.ts @@ -6,6 +6,7 @@ export interface WebSocketChannelSchema extends FernDefinition.DeclarationSchema auth: boolean; url?: string; path: string; + "connect-method-name"?: string; headers?: Record; "path-parameters"?: Record; "query-parameters"?: Record; diff --git a/packages/cli/fern-definition/schema/src/schemas/serialization/resources/file/types/DefinitionFileSchema.ts b/packages/cli/fern-definition/schema/src/schemas/serialization/resources/file/types/DefinitionFileSchema.ts index 5874ff217af2..d350755ff798 100644 --- a/packages/cli/fern-definition/schema/src/schemas/serialization/resources/file/types/DefinitionFileSchema.ts +++ b/packages/cli/fern-definition/schema/src/schemas/serialization/resources/file/types/DefinitionFileSchema.ts @@ -8,6 +8,7 @@ import { ErrorDeclarationSchema } from "../../errors/types/ErrorDeclarationSchem import { HttpServiceSchema } from "../../service/types/HttpServiceSchema.js"; import { TypeDeclarationSchema } from "../../types/types/TypeDeclarationSchema.js"; import { WebhookSchema } from "../../webhooks/types/WebhookSchema.js"; +import { WebhookSignatureSchema } from "../../webhooks/types/WebhookSignatureSchema.js"; import { WebSocketChannelSchema } from "../../websocket/types/WebSocketChannelSchema.js"; export const DefinitionFileSchema: core.serialization.ObjectSchema< @@ -20,6 +21,7 @@ export const DefinitionFileSchema: core.serialization.ObjectSchema< service: HttpServiceSchema.optional(), errors: core.serialization.record(core.serialization.string(), ErrorDeclarationSchema).optional(), webhooks: core.serialization.record(core.serialization.string(), WebhookSchema).optional(), + "webhook-signature": WebhookSignatureSchema.optional(), channel: WebSocketChannelSchema.optional(), }) .extend(WithDocsSchema); @@ -31,6 +33,7 @@ export declare namespace DefinitionFileSchema { service?: HttpServiceSchema.Raw | null; errors?: Record | null; webhooks?: Record | null; + "webhook-signature"?: WebhookSignatureSchema.Raw | null; channel?: WebSocketChannelSchema.Raw | null; } } diff --git a/packages/cli/fern-definition/schema/src/schemas/serialization/resources/websocket/types/WebSocketChannelSchema.ts b/packages/cli/fern-definition/schema/src/schemas/serialization/resources/websocket/types/WebSocketChannelSchema.ts index e2b48b254aed..d855fca499c8 100644 --- a/packages/cli/fern-definition/schema/src/schemas/serialization/resources/websocket/types/WebSocketChannelSchema.ts +++ b/packages/cli/fern-definition/schema/src/schemas/serialization/resources/websocket/types/WebSocketChannelSchema.ts @@ -19,6 +19,7 @@ export const WebSocketChannelSchema: core.serialization.ObjectSchema< auth: core.serialization.boolean(), url: core.serialization.string().optional(), path: core.serialization.string(), + "connect-method-name": core.serialization.string().optional(), headers: core.serialization.record(core.serialization.string(), HttpHeaderSchema).optional(), "path-parameters": core.serialization.record(core.serialization.string(), HttpPathParameterSchema).optional(), "query-parameters": core.serialization.record(core.serialization.string(), HttpQueryParameterSchema).optional(), @@ -33,6 +34,7 @@ export declare namespace WebSocketChannelSchema { auth: boolean; url?: string | null; path: string; + "connect-method-name"?: string | null; headers?: Record | null; "path-parameters"?: Record | null; "query-parameters"?: Record | null; diff --git a/packages/cli/fern-definition/validator/src/ast/DefinitionFileAstVisitor.ts b/packages/cli/fern-definition/validator/src/ast/DefinitionFileAstVisitor.ts index b37b2aee898f..942299715327 100644 --- a/packages/cli/fern-definition/validator/src/ast/DefinitionFileAstVisitor.ts +++ b/packages/cli/fern-definition/validator/src/ast/DefinitionFileAstVisitor.ts @@ -80,6 +80,7 @@ export interface DefinitionFileAstNodeTypes { pathParameter: { pathParameterKey: string; pathParameter: RawSchemas.HttpPathParameterSchema }; queryParameter: { queryParameterKey: string; queryParameter: RawSchemas.HttpQueryParameterSchema }; header: { headerKey: string; header: RawSchemas.HttpHeaderSchema }; + webhookSignature: RawSchemas.WebhookSignatureSchema; errorDeclaration: { errorName: string; declaration: RawSchemas.ErrorDeclarationSchema }; errorReference: string; variableReference: string; diff --git a/packages/cli/fern-definition/validator/src/ast/visitDefinitionFileYamlAst.ts b/packages/cli/fern-definition/validator/src/ast/visitDefinitionFileYamlAst.ts index ef4379c9cff7..87777a273f63 100644 --- a/packages/cli/fern-definition/validator/src/ast/visitDefinitionFileYamlAst.ts +++ b/packages/cli/fern-definition/validator/src/ast/visitDefinitionFileYamlAst.ts @@ -31,6 +31,11 @@ export function visitDefinitionFileYamlAst( visitWebhooks({ webhook, visitor, nodePathForWebhook: ["webhooks", webhookId] }); } }, + "webhook-signature": (webhookSignature) => { + if (webhookSignature != null) { + visitor.webhookSignature?.(webhookSignature, ["webhook-signature"]); + } + }, // TODO(dsinghvi): Implement visitor for channel channel: noop, errors: (errors) => { diff --git a/packages/cli/fern-definition/validator/src/ast/visitPackageMarkerYamlAst.ts b/packages/cli/fern-definition/validator/src/ast/visitPackageMarkerYamlAst.ts index 024155e53aae..30319dd95455 100644 --- a/packages/cli/fern-definition/validator/src/ast/visitPackageMarkerYamlAst.ts +++ b/packages/cli/fern-definition/validator/src/ast/visitPackageMarkerYamlAst.ts @@ -13,6 +13,7 @@ export function visitPackageMarkerYamlAst( types: noop, service: noop, webhooks: noop, + "webhook-signature": noop, errors: noop, channel: noop, export: (export_) => { diff --git a/packages/cli/fern-definition/validator/src/ast/visitors/visitWebhooks.ts b/packages/cli/fern-definition/validator/src/ast/visitors/visitWebhooks.ts index 2c98e51f49cc..7f1fde2c6e9c 100644 --- a/packages/cli/fern-definition/validator/src/ast/visitors/visitWebhooks.ts +++ b/packages/cli/fern-definition/validator/src/ast/visitors/visitWebhooks.ts @@ -94,7 +94,11 @@ export function visitWebhooks({ } }); }, - signature: noop, + signature: (signature) => { + if (signature != null) { + visitor.webhookSignature?.(signature, [...nodePathForWebhook, "signature"]); + } + }, response: noop, "response-stream": noop, audiences: noop, diff --git a/packages/cli/fern-definition/validator/src/createDefinitionFileAstVisitorForRules.ts b/packages/cli/fern-definition/validator/src/createDefinitionFileAstVisitorForRules.ts index d48cbaf30040..bc4f7c68c73d 100644 --- a/packages/cli/fern-definition/validator/src/createDefinitionFileAstVisitorForRules.ts +++ b/packages/cli/fern-definition/validator/src/createDefinitionFileAstVisitorForRules.ts @@ -50,6 +50,7 @@ export function createDefinitionFileAstVisitorForRules({ ...createAstNodeVisitor("queryParameter"), ...createAstNodeVisitor("streamCondition"), ...createAstNodeVisitor("header"), + ...createAstNodeVisitor("webhookSignature"), ...createAstNodeVisitor("errorDeclaration"), ...createAstNodeVisitor("errorReference"), ...createAstNodeVisitor("exampleType"), diff --git a/packages/cli/fern-definition/validator/src/getAllRules.ts b/packages/cli/fern-definition/validator/src/getAllRules.ts index c2a6608de1b9..c8183f13984b 100644 --- a/packages/cli/fern-definition/validator/src/getAllRules.ts +++ b/packages/cli/fern-definition/validator/src/getAllRules.ts @@ -44,6 +44,7 @@ import { ValidStreamConditionRule } from "./rules/valid-stream-condition/index.j import { ValidTypeNameRule } from "./rules/valid-type-name/index.js"; import { ValidTypeReferenceWithDefaultAndValidationRule } from "./rules/valid-type-reference-with-default-and-validation/index.js"; import { ValidVersionRule } from "./rules/valid-version/index.js"; +import { ValidWebhookSignatureRule } from "./rules/valid-webhook-signature/index.js"; export function getAllRules(): Rule[] { return [ @@ -91,7 +92,8 @@ export function getAllRules(): Rule[] { ValidGenericRule, ContentTypeOnlyForMultipartRule, ValidPathParametersConfigurationRule, - ExplodedFormDataIsArrayRule + ExplodedFormDataIsArrayRule, + ValidWebhookSignatureRule ]; } diff --git a/packages/cli/fern-definition/validator/src/rules/valid-webhook-signature/index.ts b/packages/cli/fern-definition/validator/src/rules/valid-webhook-signature/index.ts new file mode 100644 index 000000000000..d59def448c4c --- /dev/null +++ b/packages/cli/fern-definition/validator/src/rules/valid-webhook-signature/index.ts @@ -0,0 +1 @@ +export { ValidWebhookSignatureRule } from "./valid-webhook-signature.js"; diff --git a/packages/cli/fern-definition/validator/src/rules/valid-webhook-signature/valid-webhook-signature.ts b/packages/cli/fern-definition/validator/src/rules/valid-webhook-signature/valid-webhook-signature.ts new file mode 100644 index 000000000000..fe05b1e90a7e --- /dev/null +++ b/packages/cli/fern-definition/validator/src/rules/valid-webhook-signature/valid-webhook-signature.ts @@ -0,0 +1,123 @@ +import { RawSchemas } from "@fern-api/fern-definition-schema"; + +import { Rule, RuleViolation } from "../../Rule.js"; + +const VALID_HMAC_ALGORITHMS = new Set(Object.values(RawSchemas.WebhookSignatureAlgorithmSchema)); + +const VALID_ASYMMETRIC_ALGORITHMS = new Set(Object.values(RawSchemas.AsymmetricAlgorithmSchema)); + +const VALID_ENCODINGS = new Set(Object.values(RawSchemas.WebhookSignatureEncodingSchema)); + +const VALID_TIMESTAMP_FORMATS = new Set(Object.values(RawSchemas.WebhookTimestampFormatSchema)); + +export const ValidWebhookSignatureRule: Rule = { + name: "valid-webhook-signature", + create: () => { + return { + definitionFile: { + webhookSignature: (signature) => { + return validateSignature(signature); + } + } + }; + } +}; + +function validateSignature(signature: RawSchemas.WebhookSignatureSchema): RuleViolation[] { + const violations: RuleViolation[] = []; + + if (signature.header == null || signature.header.length === 0) { + violations.push({ + severity: "error", + message: "webhook-signature must specify a header" + }); + } + + if (signature.encoding != null && !VALID_ENCODINGS.has(signature.encoding)) { + violations.push({ + severity: "error", + message: `Invalid encoding "${signature.encoding}". Must be one of: ${[...VALID_ENCODINGS].join(", ")}` + }); + } + + if (signature.timestamp != null) { + validateTimestamp(signature.timestamp, violations); + } + + switch (signature.type) { + case "hmac": + validateHmac(signature, violations); + break; + case "asymmetric": + validateAsymmetric(signature, violations); + break; + } + + return violations; +} + +function validateHmac(signature: RawSchemas.WebhookSignatureSchema.Hmac, violations: RuleViolation[]): void { + if (signature.algorithm != null && !VALID_HMAC_ALGORITHMS.has(signature.algorithm)) { + violations.push({ + severity: "error", + message: `Invalid HMAC algorithm "${signature.algorithm}". Must be one of: ${[...VALID_HMAC_ALGORITHMS].join(", ")}` + }); + } + + if (signature["payload-format"] != null) { + const format = signature["payload-format"]; + if (format.components != null) { + const validComponents = new Set(Object.values(RawSchemas.WebhookPayloadComponentSchema)); + for (const component of format.components) { + if (!validComponents.has(component)) { + violations.push({ + severity: "error", + message: `Invalid payload-format component "${component}". Must be one of: ${[...validComponents].join(", ")}` + }); + } + } + } + } +} + +function validateAsymmetric( + signature: RawSchemas.WebhookSignatureSchema.Asymmetric, + violations: RuleViolation[] +): void { + if (!VALID_ASYMMETRIC_ALGORITHMS.has(signature["asymmetric-algorithm"])) { + violations.push({ + severity: "error", + message: `Invalid asymmetric algorithm "${signature["asymmetric-algorithm"]}". Must be one of: ${[...VALID_ASYMMETRIC_ALGORITHMS].join(", ")}` + }); + } + + if (signature["key-id-header"] != null && signature["jwks-url"] == null) { + violations.push({ + severity: "warning", + message: "key-id-header is specified without jwks-url and will be ignored" + }); + } +} + +function validateTimestamp(timestamp: RawSchemas.WebhookTimestampSchema, violations: RuleViolation[]): void { + if (timestamp.header == null || timestamp.header.length === 0) { + violations.push({ + severity: "error", + message: "webhook-signature timestamp must specify a header" + }); + } + + if (timestamp.format != null && !VALID_TIMESTAMP_FORMATS.has(timestamp.format)) { + violations.push({ + severity: "error", + message: `Invalid timestamp format "${timestamp.format}". Must be one of: ${[...VALID_TIMESTAMP_FORMATS].join(", ")}` + }); + } + + if (timestamp.tolerance != null && timestamp.tolerance <= 0) { + violations.push({ + severity: "error", + message: "webhook-signature timestamp tolerance must be a positive number" + }); + } +} diff --git a/packages/cli/generation/ir-generator-tests/src/dynamic-snippets/__test__/test-definitions/exhaustive.json b/packages/cli/generation/ir-generator-tests/src/dynamic-snippets/__test__/test-definitions/exhaustive.json index b0ba3fc71bdd..6a9d08fd21b1 100644 --- a/packages/cli/generation/ir-generator-tests/src/dynamic-snippets/__test__/test-definitions/exhaustive.json +++ b/packages/cli/generation/ir-generator-tests/src/dynamic-snippets/__test__/test-definitions/exhaustive.json @@ -9832,6 +9832,179 @@ }, "examples": null }, + "endpoint_endpoints/params.uploadWithPath": { + "auth": { + "type": "bearer", + "token": { + "originalName": "token", + "camelCase": { + "unsafeName": "token", + "safeName": "token" + }, + "snakeCase": { + "unsafeName": "token", + "safeName": "token" + }, + "screamingSnakeCase": { + "unsafeName": "TOKEN", + "safeName": "TOKEN" + }, + "pascalCase": { + "unsafeName": "Token", + "safeName": "Token" + } + } + }, + "declaration": { + "name": { + "originalName": "uploadWithPath", + "camelCase": { + "unsafeName": "uploadWithPath", + "safeName": "uploadWithPath" + }, + "snakeCase": { + "unsafeName": "upload_with_path", + "safeName": "upload_with_path" + }, + "screamingSnakeCase": { + "unsafeName": "UPLOAD_WITH_PATH", + "safeName": "UPLOAD_WITH_PATH" + }, + "pascalCase": { + "unsafeName": "UploadWithPath", + "safeName": "UploadWithPath" + } + }, + "fernFilepath": { + "allParts": [ + { + "originalName": "endpoints", + "camelCase": { + "unsafeName": "endpoints", + "safeName": "endpoints" + }, + "snakeCase": { + "unsafeName": "endpoints", + "safeName": "endpoints" + }, + "screamingSnakeCase": { + "unsafeName": "ENDPOINTS", + "safeName": "ENDPOINTS" + }, + "pascalCase": { + "unsafeName": "Endpoints", + "safeName": "Endpoints" + } + }, + { + "originalName": "params", + "camelCase": { + "unsafeName": "params", + "safeName": "params" + }, + "snakeCase": { + "unsafeName": "params", + "safeName": "params" + }, + "screamingSnakeCase": { + "unsafeName": "PARAMS", + "safeName": "PARAMS" + }, + "pascalCase": { + "unsafeName": "Params", + "safeName": "Params" + } + } + ], + "packagePath": [ + { + "originalName": "endpoints", + "camelCase": { + "unsafeName": "endpoints", + "safeName": "endpoints" + }, + "snakeCase": { + "unsafeName": "endpoints", + "safeName": "endpoints" + }, + "screamingSnakeCase": { + "unsafeName": "ENDPOINTS", + "safeName": "ENDPOINTS" + }, + "pascalCase": { + "unsafeName": "Endpoints", + "safeName": "Endpoints" + } + } + ], + "file": { + "originalName": "params", + "camelCase": { + "unsafeName": "params", + "safeName": "params" + }, + "snakeCase": { + "unsafeName": "params", + "safeName": "params" + }, + "screamingSnakeCase": { + "unsafeName": "PARAMS", + "safeName": "PARAMS" + }, + "pascalCase": { + "unsafeName": "Params", + "safeName": "Params" + } + } + } + }, + "location": { + "method": "POST", + "path": "/params/path/{param}" + }, + "request": { + "type": "body", + "pathParameters": [ + { + "name": { + "name": { + "originalName": "param", + "camelCase": { + "unsafeName": "param", + "safeName": "param" + }, + "snakeCase": { + "unsafeName": "param", + "safeName": "param" + }, + "screamingSnakeCase": { + "unsafeName": "PARAM", + "safeName": "PARAM" + }, + "pascalCase": { + "unsafeName": "Param", + "safeName": "Param" + } + }, + "wireValue": "param" + }, + "typeReference": { + "type": "primitive", + "value": "STRING" + }, + "propertyAccess": null, + "variable": null + } + ], + "body": { + "type": "bytes" + } + }, + "response": { + "type": "json" + }, + "examples": null + }, "endpoint_endpoints/primitive.getAndReturnString": { "auth": { "type": "bearer", diff --git a/packages/cli/generation/ir-generator-tests/src/ir/__test__/test-definitions/exhaustive.json b/packages/cli/generation/ir-generator-tests/src/ir/__test__/test-definitions/exhaustive.json index 6dbb8a7c53d7..547b44b6d304 100644 --- a/packages/cli/generation/ir-generator-tests/src/ir/__test__/test-definitions/exhaustive.json +++ b/packages/cli/generation/ir-generator-tests/src/ir/__test__/test-definitions/exhaustive.json @@ -64157,6 +64157,637 @@ "responseHeaders": [], "availability": null, "docs": "PUT to update with path param" + }, + { + "id": "endpoint_endpoints/params.uploadWithPath", + "name": { + "originalName": "uploadWithPath", + "camelCase": { + "unsafeName": "uploadWithPath", + "safeName": "uploadWithPath" + }, + "snakeCase": { + "unsafeName": "upload_with_path", + "safeName": "upload_with_path" + }, + "screamingSnakeCase": { + "unsafeName": "UPLOAD_WITH_PATH", + "safeName": "UPLOAD_WITH_PATH" + }, + "pascalCase": { + "unsafeName": "UploadWithPath", + "safeName": "UploadWithPath" + } + }, + "displayName": null, + "auth": true, + "security": [ + { + "bearer": [] + } + ], + "idempotent": false, + "baseUrl": null, + "v2BaseUrls": null, + "method": "POST", + "basePath": null, + "path": { + "head": "/path/", + "parts": [ + { + "pathParameter": "param", + "tail": "" + } + ] + }, + "fullPath": { + "head": "/params/path/", + "parts": [ + { + "pathParameter": "param", + "tail": "" + } + ] + }, + "pathParameters": [ + { + "name": { + "originalName": "param", + "camelCase": { + "unsafeName": "param", + "safeName": "param" + }, + "snakeCase": { + "unsafeName": "param", + "safeName": "param" + }, + "screamingSnakeCase": { + "unsafeName": "PARAM", + "safeName": "PARAM" + }, + "pascalCase": { + "unsafeName": "Param", + "safeName": "Param" + } + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + }, + "location": "ENDPOINT", + "variable": null, + "v2Examples": { + "userSpecifiedExamples": {}, + "autogeneratedExamples": {} + }, + "explode": null, + "docs": null + } + ], + "allPathParameters": [ + { + "name": { + "originalName": "param", + "camelCase": { + "unsafeName": "param", + "safeName": "param" + }, + "snakeCase": { + "unsafeName": "param", + "safeName": "param" + }, + "screamingSnakeCase": { + "unsafeName": "PARAM", + "safeName": "PARAM" + }, + "pascalCase": { + "unsafeName": "Param", + "safeName": "Param" + } + }, + "valueType": { + "_type": "primitive", + "primitive": { + "v1": "STRING", + "v2": { + "type": "string", + "default": null, + "validation": null + } + } + }, + "location": "ENDPOINT", + "variable": null, + "v2Examples": { + "userSpecifiedExamples": {}, + "autogeneratedExamples": {} + }, + "explode": null, + "docs": null + } + ], + "queryParameters": [], + "headers": [], + "requestBody": { + "type": "bytes", + "isOptional": false, + "docs": null, + "v2Examples": null, + "contentType": null + }, + "v2RequestBodies": null, + "sdkRequest": { + "shape": { + "type": "justRequestBody", + "value": { + "type": "bytes", + "isOptional": false, + "docs": null, + "v2Examples": null, + "contentType": null + } + }, + "requestParameterName": { + "originalName": "request", + "camelCase": { + "unsafeName": "request", + "safeName": "request" + }, + "snakeCase": { + "unsafeName": "request", + "safeName": "request" + }, + "screamingSnakeCase": { + "unsafeName": "REQUEST", + "safeName": "REQUEST" + }, + "pascalCase": { + "unsafeName": "Request", + "safeName": "Request" + } + }, + "streamParameter": null + }, + "response": { + "body": { + "type": "json", + "value": { + "type": "response", + "responseBodyType": { + "_type": "named", + "name": { + "originalName": "ObjectWithRequiredField", + "camelCase": { + "unsafeName": "objectWithRequiredField", + "safeName": "objectWithRequiredField" + }, + "snakeCase": { + "unsafeName": "object_with_required_field", + "safeName": "object_with_required_field" + }, + "screamingSnakeCase": { + "unsafeName": "OBJECT_WITH_REQUIRED_FIELD", + "safeName": "OBJECT_WITH_REQUIRED_FIELD" + }, + "pascalCase": { + "unsafeName": "ObjectWithRequiredField", + "safeName": "ObjectWithRequiredField" + } + }, + "fernFilepath": { + "allParts": [ + { + "originalName": "types", + "camelCase": { + "unsafeName": "types", + "safeName": "types" + }, + "snakeCase": { + "unsafeName": "types", + "safeName": "types" + }, + "screamingSnakeCase": { + "unsafeName": "TYPES", + "safeName": "TYPES" + }, + "pascalCase": { + "unsafeName": "Types", + "safeName": "Types" + } + }, + { + "originalName": "object", + "camelCase": { + "unsafeName": "object", + "safeName": "object" + }, + "snakeCase": { + "unsafeName": "object", + "safeName": "object" + }, + "screamingSnakeCase": { + "unsafeName": "OBJECT", + "safeName": "OBJECT" + }, + "pascalCase": { + "unsafeName": "Object", + "safeName": "Object" + } + } + ], + "packagePath": [ + { + "originalName": "types", + "camelCase": { + "unsafeName": "types", + "safeName": "types" + }, + "snakeCase": { + "unsafeName": "types", + "safeName": "types" + }, + "screamingSnakeCase": { + "unsafeName": "TYPES", + "safeName": "TYPES" + }, + "pascalCase": { + "unsafeName": "Types", + "safeName": "Types" + } + } + ], + "file": { + "originalName": "object", + "camelCase": { + "unsafeName": "object", + "safeName": "object" + }, + "snakeCase": { + "unsafeName": "object", + "safeName": "object" + }, + "screamingSnakeCase": { + "unsafeName": "OBJECT", + "safeName": "OBJECT" + }, + "pascalCase": { + "unsafeName": "Object", + "safeName": "Object" + } + } + }, + "displayName": null, + "typeId": "type_types/object:ObjectWithRequiredField", + "default": null, + "inline": null + }, + "docs": null, + "v2Examples": null + } + }, + "status-code": null, + "isWildcardStatusCode": null, + "docs": null + }, + "v2Responses": null, + "errors": [], + "userSpecifiedExamples": [ + { + "example": { + "id": "b305eac1", + "name": null, + "url": "/params/path/upload-path", + "rootPathParameters": [], + "endpointPathParameters": [ + { + "name": { + "originalName": "param", + "camelCase": { + "unsafeName": "param", + "safeName": "param" + }, + "snakeCase": { + "unsafeName": "param", + "safeName": "param" + }, + "screamingSnakeCase": { + "unsafeName": "PARAM", + "safeName": "PARAM" + }, + "pascalCase": { + "unsafeName": "Param", + "safeName": "Param" + } + }, + "value": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "upload-path" + } + } + }, + "jsonExample": "upload-path" + } + } + ], + "servicePathParameters": [], + "endpointHeaders": [], + "serviceHeaders": [], + "queryParameters": [], + "request": null, + "response": { + "type": "ok", + "value": { + "type": "body", + "value": { + "shape": { + "type": "named", + "typeName": { + "typeId": "type_types/object:ObjectWithRequiredField", + "fernFilepath": { + "allParts": [ + { + "originalName": "types", + "camelCase": { + "unsafeName": "types", + "safeName": "types" + }, + "snakeCase": { + "unsafeName": "types", + "safeName": "types" + }, + "screamingSnakeCase": { + "unsafeName": "TYPES", + "safeName": "TYPES" + }, + "pascalCase": { + "unsafeName": "Types", + "safeName": "Types" + } + }, + { + "originalName": "object", + "camelCase": { + "unsafeName": "object", + "safeName": "object" + }, + "snakeCase": { + "unsafeName": "object", + "safeName": "object" + }, + "screamingSnakeCase": { + "unsafeName": "OBJECT", + "safeName": "OBJECT" + }, + "pascalCase": { + "unsafeName": "Object", + "safeName": "Object" + } + } + ], + "packagePath": [ + { + "originalName": "types", + "camelCase": { + "unsafeName": "types", + "safeName": "types" + }, + "snakeCase": { + "unsafeName": "types", + "safeName": "types" + }, + "screamingSnakeCase": { + "unsafeName": "TYPES", + "safeName": "TYPES" + }, + "pascalCase": { + "unsafeName": "Types", + "safeName": "Types" + } + } + ], + "file": { + "originalName": "object", + "camelCase": { + "unsafeName": "object", + "safeName": "object" + }, + "snakeCase": { + "unsafeName": "object", + "safeName": "object" + }, + "screamingSnakeCase": { + "unsafeName": "OBJECT", + "safeName": "OBJECT" + }, + "pascalCase": { + "unsafeName": "Object", + "safeName": "Object" + } + } + }, + "name": { + "originalName": "ObjectWithRequiredField", + "camelCase": { + "unsafeName": "objectWithRequiredField", + "safeName": "objectWithRequiredField" + }, + "snakeCase": { + "unsafeName": "object_with_required_field", + "safeName": "object_with_required_field" + }, + "screamingSnakeCase": { + "unsafeName": "OBJECT_WITH_REQUIRED_FIELD", + "safeName": "OBJECT_WITH_REQUIRED_FIELD" + }, + "pascalCase": { + "unsafeName": "ObjectWithRequiredField", + "safeName": "ObjectWithRequiredField" + } + }, + "displayName": null + }, + "shape": { + "type": "object", + "properties": [ + { + "name": { + "name": { + "originalName": "string", + "camelCase": { + "unsafeName": "string", + "safeName": "string" + }, + "snakeCase": { + "unsafeName": "string", + "safeName": "string" + }, + "screamingSnakeCase": { + "unsafeName": "STRING", + "safeName": "STRING" + }, + "pascalCase": { + "unsafeName": "String", + "safeName": "String" + } + }, + "wireValue": "string" + }, + "value": { + "shape": { + "type": "primitive", + "primitive": { + "type": "string", + "string": { + "original": "uploaded" + } + } + }, + "jsonExample": "uploaded" + }, + "originalTypeDeclaration": { + "typeId": "type_types/object:ObjectWithRequiredField", + "fernFilepath": { + "allParts": [ + { + "originalName": "types", + "camelCase": { + "unsafeName": "types", + "safeName": "types" + }, + "snakeCase": { + "unsafeName": "types", + "safeName": "types" + }, + "screamingSnakeCase": { + "unsafeName": "TYPES", + "safeName": "TYPES" + }, + "pascalCase": { + "unsafeName": "Types", + "safeName": "Types" + } + }, + { + "originalName": "object", + "camelCase": { + "unsafeName": "object", + "safeName": "object" + }, + "snakeCase": { + "unsafeName": "object", + "safeName": "object" + }, + "screamingSnakeCase": { + "unsafeName": "OBJECT", + "safeName": "OBJECT" + }, + "pascalCase": { + "unsafeName": "Object", + "safeName": "Object" + } + } + ], + "packagePath": [ + { + "originalName": "types", + "camelCase": { + "unsafeName": "types", + "safeName": "types" + }, + "snakeCase": { + "unsafeName": "types", + "safeName": "types" + }, + "screamingSnakeCase": { + "unsafeName": "TYPES", + "safeName": "TYPES" + }, + "pascalCase": { + "unsafeName": "Types", + "safeName": "Types" + } + } + ], + "file": { + "originalName": "object", + "camelCase": { + "unsafeName": "object", + "safeName": "object" + }, + "snakeCase": { + "unsafeName": "object", + "safeName": "object" + }, + "screamingSnakeCase": { + "unsafeName": "OBJECT", + "safeName": "OBJECT" + }, + "pascalCase": { + "unsafeName": "Object", + "safeName": "Object" + } + } + }, + "name": { + "originalName": "ObjectWithRequiredField", + "camelCase": { + "unsafeName": "objectWithRequiredField", + "safeName": "objectWithRequiredField" + }, + "snakeCase": { + "unsafeName": "object_with_required_field", + "safeName": "object_with_required_field" + }, + "screamingSnakeCase": { + "unsafeName": "OBJECT_WITH_REQUIRED_FIELD", + "safeName": "OBJECT_WITH_REQUIRED_FIELD" + }, + "pascalCase": { + "unsafeName": "ObjectWithRequiredField", + "safeName": "ObjectWithRequiredField" + } + }, + "displayName": null + }, + "propertyAccess": null + } + ], + "extraProperties": null + } + }, + "jsonExample": { + "string": "uploaded" + } + } + } + }, + "docs": null + }, + "codeSamples": null + } + ], + "autogeneratedExamples": [], + "pagination": null, + "transport": null, + "v2Examples": null, + "source": null, + "audiences": null, + "retries": null, + "apiPlayground": null, + "responseHeaders": [], + "availability": null, + "docs": "POST bytes with path param returning object" } ], "audiences": null @@ -92224,6 +92855,179 @@ }, "examples": null }, + "endpoint_endpoints/params.uploadWithPath": { + "auth": { + "type": "bearer", + "token": { + "originalName": "token", + "camelCase": { + "unsafeName": "token", + "safeName": "token" + }, + "snakeCase": { + "unsafeName": "token", + "safeName": "token" + }, + "screamingSnakeCase": { + "unsafeName": "TOKEN", + "safeName": "TOKEN" + }, + "pascalCase": { + "unsafeName": "Token", + "safeName": "Token" + } + } + }, + "declaration": { + "name": { + "originalName": "uploadWithPath", + "camelCase": { + "unsafeName": "uploadWithPath", + "safeName": "uploadWithPath" + }, + "snakeCase": { + "unsafeName": "upload_with_path", + "safeName": "upload_with_path" + }, + "screamingSnakeCase": { + "unsafeName": "UPLOAD_WITH_PATH", + "safeName": "UPLOAD_WITH_PATH" + }, + "pascalCase": { + "unsafeName": "UploadWithPath", + "safeName": "UploadWithPath" + } + }, + "fernFilepath": { + "allParts": [ + { + "originalName": "endpoints", + "camelCase": { + "unsafeName": "endpoints", + "safeName": "endpoints" + }, + "snakeCase": { + "unsafeName": "endpoints", + "safeName": "endpoints" + }, + "screamingSnakeCase": { + "unsafeName": "ENDPOINTS", + "safeName": "ENDPOINTS" + }, + "pascalCase": { + "unsafeName": "Endpoints", + "safeName": "Endpoints" + } + }, + { + "originalName": "params", + "camelCase": { + "unsafeName": "params", + "safeName": "params" + }, + "snakeCase": { + "unsafeName": "params", + "safeName": "params" + }, + "screamingSnakeCase": { + "unsafeName": "PARAMS", + "safeName": "PARAMS" + }, + "pascalCase": { + "unsafeName": "Params", + "safeName": "Params" + } + } + ], + "packagePath": [ + { + "originalName": "endpoints", + "camelCase": { + "unsafeName": "endpoints", + "safeName": "endpoints" + }, + "snakeCase": { + "unsafeName": "endpoints", + "safeName": "endpoints" + }, + "screamingSnakeCase": { + "unsafeName": "ENDPOINTS", + "safeName": "ENDPOINTS" + }, + "pascalCase": { + "unsafeName": "Endpoints", + "safeName": "Endpoints" + } + } + ], + "file": { + "originalName": "params", + "camelCase": { + "unsafeName": "params", + "safeName": "params" + }, + "snakeCase": { + "unsafeName": "params", + "safeName": "params" + }, + "screamingSnakeCase": { + "unsafeName": "PARAMS", + "safeName": "PARAMS" + }, + "pascalCase": { + "unsafeName": "Params", + "safeName": "Params" + } + } + } + }, + "location": { + "method": "POST", + "path": "/params/path/{param}" + }, + "request": { + "type": "body", + "pathParameters": [ + { + "name": { + "name": { + "originalName": "param", + "camelCase": { + "unsafeName": "param", + "safeName": "param" + }, + "snakeCase": { + "unsafeName": "param", + "safeName": "param" + }, + "screamingSnakeCase": { + "unsafeName": "PARAM", + "safeName": "PARAM" + }, + "pascalCase": { + "unsafeName": "Param", + "safeName": "Param" + } + }, + "wireValue": "param" + }, + "typeReference": { + "type": "primitive", + "value": "STRING" + }, + "propertyAccess": null, + "variable": null + } + ], + "body": { + "type": "bytes" + } + }, + "response": { + "type": "json" + }, + "examples": null + }, "endpoint_endpoints/primitive.getAndReturnString": { "auth": { "type": "bearer", diff --git a/packages/cli/generation/ir-generator-tests/src/ir/__test__/test-definitions/websocket-bearer-auth.json b/packages/cli/generation/ir-generator-tests/src/ir/__test__/test-definitions/websocket-bearer-auth.json index 02648a4efc96..a5e44e33f4e5 100644 --- a/packages/cli/generation/ir-generator-tests/src/ir/__test__/test-definitions/websocket-bearer-auth.json +++ b/packages/cli/generation/ir-generator-tests/src/ir/__test__/test-definitions/websocket-bearer-auth.json @@ -1601,6 +1601,7 @@ } }, "displayName": null, + "connectMethodName": null, "headers": [], "pathParameters": [ { @@ -2318,6 +2319,7 @@ } }, "displayName": null, + "connectMethodName": null, "headers": [], "pathParameters": [ { diff --git a/packages/cli/generation/ir-generator-tests/src/ir/__test__/test-definitions/websocket-inferred-auth.json b/packages/cli/generation/ir-generator-tests/src/ir/__test__/test-definitions/websocket-inferred-auth.json index be6b8673b993..e0b2047f80d5 100644 --- a/packages/cli/generation/ir-generator-tests/src/ir/__test__/test-definitions/websocket-inferred-auth.json +++ b/packages/cli/generation/ir-generator-tests/src/ir/__test__/test-definitions/websocket-inferred-auth.json @@ -3840,6 +3840,7 @@ } }, "displayName": null, + "connectMethodName": null, "headers": [], "pathParameters": [ { diff --git a/packages/cli/generation/ir-generator-tests/src/ir/__test__/test-definitions/websocket.json b/packages/cli/generation/ir-generator-tests/src/ir/__test__/test-definitions/websocket.json index a59087ea5d7a..fea88d0ed925 100644 --- a/packages/cli/generation/ir-generator-tests/src/ir/__test__/test-definitions/websocket.json +++ b/packages/cli/generation/ir-generator-tests/src/ir/__test__/test-definitions/websocket.json @@ -1308,6 +1308,7 @@ } }, "displayName": null, + "connectMethodName": null, "headers": [], "pathParameters": [], "queryParameters": [], @@ -1362,6 +1363,7 @@ } }, "displayName": null, + "connectMethodName": null, "headers": [], "pathParameters": [ { diff --git a/packages/cli/generation/ir-generator/src/converters/convertChannel.ts b/packages/cli/generation/ir-generator/src/converters/convertChannel.ts index 576381afa964..1c4e47290306 100644 --- a/packages/cli/generation/ir-generator/src/converters/convertChannel.ts +++ b/packages/cli/generation/ir-generator/src/converters/convertChannel.ts @@ -71,6 +71,7 @@ export function convertChannel({ // since there's only 1 channel per file, we can use the file name as the channel's name name: file.fernFilepath.file ?? file.casingsGenerator.generateName(channel["display-name"] ?? channel.path), displayName: channel["display-name"], + connectMethodName: channel["connect-method-name"], headers: channel.headers != null ? Object.entries(channel.headers).map(([headerKey, header]) => diff --git a/packages/cli/generation/ir-generator/src/converters/convertWebhookGroup.ts b/packages/cli/generation/ir-generator/src/converters/convertWebhookGroup.ts index 18cc9f9b3a00..41e25cb8cb37 100644 --- a/packages/cli/generation/ir-generator/src/converters/convertWebhookGroup.ts +++ b/packages/cli/generation/ir-generator/src/converters/convertWebhookGroup.ts @@ -47,13 +47,15 @@ export function convertWebhookGroup({ file, typeResolver, exampleResolver, - workspace + workspace, + defaultSignature }: { webhooks: Record; file: FernFileContext; typeResolver: TypeResolver; exampleResolver: ExampleResolver; workspace: FernWorkspace; + defaultSignature?: RawSchemas.WebhookSignatureSchema; }): WebhookGroup { const webhookGroup: Webhook[] = []; for (const [webhookId, webhook] of Object.entries(webhooks)) { @@ -71,7 +73,10 @@ export function convertWebhookGroup({ ) : [], payload: convertWebhookPayloadSchema({ payload: webhook.payload, file }), - signatureVerification: convertWebhookSignatureSchema({ signature: webhook.signature, file }), + signatureVerification: convertWebhookSignatureSchema({ + signature: webhook.signature ?? defaultSignature, + file + }), fileUploadPayload: undefined, responses: convertWebhookResponses({ webhook, file, typeResolver }), examples: diff --git a/packages/cli/generation/ir-generator/src/generateIntermediateRepresentation.ts b/packages/cli/generation/ir-generator/src/generateIntermediateRepresentation.ts index 2b97a67a1c23..cb4defdfda33 100644 --- a/packages/cli/generation/ir-generator/src/generateIntermediateRepresentation.ts +++ b/packages/cli/generation/ir-generator/src/generateIntermediateRepresentation.ts @@ -350,7 +350,8 @@ export function generateIntermediateRepresentation({ file, typeResolver, exampleResolver, - workspace + workspace, + defaultSignature: file.definitionFile["webhook-signature"] }); const webhooksByOriginalName: Record = {}; @@ -371,6 +372,7 @@ export function generateIntermediateRepresentation({ intermediateRepresentation.webhookGroups[webhookGroupId] = convertedWebhookGroup; packageTreeGenerator.addWebhookGroup(webhookGroupId, file.fernFilepath); }, + "webhook-signature": noop, channel: (channel) => { if (channel == null) { return; diff --git a/packages/cli/generation/ir-migrations/src/migrations/v65-to-v63/migrateFromV65ToV63.ts b/packages/cli/generation/ir-migrations/src/migrations/v65-to-v63/migrateFromV65ToV63.ts index 90448d97de37..6a8133343efa 100644 --- a/packages/cli/generation/ir-migrations/src/migrations/v65-to-v63/migrateFromV65ToV63.ts +++ b/packages/cli/generation/ir-migrations/src/migrations/v65-to-v63/migrateFromV65ToV63.ts @@ -51,7 +51,13 @@ export const V65_TO_V63_MIGRATION: IrMigration< ): IrVersions.V63.ir.IntermediateRepresentation => { return { ...v65, - services: mapValues(v65.services, (service) => convertHttpService(service, context)) + services: mapValues(v65.services, (service) => convertHttpService(service, context)), + webhookGroups: mapValues(v65.webhookGroups, (webhookGroup) => + webhookGroup.map((webhook) => { + const { signatureVerification: _, ...rest } = webhook; + return rest as IrVersions.V63.webhooks.Webhook; + }) + ) }; } }; diff --git a/packages/cli/register/src/ir-to-fdr-converter/__test__/__snapshots__/asyncapi-json-refs-ir.snap b/packages/cli/register/src/ir-to-fdr-converter/__test__/__snapshots__/asyncapi-json-refs-ir.snap index 895d1e8e3059..ddcbd54dd916 100644 --- a/packages/cli/register/src/ir-to-fdr-converter/__test__/__snapshots__/asyncapi-json-refs-ir.snap +++ b/packages/cli/register/src/ir-to-fdr-converter/__test__/__snapshots__/asyncapi-json-refs-ir.snap @@ -699,6 +699,7 @@ "auth": false, "availability": undefined, "baseUrl": "production", + "connectMethodName": undefined, "displayName": undefined, "docs": "Receive order status notifications", "examples": [ @@ -1103,6 +1104,7 @@ "auth": false, "availability": undefined, "baseUrl": "production", + "connectMethodName": undefined, "displayName": undefined, "docs": "Receive real-time plant inventory updates", "examples": [ diff --git a/packages/cli/workspace/lazy-fern-workspace/src/fern.schema.json b/packages/cli/workspace/lazy-fern-workspace/src/fern.schema.json index e21d8fc2f1bf..b2bc2efff833 100644 --- a/packages/cli/workspace/lazy-fern-workspace/src/fern.schema.json +++ b/packages/cli/workspace/lazy-fern-workspace/src/fern.schema.json @@ -73,6 +73,16 @@ } ] }, + "webhook-signature": { + "oneOf": [ + { + "$ref": "#/definitions/webhooks.WebhookSignatureSchema" + }, + { + "type": "null" + } + ] + }, "channel": { "oneOf": [ { @@ -3950,6 +3960,16 @@ "path": { "type": "string" }, + "connect-method-name": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, "headers": { "oneOf": [ { diff --git a/packages/cli/workspace/lazy-fern-workspace/src/package-yml.schema.json b/packages/cli/workspace/lazy-fern-workspace/src/package-yml.schema.json index 1c6fca586369..82163d51f2c4 100644 --- a/packages/cli/workspace/lazy-fern-workspace/src/package-yml.schema.json +++ b/packages/cli/workspace/lazy-fern-workspace/src/package-yml.schema.json @@ -63,6 +63,16 @@ } ] }, + "webhook-signature": { + "oneOf": [ + { + "$ref": "#/definitions/webhooks.WebhookSignatureSchema" + }, + { + "type": "null" + } + ] + }, "channel": { "oneOf": [ { @@ -3970,6 +3980,16 @@ "path": { "type": "string" }, + "connect-method-name": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, "headers": { "oneOf": [ { diff --git a/packages/commons/mock-utils/index.ts b/packages/commons/mock-utils/index.ts index 46cf83db60a4..988021d6b29b 100644 --- a/packages/commons/mock-utils/index.ts +++ b/packages/commons/mock-utils/index.ts @@ -185,6 +185,20 @@ export class WireMock { } } + // If the response body example is missing/null but the endpoint declares a JSON response + // with a non-primitive type (e.g., an object or named type), default to an empty JSON object. + // This prevents WireMock from returning a JSON string (e.g., `""`) that cannot be + // unmarshaled into a complex struct in strongly-typed languages like Go. + if (bodyObj === "" && endpoint.response?.body?.type === "json") { + const responseValue = endpoint.response.body.value; + if (responseValue.type === "response") { + const responseBodyType = responseValue.responseBodyType; + if (responseBodyType.type === "named") { + bodyObj = {}; + } + } + } + // Format response body with validation and fallback let body = ""; if (bodyObj !== null && bodyObj !== undefined) { diff --git a/packages/ir-sdk/fern/apis/ir-types-latest/VERSION b/packages/ir-sdk/fern/apis/ir-types-latest/VERSION index 4d350a654b28..8390dbf72315 100644 --- a/packages/ir-sdk/fern/apis/ir-types-latest/VERSION +++ b/packages/ir-sdk/fern/apis/ir-types-latest/VERSION @@ -1 +1 @@ -65.2.0 +65.3.0 diff --git a/packages/ir-sdk/fern/apis/ir-types-latest/changelog/CHANGELOG.md b/packages/ir-sdk/fern/apis/ir-types-latest/changelog/CHANGELOG.md index 0164c2ff29fe..291d9ff10eac 100644 --- a/packages/ir-sdk/fern/apis/ir-types-latest/changelog/CHANGELOG.md +++ b/packages/ir-sdk/fern/apis/ir-types-latest/changelog/CHANGELOG.md @@ -5,6 +5,17 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [v65.3.0] - 2026-02-24 +- Feature: Add optional `connectMethodName` field to `WebSocketChannel` for custom WebSocket connection method naming. + Supports `x-fern-sdk-method-name` extension on AsyncAPI channels to customize the generated connection method name instead of using the default "connect". + This addresses confusing APIs where both the client wrapper creation and actual connection use "connect". + +## [v65.2.1] - 2026-02-24 +- Feature: Add document-level `webhook-signature` configuration to Fern definition files. + Allows specifying a default signature verification config that applies to all webhooks in a file, + with per-webhook `signature` overrides. The IR generator resolves defaults and stamps each webhook + with its final `signatureVerification` config. + ## [v65.2.0] - 2026-02-23 - Feature: Add `WebhookSignatureVerification` discriminated union to the `Webhook` type. Supports HMAC-based and asymmetric key signature verification with configurable algorithms, diff --git a/packages/ir-sdk/fern/apis/ir-types-latest/definition/websocket.yml b/packages/ir-sdk/fern/apis/ir-types-latest/definition/websocket.yml index 0153c437d8d6..fa4d213bbbbb 100644 --- a/packages/ir-sdk/fern/apis/ir-types-latest/definition/websocket.yml +++ b/packages/ir-sdk/fern/apis/ir-types-latest/definition/websocket.yml @@ -13,6 +13,7 @@ types: properties: name: WebSocketName displayName: optional + connectMethodName: optional baseUrl: optional path: http.HttpPath auth: boolean diff --git a/packages/ir-sdk/src/sdk/api/resources/websocket/types/WebSocketChannel.ts b/packages/ir-sdk/src/sdk/api/resources/websocket/types/WebSocketChannel.ts index 3d5c12efb98b..65409d86032d 100644 --- a/packages/ir-sdk/src/sdk/api/resources/websocket/types/WebSocketChannel.ts +++ b/packages/ir-sdk/src/sdk/api/resources/websocket/types/WebSocketChannel.ts @@ -5,6 +5,7 @@ import type * as FernIr from "../../../index.js"; export interface WebSocketChannel extends FernIr.Declaration { name: FernIr.WebSocketName; displayName: string | undefined; + connectMethodName: string | undefined; baseUrl: FernIr.EnvironmentBaseUrlId | undefined; path: FernIr.HttpPath; auth: boolean; diff --git a/packages/ir-sdk/src/sdk/serialization/resources/websocket/types/WebSocketChannel.ts b/packages/ir-sdk/src/sdk/serialization/resources/websocket/types/WebSocketChannel.ts index 9bbb698f6de9..6bd1c4fa6cb2 100644 --- a/packages/ir-sdk/src/sdk/serialization/resources/websocket/types/WebSocketChannel.ts +++ b/packages/ir-sdk/src/sdk/serialization/resources/websocket/types/WebSocketChannel.ts @@ -21,6 +21,7 @@ export const WebSocketChannel: core.serialization.ObjectSchema< .objectWithoutOptionalProperties({ name: WebSocketName, displayName: core.serialization.string().optional(), + connectMethodName: core.serialization.string().optional(), baseUrl: EnvironmentBaseUrlId.optional(), path: HttpPath, auth: core.serialization.boolean(), @@ -37,6 +38,7 @@ export declare namespace WebSocketChannel { export interface Raw extends Declaration.Raw { name: WebSocketName.Raw; displayName?: string | null; + connectMethodName?: string | null; baseUrl?: EnvironmentBaseUrlId.Raw | null; path: HttpPath.Raw; auth: boolean; diff --git a/seed/fastapi/seed.yml b/seed/fastapi/seed.yml index 8bccb41d9659..c049969986f7 100644 --- a/seed/fastapi/seed.yml +++ b/seed/fastapi/seed.yml @@ -131,6 +131,13 @@ fixtures: - customConfig: null outputFolder: no-custom-config allowedFailures: + - exhaustive:no-custom-config + - exhaustive:skip-formatting + - exhaustive:pydantic-v1 + - exhaustive:pydantic-v2 + - exhaustive:frozen_utils + - exhaustive:include-validators + - exhaustive:ignore-extra-fields - header-auth-environment-variable - bearer-token-environment-variable - query-parameters diff --git a/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example33/snippet.go b/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example33/snippet.go index 82e8b5bfdff2..b77a552bf984 100644 --- a/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example33/snippet.go +++ b/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example33/snippet.go @@ -3,6 +3,7 @@ package example import ( client "github.com/exhaustive/fern/client" option "github.com/exhaustive/fern/option" + bytes "bytes" context "context" ) @@ -15,9 +16,12 @@ func do() { "", ), ) - request := "string" - client.Endpoints.Primitive.GetAndReturnString( + request := bytes.NewReader( + []byte(""), + ) + client.Endpoints.Params.UploadWithPath( context.TODO(), + "upload-path", request, ) } diff --git a/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example34/snippet.go b/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example34/snippet.go index 403baa1b07e9..82e8b5bfdff2 100644 --- a/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example34/snippet.go +++ b/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example34/snippet.go @@ -15,8 +15,8 @@ func do() { "", ), ) - request := 1 - client.Endpoints.Primitive.GetAndReturnInt( + request := "string" + client.Endpoints.Primitive.GetAndReturnString( context.TODO(), request, ) diff --git a/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example35/snippet.go b/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example35/snippet.go index b742da0bcba8..403baa1b07e9 100644 --- a/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example35/snippet.go +++ b/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example35/snippet.go @@ -15,8 +15,8 @@ func do() { "", ), ) - request := int64(1000000) - client.Endpoints.Primitive.GetAndReturnLong( + request := 1 + client.Endpoints.Primitive.GetAndReturnInt( context.TODO(), request, ) diff --git a/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example36/snippet.go b/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example36/snippet.go index 2031ce5e4b7e..b742da0bcba8 100644 --- a/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example36/snippet.go +++ b/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example36/snippet.go @@ -15,8 +15,8 @@ func do() { "", ), ) - request := 1.1 - client.Endpoints.Primitive.GetAndReturnDouble( + request := int64(1000000) + client.Endpoints.Primitive.GetAndReturnLong( context.TODO(), request, ) diff --git a/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example37/snippet.go b/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example37/snippet.go index bca4aba3cf63..2031ce5e4b7e 100644 --- a/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example37/snippet.go +++ b/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example37/snippet.go @@ -15,8 +15,8 @@ func do() { "", ), ) - request := true - client.Endpoints.Primitive.GetAndReturnBool( + request := 1.1 + client.Endpoints.Primitive.GetAndReturnDouble( context.TODO(), request, ) diff --git a/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example38/snippet.go b/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example38/snippet.go index 7ba6d5781b6f..bca4aba3cf63 100644 --- a/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example38/snippet.go +++ b/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example38/snippet.go @@ -3,7 +3,6 @@ package example import ( client "github.com/exhaustive/fern/client" option "github.com/exhaustive/fern/option" - fern "github.com/exhaustive/fern" context "context" ) @@ -16,10 +15,8 @@ func do() { "", ), ) - request := fern.MustParseDateTime( - "2024-01-15T09:30:00Z", - ) - client.Endpoints.Primitive.GetAndReturnDatetime( + request := true + client.Endpoints.Primitive.GetAndReturnBool( context.TODO(), request, ) diff --git a/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example39/snippet.go b/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example39/snippet.go index ea7354d71684..7ba6d5781b6f 100644 --- a/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example39/snippet.go +++ b/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example39/snippet.go @@ -16,10 +16,10 @@ func do() { "", ), ) - request := fern.MustParseDate( - "2023-01-15", + request := fern.MustParseDateTime( + "2024-01-15T09:30:00Z", ) - client.Endpoints.Primitive.GetAndReturnDate( + client.Endpoints.Primitive.GetAndReturnDatetime( context.TODO(), request, ) diff --git a/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example40/snippet.go b/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example40/snippet.go index 0fc23739435d..ea7354d71684 100644 --- a/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example40/snippet.go +++ b/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example40/snippet.go @@ -3,7 +3,7 @@ package example import ( client "github.com/exhaustive/fern/client" option "github.com/exhaustive/fern/option" - uuid "github.com/google/uuid" + fern "github.com/exhaustive/fern" context "context" ) @@ -16,10 +16,10 @@ func do() { "", ), ) - request := uuid.MustParse( - "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + request := fern.MustParseDate( + "2023-01-15", ) - client.Endpoints.Primitive.GetAndReturnUuid( + client.Endpoints.Primitive.GetAndReturnDate( context.TODO(), request, ) diff --git a/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example41/snippet.go b/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example41/snippet.go index 4123137454c5..0fc23739435d 100644 --- a/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example41/snippet.go +++ b/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example41/snippet.go @@ -3,6 +3,7 @@ package example import ( client "github.com/exhaustive/fern/client" option "github.com/exhaustive/fern/option" + uuid "github.com/google/uuid" context "context" ) @@ -15,8 +16,10 @@ func do() { "", ), ) - request := []byte("SGVsbG8gd29ybGQh") - client.Endpoints.Primitive.GetAndReturnBase64( + request := uuid.MustParse( + "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + ) + client.Endpoints.Primitive.GetAndReturnUuid( context.TODO(), request, ) diff --git a/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example42/snippet.go b/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example42/snippet.go index cdd2596e18c8..4123137454c5 100644 --- a/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example42/snippet.go +++ b/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example42/snippet.go @@ -3,7 +3,6 @@ package example import ( client "github.com/exhaustive/fern/client" option "github.com/exhaustive/fern/option" - endpoints "github.com/exhaustive/fern/endpoints" context "context" ) @@ -16,10 +15,8 @@ func do() { "", ), ) - request := &endpoints.PutRequest{ - Id: "id", - } - client.Endpoints.Put.Add( + request := []byte("SGVsbG8gd29ybGQh") + client.Endpoints.Primitive.GetAndReturnBase64( context.TODO(), request, ) diff --git a/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example43/snippet.go b/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example43/snippet.go index 8cf7dffd3bf9..cdd2596e18c8 100644 --- a/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example43/snippet.go +++ b/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example43/snippet.go @@ -3,7 +3,7 @@ package example import ( client "github.com/exhaustive/fern/client" option "github.com/exhaustive/fern/option" - types "github.com/exhaustive/fern/types" + endpoints "github.com/exhaustive/fern/endpoints" context "context" ) @@ -16,13 +16,10 @@ func do() { "", ), ) - request := &types.Animal{ - Dog: &types.Dog{ - Name: "name", - LikesToWoof: true, - }, + request := &endpoints.PutRequest{ + Id: "id", } - client.Endpoints.Union.GetAndReturnUnion( + client.Endpoints.Put.Add( context.TODO(), request, ) diff --git a/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example44/snippet.go b/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example44/snippet.go index a93ae3386722..8cf7dffd3bf9 100644 --- a/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example44/snippet.go +++ b/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example44/snippet.go @@ -3,6 +3,7 @@ package example import ( client "github.com/exhaustive/fern/client" option "github.com/exhaustive/fern/option" + types "github.com/exhaustive/fern/types" context "context" ) @@ -15,7 +16,14 @@ func do() { "", ), ) - client.Endpoints.Urls.WithMixedCase( + request := &types.Animal{ + Dog: &types.Dog{ + Name: "name", + LikesToWoof: true, + }, + } + client.Endpoints.Union.GetAndReturnUnion( context.TODO(), + request, ) } diff --git a/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example45/snippet.go b/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example45/snippet.go index 577186ecde11..a93ae3386722 100644 --- a/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example45/snippet.go +++ b/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example45/snippet.go @@ -15,7 +15,7 @@ func do() { "", ), ) - client.Endpoints.Urls.NoEndingSlash( + client.Endpoints.Urls.WithMixedCase( context.TODO(), ) } diff --git a/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example46/snippet.go b/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example46/snippet.go index 5aa07b141f00..577186ecde11 100644 --- a/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example46/snippet.go +++ b/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example46/snippet.go @@ -15,7 +15,7 @@ func do() { "", ), ) - client.Endpoints.Urls.WithEndingSlash( + client.Endpoints.Urls.NoEndingSlash( context.TODO(), ) } diff --git a/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example47/snippet.go b/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example47/snippet.go index 0a34c1ef6699..5aa07b141f00 100644 --- a/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example47/snippet.go +++ b/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example47/snippet.go @@ -15,7 +15,7 @@ func do() { "", ), ) - client.Endpoints.Urls.WithUnderscores( + client.Endpoints.Urls.WithEndingSlash( context.TODO(), ) } diff --git a/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example48/snippet.go b/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example48/snippet.go index 84c79c102c7b..0a34c1ef6699 100644 --- a/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example48/snippet.go +++ b/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example48/snippet.go @@ -3,9 +3,6 @@ package example import ( client "github.com/exhaustive/fern/client" option "github.com/exhaustive/fern/option" - fern "github.com/exhaustive/fern" - types "github.com/exhaustive/fern/types" - uuid "github.com/google/uuid" context "context" ) @@ -18,60 +15,7 @@ func do() { "", ), ) - request := &fern.PostWithObjectBody{ - FieldString: "string", - Integer: 1, - NestedObject: &types.ObjectWithOptionalField{ - FieldString: fern.String( - "string", - ), - Integer: fern.Int( - 1, - ), - Long: fern.Int64( - int64(1000000), - ), - Double: fern.Float64( - 1.1, - ), - Bool: fern.Bool( - true, - ), - Datetime: fern.Time( - fern.MustParseDateTime( - "2024-01-15T09:30:00Z", - ), - ), - Date: fern.Time( - fern.MustParseDate( - "2023-01-15", - ), - ), - Uuid: fern.UUID( - uuid.MustParse( - "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", - ), - ), - Base64: fern.Bytes( - []byte("SGVsbG8gd29ybGQh"), - ), - List: []string{ - "list", - "list", - }, - Set: []string{ - "set", - }, - Map: map[int]string{ - 1: "map", - }, - Bigint: fern.String( - "1000000", - ), - }, - } - client.InlinedRequests.PostWithObjectBodyandResponse( + client.Endpoints.Urls.WithUnderscores( context.TODO(), - request, ) } diff --git a/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example50/snippet.go b/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example50/snippet.go index 3b27a0d640a2..84c79c102c7b 100644 --- a/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example50/snippet.go +++ b/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example50/snippet.go @@ -3,6 +3,9 @@ package example import ( client "github.com/exhaustive/fern/client" option "github.com/exhaustive/fern/option" + fern "github.com/exhaustive/fern" + types "github.com/exhaustive/fern/types" + uuid "github.com/google/uuid" context "context" ) @@ -15,10 +18,59 @@ func do() { "", ), ) - request := map[string]any{ - "key": "value", + request := &fern.PostWithObjectBody{ + FieldString: "string", + Integer: 1, + NestedObject: &types.ObjectWithOptionalField{ + FieldString: fern.String( + "string", + ), + Integer: fern.Int( + 1, + ), + Long: fern.Int64( + int64(1000000), + ), + Double: fern.Float64( + 1.1, + ), + Bool: fern.Bool( + true, + ), + Datetime: fern.Time( + fern.MustParseDateTime( + "2024-01-15T09:30:00Z", + ), + ), + Date: fern.Time( + fern.MustParseDate( + "2023-01-15", + ), + ), + Uuid: fern.UUID( + uuid.MustParse( + "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + ), + ), + Base64: fern.Bytes( + []byte("SGVsbG8gd29ybGQh"), + ), + List: []string{ + "list", + "list", + }, + Set: []string{ + "set", + }, + Map: map[int]string{ + 1: "map", + }, + Bigint: fern.String( + "1000000", + ), + }, } - client.NoAuth.PostWithNoAuth( + client.InlinedRequests.PostWithObjectBodyandResponse( context.TODO(), request, ) diff --git a/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example52/snippet.go b/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example52/snippet.go index fab0508ce294..3b27a0d640a2 100644 --- a/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example52/snippet.go +++ b/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example52/snippet.go @@ -15,7 +15,11 @@ func do() { "", ), ) - client.NoReqBody.GetWithNoRequestBody( + request := map[string]any{ + "key": "value", + } + client.NoAuth.PostWithNoAuth( context.TODO(), + request, ) } diff --git a/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example53/snippet.go b/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example53/snippet.go index 6715197c4533..fab0508ce294 100644 --- a/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example53/snippet.go +++ b/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example53/snippet.go @@ -15,7 +15,7 @@ func do() { "", ), ) - client.NoReqBody.PostWithNoRequestBody( + client.NoReqBody.GetWithNoRequestBody( context.TODO(), ) } diff --git a/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example54/snippet.go b/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example54/snippet.go index 1e71655744a0..6715197c4533 100644 --- a/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example54/snippet.go +++ b/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example54/snippet.go @@ -3,7 +3,6 @@ package example import ( client "github.com/exhaustive/fern/client" option "github.com/exhaustive/fern/option" - fern "github.com/exhaustive/fern" context "context" ) @@ -16,13 +15,7 @@ func do() { "", ), ) - request := &fern.ReqWithHeaders{ - XTestServiceHeader: "X-TEST-SERVICE-HEADER", - XTestEndpointHeader: "X-TEST-ENDPOINT-HEADER", - Body: "string", - } - client.ReqWithHeaders.GetWithCustomHeader( + client.NoReqBody.PostWithNoRequestBody( context.TODO(), - request, ) } diff --git a/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example55/snippet.go b/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example55/snippet.go new file mode 100644 index 000000000000..1e71655744a0 --- /dev/null +++ b/seed/go-sdk/exhaustive/no-custom-config/dynamic-snippets/example55/snippet.go @@ -0,0 +1,28 @@ +package example + +import ( + client "github.com/exhaustive/fern/client" + option "github.com/exhaustive/fern/option" + fern "github.com/exhaustive/fern" + context "context" +) + +func do() { + client := client.NewClient( + option.WithBaseURL( + "https://api.fern.com", + ), + option.WithToken( + "", + ), + ) + request := &fern.ReqWithHeaders{ + XTestServiceHeader: "X-TEST-SERVICE-HEADER", + XTestEndpointHeader: "X-TEST-ENDPOINT-HEADER", + Body: "string", + } + client.ReqWithHeaders.GetWithCustomHeader( + context.TODO(), + request, + ) +} diff --git a/seed/go-sdk/exhaustive/no-custom-config/endpoints/params/client.go b/seed/go-sdk/exhaustive/no-custom-config/endpoints/params/client.go index 02a1bbd1f5bd..4c2cf64bcdf8 100644 --- a/seed/go-sdk/exhaustive/no-custom-config/endpoints/params/client.go +++ b/seed/go-sdk/exhaustive/no-custom-config/endpoints/params/client.go @@ -8,6 +8,8 @@ import ( endpoints "github.com/exhaustive/fern/endpoints" internal "github.com/exhaustive/fern/internal" option "github.com/exhaustive/fern/option" + types "github.com/exhaustive/fern/types" + io "io" ) type Client struct { @@ -171,3 +173,22 @@ func (c *Client) ModifyWithInlinePath( } return response.Body, nil } + +// POST bytes with path param returning object +func (c *Client) UploadWithPath( + ctx context.Context, + param string, + request io.Reader, + opts ...option.RequestOption, +) (*types.ObjectWithRequiredField, error) { + response, err := c.WithRawResponse.UploadWithPath( + ctx, + param, + request, + opts..., + ) + if err != nil { + return nil, err + } + return response.Body, nil +} diff --git a/seed/go-sdk/exhaustive/no-custom-config/endpoints/params/endpoints_params_test/endpoints_params_test.go b/seed/go-sdk/exhaustive/no-custom-config/endpoints/params/endpoints_params_test/endpoints_params_test.go index 37cb879bd7e3..8bc4c4a6f7cc 100644 --- a/seed/go-sdk/exhaustive/no-custom-config/endpoints/params/endpoints_params_test/endpoints_params_test.go +++ b/seed/go-sdk/exhaustive/no-custom-config/endpoints/params/endpoints_params_test/endpoints_params_test.go @@ -265,3 +265,30 @@ func TestEndpointsParamsModifyWithPathWithWireMock2( require.NoError(t, invocationErr, "Client method call should succeed") VerifyRequestCount(t, "TestEndpointsParamsModifyWithPathWithWireMock2", "PUT", "/params/path/param", nil, 1) } + +func TestEndpointsParamsUploadWithPathWithWireMock( + t *testing.T, +) { + wiremockPort := os.Getenv("WIREMOCK_PORT") + if wiremockPort == "" { + wiremockPort = "8080" + } + WireMockBaseURL := "http://localhost:" + wiremockPort + client := client.NewClient( + option.WithBaseURL(WireMockBaseURL), + ) + request := bytes.NewReader( + []byte(""), + ) + _, invocationErr := client.Endpoints.Params.UploadWithPath( + context.TODO(), + "upload-path", + request, + option.WithHTTPHeader( + http.Header{"X-Test-Id": []string{"TestEndpointsParamsUploadWithPathWithWireMock"}}, + ), + ) + + require.NoError(t, invocationErr, "Client method call should succeed") + VerifyRequestCount(t, "TestEndpointsParamsUploadWithPathWithWireMock", "POST", "/params/path/upload-path", nil, 1) +} diff --git a/seed/go-sdk/exhaustive/no-custom-config/endpoints/params/raw_client.go b/seed/go-sdk/exhaustive/no-custom-config/endpoints/params/raw_client.go index ad536b0df6a5..8f288bc37207 100644 --- a/seed/go-sdk/exhaustive/no-custom-config/endpoints/params/raw_client.go +++ b/seed/go-sdk/exhaustive/no-custom-config/endpoints/params/raw_client.go @@ -8,6 +8,8 @@ import ( endpoints "github.com/exhaustive/fern/endpoints" internal "github.com/exhaustive/fern/internal" option "github.com/exhaustive/fern/option" + types "github.com/exhaustive/fern/types" + io "io" http "net/http" ) @@ -391,3 +393,48 @@ func (r *RawClient) ModifyWithInlinePath( Body: response, }, nil } + +func (r *RawClient) UploadWithPath( + ctx context.Context, + param string, + request io.Reader, + opts ...option.RequestOption, +) (*core.Response[*types.ObjectWithRequiredField], error) { + options := core.NewRequestOptions(opts...) + baseURL := internal.ResolveBaseURL( + options.BaseURL, + r.baseURL, + "", + ) + endpointURL := internal.EncodeURL( + baseURL+"/params/path/%v", + param, + ) + headers := internal.MergeHeaders( + r.options.ToHeader(), + options.ToHeader(), + ) + var response *types.ObjectWithRequiredField + raw, err := r.caller.Call( + ctx, + &internal.CallParams{ + URL: endpointURL, + Method: http.MethodPost, + Headers: headers, + MaxAttempts: options.MaxAttempts, + BodyProperties: options.BodyProperties, + QueryParameters: options.QueryParameters, + Client: options.HTTPClient, + Request: request, + Response: &response, + }, + ) + if err != nil { + return nil, err + } + return &core.Response[*types.ObjectWithRequiredField]{ + StatusCode: raw.StatusCode, + Header: raw.Header, + Body: response, + }, nil +} diff --git a/seed/go-sdk/exhaustive/no-custom-config/reference.md b/seed/go-sdk/exhaustive/no-custom-config/reference.md index 2c605ad59586..b0758ff65b72 100644 --- a/seed/go-sdk/exhaustive/no-custom-config/reference.md +++ b/seed/go-sdk/exhaustive/no-custom-config/reference.md @@ -2119,6 +2119,65 @@ client.Endpoints.Params.ModifyWithPath( + + + + +
client.Endpoints.Params.UploadWithPath(Param, request) -> *types.ObjectWithRequiredField +
+
+ +#### 📝 Description + +
+
+ +
+
+ +POST bytes with path param returning object +
+
+
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```go +client.Endpoints.Params.UploadWithPath( + context.TODO(), + "upload-path", + request, + ) +} +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**param:** `string` + +
+
+
+
+ +
diff --git a/seed/go-sdk/exhaustive/no-custom-config/snippet.json b/seed/go-sdk/exhaustive/no-custom-config/snippet.json index d5e5289422fd..e9979e6746a7 100644 --- a/seed/go-sdk/exhaustive/no-custom-config/snippet.json +++ b/seed/go-sdk/exhaustive/no-custom-config/snippet.json @@ -363,6 +363,17 @@ "client": "import (\n\tcontext \"context\"\n\tfernclient \"github.com/exhaustive/fern/client\"\n\toption \"github.com/exhaustive/fern/option\"\n)\n\nclient := fernclient.NewClient(\n\toption.WithToken(\n\t\t\"\u003cYOUR_AUTH_TOKEN\u003e\",\n\t),\n)\nresponse, err := client.Endpoints.Params.GetWithPath(\n\tcontext.TODO(),\n\t\"param\",\n)\n" } }, + { + "id": { + "path": "/params/path/{param}", + "method": "POST", + "identifier_override": "endpoint_endpoints/params.uploadWithPath" + }, + "snippet": { + "type": "go", + "client": "import (\n\tcontext \"context\"\n\tfernclient \"github.com/exhaustive/fern/client\"\n\toption \"github.com/exhaustive/fern/option\"\n)\n\nclient := fernclient.NewClient(\n\toption.WithToken(\n\t\t\"\u003cYOUR_AUTH_TOKEN\u003e\",\n\t),\n)\nresponse, err := client.Endpoints.Params.UploadWithPath(\n\tcontext.TODO(),\n\t\"upload-path\",\n)\n" + } + }, { "id": { "path": "/params/path/{param}", diff --git a/seed/go-sdk/exhaustive/no-custom-config/wiremock/wiremock-mappings.json b/seed/go-sdk/exhaustive/no-custom-config/wiremock/wiremock-mappings.json index 4916bea9a994..8ffc6a19b116 100644 --- a/seed/go-sdk/exhaustive/no-custom-config/wiremock/wiremock-mappings.json +++ b/seed/go-sdk/exhaustive/no-custom-config/wiremock/wiremock-mappings.json @@ -1 +1 @@ -{"mappings":[{"id":"864d58e6-0c08-4f38-b7e1-2638f8d7fd6d","name":"getAndReturnListOfPrimitives - default","request":{"urlPathTemplate":"/container/list-of-primitives","method":"POST"},"response":{"status":200,"body":"[\n \"string\",\n \"string\"\n]","headers":{"Content-Type":"application/json"}},"uuid":"864d58e6-0c08-4f38-b7e1-2638f8d7fd6d","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"ac1d4c4f-a8a7-4c27-ae64-7fc977cfa122","name":"getAndReturnListOfObjects - default","request":{"urlPathTemplate":"/container/list-of-objects","method":"POST"},"response":{"status":200,"body":"[\n {\n \"string\": \"string\"\n },\n {\n \"string\": \"string\"\n }\n]","headers":{"Content-Type":"application/json"}},"uuid":"ac1d4c4f-a8a7-4c27-ae64-7fc977cfa122","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"591d5c48-a536-452b-8a2e-ad7c23c38298","name":"getAndReturnSetOfPrimitives - default","request":{"urlPathTemplate":"/container/set-of-primitives","method":"POST"},"response":{"status":200,"body":"[\n \"string\"\n]","headers":{"Content-Type":"application/json"}},"uuid":"591d5c48-a536-452b-8a2e-ad7c23c38298","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"e1d5f52b-7a51-464f-ac8f-83c0345a3a35","name":"getAndReturnSetOfObjects - default","request":{"urlPathTemplate":"/container/set-of-objects","method":"POST"},"response":{"status":200,"body":"[\n {\n \"string\": \"string\"\n }\n]","headers":{"Content-Type":"application/json"}},"uuid":"e1d5f52b-7a51-464f-ac8f-83c0345a3a35","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"4b1d33b3-ca7d-462a-a2e3-23d531ae2922","name":"getAndReturnMapPrimToPrim - default","request":{"urlPathTemplate":"/container/map-prim-to-prim","method":"POST"},"response":{"status":200,"body":"{\n \"string\": \"string\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"4b1d33b3-ca7d-462a-a2e3-23d531ae2922","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"b01ac2b9-3470-48aa-badc-57d331bb5a49","name":"getAndReturnMapOfPrimToObject - default","request":{"urlPathTemplate":"/container/map-prim-to-object","method":"POST"},"response":{"status":200,"body":"{\n \"string\": {\n \"string\": \"string\"\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"b01ac2b9-3470-48aa-badc-57d331bb5a49","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"eaf9315d-55c4-4434-8004-a70c25af5656","name":"getAndReturnMapOfPrimToUndiscriminatedUnion - default","request":{"urlPathTemplate":"/container/map-prim-to-union","method":"POST"},"response":{"status":200,"body":"{\n \"string\": 1.1\n}","headers":{"Content-Type":"application/json"}},"uuid":"eaf9315d-55c4-4434-8004-a70c25af5656","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"e5271904-de0a-425f-940d-d6f6bde34755","name":"getAndReturnOptional - default","request":{"urlPathTemplate":"/container/opt-objects","method":"POST"},"response":{"status":200,"body":"{\n \"string\": \"string\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"e5271904-de0a-425f-940d-d6f6bde34755","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"d19e1fbe-79cc-465c-962e-e1866ca2361b","name":"postJsonPatchContentType - default","request":{"urlPathTemplate":"/foo/bar","method":"POST"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"d19e1fbe-79cc-465c-962e-e1866ca2361b","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"4a107cf5-6284-48f8-9ddb-99d944ba989b","name":"postJsonPatchContentWithCharsetType - default","request":{"urlPathTemplate":"/foo/baz","method":"POST"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"4a107cf5-6284-48f8-9ddb-99d944ba989b","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"60fd3c8a-3983-41b9-8178-f42997388900","name":"getAndReturnEnum - default","request":{"urlPathTemplate":"/enum","method":"POST"},"response":{"status":200,"body":"\"SUNNY\"","headers":{"Content-Type":"application/json"}},"uuid":"60fd3c8a-3983-41b9-8178-f42997388900","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"3d95c052-db6e-4eff-95f2-895666a5af54","name":"testGet - default","request":{"urlPathTemplate":"/http-methods/{id}","method":"GET","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"\"string\"","headers":{"Content-Type":"application/json"}},"uuid":"3d95c052-db6e-4eff-95f2-895666a5af54","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"2552873f-9f1d-4557-a6c7-6c6b7a55b566","name":"testPost - default","request":{"urlPathTemplate":"/http-methods","method":"POST"},"response":{"status":200,"body":"{\n \"string\": \"string\",\n \"integer\": 1,\n \"long\": 1000000,\n \"double\": 1.1,\n \"bool\": true,\n \"datetime\": \"2024-01-15T09:30:00Z\",\n \"date\": \"2023-01-15\",\n \"uuid\": \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n \"base64\": \"SGVsbG8gd29ybGQh\",\n \"list\": [\n \"list\",\n \"list\"\n ],\n \"set\": [\n \"set\"\n ],\n \"map\": {\n \"1\": \"map\"\n },\n \"bigint\": \"1000000\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"2552873f-9f1d-4557-a6c7-6c6b7a55b566","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"db42fbdf-5426-41b7-b7ea-28ed39a38e82","name":"testPut - default","request":{"urlPathTemplate":"/http-methods/{id}","method":"PUT","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"{\n \"string\": \"string\",\n \"integer\": 1,\n \"long\": 1000000,\n \"double\": 1.1,\n \"bool\": true,\n \"datetime\": \"2024-01-15T09:30:00Z\",\n \"date\": \"2023-01-15\",\n \"uuid\": \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n \"base64\": \"SGVsbG8gd29ybGQh\",\n \"list\": [\n \"list\",\n \"list\"\n ],\n \"set\": [\n \"set\"\n ],\n \"map\": {\n \"1\": \"map\"\n },\n \"bigint\": \"1000000\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"db42fbdf-5426-41b7-b7ea-28ed39a38e82","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"c9def317-32a0-4bc0-b9b6-5efae8ca44a6","name":"testPatch - default","request":{"urlPathTemplate":"/http-methods/{id}","method":"PATCH","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"{\n \"string\": \"string\",\n \"integer\": 1,\n \"long\": 1000000,\n \"double\": 1.1,\n \"bool\": true,\n \"datetime\": \"2024-01-15T09:30:00Z\",\n \"date\": \"2023-01-15\",\n \"uuid\": \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n \"base64\": \"SGVsbG8gd29ybGQh\",\n \"list\": [\n \"list\",\n \"list\"\n ],\n \"set\": [\n \"set\"\n ],\n \"map\": {\n \"1\": \"map\"\n },\n \"bigint\": \"1000000\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"c9def317-32a0-4bc0-b9b6-5efae8ca44a6","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"05333635-c9ce-4c1a-bb6d-95e8a0fb80dc","name":"testDelete - default","request":{"urlPathTemplate":"/http-methods/{id}","method":"DELETE","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"true","headers":{"Content-Type":"application/json"}},"uuid":"05333635-c9ce-4c1a-bb6d-95e8a0fb80dc","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"41cdef0e-040f-4d08-8426-87b19e60f7d7","name":"getAndReturnWithOptionalField - default","request":{"urlPathTemplate":"/object/get-and-return-with-optional-field","method":"POST"},"response":{"status":200,"body":"{\n \"string\": \"string\",\n \"integer\": 1,\n \"long\": 1000000,\n \"double\": 1.1,\n \"bool\": true,\n \"datetime\": \"2024-01-15T09:30:00Z\",\n \"date\": \"2023-01-15\",\n \"uuid\": \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n \"base64\": \"SGVsbG8gd29ybGQh\",\n \"list\": [\n \"list\",\n \"list\"\n ],\n \"set\": [\n \"set\"\n ],\n \"map\": {\n \"1\": \"map\"\n },\n \"bigint\": \"1000000\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"41cdef0e-040f-4d08-8426-87b19e60f7d7","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"f74df550-df8c-4503-b202-0b9b3165c1a7","name":"getAndReturnWithRequiredField - default","request":{"urlPathTemplate":"/object/get-and-return-with-required-field","method":"POST"},"response":{"status":200,"body":"{\n \"string\": \"string\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"f74df550-df8c-4503-b202-0b9b3165c1a7","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"0c904dbb-ce54-48a2-8364-13a4989be7f2","name":"getAndReturnWithMapOfMap - default","request":{"urlPathTemplate":"/object/get-and-return-with-map-of-map","method":"POST"},"response":{"status":200,"body":"{\n \"map\": {\n \"map\": {\n \"map\": \"map\"\n }\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"0c904dbb-ce54-48a2-8364-13a4989be7f2","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"67e969fc-ff81-4a67-9858-66a29ffc9b72","name":"getAndReturnNestedWithOptionalField - default","request":{"urlPathTemplate":"/object/get-and-return-nested-with-optional-field","method":"POST"},"response":{"status":200,"body":"{\n \"string\": \"string\",\n \"NestedObject\": {\n \"string\": \"string\",\n \"integer\": 1,\n \"long\": 1000000,\n \"double\": 1.1,\n \"bool\": true,\n \"datetime\": \"2024-01-15T09:30:00Z\",\n \"date\": \"2023-01-15\",\n \"uuid\": \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n \"base64\": \"SGVsbG8gd29ybGQh\",\n \"list\": [\n \"list\",\n \"list\"\n ],\n \"set\": [\n \"set\"\n ],\n \"map\": {\n \"1\": \"map\"\n },\n \"bigint\": \"1000000\"\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"67e969fc-ff81-4a67-9858-66a29ffc9b72","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"169827d0-4247-4236-8cef-34b94d2659de","name":"getAndReturnNestedWithRequiredField - default","request":{"urlPathTemplate":"/object/get-and-return-nested-with-required-field/{string}","method":"POST","pathParameters":{"string":{"equalTo":"string"}}},"response":{"status":200,"body":"{\n \"string\": \"string\",\n \"NestedObject\": {\n \"string\": \"string\",\n \"integer\": 1,\n \"long\": 1000000,\n \"double\": 1.1,\n \"bool\": true,\n \"datetime\": \"2024-01-15T09:30:00Z\",\n \"date\": \"2023-01-15\",\n \"uuid\": \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n \"base64\": \"SGVsbG8gd29ybGQh\",\n \"list\": [\n \"list\",\n \"list\"\n ],\n \"set\": [\n \"set\"\n ],\n \"map\": {\n \"1\": \"map\"\n },\n \"bigint\": \"1000000\"\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"169827d0-4247-4236-8cef-34b94d2659de","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"6d9ed308-5724-4bbc-a4f7-28dc264d188f","name":"getAndReturnNestedWithRequiredFieldAsList - default","request":{"urlPathTemplate":"/object/get-and-return-nested-with-required-field-list","method":"POST"},"response":{"status":200,"body":"{\n \"string\": \"string\",\n \"NestedObject\": {\n \"string\": \"string\",\n \"integer\": 1,\n \"long\": 1000000,\n \"double\": 1.1,\n \"bool\": true,\n \"datetime\": \"2024-01-15T09:30:00Z\",\n \"date\": \"2023-01-15\",\n \"uuid\": \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n \"base64\": \"SGVsbG8gd29ybGQh\",\n \"list\": [\n \"list\",\n \"list\"\n ],\n \"set\": [\n \"set\"\n ],\n \"map\": {\n \"1\": \"map\"\n },\n \"bigint\": \"1000000\"\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"6d9ed308-5724-4bbc-a4f7-28dc264d188f","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"e2cc3e92-6e37-4a50-9081-23952fdd73fe","name":"getAndReturnWithDatetimeLikeString - default","request":{"urlPathTemplate":"/object/get-and-return-with-datetime-like-string","method":"POST"},"response":{"status":200,"body":"{\n \"datetimeLikeString\": \"2023-08-31T14:15:22Z\",\n \"actualDatetime\": \"2023-08-31T14:15:22Z\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"e2cc3e92-6e37-4a50-9081-23952fdd73fe","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"f15b2079-2482-4ed2-951d-d2b5c4de9afd","name":"listItems - default","request":{"urlPathTemplate":"/pagination","method":"GET"},"response":{"status":200,"body":"{\n \"items\": [\n {\n \"string\": \"string\"\n },\n {\n \"string\": \"string\"\n }\n ],\n \"next\": \"next\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"f15b2079-2482-4ed2-951d-d2b5c4de9afd","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"97806fdb-f31f-4f90-84b8-f9cc1713d53d","name":"getWithPath - default","request":{"urlPathTemplate":"/params/path/{param}","method":"GET","pathParameters":{"param":{"equalTo":"param"}}},"response":{"status":200,"body":"\"string\"","headers":{"Content-Type":"application/json"}},"uuid":"97806fdb-f31f-4f90-84b8-f9cc1713d53d","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"711fc64f-4af9-4084-8c29-1e7a9e58be70","name":"getWithInlinePath - default","request":{"urlPathTemplate":"/params/path/{param}","method":"GET","pathParameters":{"param":{"equalTo":"param"}}},"response":{"status":200,"body":"\"string\"","headers":{"Content-Type":"application/json"}},"uuid":"711fc64f-4af9-4084-8c29-1e7a9e58be70","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"8e5739b3-d75f-47d7-b6b8-a663d91a66b5","name":"getWithQuery - default","request":{"urlPathTemplate":"/params","method":"GET"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"8e5739b3-d75f-47d7-b6b8-a663d91a66b5","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"4125d349-732b-4ff7-948d-1eeb977ed13b","name":"getWithAllowMultipleQuery - default","request":{"urlPathTemplate":"/params","method":"GET"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"4125d349-732b-4ff7-948d-1eeb977ed13b","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"1933d96a-a1b9-4cf1-85ba-c1e8eff5bd56","name":"getWithPathAndQuery - default","request":{"urlPathTemplate":"/params/path-query/{param}","method":"GET","pathParameters":{"param":{"equalTo":"param"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"1933d96a-a1b9-4cf1-85ba-c1e8eff5bd56","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"c4f5012a-fb3f-45ac-b695-beedc3353ad8","name":"getWithInlinePathAndQuery - default","request":{"urlPathTemplate":"/params/path-query/{param}","method":"GET","pathParameters":{"param":{"equalTo":"param"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"c4f5012a-fb3f-45ac-b695-beedc3353ad8","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"046bf7d6-751b-48e9-bfc6-ff74a17e88e1","name":"modifyWithPath - default","request":{"urlPathTemplate":"/params/path/{param}","method":"PUT","pathParameters":{"param":{"equalTo":"param"}}},"response":{"status":200,"body":"\"string\"","headers":{"Content-Type":"application/json"}},"uuid":"046bf7d6-751b-48e9-bfc6-ff74a17e88e1","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"6bfc7195-b99c-4449-bf47-7c4f74f6f33b","name":"modifyWithInlinePath - default","request":{"urlPathTemplate":"/params/path/{param}","method":"PUT","pathParameters":{"param":{"equalTo":"param"}}},"response":{"status":200,"body":"\"string\"","headers":{"Content-Type":"application/json"}},"uuid":"6bfc7195-b99c-4449-bf47-7c4f74f6f33b","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"0506ae7c-87b7-4cd2-9e50-31d60f81893f","name":"getAndReturnString - default","request":{"urlPathTemplate":"/primitive/string","method":"POST"},"response":{"status":200,"body":"\"string\"","headers":{"Content-Type":"application/json"}},"uuid":"0506ae7c-87b7-4cd2-9e50-31d60f81893f","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"67f875d1-e19e-440d-8f0c-7e1d24ef2619","name":"getAndReturnInt - default","request":{"urlPathTemplate":"/primitive/integer","method":"POST"},"response":{"status":200,"body":"1","headers":{"Content-Type":"application/json"}},"uuid":"67f875d1-e19e-440d-8f0c-7e1d24ef2619","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"5fadbebd-86c0-41f9-8be5-864e39eb5924","name":"getAndReturnLong - default","request":{"urlPathTemplate":"/primitive/long","method":"POST"},"response":{"status":200,"body":"1000000","headers":{"Content-Type":"application/json"}},"uuid":"5fadbebd-86c0-41f9-8be5-864e39eb5924","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"e03872b6-86b1-490b-9195-86e5d3a014f2","name":"getAndReturnDouble - default","request":{"urlPathTemplate":"/primitive/double","method":"POST"},"response":{"status":200,"body":"1.1","headers":{"Content-Type":"application/json"}},"uuid":"e03872b6-86b1-490b-9195-86e5d3a014f2","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"442e632f-890a-4105-9448-f7015127e3b4","name":"getAndReturnBool - default","request":{"urlPathTemplate":"/primitive/boolean","method":"POST"},"response":{"status":200,"body":"true","headers":{"Content-Type":"application/json"}},"uuid":"442e632f-890a-4105-9448-f7015127e3b4","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"ad76fa81-1e63-43fd-9a99-1d5e4339d98c","name":"getAndReturnDatetime - default","request":{"urlPathTemplate":"/primitive/datetime","method":"POST"},"response":{"status":200,"body":"\"2024-01-15T09:30:00Z\"","headers":{"Content-Type":"application/json"}},"uuid":"ad76fa81-1e63-43fd-9a99-1d5e4339d98c","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"afb524b1-54ab-4674-8446-fdd574c368cc","name":"getAndReturnDate - default","request":{"urlPathTemplate":"/primitive/date","method":"POST"},"response":{"status":200,"body":"\"2023-01-15\"","headers":{"Content-Type":"application/json"}},"uuid":"afb524b1-54ab-4674-8446-fdd574c368cc","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"969c0f3a-218a-45b7-b17f-64b1a9307d43","name":"getAndReturnUUID - default","request":{"urlPathTemplate":"/primitive/uuid","method":"POST"},"response":{"status":200,"body":"\"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\"","headers":{"Content-Type":"application/json"}},"uuid":"969c0f3a-218a-45b7-b17f-64b1a9307d43","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"04baa20d-d318-40e6-9784-c40158c16acd","name":"getAndReturnBase64 - default","request":{"urlPathTemplate":"/primitive/base64","method":"POST"},"response":{"status":200,"body":"\"SGVsbG8gd29ybGQh\"","headers":{"Content-Type":"application/json"}},"uuid":"04baa20d-d318-40e6-9784-c40158c16acd","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"fddd5aaf-ab0d-4ef6-949c-5d329f6d7eb2","name":"Put - default","request":{"urlPathTemplate":"/{id}","method":"PUT","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"{\n \"errors\": [\n {\n \"category\": \"API_ERROR\",\n \"code\": \"INTERNAL_SERVER_ERROR\",\n \"detail\": \"detail\",\n \"field\": \"field\"\n },\n {\n \"category\": \"API_ERROR\",\n \"code\": \"INTERNAL_SERVER_ERROR\",\n \"detail\": \"detail\",\n \"field\": \"field\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"fddd5aaf-ab0d-4ef6-949c-5d329f6d7eb2","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"d29330f9-49ff-49c4-9081-7c83dbad315b","name":"getAndReturnUnion - default","request":{"urlPathTemplate":"/union","method":"POST"},"response":{"status":200,"body":"{\n \"animal\": \"dog\",\n \"name\": \"name\",\n \"likesToWoof\": true\n}","headers":{"Content-Type":"application/json"}},"uuid":"d29330f9-49ff-49c4-9081-7c83dbad315b","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"343f71f3-36ce-4684-b762-d60a086b43a4","name":"withMixedCase - default","request":{"urlPathTemplate":"/urls/MixedCase","method":"GET"},"response":{"status":200,"body":"\"string\"","headers":{"Content-Type":"application/json"}},"uuid":"343f71f3-36ce-4684-b762-d60a086b43a4","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"48f36314-b2b7-4910-9e1d-5b05f3346a60","name":"noEndingSlash - default","request":{"urlPathTemplate":"/urls/no-ending-slash","method":"GET"},"response":{"status":200,"body":"\"string\"","headers":{"Content-Type":"application/json"}},"uuid":"48f36314-b2b7-4910-9e1d-5b05f3346a60","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"f7b95029-2f25-4f70-8b4c-0855712747d8","name":"withEndingSlash - default","request":{"urlPathTemplate":"/urls/with-ending-slash/","method":"GET"},"response":{"status":200,"body":"\"string\"","headers":{"Content-Type":"application/json"}},"uuid":"f7b95029-2f25-4f70-8b4c-0855712747d8","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"2f9671a5-e6da-43a8-be27-d0be0191dcbf","name":"withUnderscores - default","request":{"urlPathTemplate":"/urls/with_underscores","method":"GET"},"response":{"status":200,"body":"\"string\"","headers":{"Content-Type":"application/json"}},"uuid":"2f9671a5-e6da-43a8-be27-d0be0191dcbf","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"4a6d0aaa-05f2-47bb-9f40-6e3743b9d2bf","name":"postWithObjectBodyandResponse - default","request":{"urlPathTemplate":"/req-bodies/object","method":"POST"},"response":{"status":200,"body":"{\n \"string\": \"string\",\n \"integer\": 1,\n \"long\": 1000000,\n \"double\": 1.1,\n \"bool\": true,\n \"datetime\": \"2024-01-15T09:30:00Z\",\n \"date\": \"2023-01-15\",\n \"uuid\": \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n \"base64\": \"SGVsbG8gd29ybGQh\",\n \"list\": [\n \"list\",\n \"list\"\n ],\n \"set\": [\n \"set\"\n ],\n \"map\": {\n \"1\": \"map\"\n },\n \"bigint\": \"1000000\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"4a6d0aaa-05f2-47bb-9f40-6e3743b9d2bf","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"c6e7cc6c-b76f-4860-a9ad-52dc8f55b6e6","name":"postWithNoAuth - default","request":{"urlPathTemplate":"/no-auth","method":"POST"},"response":{"status":200,"body":"true","headers":{"Content-Type":"application/json"}},"uuid":"c6e7cc6c-b76f-4860-a9ad-52dc8f55b6e6","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"8098eeea-bc6b-4068-9601-566c2092f83f","name":"getWithNoRequestBody - default","request":{"urlPathTemplate":"/no-req-body","method":"GET"},"response":{"status":200,"body":"{\n \"string\": \"string\",\n \"integer\": 1,\n \"long\": 1000000,\n \"double\": 1.1,\n \"bool\": true,\n \"datetime\": \"2024-01-15T09:30:00Z\",\n \"date\": \"2023-01-15\",\n \"uuid\": \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n \"base64\": \"SGVsbG8gd29ybGQh\",\n \"list\": [\n \"list\",\n \"list\"\n ],\n \"set\": [\n \"set\"\n ],\n \"map\": {\n \"1\": \"map\"\n },\n \"bigint\": \"1000000\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"8098eeea-bc6b-4068-9601-566c2092f83f","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"7dd9f944-1b35-42e9-a5ed-e48214ac8e91","name":"postWithNoRequestBody - default","request":{"urlPathTemplate":"/no-req-body","method":"POST"},"response":{"status":200,"body":"\"string\"","headers":{"Content-Type":"application/json"}},"uuid":"7dd9f944-1b35-42e9-a5ed-e48214ac8e91","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"d7b54168-aef4-4d68-a9c5-446e97dee2fc","name":"getWithCustomHeader - default","request":{"urlPathTemplate":"/test-headers/custom-header","method":"POST"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"d7b54168-aef4-4d68-a9c5-446e97dee2fc","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}}],"meta":{"total":52}} \ No newline at end of file +{"mappings":[{"id":"864d58e6-0c08-4f38-b7e1-2638f8d7fd6d","name":"getAndReturnListOfPrimitives - default","request":{"urlPathTemplate":"/container/list-of-primitives","method":"POST"},"response":{"status":200,"body":"[\n \"string\",\n \"string\"\n]","headers":{"Content-Type":"application/json"}},"uuid":"864d58e6-0c08-4f38-b7e1-2638f8d7fd6d","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"ac1d4c4f-a8a7-4c27-ae64-7fc977cfa122","name":"getAndReturnListOfObjects - default","request":{"urlPathTemplate":"/container/list-of-objects","method":"POST"},"response":{"status":200,"body":"[\n {\n \"string\": \"string\"\n },\n {\n \"string\": \"string\"\n }\n]","headers":{"Content-Type":"application/json"}},"uuid":"ac1d4c4f-a8a7-4c27-ae64-7fc977cfa122","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"591d5c48-a536-452b-8a2e-ad7c23c38298","name":"getAndReturnSetOfPrimitives - default","request":{"urlPathTemplate":"/container/set-of-primitives","method":"POST"},"response":{"status":200,"body":"[\n \"string\"\n]","headers":{"Content-Type":"application/json"}},"uuid":"591d5c48-a536-452b-8a2e-ad7c23c38298","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"e1d5f52b-7a51-464f-ac8f-83c0345a3a35","name":"getAndReturnSetOfObjects - default","request":{"urlPathTemplate":"/container/set-of-objects","method":"POST"},"response":{"status":200,"body":"[\n {\n \"string\": \"string\"\n }\n]","headers":{"Content-Type":"application/json"}},"uuid":"e1d5f52b-7a51-464f-ac8f-83c0345a3a35","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"4b1d33b3-ca7d-462a-a2e3-23d531ae2922","name":"getAndReturnMapPrimToPrim - default","request":{"urlPathTemplate":"/container/map-prim-to-prim","method":"POST"},"response":{"status":200,"body":"{\n \"string\": \"string\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"4b1d33b3-ca7d-462a-a2e3-23d531ae2922","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"b01ac2b9-3470-48aa-badc-57d331bb5a49","name":"getAndReturnMapOfPrimToObject - default","request":{"urlPathTemplate":"/container/map-prim-to-object","method":"POST"},"response":{"status":200,"body":"{\n \"string\": {\n \"string\": \"string\"\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"b01ac2b9-3470-48aa-badc-57d331bb5a49","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"eaf9315d-55c4-4434-8004-a70c25af5656","name":"getAndReturnMapOfPrimToUndiscriminatedUnion - default","request":{"urlPathTemplate":"/container/map-prim-to-union","method":"POST"},"response":{"status":200,"body":"{\n \"string\": 1.1\n}","headers":{"Content-Type":"application/json"}},"uuid":"eaf9315d-55c4-4434-8004-a70c25af5656","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"e5271904-de0a-425f-940d-d6f6bde34755","name":"getAndReturnOptional - default","request":{"urlPathTemplate":"/container/opt-objects","method":"POST"},"response":{"status":200,"body":"{\n \"string\": \"string\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"e5271904-de0a-425f-940d-d6f6bde34755","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"d19e1fbe-79cc-465c-962e-e1866ca2361b","name":"postJsonPatchContentType - default","request":{"urlPathTemplate":"/foo/bar","method":"POST"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"d19e1fbe-79cc-465c-962e-e1866ca2361b","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"4a107cf5-6284-48f8-9ddb-99d944ba989b","name":"postJsonPatchContentWithCharsetType - default","request":{"urlPathTemplate":"/foo/baz","method":"POST"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"4a107cf5-6284-48f8-9ddb-99d944ba989b","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"60fd3c8a-3983-41b9-8178-f42997388900","name":"getAndReturnEnum - default","request":{"urlPathTemplate":"/enum","method":"POST"},"response":{"status":200,"body":"\"SUNNY\"","headers":{"Content-Type":"application/json"}},"uuid":"60fd3c8a-3983-41b9-8178-f42997388900","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"3d95c052-db6e-4eff-95f2-895666a5af54","name":"testGet - default","request":{"urlPathTemplate":"/http-methods/{id}","method":"GET","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"\"string\"","headers":{"Content-Type":"application/json"}},"uuid":"3d95c052-db6e-4eff-95f2-895666a5af54","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"2552873f-9f1d-4557-a6c7-6c6b7a55b566","name":"testPost - default","request":{"urlPathTemplate":"/http-methods","method":"POST"},"response":{"status":200,"body":"{\n \"string\": \"string\",\n \"integer\": 1,\n \"long\": 1000000,\n \"double\": 1.1,\n \"bool\": true,\n \"datetime\": \"2024-01-15T09:30:00Z\",\n \"date\": \"2023-01-15\",\n \"uuid\": \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n \"base64\": \"SGVsbG8gd29ybGQh\",\n \"list\": [\n \"list\",\n \"list\"\n ],\n \"set\": [\n \"set\"\n ],\n \"map\": {\n \"1\": \"map\"\n },\n \"bigint\": \"1000000\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"2552873f-9f1d-4557-a6c7-6c6b7a55b566","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"db42fbdf-5426-41b7-b7ea-28ed39a38e82","name":"testPut - default","request":{"urlPathTemplate":"/http-methods/{id}","method":"PUT","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"{\n \"string\": \"string\",\n \"integer\": 1,\n \"long\": 1000000,\n \"double\": 1.1,\n \"bool\": true,\n \"datetime\": \"2024-01-15T09:30:00Z\",\n \"date\": \"2023-01-15\",\n \"uuid\": \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n \"base64\": \"SGVsbG8gd29ybGQh\",\n \"list\": [\n \"list\",\n \"list\"\n ],\n \"set\": [\n \"set\"\n ],\n \"map\": {\n \"1\": \"map\"\n },\n \"bigint\": \"1000000\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"db42fbdf-5426-41b7-b7ea-28ed39a38e82","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"c9def317-32a0-4bc0-b9b6-5efae8ca44a6","name":"testPatch - default","request":{"urlPathTemplate":"/http-methods/{id}","method":"PATCH","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"{\n \"string\": \"string\",\n \"integer\": 1,\n \"long\": 1000000,\n \"double\": 1.1,\n \"bool\": true,\n \"datetime\": \"2024-01-15T09:30:00Z\",\n \"date\": \"2023-01-15\",\n \"uuid\": \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n \"base64\": \"SGVsbG8gd29ybGQh\",\n \"list\": [\n \"list\",\n \"list\"\n ],\n \"set\": [\n \"set\"\n ],\n \"map\": {\n \"1\": \"map\"\n },\n \"bigint\": \"1000000\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"c9def317-32a0-4bc0-b9b6-5efae8ca44a6","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"05333635-c9ce-4c1a-bb6d-95e8a0fb80dc","name":"testDelete - default","request":{"urlPathTemplate":"/http-methods/{id}","method":"DELETE","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"true","headers":{"Content-Type":"application/json"}},"uuid":"05333635-c9ce-4c1a-bb6d-95e8a0fb80dc","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"41cdef0e-040f-4d08-8426-87b19e60f7d7","name":"getAndReturnWithOptionalField - default","request":{"urlPathTemplate":"/object/get-and-return-with-optional-field","method":"POST"},"response":{"status":200,"body":"{\n \"string\": \"string\",\n \"integer\": 1,\n \"long\": 1000000,\n \"double\": 1.1,\n \"bool\": true,\n \"datetime\": \"2024-01-15T09:30:00Z\",\n \"date\": \"2023-01-15\",\n \"uuid\": \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n \"base64\": \"SGVsbG8gd29ybGQh\",\n \"list\": [\n \"list\",\n \"list\"\n ],\n \"set\": [\n \"set\"\n ],\n \"map\": {\n \"1\": \"map\"\n },\n \"bigint\": \"1000000\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"41cdef0e-040f-4d08-8426-87b19e60f7d7","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"f74df550-df8c-4503-b202-0b9b3165c1a7","name":"getAndReturnWithRequiredField - default","request":{"urlPathTemplate":"/object/get-and-return-with-required-field","method":"POST"},"response":{"status":200,"body":"{\n \"string\": \"string\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"f74df550-df8c-4503-b202-0b9b3165c1a7","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"0c904dbb-ce54-48a2-8364-13a4989be7f2","name":"getAndReturnWithMapOfMap - default","request":{"urlPathTemplate":"/object/get-and-return-with-map-of-map","method":"POST"},"response":{"status":200,"body":"{\n \"map\": {\n \"map\": {\n \"map\": \"map\"\n }\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"0c904dbb-ce54-48a2-8364-13a4989be7f2","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"67e969fc-ff81-4a67-9858-66a29ffc9b72","name":"getAndReturnNestedWithOptionalField - default","request":{"urlPathTemplate":"/object/get-and-return-nested-with-optional-field","method":"POST"},"response":{"status":200,"body":"{\n \"string\": \"string\",\n \"NestedObject\": {\n \"string\": \"string\",\n \"integer\": 1,\n \"long\": 1000000,\n \"double\": 1.1,\n \"bool\": true,\n \"datetime\": \"2024-01-15T09:30:00Z\",\n \"date\": \"2023-01-15\",\n \"uuid\": \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n \"base64\": \"SGVsbG8gd29ybGQh\",\n \"list\": [\n \"list\",\n \"list\"\n ],\n \"set\": [\n \"set\"\n ],\n \"map\": {\n \"1\": \"map\"\n },\n \"bigint\": \"1000000\"\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"67e969fc-ff81-4a67-9858-66a29ffc9b72","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"169827d0-4247-4236-8cef-34b94d2659de","name":"getAndReturnNestedWithRequiredField - default","request":{"urlPathTemplate":"/object/get-and-return-nested-with-required-field/{string}","method":"POST","pathParameters":{"string":{"equalTo":"string"}}},"response":{"status":200,"body":"{\n \"string\": \"string\",\n \"NestedObject\": {\n \"string\": \"string\",\n \"integer\": 1,\n \"long\": 1000000,\n \"double\": 1.1,\n \"bool\": true,\n \"datetime\": \"2024-01-15T09:30:00Z\",\n \"date\": \"2023-01-15\",\n \"uuid\": \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n \"base64\": \"SGVsbG8gd29ybGQh\",\n \"list\": [\n \"list\",\n \"list\"\n ],\n \"set\": [\n \"set\"\n ],\n \"map\": {\n \"1\": \"map\"\n },\n \"bigint\": \"1000000\"\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"169827d0-4247-4236-8cef-34b94d2659de","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"6d9ed308-5724-4bbc-a4f7-28dc264d188f","name":"getAndReturnNestedWithRequiredFieldAsList - default","request":{"urlPathTemplate":"/object/get-and-return-nested-with-required-field-list","method":"POST"},"response":{"status":200,"body":"{\n \"string\": \"string\",\n \"NestedObject\": {\n \"string\": \"string\",\n \"integer\": 1,\n \"long\": 1000000,\n \"double\": 1.1,\n \"bool\": true,\n \"datetime\": \"2024-01-15T09:30:00Z\",\n \"date\": \"2023-01-15\",\n \"uuid\": \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n \"base64\": \"SGVsbG8gd29ybGQh\",\n \"list\": [\n \"list\",\n \"list\"\n ],\n \"set\": [\n \"set\"\n ],\n \"map\": {\n \"1\": \"map\"\n },\n \"bigint\": \"1000000\"\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"6d9ed308-5724-4bbc-a4f7-28dc264d188f","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"e2cc3e92-6e37-4a50-9081-23952fdd73fe","name":"getAndReturnWithDatetimeLikeString - default","request":{"urlPathTemplate":"/object/get-and-return-with-datetime-like-string","method":"POST"},"response":{"status":200,"body":"{\n \"datetimeLikeString\": \"2023-08-31T14:15:22Z\",\n \"actualDatetime\": \"2023-08-31T14:15:22Z\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"e2cc3e92-6e37-4a50-9081-23952fdd73fe","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"f15b2079-2482-4ed2-951d-d2b5c4de9afd","name":"listItems - default","request":{"urlPathTemplate":"/pagination","method":"GET"},"response":{"status":200,"body":"{\n \"items\": [\n {\n \"string\": \"string\"\n },\n {\n \"string\": \"string\"\n }\n ],\n \"next\": \"next\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"f15b2079-2482-4ed2-951d-d2b5c4de9afd","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"97806fdb-f31f-4f90-84b8-f9cc1713d53d","name":"getWithPath - default","request":{"urlPathTemplate":"/params/path/{param}","method":"GET","pathParameters":{"param":{"equalTo":"param"}}},"response":{"status":200,"body":"\"string\"","headers":{"Content-Type":"application/json"}},"uuid":"97806fdb-f31f-4f90-84b8-f9cc1713d53d","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"711fc64f-4af9-4084-8c29-1e7a9e58be70","name":"getWithInlinePath - default","request":{"urlPathTemplate":"/params/path/{param}","method":"GET","pathParameters":{"param":{"equalTo":"param"}}},"response":{"status":200,"body":"\"string\"","headers":{"Content-Type":"application/json"}},"uuid":"711fc64f-4af9-4084-8c29-1e7a9e58be70","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"8e5739b3-d75f-47d7-b6b8-a663d91a66b5","name":"getWithQuery - default","request":{"urlPathTemplate":"/params","method":"GET"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"8e5739b3-d75f-47d7-b6b8-a663d91a66b5","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"4125d349-732b-4ff7-948d-1eeb977ed13b","name":"getWithAllowMultipleQuery - default","request":{"urlPathTemplate":"/params","method":"GET"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"4125d349-732b-4ff7-948d-1eeb977ed13b","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"1933d96a-a1b9-4cf1-85ba-c1e8eff5bd56","name":"getWithPathAndQuery - default","request":{"urlPathTemplate":"/params/path-query/{param}","method":"GET","pathParameters":{"param":{"equalTo":"param"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"1933d96a-a1b9-4cf1-85ba-c1e8eff5bd56","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"c4f5012a-fb3f-45ac-b695-beedc3353ad8","name":"getWithInlinePathAndQuery - default","request":{"urlPathTemplate":"/params/path-query/{param}","method":"GET","pathParameters":{"param":{"equalTo":"param"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"c4f5012a-fb3f-45ac-b695-beedc3353ad8","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"046bf7d6-751b-48e9-bfc6-ff74a17e88e1","name":"modifyWithPath - default","request":{"urlPathTemplate":"/params/path/{param}","method":"PUT","pathParameters":{"param":{"equalTo":"param"}}},"response":{"status":200,"body":"\"string\"","headers":{"Content-Type":"application/json"}},"uuid":"046bf7d6-751b-48e9-bfc6-ff74a17e88e1","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"6bfc7195-b99c-4449-bf47-7c4f74f6f33b","name":"modifyWithInlinePath - default","request":{"urlPathTemplate":"/params/path/{param}","method":"PUT","pathParameters":{"param":{"equalTo":"param"}}},"response":{"status":200,"body":"\"string\"","headers":{"Content-Type":"application/json"}},"uuid":"6bfc7195-b99c-4449-bf47-7c4f74f6f33b","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"658d6145-14f6-48d3-9c66-c63e01eb6fd2","name":"uploadWithPath - default","request":{"urlPathTemplate":"/params/path/{param}","method":"POST","pathParameters":{"param":{"equalTo":"upload-path"}}},"response":{"status":200,"body":"{\n \"string\": \"uploaded\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"658d6145-14f6-48d3-9c66-c63e01eb6fd2","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"0506ae7c-87b7-4cd2-9e50-31d60f81893f","name":"getAndReturnString - default","request":{"urlPathTemplate":"/primitive/string","method":"POST"},"response":{"status":200,"body":"\"string\"","headers":{"Content-Type":"application/json"}},"uuid":"0506ae7c-87b7-4cd2-9e50-31d60f81893f","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"67f875d1-e19e-440d-8f0c-7e1d24ef2619","name":"getAndReturnInt - default","request":{"urlPathTemplate":"/primitive/integer","method":"POST"},"response":{"status":200,"body":"1","headers":{"Content-Type":"application/json"}},"uuid":"67f875d1-e19e-440d-8f0c-7e1d24ef2619","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"5fadbebd-86c0-41f9-8be5-864e39eb5924","name":"getAndReturnLong - default","request":{"urlPathTemplate":"/primitive/long","method":"POST"},"response":{"status":200,"body":"1000000","headers":{"Content-Type":"application/json"}},"uuid":"5fadbebd-86c0-41f9-8be5-864e39eb5924","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"e03872b6-86b1-490b-9195-86e5d3a014f2","name":"getAndReturnDouble - default","request":{"urlPathTemplate":"/primitive/double","method":"POST"},"response":{"status":200,"body":"1.1","headers":{"Content-Type":"application/json"}},"uuid":"e03872b6-86b1-490b-9195-86e5d3a014f2","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"442e632f-890a-4105-9448-f7015127e3b4","name":"getAndReturnBool - default","request":{"urlPathTemplate":"/primitive/boolean","method":"POST"},"response":{"status":200,"body":"true","headers":{"Content-Type":"application/json"}},"uuid":"442e632f-890a-4105-9448-f7015127e3b4","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"ad76fa81-1e63-43fd-9a99-1d5e4339d98c","name":"getAndReturnDatetime - default","request":{"urlPathTemplate":"/primitive/datetime","method":"POST"},"response":{"status":200,"body":"\"2024-01-15T09:30:00Z\"","headers":{"Content-Type":"application/json"}},"uuid":"ad76fa81-1e63-43fd-9a99-1d5e4339d98c","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"afb524b1-54ab-4674-8446-fdd574c368cc","name":"getAndReturnDate - default","request":{"urlPathTemplate":"/primitive/date","method":"POST"},"response":{"status":200,"body":"\"2023-01-15\"","headers":{"Content-Type":"application/json"}},"uuid":"afb524b1-54ab-4674-8446-fdd574c368cc","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"969c0f3a-218a-45b7-b17f-64b1a9307d43","name":"getAndReturnUUID - default","request":{"urlPathTemplate":"/primitive/uuid","method":"POST"},"response":{"status":200,"body":"\"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\"","headers":{"Content-Type":"application/json"}},"uuid":"969c0f3a-218a-45b7-b17f-64b1a9307d43","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"04baa20d-d318-40e6-9784-c40158c16acd","name":"getAndReturnBase64 - default","request":{"urlPathTemplate":"/primitive/base64","method":"POST"},"response":{"status":200,"body":"\"SGVsbG8gd29ybGQh\"","headers":{"Content-Type":"application/json"}},"uuid":"04baa20d-d318-40e6-9784-c40158c16acd","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"fddd5aaf-ab0d-4ef6-949c-5d329f6d7eb2","name":"Put - default","request":{"urlPathTemplate":"/{id}","method":"PUT","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"{\n \"errors\": [\n {\n \"category\": \"API_ERROR\",\n \"code\": \"INTERNAL_SERVER_ERROR\",\n \"detail\": \"detail\",\n \"field\": \"field\"\n },\n {\n \"category\": \"API_ERROR\",\n \"code\": \"INTERNAL_SERVER_ERROR\",\n \"detail\": \"detail\",\n \"field\": \"field\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"fddd5aaf-ab0d-4ef6-949c-5d329f6d7eb2","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"d29330f9-49ff-49c4-9081-7c83dbad315b","name":"getAndReturnUnion - default","request":{"urlPathTemplate":"/union","method":"POST"},"response":{"status":200,"body":"{\n \"animal\": \"dog\",\n \"name\": \"name\",\n \"likesToWoof\": true\n}","headers":{"Content-Type":"application/json"}},"uuid":"d29330f9-49ff-49c4-9081-7c83dbad315b","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"343f71f3-36ce-4684-b762-d60a086b43a4","name":"withMixedCase - default","request":{"urlPathTemplate":"/urls/MixedCase","method":"GET"},"response":{"status":200,"body":"\"string\"","headers":{"Content-Type":"application/json"}},"uuid":"343f71f3-36ce-4684-b762-d60a086b43a4","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"48f36314-b2b7-4910-9e1d-5b05f3346a60","name":"noEndingSlash - default","request":{"urlPathTemplate":"/urls/no-ending-slash","method":"GET"},"response":{"status":200,"body":"\"string\"","headers":{"Content-Type":"application/json"}},"uuid":"48f36314-b2b7-4910-9e1d-5b05f3346a60","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"f7b95029-2f25-4f70-8b4c-0855712747d8","name":"withEndingSlash - default","request":{"urlPathTemplate":"/urls/with-ending-slash/","method":"GET"},"response":{"status":200,"body":"\"string\"","headers":{"Content-Type":"application/json"}},"uuid":"f7b95029-2f25-4f70-8b4c-0855712747d8","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"2f9671a5-e6da-43a8-be27-d0be0191dcbf","name":"withUnderscores - default","request":{"urlPathTemplate":"/urls/with_underscores","method":"GET"},"response":{"status":200,"body":"\"string\"","headers":{"Content-Type":"application/json"}},"uuid":"2f9671a5-e6da-43a8-be27-d0be0191dcbf","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"4a6d0aaa-05f2-47bb-9f40-6e3743b9d2bf","name":"postWithObjectBodyandResponse - default","request":{"urlPathTemplate":"/req-bodies/object","method":"POST"},"response":{"status":200,"body":"{\n \"string\": \"string\",\n \"integer\": 1,\n \"long\": 1000000,\n \"double\": 1.1,\n \"bool\": true,\n \"datetime\": \"2024-01-15T09:30:00Z\",\n \"date\": \"2023-01-15\",\n \"uuid\": \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n \"base64\": \"SGVsbG8gd29ybGQh\",\n \"list\": [\n \"list\",\n \"list\"\n ],\n \"set\": [\n \"set\"\n ],\n \"map\": {\n \"1\": \"map\"\n },\n \"bigint\": \"1000000\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"4a6d0aaa-05f2-47bb-9f40-6e3743b9d2bf","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"c6e7cc6c-b76f-4860-a9ad-52dc8f55b6e6","name":"postWithNoAuth - default","request":{"urlPathTemplate":"/no-auth","method":"POST"},"response":{"status":200,"body":"true","headers":{"Content-Type":"application/json"}},"uuid":"c6e7cc6c-b76f-4860-a9ad-52dc8f55b6e6","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"8098eeea-bc6b-4068-9601-566c2092f83f","name":"getWithNoRequestBody - default","request":{"urlPathTemplate":"/no-req-body","method":"GET"},"response":{"status":200,"body":"{\n \"string\": \"string\",\n \"integer\": 1,\n \"long\": 1000000,\n \"double\": 1.1,\n \"bool\": true,\n \"datetime\": \"2024-01-15T09:30:00Z\",\n \"date\": \"2023-01-15\",\n \"uuid\": \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n \"base64\": \"SGVsbG8gd29ybGQh\",\n \"list\": [\n \"list\",\n \"list\"\n ],\n \"set\": [\n \"set\"\n ],\n \"map\": {\n \"1\": \"map\"\n },\n \"bigint\": \"1000000\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"8098eeea-bc6b-4068-9601-566c2092f83f","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"7dd9f944-1b35-42e9-a5ed-e48214ac8e91","name":"postWithNoRequestBody - default","request":{"urlPathTemplate":"/no-req-body","method":"POST"},"response":{"status":200,"body":"\"string\"","headers":{"Content-Type":"application/json"}},"uuid":"7dd9f944-1b35-42e9-a5ed-e48214ac8e91","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"d7b54168-aef4-4d68-a9c5-446e97dee2fc","name":"getWithCustomHeader - default","request":{"urlPathTemplate":"/test-headers/custom-header","method":"POST"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"d7b54168-aef4-4d68-a9c5-446e97dee2fc","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}}],"meta":{"total":53}} \ No newline at end of file diff --git a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example33/snippet.go b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example33/snippet.go index 82e8b5bfdff2..b77a552bf984 100644 --- a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example33/snippet.go +++ b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example33/snippet.go @@ -3,6 +3,7 @@ package example import ( client "github.com/exhaustive/fern/client" option "github.com/exhaustive/fern/option" + bytes "bytes" context "context" ) @@ -15,9 +16,12 @@ func do() { "", ), ) - request := "string" - client.Endpoints.Primitive.GetAndReturnString( + request := bytes.NewReader( + []byte(""), + ) + client.Endpoints.Params.UploadWithPath( context.TODO(), + "upload-path", request, ) } diff --git a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example34/snippet.go b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example34/snippet.go index 403baa1b07e9..82e8b5bfdff2 100644 --- a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example34/snippet.go +++ b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example34/snippet.go @@ -15,8 +15,8 @@ func do() { "", ), ) - request := 1 - client.Endpoints.Primitive.GetAndReturnInt( + request := "string" + client.Endpoints.Primitive.GetAndReturnString( context.TODO(), request, ) diff --git a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example35/snippet.go b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example35/snippet.go index b742da0bcba8..403baa1b07e9 100644 --- a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example35/snippet.go +++ b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example35/snippet.go @@ -15,8 +15,8 @@ func do() { "", ), ) - request := int64(1000000) - client.Endpoints.Primitive.GetAndReturnLong( + request := 1 + client.Endpoints.Primitive.GetAndReturnInt( context.TODO(), request, ) diff --git a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example36/snippet.go b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example36/snippet.go index 2031ce5e4b7e..b742da0bcba8 100644 --- a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example36/snippet.go +++ b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example36/snippet.go @@ -15,8 +15,8 @@ func do() { "", ), ) - request := 1.1 - client.Endpoints.Primitive.GetAndReturnDouble( + request := int64(1000000) + client.Endpoints.Primitive.GetAndReturnLong( context.TODO(), request, ) diff --git a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example37/snippet.go b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example37/snippet.go index bca4aba3cf63..2031ce5e4b7e 100644 --- a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example37/snippet.go +++ b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example37/snippet.go @@ -15,8 +15,8 @@ func do() { "", ), ) - request := true - client.Endpoints.Primitive.GetAndReturnBool( + request := 1.1 + client.Endpoints.Primitive.GetAndReturnDouble( context.TODO(), request, ) diff --git a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example38/snippet.go b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example38/snippet.go index 7ba6d5781b6f..bca4aba3cf63 100644 --- a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example38/snippet.go +++ b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example38/snippet.go @@ -3,7 +3,6 @@ package example import ( client "github.com/exhaustive/fern/client" option "github.com/exhaustive/fern/option" - fern "github.com/exhaustive/fern" context "context" ) @@ -16,10 +15,8 @@ func do() { "", ), ) - request := fern.MustParseDateTime( - "2024-01-15T09:30:00Z", - ) - client.Endpoints.Primitive.GetAndReturnDatetime( + request := true + client.Endpoints.Primitive.GetAndReturnBool( context.TODO(), request, ) diff --git a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example39/snippet.go b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example39/snippet.go index ea7354d71684..7ba6d5781b6f 100644 --- a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example39/snippet.go +++ b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example39/snippet.go @@ -16,10 +16,10 @@ func do() { "", ), ) - request := fern.MustParseDate( - "2023-01-15", + request := fern.MustParseDateTime( + "2024-01-15T09:30:00Z", ) - client.Endpoints.Primitive.GetAndReturnDate( + client.Endpoints.Primitive.GetAndReturnDatetime( context.TODO(), request, ) diff --git a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example40/snippet.go b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example40/snippet.go index 0fc23739435d..ea7354d71684 100644 --- a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example40/snippet.go +++ b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example40/snippet.go @@ -3,7 +3,7 @@ package example import ( client "github.com/exhaustive/fern/client" option "github.com/exhaustive/fern/option" - uuid "github.com/google/uuid" + fern "github.com/exhaustive/fern" context "context" ) @@ -16,10 +16,10 @@ func do() { "", ), ) - request := uuid.MustParse( - "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + request := fern.MustParseDate( + "2023-01-15", ) - client.Endpoints.Primitive.GetAndReturnUuid( + client.Endpoints.Primitive.GetAndReturnDate( context.TODO(), request, ) diff --git a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example41/snippet.go b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example41/snippet.go index 4123137454c5..0fc23739435d 100644 --- a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example41/snippet.go +++ b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example41/snippet.go @@ -3,6 +3,7 @@ package example import ( client "github.com/exhaustive/fern/client" option "github.com/exhaustive/fern/option" + uuid "github.com/google/uuid" context "context" ) @@ -15,8 +16,10 @@ func do() { "", ), ) - request := []byte("SGVsbG8gd29ybGQh") - client.Endpoints.Primitive.GetAndReturnBase64( + request := uuid.MustParse( + "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + ) + client.Endpoints.Primitive.GetAndReturnUuid( context.TODO(), request, ) diff --git a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example42/snippet.go b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example42/snippet.go index cdd2596e18c8..4123137454c5 100644 --- a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example42/snippet.go +++ b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example42/snippet.go @@ -3,7 +3,6 @@ package example import ( client "github.com/exhaustive/fern/client" option "github.com/exhaustive/fern/option" - endpoints "github.com/exhaustive/fern/endpoints" context "context" ) @@ -16,10 +15,8 @@ func do() { "", ), ) - request := &endpoints.PutRequest{ - Id: "id", - } - client.Endpoints.Put.Add( + request := []byte("SGVsbG8gd29ybGQh") + client.Endpoints.Primitive.GetAndReturnBase64( context.TODO(), request, ) diff --git a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example43/snippet.go b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example43/snippet.go index 8cf7dffd3bf9..cdd2596e18c8 100644 --- a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example43/snippet.go +++ b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example43/snippet.go @@ -3,7 +3,7 @@ package example import ( client "github.com/exhaustive/fern/client" option "github.com/exhaustive/fern/option" - types "github.com/exhaustive/fern/types" + endpoints "github.com/exhaustive/fern/endpoints" context "context" ) @@ -16,13 +16,10 @@ func do() { "", ), ) - request := &types.Animal{ - Dog: &types.Dog{ - Name: "name", - LikesToWoof: true, - }, + request := &endpoints.PutRequest{ + Id: "id", } - client.Endpoints.Union.GetAndReturnUnion( + client.Endpoints.Put.Add( context.TODO(), request, ) diff --git a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example44/snippet.go b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example44/snippet.go index a93ae3386722..8cf7dffd3bf9 100644 --- a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example44/snippet.go +++ b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example44/snippet.go @@ -3,6 +3,7 @@ package example import ( client "github.com/exhaustive/fern/client" option "github.com/exhaustive/fern/option" + types "github.com/exhaustive/fern/types" context "context" ) @@ -15,7 +16,14 @@ func do() { "", ), ) - client.Endpoints.Urls.WithMixedCase( + request := &types.Animal{ + Dog: &types.Dog{ + Name: "name", + LikesToWoof: true, + }, + } + client.Endpoints.Union.GetAndReturnUnion( context.TODO(), + request, ) } diff --git a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example45/snippet.go b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example45/snippet.go index 577186ecde11..a93ae3386722 100644 --- a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example45/snippet.go +++ b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example45/snippet.go @@ -15,7 +15,7 @@ func do() { "", ), ) - client.Endpoints.Urls.NoEndingSlash( + client.Endpoints.Urls.WithMixedCase( context.TODO(), ) } diff --git a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example46/snippet.go b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example46/snippet.go index 5aa07b141f00..577186ecde11 100644 --- a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example46/snippet.go +++ b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example46/snippet.go @@ -15,7 +15,7 @@ func do() { "", ), ) - client.Endpoints.Urls.WithEndingSlash( + client.Endpoints.Urls.NoEndingSlash( context.TODO(), ) } diff --git a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example47/snippet.go b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example47/snippet.go index 0a34c1ef6699..5aa07b141f00 100644 --- a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example47/snippet.go +++ b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example47/snippet.go @@ -15,7 +15,7 @@ func do() { "", ), ) - client.Endpoints.Urls.WithUnderscores( + client.Endpoints.Urls.WithEndingSlash( context.TODO(), ) } diff --git a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example48/snippet.go b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example48/snippet.go index 84c79c102c7b..0a34c1ef6699 100644 --- a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example48/snippet.go +++ b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example48/snippet.go @@ -3,9 +3,6 @@ package example import ( client "github.com/exhaustive/fern/client" option "github.com/exhaustive/fern/option" - fern "github.com/exhaustive/fern" - types "github.com/exhaustive/fern/types" - uuid "github.com/google/uuid" context "context" ) @@ -18,60 +15,7 @@ func do() { "", ), ) - request := &fern.PostWithObjectBody{ - FieldString: "string", - Integer: 1, - NestedObject: &types.ObjectWithOptionalField{ - FieldString: fern.String( - "string", - ), - Integer: fern.Int( - 1, - ), - Long: fern.Int64( - int64(1000000), - ), - Double: fern.Float64( - 1.1, - ), - Bool: fern.Bool( - true, - ), - Datetime: fern.Time( - fern.MustParseDateTime( - "2024-01-15T09:30:00Z", - ), - ), - Date: fern.Time( - fern.MustParseDate( - "2023-01-15", - ), - ), - Uuid: fern.UUID( - uuid.MustParse( - "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", - ), - ), - Base64: fern.Bytes( - []byte("SGVsbG8gd29ybGQh"), - ), - List: []string{ - "list", - "list", - }, - Set: []string{ - "set", - }, - Map: map[int]string{ - 1: "map", - }, - Bigint: fern.String( - "1000000", - ), - }, - } - client.InlinedRequests.PostWithObjectBodyandResponse( + client.Endpoints.Urls.WithUnderscores( context.TODO(), - request, ) } diff --git a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example50/snippet.go b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example50/snippet.go index 3b27a0d640a2..84c79c102c7b 100644 --- a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example50/snippet.go +++ b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example50/snippet.go @@ -3,6 +3,9 @@ package example import ( client "github.com/exhaustive/fern/client" option "github.com/exhaustive/fern/option" + fern "github.com/exhaustive/fern" + types "github.com/exhaustive/fern/types" + uuid "github.com/google/uuid" context "context" ) @@ -15,10 +18,59 @@ func do() { "", ), ) - request := map[string]any{ - "key": "value", + request := &fern.PostWithObjectBody{ + FieldString: "string", + Integer: 1, + NestedObject: &types.ObjectWithOptionalField{ + FieldString: fern.String( + "string", + ), + Integer: fern.Int( + 1, + ), + Long: fern.Int64( + int64(1000000), + ), + Double: fern.Float64( + 1.1, + ), + Bool: fern.Bool( + true, + ), + Datetime: fern.Time( + fern.MustParseDateTime( + "2024-01-15T09:30:00Z", + ), + ), + Date: fern.Time( + fern.MustParseDate( + "2023-01-15", + ), + ), + Uuid: fern.UUID( + uuid.MustParse( + "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", + ), + ), + Base64: fern.Bytes( + []byte("SGVsbG8gd29ybGQh"), + ), + List: []string{ + "list", + "list", + }, + Set: []string{ + "set", + }, + Map: map[int]string{ + 1: "map", + }, + Bigint: fern.String( + "1000000", + ), + }, } - client.NoAuth.PostWithNoAuth( + client.InlinedRequests.PostWithObjectBodyandResponse( context.TODO(), request, ) diff --git a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example52/snippet.go b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example52/snippet.go index fab0508ce294..3b27a0d640a2 100644 --- a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example52/snippet.go +++ b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example52/snippet.go @@ -15,7 +15,11 @@ func do() { "", ), ) - client.NoReqBody.GetWithNoRequestBody( + request := map[string]any{ + "key": "value", + } + client.NoAuth.PostWithNoAuth( context.TODO(), + request, ) } diff --git a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example53/snippet.go b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example53/snippet.go index 6715197c4533..fab0508ce294 100644 --- a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example53/snippet.go +++ b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example53/snippet.go @@ -15,7 +15,7 @@ func do() { "", ), ) - client.NoReqBody.PostWithNoRequestBody( + client.NoReqBody.GetWithNoRequestBody( context.TODO(), ) } diff --git a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example54/snippet.go b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example54/snippet.go index 1e71655744a0..6715197c4533 100644 --- a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example54/snippet.go +++ b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example54/snippet.go @@ -3,7 +3,6 @@ package example import ( client "github.com/exhaustive/fern/client" option "github.com/exhaustive/fern/option" - fern "github.com/exhaustive/fern" context "context" ) @@ -16,13 +15,7 @@ func do() { "", ), ) - request := &fern.ReqWithHeaders{ - XTestServiceHeader: "X-TEST-SERVICE-HEADER", - XTestEndpointHeader: "X-TEST-ENDPOINT-HEADER", - Body: "string", - } - client.ReqWithHeaders.GetWithCustomHeader( + client.NoReqBody.PostWithNoRequestBody( context.TODO(), - request, ) } diff --git a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example55/snippet.go b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example55/snippet.go new file mode 100644 index 000000000000..1e71655744a0 --- /dev/null +++ b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/dynamic-snippets/example55/snippet.go @@ -0,0 +1,28 @@ +package example + +import ( + client "github.com/exhaustive/fern/client" + option "github.com/exhaustive/fern/option" + fern "github.com/exhaustive/fern" + context "context" +) + +func do() { + client := client.NewClient( + option.WithBaseURL( + "https://api.fern.com", + ), + option.WithToken( + "", + ), + ) + request := &fern.ReqWithHeaders{ + XTestServiceHeader: "X-TEST-SERVICE-HEADER", + XTestEndpointHeader: "X-TEST-ENDPOINT-HEADER", + Body: "string", + } + client.ReqWithHeaders.GetWithCustomHeader( + context.TODO(), + request, + ) +} diff --git a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/endpoints/params/client.go b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/endpoints/params/client.go index 02a1bbd1f5bd..4c2cf64bcdf8 100644 --- a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/endpoints/params/client.go +++ b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/endpoints/params/client.go @@ -8,6 +8,8 @@ import ( endpoints "github.com/exhaustive/fern/endpoints" internal "github.com/exhaustive/fern/internal" option "github.com/exhaustive/fern/option" + types "github.com/exhaustive/fern/types" + io "io" ) type Client struct { @@ -171,3 +173,22 @@ func (c *Client) ModifyWithInlinePath( } return response.Body, nil } + +// POST bytes with path param returning object +func (c *Client) UploadWithPath( + ctx context.Context, + param string, + request io.Reader, + opts ...option.RequestOption, +) (*types.ObjectWithRequiredField, error) { + response, err := c.WithRawResponse.UploadWithPath( + ctx, + param, + request, + opts..., + ) + if err != nil { + return nil, err + } + return response.Body, nil +} diff --git a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/endpoints/params/endpoints_params_test/endpoints_params_test.go b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/endpoints/params/endpoints_params_test/endpoints_params_test.go index 37cb879bd7e3..8bc4c4a6f7cc 100644 --- a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/endpoints/params/endpoints_params_test/endpoints_params_test.go +++ b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/endpoints/params/endpoints_params_test/endpoints_params_test.go @@ -265,3 +265,30 @@ func TestEndpointsParamsModifyWithPathWithWireMock2( require.NoError(t, invocationErr, "Client method call should succeed") VerifyRequestCount(t, "TestEndpointsParamsModifyWithPathWithWireMock2", "PUT", "/params/path/param", nil, 1) } + +func TestEndpointsParamsUploadWithPathWithWireMock( + t *testing.T, +) { + wiremockPort := os.Getenv("WIREMOCK_PORT") + if wiremockPort == "" { + wiremockPort = "8080" + } + WireMockBaseURL := "http://localhost:" + wiremockPort + client := client.NewClient( + option.WithBaseURL(WireMockBaseURL), + ) + request := bytes.NewReader( + []byte(""), + ) + _, invocationErr := client.Endpoints.Params.UploadWithPath( + context.TODO(), + "upload-path", + request, + option.WithHTTPHeader( + http.Header{"X-Test-Id": []string{"TestEndpointsParamsUploadWithPathWithWireMock"}}, + ), + ) + + require.NoError(t, invocationErr, "Client method call should succeed") + VerifyRequestCount(t, "TestEndpointsParamsUploadWithPathWithWireMock", "POST", "/params/path/upload-path", nil, 1) +} diff --git a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/endpoints/params/raw_client.go b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/endpoints/params/raw_client.go index ad536b0df6a5..8f288bc37207 100644 --- a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/endpoints/params/raw_client.go +++ b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/endpoints/params/raw_client.go @@ -8,6 +8,8 @@ import ( endpoints "github.com/exhaustive/fern/endpoints" internal "github.com/exhaustive/fern/internal" option "github.com/exhaustive/fern/option" + types "github.com/exhaustive/fern/types" + io "io" http "net/http" ) @@ -391,3 +393,48 @@ func (r *RawClient) ModifyWithInlinePath( Body: response, }, nil } + +func (r *RawClient) UploadWithPath( + ctx context.Context, + param string, + request io.Reader, + opts ...option.RequestOption, +) (*core.Response[*types.ObjectWithRequiredField], error) { + options := core.NewRequestOptions(opts...) + baseURL := internal.ResolveBaseURL( + options.BaseURL, + r.baseURL, + "", + ) + endpointURL := internal.EncodeURL( + baseURL+"/params/path/%v", + param, + ) + headers := internal.MergeHeaders( + r.options.ToHeader(), + options.ToHeader(), + ) + var response *types.ObjectWithRequiredField + raw, err := r.caller.Call( + ctx, + &internal.CallParams{ + URL: endpointURL, + Method: http.MethodPost, + Headers: headers, + MaxAttempts: options.MaxAttempts, + BodyProperties: options.BodyProperties, + QueryParameters: options.QueryParameters, + Client: options.HTTPClient, + Request: request, + Response: &response, + }, + ) + if err != nil { + return nil, err + } + return &core.Response[*types.ObjectWithRequiredField]{ + StatusCode: raw.StatusCode, + Header: raw.Header, + Body: response, + }, nil +} diff --git a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/reference.md b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/reference.md index 2c605ad59586..b0758ff65b72 100644 --- a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/reference.md +++ b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/reference.md @@ -2119,6 +2119,65 @@ client.Endpoints.Params.ModifyWithPath( + + + + +
client.Endpoints.Params.UploadWithPath(Param, request) -> *types.ObjectWithRequiredField +
+
+ +#### 📝 Description + +
+
+ +
+
+ +POST bytes with path param returning object +
+
+
+
+ +#### 🔌 Usage + +
+
+ +
+
+ +```go +client.Endpoints.Params.UploadWithPath( + context.TODO(), + "upload-path", + request, + ) +} +``` +
+
+
+
+ +#### ⚙️ Parameters + +
+
+ +
+
+ +**param:** `string` + +
+
+
+
+ +
diff --git a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/snippet.json b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/snippet.json index d5e5289422fd..e9979e6746a7 100644 --- a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/snippet.json +++ b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/snippet.json @@ -363,6 +363,17 @@ "client": "import (\n\tcontext \"context\"\n\tfernclient \"github.com/exhaustive/fern/client\"\n\toption \"github.com/exhaustive/fern/option\"\n)\n\nclient := fernclient.NewClient(\n\toption.WithToken(\n\t\t\"\u003cYOUR_AUTH_TOKEN\u003e\",\n\t),\n)\nresponse, err := client.Endpoints.Params.GetWithPath(\n\tcontext.TODO(),\n\t\"param\",\n)\n" } }, + { + "id": { + "path": "/params/path/{param}", + "method": "POST", + "identifier_override": "endpoint_endpoints/params.uploadWithPath" + }, + "snippet": { + "type": "go", + "client": "import (\n\tcontext \"context\"\n\tfernclient \"github.com/exhaustive/fern/client\"\n\toption \"github.com/exhaustive/fern/option\"\n)\n\nclient := fernclient.NewClient(\n\toption.WithToken(\n\t\t\"\u003cYOUR_AUTH_TOKEN\u003e\",\n\t),\n)\nresponse, err := client.Endpoints.Params.UploadWithPath(\n\tcontext.TODO(),\n\t\"upload-path\",\n)\n" + } + }, { "id": { "path": "/params/path/{param}", diff --git a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/wiremock/wiremock-mappings.json b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/wiremock/wiremock-mappings.json index 4916bea9a994..8ffc6a19b116 100644 --- a/seed/go-sdk/exhaustive/omit-empty-request-wrappers/wiremock/wiremock-mappings.json +++ b/seed/go-sdk/exhaustive/omit-empty-request-wrappers/wiremock/wiremock-mappings.json @@ -1 +1 @@ -{"mappings":[{"id":"864d58e6-0c08-4f38-b7e1-2638f8d7fd6d","name":"getAndReturnListOfPrimitives - default","request":{"urlPathTemplate":"/container/list-of-primitives","method":"POST"},"response":{"status":200,"body":"[\n \"string\",\n \"string\"\n]","headers":{"Content-Type":"application/json"}},"uuid":"864d58e6-0c08-4f38-b7e1-2638f8d7fd6d","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"ac1d4c4f-a8a7-4c27-ae64-7fc977cfa122","name":"getAndReturnListOfObjects - default","request":{"urlPathTemplate":"/container/list-of-objects","method":"POST"},"response":{"status":200,"body":"[\n {\n \"string\": \"string\"\n },\n {\n \"string\": \"string\"\n }\n]","headers":{"Content-Type":"application/json"}},"uuid":"ac1d4c4f-a8a7-4c27-ae64-7fc977cfa122","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"591d5c48-a536-452b-8a2e-ad7c23c38298","name":"getAndReturnSetOfPrimitives - default","request":{"urlPathTemplate":"/container/set-of-primitives","method":"POST"},"response":{"status":200,"body":"[\n \"string\"\n]","headers":{"Content-Type":"application/json"}},"uuid":"591d5c48-a536-452b-8a2e-ad7c23c38298","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"e1d5f52b-7a51-464f-ac8f-83c0345a3a35","name":"getAndReturnSetOfObjects - default","request":{"urlPathTemplate":"/container/set-of-objects","method":"POST"},"response":{"status":200,"body":"[\n {\n \"string\": \"string\"\n }\n]","headers":{"Content-Type":"application/json"}},"uuid":"e1d5f52b-7a51-464f-ac8f-83c0345a3a35","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"4b1d33b3-ca7d-462a-a2e3-23d531ae2922","name":"getAndReturnMapPrimToPrim - default","request":{"urlPathTemplate":"/container/map-prim-to-prim","method":"POST"},"response":{"status":200,"body":"{\n \"string\": \"string\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"4b1d33b3-ca7d-462a-a2e3-23d531ae2922","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"b01ac2b9-3470-48aa-badc-57d331bb5a49","name":"getAndReturnMapOfPrimToObject - default","request":{"urlPathTemplate":"/container/map-prim-to-object","method":"POST"},"response":{"status":200,"body":"{\n \"string\": {\n \"string\": \"string\"\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"b01ac2b9-3470-48aa-badc-57d331bb5a49","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"eaf9315d-55c4-4434-8004-a70c25af5656","name":"getAndReturnMapOfPrimToUndiscriminatedUnion - default","request":{"urlPathTemplate":"/container/map-prim-to-union","method":"POST"},"response":{"status":200,"body":"{\n \"string\": 1.1\n}","headers":{"Content-Type":"application/json"}},"uuid":"eaf9315d-55c4-4434-8004-a70c25af5656","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"e5271904-de0a-425f-940d-d6f6bde34755","name":"getAndReturnOptional - default","request":{"urlPathTemplate":"/container/opt-objects","method":"POST"},"response":{"status":200,"body":"{\n \"string\": \"string\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"e5271904-de0a-425f-940d-d6f6bde34755","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"d19e1fbe-79cc-465c-962e-e1866ca2361b","name":"postJsonPatchContentType - default","request":{"urlPathTemplate":"/foo/bar","method":"POST"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"d19e1fbe-79cc-465c-962e-e1866ca2361b","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"4a107cf5-6284-48f8-9ddb-99d944ba989b","name":"postJsonPatchContentWithCharsetType - default","request":{"urlPathTemplate":"/foo/baz","method":"POST"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"4a107cf5-6284-48f8-9ddb-99d944ba989b","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"60fd3c8a-3983-41b9-8178-f42997388900","name":"getAndReturnEnum - default","request":{"urlPathTemplate":"/enum","method":"POST"},"response":{"status":200,"body":"\"SUNNY\"","headers":{"Content-Type":"application/json"}},"uuid":"60fd3c8a-3983-41b9-8178-f42997388900","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"3d95c052-db6e-4eff-95f2-895666a5af54","name":"testGet - default","request":{"urlPathTemplate":"/http-methods/{id}","method":"GET","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"\"string\"","headers":{"Content-Type":"application/json"}},"uuid":"3d95c052-db6e-4eff-95f2-895666a5af54","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"2552873f-9f1d-4557-a6c7-6c6b7a55b566","name":"testPost - default","request":{"urlPathTemplate":"/http-methods","method":"POST"},"response":{"status":200,"body":"{\n \"string\": \"string\",\n \"integer\": 1,\n \"long\": 1000000,\n \"double\": 1.1,\n \"bool\": true,\n \"datetime\": \"2024-01-15T09:30:00Z\",\n \"date\": \"2023-01-15\",\n \"uuid\": \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n \"base64\": \"SGVsbG8gd29ybGQh\",\n \"list\": [\n \"list\",\n \"list\"\n ],\n \"set\": [\n \"set\"\n ],\n \"map\": {\n \"1\": \"map\"\n },\n \"bigint\": \"1000000\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"2552873f-9f1d-4557-a6c7-6c6b7a55b566","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"db42fbdf-5426-41b7-b7ea-28ed39a38e82","name":"testPut - default","request":{"urlPathTemplate":"/http-methods/{id}","method":"PUT","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"{\n \"string\": \"string\",\n \"integer\": 1,\n \"long\": 1000000,\n \"double\": 1.1,\n \"bool\": true,\n \"datetime\": \"2024-01-15T09:30:00Z\",\n \"date\": \"2023-01-15\",\n \"uuid\": \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n \"base64\": \"SGVsbG8gd29ybGQh\",\n \"list\": [\n \"list\",\n \"list\"\n ],\n \"set\": [\n \"set\"\n ],\n \"map\": {\n \"1\": \"map\"\n },\n \"bigint\": \"1000000\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"db42fbdf-5426-41b7-b7ea-28ed39a38e82","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"c9def317-32a0-4bc0-b9b6-5efae8ca44a6","name":"testPatch - default","request":{"urlPathTemplate":"/http-methods/{id}","method":"PATCH","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"{\n \"string\": \"string\",\n \"integer\": 1,\n \"long\": 1000000,\n \"double\": 1.1,\n \"bool\": true,\n \"datetime\": \"2024-01-15T09:30:00Z\",\n \"date\": \"2023-01-15\",\n \"uuid\": \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n \"base64\": \"SGVsbG8gd29ybGQh\",\n \"list\": [\n \"list\",\n \"list\"\n ],\n \"set\": [\n \"set\"\n ],\n \"map\": {\n \"1\": \"map\"\n },\n \"bigint\": \"1000000\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"c9def317-32a0-4bc0-b9b6-5efae8ca44a6","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"05333635-c9ce-4c1a-bb6d-95e8a0fb80dc","name":"testDelete - default","request":{"urlPathTemplate":"/http-methods/{id}","method":"DELETE","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"true","headers":{"Content-Type":"application/json"}},"uuid":"05333635-c9ce-4c1a-bb6d-95e8a0fb80dc","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"41cdef0e-040f-4d08-8426-87b19e60f7d7","name":"getAndReturnWithOptionalField - default","request":{"urlPathTemplate":"/object/get-and-return-with-optional-field","method":"POST"},"response":{"status":200,"body":"{\n \"string\": \"string\",\n \"integer\": 1,\n \"long\": 1000000,\n \"double\": 1.1,\n \"bool\": true,\n \"datetime\": \"2024-01-15T09:30:00Z\",\n \"date\": \"2023-01-15\",\n \"uuid\": \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n \"base64\": \"SGVsbG8gd29ybGQh\",\n \"list\": [\n \"list\",\n \"list\"\n ],\n \"set\": [\n \"set\"\n ],\n \"map\": {\n \"1\": \"map\"\n },\n \"bigint\": \"1000000\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"41cdef0e-040f-4d08-8426-87b19e60f7d7","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"f74df550-df8c-4503-b202-0b9b3165c1a7","name":"getAndReturnWithRequiredField - default","request":{"urlPathTemplate":"/object/get-and-return-with-required-field","method":"POST"},"response":{"status":200,"body":"{\n \"string\": \"string\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"f74df550-df8c-4503-b202-0b9b3165c1a7","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"0c904dbb-ce54-48a2-8364-13a4989be7f2","name":"getAndReturnWithMapOfMap - default","request":{"urlPathTemplate":"/object/get-and-return-with-map-of-map","method":"POST"},"response":{"status":200,"body":"{\n \"map\": {\n \"map\": {\n \"map\": \"map\"\n }\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"0c904dbb-ce54-48a2-8364-13a4989be7f2","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"67e969fc-ff81-4a67-9858-66a29ffc9b72","name":"getAndReturnNestedWithOptionalField - default","request":{"urlPathTemplate":"/object/get-and-return-nested-with-optional-field","method":"POST"},"response":{"status":200,"body":"{\n \"string\": \"string\",\n \"NestedObject\": {\n \"string\": \"string\",\n \"integer\": 1,\n \"long\": 1000000,\n \"double\": 1.1,\n \"bool\": true,\n \"datetime\": \"2024-01-15T09:30:00Z\",\n \"date\": \"2023-01-15\",\n \"uuid\": \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n \"base64\": \"SGVsbG8gd29ybGQh\",\n \"list\": [\n \"list\",\n \"list\"\n ],\n \"set\": [\n \"set\"\n ],\n \"map\": {\n \"1\": \"map\"\n },\n \"bigint\": \"1000000\"\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"67e969fc-ff81-4a67-9858-66a29ffc9b72","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"169827d0-4247-4236-8cef-34b94d2659de","name":"getAndReturnNestedWithRequiredField - default","request":{"urlPathTemplate":"/object/get-and-return-nested-with-required-field/{string}","method":"POST","pathParameters":{"string":{"equalTo":"string"}}},"response":{"status":200,"body":"{\n \"string\": \"string\",\n \"NestedObject\": {\n \"string\": \"string\",\n \"integer\": 1,\n \"long\": 1000000,\n \"double\": 1.1,\n \"bool\": true,\n \"datetime\": \"2024-01-15T09:30:00Z\",\n \"date\": \"2023-01-15\",\n \"uuid\": \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n \"base64\": \"SGVsbG8gd29ybGQh\",\n \"list\": [\n \"list\",\n \"list\"\n ],\n \"set\": [\n \"set\"\n ],\n \"map\": {\n \"1\": \"map\"\n },\n \"bigint\": \"1000000\"\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"169827d0-4247-4236-8cef-34b94d2659de","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"6d9ed308-5724-4bbc-a4f7-28dc264d188f","name":"getAndReturnNestedWithRequiredFieldAsList - default","request":{"urlPathTemplate":"/object/get-and-return-nested-with-required-field-list","method":"POST"},"response":{"status":200,"body":"{\n \"string\": \"string\",\n \"NestedObject\": {\n \"string\": \"string\",\n \"integer\": 1,\n \"long\": 1000000,\n \"double\": 1.1,\n \"bool\": true,\n \"datetime\": \"2024-01-15T09:30:00Z\",\n \"date\": \"2023-01-15\",\n \"uuid\": \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n \"base64\": \"SGVsbG8gd29ybGQh\",\n \"list\": [\n \"list\",\n \"list\"\n ],\n \"set\": [\n \"set\"\n ],\n \"map\": {\n \"1\": \"map\"\n },\n \"bigint\": \"1000000\"\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"6d9ed308-5724-4bbc-a4f7-28dc264d188f","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"e2cc3e92-6e37-4a50-9081-23952fdd73fe","name":"getAndReturnWithDatetimeLikeString - default","request":{"urlPathTemplate":"/object/get-and-return-with-datetime-like-string","method":"POST"},"response":{"status":200,"body":"{\n \"datetimeLikeString\": \"2023-08-31T14:15:22Z\",\n \"actualDatetime\": \"2023-08-31T14:15:22Z\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"e2cc3e92-6e37-4a50-9081-23952fdd73fe","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"f15b2079-2482-4ed2-951d-d2b5c4de9afd","name":"listItems - default","request":{"urlPathTemplate":"/pagination","method":"GET"},"response":{"status":200,"body":"{\n \"items\": [\n {\n \"string\": \"string\"\n },\n {\n \"string\": \"string\"\n }\n ],\n \"next\": \"next\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"f15b2079-2482-4ed2-951d-d2b5c4de9afd","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"97806fdb-f31f-4f90-84b8-f9cc1713d53d","name":"getWithPath - default","request":{"urlPathTemplate":"/params/path/{param}","method":"GET","pathParameters":{"param":{"equalTo":"param"}}},"response":{"status":200,"body":"\"string\"","headers":{"Content-Type":"application/json"}},"uuid":"97806fdb-f31f-4f90-84b8-f9cc1713d53d","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"711fc64f-4af9-4084-8c29-1e7a9e58be70","name":"getWithInlinePath - default","request":{"urlPathTemplate":"/params/path/{param}","method":"GET","pathParameters":{"param":{"equalTo":"param"}}},"response":{"status":200,"body":"\"string\"","headers":{"Content-Type":"application/json"}},"uuid":"711fc64f-4af9-4084-8c29-1e7a9e58be70","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"8e5739b3-d75f-47d7-b6b8-a663d91a66b5","name":"getWithQuery - default","request":{"urlPathTemplate":"/params","method":"GET"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"8e5739b3-d75f-47d7-b6b8-a663d91a66b5","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"4125d349-732b-4ff7-948d-1eeb977ed13b","name":"getWithAllowMultipleQuery - default","request":{"urlPathTemplate":"/params","method":"GET"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"4125d349-732b-4ff7-948d-1eeb977ed13b","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"1933d96a-a1b9-4cf1-85ba-c1e8eff5bd56","name":"getWithPathAndQuery - default","request":{"urlPathTemplate":"/params/path-query/{param}","method":"GET","pathParameters":{"param":{"equalTo":"param"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"1933d96a-a1b9-4cf1-85ba-c1e8eff5bd56","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"c4f5012a-fb3f-45ac-b695-beedc3353ad8","name":"getWithInlinePathAndQuery - default","request":{"urlPathTemplate":"/params/path-query/{param}","method":"GET","pathParameters":{"param":{"equalTo":"param"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"c4f5012a-fb3f-45ac-b695-beedc3353ad8","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"046bf7d6-751b-48e9-bfc6-ff74a17e88e1","name":"modifyWithPath - default","request":{"urlPathTemplate":"/params/path/{param}","method":"PUT","pathParameters":{"param":{"equalTo":"param"}}},"response":{"status":200,"body":"\"string\"","headers":{"Content-Type":"application/json"}},"uuid":"046bf7d6-751b-48e9-bfc6-ff74a17e88e1","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"6bfc7195-b99c-4449-bf47-7c4f74f6f33b","name":"modifyWithInlinePath - default","request":{"urlPathTemplate":"/params/path/{param}","method":"PUT","pathParameters":{"param":{"equalTo":"param"}}},"response":{"status":200,"body":"\"string\"","headers":{"Content-Type":"application/json"}},"uuid":"6bfc7195-b99c-4449-bf47-7c4f74f6f33b","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"0506ae7c-87b7-4cd2-9e50-31d60f81893f","name":"getAndReturnString - default","request":{"urlPathTemplate":"/primitive/string","method":"POST"},"response":{"status":200,"body":"\"string\"","headers":{"Content-Type":"application/json"}},"uuid":"0506ae7c-87b7-4cd2-9e50-31d60f81893f","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"67f875d1-e19e-440d-8f0c-7e1d24ef2619","name":"getAndReturnInt - default","request":{"urlPathTemplate":"/primitive/integer","method":"POST"},"response":{"status":200,"body":"1","headers":{"Content-Type":"application/json"}},"uuid":"67f875d1-e19e-440d-8f0c-7e1d24ef2619","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"5fadbebd-86c0-41f9-8be5-864e39eb5924","name":"getAndReturnLong - default","request":{"urlPathTemplate":"/primitive/long","method":"POST"},"response":{"status":200,"body":"1000000","headers":{"Content-Type":"application/json"}},"uuid":"5fadbebd-86c0-41f9-8be5-864e39eb5924","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"e03872b6-86b1-490b-9195-86e5d3a014f2","name":"getAndReturnDouble - default","request":{"urlPathTemplate":"/primitive/double","method":"POST"},"response":{"status":200,"body":"1.1","headers":{"Content-Type":"application/json"}},"uuid":"e03872b6-86b1-490b-9195-86e5d3a014f2","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"442e632f-890a-4105-9448-f7015127e3b4","name":"getAndReturnBool - default","request":{"urlPathTemplate":"/primitive/boolean","method":"POST"},"response":{"status":200,"body":"true","headers":{"Content-Type":"application/json"}},"uuid":"442e632f-890a-4105-9448-f7015127e3b4","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"ad76fa81-1e63-43fd-9a99-1d5e4339d98c","name":"getAndReturnDatetime - default","request":{"urlPathTemplate":"/primitive/datetime","method":"POST"},"response":{"status":200,"body":"\"2024-01-15T09:30:00Z\"","headers":{"Content-Type":"application/json"}},"uuid":"ad76fa81-1e63-43fd-9a99-1d5e4339d98c","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"afb524b1-54ab-4674-8446-fdd574c368cc","name":"getAndReturnDate - default","request":{"urlPathTemplate":"/primitive/date","method":"POST"},"response":{"status":200,"body":"\"2023-01-15\"","headers":{"Content-Type":"application/json"}},"uuid":"afb524b1-54ab-4674-8446-fdd574c368cc","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"969c0f3a-218a-45b7-b17f-64b1a9307d43","name":"getAndReturnUUID - default","request":{"urlPathTemplate":"/primitive/uuid","method":"POST"},"response":{"status":200,"body":"\"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\"","headers":{"Content-Type":"application/json"}},"uuid":"969c0f3a-218a-45b7-b17f-64b1a9307d43","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"04baa20d-d318-40e6-9784-c40158c16acd","name":"getAndReturnBase64 - default","request":{"urlPathTemplate":"/primitive/base64","method":"POST"},"response":{"status":200,"body":"\"SGVsbG8gd29ybGQh\"","headers":{"Content-Type":"application/json"}},"uuid":"04baa20d-d318-40e6-9784-c40158c16acd","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"fddd5aaf-ab0d-4ef6-949c-5d329f6d7eb2","name":"Put - default","request":{"urlPathTemplate":"/{id}","method":"PUT","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"{\n \"errors\": [\n {\n \"category\": \"API_ERROR\",\n \"code\": \"INTERNAL_SERVER_ERROR\",\n \"detail\": \"detail\",\n \"field\": \"field\"\n },\n {\n \"category\": \"API_ERROR\",\n \"code\": \"INTERNAL_SERVER_ERROR\",\n \"detail\": \"detail\",\n \"field\": \"field\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"fddd5aaf-ab0d-4ef6-949c-5d329f6d7eb2","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"d29330f9-49ff-49c4-9081-7c83dbad315b","name":"getAndReturnUnion - default","request":{"urlPathTemplate":"/union","method":"POST"},"response":{"status":200,"body":"{\n \"animal\": \"dog\",\n \"name\": \"name\",\n \"likesToWoof\": true\n}","headers":{"Content-Type":"application/json"}},"uuid":"d29330f9-49ff-49c4-9081-7c83dbad315b","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"343f71f3-36ce-4684-b762-d60a086b43a4","name":"withMixedCase - default","request":{"urlPathTemplate":"/urls/MixedCase","method":"GET"},"response":{"status":200,"body":"\"string\"","headers":{"Content-Type":"application/json"}},"uuid":"343f71f3-36ce-4684-b762-d60a086b43a4","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"48f36314-b2b7-4910-9e1d-5b05f3346a60","name":"noEndingSlash - default","request":{"urlPathTemplate":"/urls/no-ending-slash","method":"GET"},"response":{"status":200,"body":"\"string\"","headers":{"Content-Type":"application/json"}},"uuid":"48f36314-b2b7-4910-9e1d-5b05f3346a60","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"f7b95029-2f25-4f70-8b4c-0855712747d8","name":"withEndingSlash - default","request":{"urlPathTemplate":"/urls/with-ending-slash/","method":"GET"},"response":{"status":200,"body":"\"string\"","headers":{"Content-Type":"application/json"}},"uuid":"f7b95029-2f25-4f70-8b4c-0855712747d8","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"2f9671a5-e6da-43a8-be27-d0be0191dcbf","name":"withUnderscores - default","request":{"urlPathTemplate":"/urls/with_underscores","method":"GET"},"response":{"status":200,"body":"\"string\"","headers":{"Content-Type":"application/json"}},"uuid":"2f9671a5-e6da-43a8-be27-d0be0191dcbf","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"4a6d0aaa-05f2-47bb-9f40-6e3743b9d2bf","name":"postWithObjectBodyandResponse - default","request":{"urlPathTemplate":"/req-bodies/object","method":"POST"},"response":{"status":200,"body":"{\n \"string\": \"string\",\n \"integer\": 1,\n \"long\": 1000000,\n \"double\": 1.1,\n \"bool\": true,\n \"datetime\": \"2024-01-15T09:30:00Z\",\n \"date\": \"2023-01-15\",\n \"uuid\": \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n \"base64\": \"SGVsbG8gd29ybGQh\",\n \"list\": [\n \"list\",\n \"list\"\n ],\n \"set\": [\n \"set\"\n ],\n \"map\": {\n \"1\": \"map\"\n },\n \"bigint\": \"1000000\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"4a6d0aaa-05f2-47bb-9f40-6e3743b9d2bf","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"c6e7cc6c-b76f-4860-a9ad-52dc8f55b6e6","name":"postWithNoAuth - default","request":{"urlPathTemplate":"/no-auth","method":"POST"},"response":{"status":200,"body":"true","headers":{"Content-Type":"application/json"}},"uuid":"c6e7cc6c-b76f-4860-a9ad-52dc8f55b6e6","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"8098eeea-bc6b-4068-9601-566c2092f83f","name":"getWithNoRequestBody - default","request":{"urlPathTemplate":"/no-req-body","method":"GET"},"response":{"status":200,"body":"{\n \"string\": \"string\",\n \"integer\": 1,\n \"long\": 1000000,\n \"double\": 1.1,\n \"bool\": true,\n \"datetime\": \"2024-01-15T09:30:00Z\",\n \"date\": \"2023-01-15\",\n \"uuid\": \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n \"base64\": \"SGVsbG8gd29ybGQh\",\n \"list\": [\n \"list\",\n \"list\"\n ],\n \"set\": [\n \"set\"\n ],\n \"map\": {\n \"1\": \"map\"\n },\n \"bigint\": \"1000000\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"8098eeea-bc6b-4068-9601-566c2092f83f","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"7dd9f944-1b35-42e9-a5ed-e48214ac8e91","name":"postWithNoRequestBody - default","request":{"urlPathTemplate":"/no-req-body","method":"POST"},"response":{"status":200,"body":"\"string\"","headers":{"Content-Type":"application/json"}},"uuid":"7dd9f944-1b35-42e9-a5ed-e48214ac8e91","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"d7b54168-aef4-4d68-a9c5-446e97dee2fc","name":"getWithCustomHeader - default","request":{"urlPathTemplate":"/test-headers/custom-header","method":"POST"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"d7b54168-aef4-4d68-a9c5-446e97dee2fc","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}}],"meta":{"total":52}} \ No newline at end of file +{"mappings":[{"id":"864d58e6-0c08-4f38-b7e1-2638f8d7fd6d","name":"getAndReturnListOfPrimitives - default","request":{"urlPathTemplate":"/container/list-of-primitives","method":"POST"},"response":{"status":200,"body":"[\n \"string\",\n \"string\"\n]","headers":{"Content-Type":"application/json"}},"uuid":"864d58e6-0c08-4f38-b7e1-2638f8d7fd6d","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"ac1d4c4f-a8a7-4c27-ae64-7fc977cfa122","name":"getAndReturnListOfObjects - default","request":{"urlPathTemplate":"/container/list-of-objects","method":"POST"},"response":{"status":200,"body":"[\n {\n \"string\": \"string\"\n },\n {\n \"string\": \"string\"\n }\n]","headers":{"Content-Type":"application/json"}},"uuid":"ac1d4c4f-a8a7-4c27-ae64-7fc977cfa122","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"591d5c48-a536-452b-8a2e-ad7c23c38298","name":"getAndReturnSetOfPrimitives - default","request":{"urlPathTemplate":"/container/set-of-primitives","method":"POST"},"response":{"status":200,"body":"[\n \"string\"\n]","headers":{"Content-Type":"application/json"}},"uuid":"591d5c48-a536-452b-8a2e-ad7c23c38298","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"e1d5f52b-7a51-464f-ac8f-83c0345a3a35","name":"getAndReturnSetOfObjects - default","request":{"urlPathTemplate":"/container/set-of-objects","method":"POST"},"response":{"status":200,"body":"[\n {\n \"string\": \"string\"\n }\n]","headers":{"Content-Type":"application/json"}},"uuid":"e1d5f52b-7a51-464f-ac8f-83c0345a3a35","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"4b1d33b3-ca7d-462a-a2e3-23d531ae2922","name":"getAndReturnMapPrimToPrim - default","request":{"urlPathTemplate":"/container/map-prim-to-prim","method":"POST"},"response":{"status":200,"body":"{\n \"string\": \"string\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"4b1d33b3-ca7d-462a-a2e3-23d531ae2922","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"b01ac2b9-3470-48aa-badc-57d331bb5a49","name":"getAndReturnMapOfPrimToObject - default","request":{"urlPathTemplate":"/container/map-prim-to-object","method":"POST"},"response":{"status":200,"body":"{\n \"string\": {\n \"string\": \"string\"\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"b01ac2b9-3470-48aa-badc-57d331bb5a49","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"eaf9315d-55c4-4434-8004-a70c25af5656","name":"getAndReturnMapOfPrimToUndiscriminatedUnion - default","request":{"urlPathTemplate":"/container/map-prim-to-union","method":"POST"},"response":{"status":200,"body":"{\n \"string\": 1.1\n}","headers":{"Content-Type":"application/json"}},"uuid":"eaf9315d-55c4-4434-8004-a70c25af5656","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"e5271904-de0a-425f-940d-d6f6bde34755","name":"getAndReturnOptional - default","request":{"urlPathTemplate":"/container/opt-objects","method":"POST"},"response":{"status":200,"body":"{\n \"string\": \"string\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"e5271904-de0a-425f-940d-d6f6bde34755","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"d19e1fbe-79cc-465c-962e-e1866ca2361b","name":"postJsonPatchContentType - default","request":{"urlPathTemplate":"/foo/bar","method":"POST"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"d19e1fbe-79cc-465c-962e-e1866ca2361b","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"4a107cf5-6284-48f8-9ddb-99d944ba989b","name":"postJsonPatchContentWithCharsetType - default","request":{"urlPathTemplate":"/foo/baz","method":"POST"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"4a107cf5-6284-48f8-9ddb-99d944ba989b","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"60fd3c8a-3983-41b9-8178-f42997388900","name":"getAndReturnEnum - default","request":{"urlPathTemplate":"/enum","method":"POST"},"response":{"status":200,"body":"\"SUNNY\"","headers":{"Content-Type":"application/json"}},"uuid":"60fd3c8a-3983-41b9-8178-f42997388900","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"3d95c052-db6e-4eff-95f2-895666a5af54","name":"testGet - default","request":{"urlPathTemplate":"/http-methods/{id}","method":"GET","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"\"string\"","headers":{"Content-Type":"application/json"}},"uuid":"3d95c052-db6e-4eff-95f2-895666a5af54","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"2552873f-9f1d-4557-a6c7-6c6b7a55b566","name":"testPost - default","request":{"urlPathTemplate":"/http-methods","method":"POST"},"response":{"status":200,"body":"{\n \"string\": \"string\",\n \"integer\": 1,\n \"long\": 1000000,\n \"double\": 1.1,\n \"bool\": true,\n \"datetime\": \"2024-01-15T09:30:00Z\",\n \"date\": \"2023-01-15\",\n \"uuid\": \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n \"base64\": \"SGVsbG8gd29ybGQh\",\n \"list\": [\n \"list\",\n \"list\"\n ],\n \"set\": [\n \"set\"\n ],\n \"map\": {\n \"1\": \"map\"\n },\n \"bigint\": \"1000000\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"2552873f-9f1d-4557-a6c7-6c6b7a55b566","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"db42fbdf-5426-41b7-b7ea-28ed39a38e82","name":"testPut - default","request":{"urlPathTemplate":"/http-methods/{id}","method":"PUT","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"{\n \"string\": \"string\",\n \"integer\": 1,\n \"long\": 1000000,\n \"double\": 1.1,\n \"bool\": true,\n \"datetime\": \"2024-01-15T09:30:00Z\",\n \"date\": \"2023-01-15\",\n \"uuid\": \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n \"base64\": \"SGVsbG8gd29ybGQh\",\n \"list\": [\n \"list\",\n \"list\"\n ],\n \"set\": [\n \"set\"\n ],\n \"map\": {\n \"1\": \"map\"\n },\n \"bigint\": \"1000000\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"db42fbdf-5426-41b7-b7ea-28ed39a38e82","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"c9def317-32a0-4bc0-b9b6-5efae8ca44a6","name":"testPatch - default","request":{"urlPathTemplate":"/http-methods/{id}","method":"PATCH","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"{\n \"string\": \"string\",\n \"integer\": 1,\n \"long\": 1000000,\n \"double\": 1.1,\n \"bool\": true,\n \"datetime\": \"2024-01-15T09:30:00Z\",\n \"date\": \"2023-01-15\",\n \"uuid\": \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n \"base64\": \"SGVsbG8gd29ybGQh\",\n \"list\": [\n \"list\",\n \"list\"\n ],\n \"set\": [\n \"set\"\n ],\n \"map\": {\n \"1\": \"map\"\n },\n \"bigint\": \"1000000\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"c9def317-32a0-4bc0-b9b6-5efae8ca44a6","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"05333635-c9ce-4c1a-bb6d-95e8a0fb80dc","name":"testDelete - default","request":{"urlPathTemplate":"/http-methods/{id}","method":"DELETE","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"true","headers":{"Content-Type":"application/json"}},"uuid":"05333635-c9ce-4c1a-bb6d-95e8a0fb80dc","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"41cdef0e-040f-4d08-8426-87b19e60f7d7","name":"getAndReturnWithOptionalField - default","request":{"urlPathTemplate":"/object/get-and-return-with-optional-field","method":"POST"},"response":{"status":200,"body":"{\n \"string\": \"string\",\n \"integer\": 1,\n \"long\": 1000000,\n \"double\": 1.1,\n \"bool\": true,\n \"datetime\": \"2024-01-15T09:30:00Z\",\n \"date\": \"2023-01-15\",\n \"uuid\": \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n \"base64\": \"SGVsbG8gd29ybGQh\",\n \"list\": [\n \"list\",\n \"list\"\n ],\n \"set\": [\n \"set\"\n ],\n \"map\": {\n \"1\": \"map\"\n },\n \"bigint\": \"1000000\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"41cdef0e-040f-4d08-8426-87b19e60f7d7","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"f74df550-df8c-4503-b202-0b9b3165c1a7","name":"getAndReturnWithRequiredField - default","request":{"urlPathTemplate":"/object/get-and-return-with-required-field","method":"POST"},"response":{"status":200,"body":"{\n \"string\": \"string\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"f74df550-df8c-4503-b202-0b9b3165c1a7","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"0c904dbb-ce54-48a2-8364-13a4989be7f2","name":"getAndReturnWithMapOfMap - default","request":{"urlPathTemplate":"/object/get-and-return-with-map-of-map","method":"POST"},"response":{"status":200,"body":"{\n \"map\": {\n \"map\": {\n \"map\": \"map\"\n }\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"0c904dbb-ce54-48a2-8364-13a4989be7f2","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"67e969fc-ff81-4a67-9858-66a29ffc9b72","name":"getAndReturnNestedWithOptionalField - default","request":{"urlPathTemplate":"/object/get-and-return-nested-with-optional-field","method":"POST"},"response":{"status":200,"body":"{\n \"string\": \"string\",\n \"NestedObject\": {\n \"string\": \"string\",\n \"integer\": 1,\n \"long\": 1000000,\n \"double\": 1.1,\n \"bool\": true,\n \"datetime\": \"2024-01-15T09:30:00Z\",\n \"date\": \"2023-01-15\",\n \"uuid\": \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n \"base64\": \"SGVsbG8gd29ybGQh\",\n \"list\": [\n \"list\",\n \"list\"\n ],\n \"set\": [\n \"set\"\n ],\n \"map\": {\n \"1\": \"map\"\n },\n \"bigint\": \"1000000\"\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"67e969fc-ff81-4a67-9858-66a29ffc9b72","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"169827d0-4247-4236-8cef-34b94d2659de","name":"getAndReturnNestedWithRequiredField - default","request":{"urlPathTemplate":"/object/get-and-return-nested-with-required-field/{string}","method":"POST","pathParameters":{"string":{"equalTo":"string"}}},"response":{"status":200,"body":"{\n \"string\": \"string\",\n \"NestedObject\": {\n \"string\": \"string\",\n \"integer\": 1,\n \"long\": 1000000,\n \"double\": 1.1,\n \"bool\": true,\n \"datetime\": \"2024-01-15T09:30:00Z\",\n \"date\": \"2023-01-15\",\n \"uuid\": \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n \"base64\": \"SGVsbG8gd29ybGQh\",\n \"list\": [\n \"list\",\n \"list\"\n ],\n \"set\": [\n \"set\"\n ],\n \"map\": {\n \"1\": \"map\"\n },\n \"bigint\": \"1000000\"\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"169827d0-4247-4236-8cef-34b94d2659de","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"6d9ed308-5724-4bbc-a4f7-28dc264d188f","name":"getAndReturnNestedWithRequiredFieldAsList - default","request":{"urlPathTemplate":"/object/get-and-return-nested-with-required-field-list","method":"POST"},"response":{"status":200,"body":"{\n \"string\": \"string\",\n \"NestedObject\": {\n \"string\": \"string\",\n \"integer\": 1,\n \"long\": 1000000,\n \"double\": 1.1,\n \"bool\": true,\n \"datetime\": \"2024-01-15T09:30:00Z\",\n \"date\": \"2023-01-15\",\n \"uuid\": \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n \"base64\": \"SGVsbG8gd29ybGQh\",\n \"list\": [\n \"list\",\n \"list\"\n ],\n \"set\": [\n \"set\"\n ],\n \"map\": {\n \"1\": \"map\"\n },\n \"bigint\": \"1000000\"\n }\n}","headers":{"Content-Type":"application/json"}},"uuid":"6d9ed308-5724-4bbc-a4f7-28dc264d188f","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"e2cc3e92-6e37-4a50-9081-23952fdd73fe","name":"getAndReturnWithDatetimeLikeString - default","request":{"urlPathTemplate":"/object/get-and-return-with-datetime-like-string","method":"POST"},"response":{"status":200,"body":"{\n \"datetimeLikeString\": \"2023-08-31T14:15:22Z\",\n \"actualDatetime\": \"2023-08-31T14:15:22Z\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"e2cc3e92-6e37-4a50-9081-23952fdd73fe","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"f15b2079-2482-4ed2-951d-d2b5c4de9afd","name":"listItems - default","request":{"urlPathTemplate":"/pagination","method":"GET"},"response":{"status":200,"body":"{\n \"items\": [\n {\n \"string\": \"string\"\n },\n {\n \"string\": \"string\"\n }\n ],\n \"next\": \"next\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"f15b2079-2482-4ed2-951d-d2b5c4de9afd","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"97806fdb-f31f-4f90-84b8-f9cc1713d53d","name":"getWithPath - default","request":{"urlPathTemplate":"/params/path/{param}","method":"GET","pathParameters":{"param":{"equalTo":"param"}}},"response":{"status":200,"body":"\"string\"","headers":{"Content-Type":"application/json"}},"uuid":"97806fdb-f31f-4f90-84b8-f9cc1713d53d","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"711fc64f-4af9-4084-8c29-1e7a9e58be70","name":"getWithInlinePath - default","request":{"urlPathTemplate":"/params/path/{param}","method":"GET","pathParameters":{"param":{"equalTo":"param"}}},"response":{"status":200,"body":"\"string\"","headers":{"Content-Type":"application/json"}},"uuid":"711fc64f-4af9-4084-8c29-1e7a9e58be70","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"8e5739b3-d75f-47d7-b6b8-a663d91a66b5","name":"getWithQuery - default","request":{"urlPathTemplate":"/params","method":"GET"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"8e5739b3-d75f-47d7-b6b8-a663d91a66b5","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"4125d349-732b-4ff7-948d-1eeb977ed13b","name":"getWithAllowMultipleQuery - default","request":{"urlPathTemplate":"/params","method":"GET"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"4125d349-732b-4ff7-948d-1eeb977ed13b","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"1933d96a-a1b9-4cf1-85ba-c1e8eff5bd56","name":"getWithPathAndQuery - default","request":{"urlPathTemplate":"/params/path-query/{param}","method":"GET","pathParameters":{"param":{"equalTo":"param"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"1933d96a-a1b9-4cf1-85ba-c1e8eff5bd56","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"c4f5012a-fb3f-45ac-b695-beedc3353ad8","name":"getWithInlinePathAndQuery - default","request":{"urlPathTemplate":"/params/path-query/{param}","method":"GET","pathParameters":{"param":{"equalTo":"param"}}},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"c4f5012a-fb3f-45ac-b695-beedc3353ad8","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"046bf7d6-751b-48e9-bfc6-ff74a17e88e1","name":"modifyWithPath - default","request":{"urlPathTemplate":"/params/path/{param}","method":"PUT","pathParameters":{"param":{"equalTo":"param"}}},"response":{"status":200,"body":"\"string\"","headers":{"Content-Type":"application/json"}},"uuid":"046bf7d6-751b-48e9-bfc6-ff74a17e88e1","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"6bfc7195-b99c-4449-bf47-7c4f74f6f33b","name":"modifyWithInlinePath - default","request":{"urlPathTemplate":"/params/path/{param}","method":"PUT","pathParameters":{"param":{"equalTo":"param"}}},"response":{"status":200,"body":"\"string\"","headers":{"Content-Type":"application/json"}},"uuid":"6bfc7195-b99c-4449-bf47-7c4f74f6f33b","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"658d6145-14f6-48d3-9c66-c63e01eb6fd2","name":"uploadWithPath - default","request":{"urlPathTemplate":"/params/path/{param}","method":"POST","pathParameters":{"param":{"equalTo":"upload-path"}}},"response":{"status":200,"body":"{\n \"string\": \"uploaded\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"658d6145-14f6-48d3-9c66-c63e01eb6fd2","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"0506ae7c-87b7-4cd2-9e50-31d60f81893f","name":"getAndReturnString - default","request":{"urlPathTemplate":"/primitive/string","method":"POST"},"response":{"status":200,"body":"\"string\"","headers":{"Content-Type":"application/json"}},"uuid":"0506ae7c-87b7-4cd2-9e50-31d60f81893f","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"67f875d1-e19e-440d-8f0c-7e1d24ef2619","name":"getAndReturnInt - default","request":{"urlPathTemplate":"/primitive/integer","method":"POST"},"response":{"status":200,"body":"1","headers":{"Content-Type":"application/json"}},"uuid":"67f875d1-e19e-440d-8f0c-7e1d24ef2619","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"5fadbebd-86c0-41f9-8be5-864e39eb5924","name":"getAndReturnLong - default","request":{"urlPathTemplate":"/primitive/long","method":"POST"},"response":{"status":200,"body":"1000000","headers":{"Content-Type":"application/json"}},"uuid":"5fadbebd-86c0-41f9-8be5-864e39eb5924","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"e03872b6-86b1-490b-9195-86e5d3a014f2","name":"getAndReturnDouble - default","request":{"urlPathTemplate":"/primitive/double","method":"POST"},"response":{"status":200,"body":"1.1","headers":{"Content-Type":"application/json"}},"uuid":"e03872b6-86b1-490b-9195-86e5d3a014f2","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"442e632f-890a-4105-9448-f7015127e3b4","name":"getAndReturnBool - default","request":{"urlPathTemplate":"/primitive/boolean","method":"POST"},"response":{"status":200,"body":"true","headers":{"Content-Type":"application/json"}},"uuid":"442e632f-890a-4105-9448-f7015127e3b4","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"ad76fa81-1e63-43fd-9a99-1d5e4339d98c","name":"getAndReturnDatetime - default","request":{"urlPathTemplate":"/primitive/datetime","method":"POST"},"response":{"status":200,"body":"\"2024-01-15T09:30:00Z\"","headers":{"Content-Type":"application/json"}},"uuid":"ad76fa81-1e63-43fd-9a99-1d5e4339d98c","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"afb524b1-54ab-4674-8446-fdd574c368cc","name":"getAndReturnDate - default","request":{"urlPathTemplate":"/primitive/date","method":"POST"},"response":{"status":200,"body":"\"2023-01-15\"","headers":{"Content-Type":"application/json"}},"uuid":"afb524b1-54ab-4674-8446-fdd574c368cc","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"969c0f3a-218a-45b7-b17f-64b1a9307d43","name":"getAndReturnUUID - default","request":{"urlPathTemplate":"/primitive/uuid","method":"POST"},"response":{"status":200,"body":"\"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\"","headers":{"Content-Type":"application/json"}},"uuid":"969c0f3a-218a-45b7-b17f-64b1a9307d43","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"04baa20d-d318-40e6-9784-c40158c16acd","name":"getAndReturnBase64 - default","request":{"urlPathTemplate":"/primitive/base64","method":"POST"},"response":{"status":200,"body":"\"SGVsbG8gd29ybGQh\"","headers":{"Content-Type":"application/json"}},"uuid":"04baa20d-d318-40e6-9784-c40158c16acd","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"fddd5aaf-ab0d-4ef6-949c-5d329f6d7eb2","name":"Put - default","request":{"urlPathTemplate":"/{id}","method":"PUT","pathParameters":{"id":{"equalTo":"id"}}},"response":{"status":200,"body":"{\n \"errors\": [\n {\n \"category\": \"API_ERROR\",\n \"code\": \"INTERNAL_SERVER_ERROR\",\n \"detail\": \"detail\",\n \"field\": \"field\"\n },\n {\n \"category\": \"API_ERROR\",\n \"code\": \"INTERNAL_SERVER_ERROR\",\n \"detail\": \"detail\",\n \"field\": \"field\"\n }\n ]\n}","headers":{"Content-Type":"application/json"}},"uuid":"fddd5aaf-ab0d-4ef6-949c-5d329f6d7eb2","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"d29330f9-49ff-49c4-9081-7c83dbad315b","name":"getAndReturnUnion - default","request":{"urlPathTemplate":"/union","method":"POST"},"response":{"status":200,"body":"{\n \"animal\": \"dog\",\n \"name\": \"name\",\n \"likesToWoof\": true\n}","headers":{"Content-Type":"application/json"}},"uuid":"d29330f9-49ff-49c4-9081-7c83dbad315b","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"343f71f3-36ce-4684-b762-d60a086b43a4","name":"withMixedCase - default","request":{"urlPathTemplate":"/urls/MixedCase","method":"GET"},"response":{"status":200,"body":"\"string\"","headers":{"Content-Type":"application/json"}},"uuid":"343f71f3-36ce-4684-b762-d60a086b43a4","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"48f36314-b2b7-4910-9e1d-5b05f3346a60","name":"noEndingSlash - default","request":{"urlPathTemplate":"/urls/no-ending-slash","method":"GET"},"response":{"status":200,"body":"\"string\"","headers":{"Content-Type":"application/json"}},"uuid":"48f36314-b2b7-4910-9e1d-5b05f3346a60","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"f7b95029-2f25-4f70-8b4c-0855712747d8","name":"withEndingSlash - default","request":{"urlPathTemplate":"/urls/with-ending-slash/","method":"GET"},"response":{"status":200,"body":"\"string\"","headers":{"Content-Type":"application/json"}},"uuid":"f7b95029-2f25-4f70-8b4c-0855712747d8","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"2f9671a5-e6da-43a8-be27-d0be0191dcbf","name":"withUnderscores - default","request":{"urlPathTemplate":"/urls/with_underscores","method":"GET"},"response":{"status":200,"body":"\"string\"","headers":{"Content-Type":"application/json"}},"uuid":"2f9671a5-e6da-43a8-be27-d0be0191dcbf","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"4a6d0aaa-05f2-47bb-9f40-6e3743b9d2bf","name":"postWithObjectBodyandResponse - default","request":{"urlPathTemplate":"/req-bodies/object","method":"POST"},"response":{"status":200,"body":"{\n \"string\": \"string\",\n \"integer\": 1,\n \"long\": 1000000,\n \"double\": 1.1,\n \"bool\": true,\n \"datetime\": \"2024-01-15T09:30:00Z\",\n \"date\": \"2023-01-15\",\n \"uuid\": \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n \"base64\": \"SGVsbG8gd29ybGQh\",\n \"list\": [\n \"list\",\n \"list\"\n ],\n \"set\": [\n \"set\"\n ],\n \"map\": {\n \"1\": \"map\"\n },\n \"bigint\": \"1000000\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"4a6d0aaa-05f2-47bb-9f40-6e3743b9d2bf","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"c6e7cc6c-b76f-4860-a9ad-52dc8f55b6e6","name":"postWithNoAuth - default","request":{"urlPathTemplate":"/no-auth","method":"POST"},"response":{"status":200,"body":"true","headers":{"Content-Type":"application/json"}},"uuid":"c6e7cc6c-b76f-4860-a9ad-52dc8f55b6e6","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"8098eeea-bc6b-4068-9601-566c2092f83f","name":"getWithNoRequestBody - default","request":{"urlPathTemplate":"/no-req-body","method":"GET"},"response":{"status":200,"body":"{\n \"string\": \"string\",\n \"integer\": 1,\n \"long\": 1000000,\n \"double\": 1.1,\n \"bool\": true,\n \"datetime\": \"2024-01-15T09:30:00Z\",\n \"date\": \"2023-01-15\",\n \"uuid\": \"d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32\",\n \"base64\": \"SGVsbG8gd29ybGQh\",\n \"list\": [\n \"list\",\n \"list\"\n ],\n \"set\": [\n \"set\"\n ],\n \"map\": {\n \"1\": \"map\"\n },\n \"bigint\": \"1000000\"\n}","headers":{"Content-Type":"application/json"}},"uuid":"8098eeea-bc6b-4068-9601-566c2092f83f","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}},"postServeActions":[]},{"id":"7dd9f944-1b35-42e9-a5ed-e48214ac8e91","name":"postWithNoRequestBody - default","request":{"urlPathTemplate":"/no-req-body","method":"POST"},"response":{"status":200,"body":"\"string\"","headers":{"Content-Type":"application/json"}},"uuid":"7dd9f944-1b35-42e9-a5ed-e48214ac8e91","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}},{"id":"d7b54168-aef4-4d68-a9c5-446e97dee2fc","name":"getWithCustomHeader - default","request":{"urlPathTemplate":"/test-headers/custom-header","method":"POST"},"response":{"status":200,"body":"\"\"","headers":{"Content-Type":"application/json"}},"uuid":"d7b54168-aef4-4d68-a9c5-446e97dee2fc","persistent":true,"priority":3,"metadata":{"mocklab":{"created":{"at":"2020-01-01T00:00:00.000Z","via":"SYSTEM"}}}}],"meta":{"total":53}} \ No newline at end of file diff --git a/seed/java-spring/seed.yml b/seed/java-spring/seed.yml index 62972fb6fba7..491dfa597777 100644 --- a/seed/java-spring/seed.yml +++ b/seed/java-spring/seed.yml @@ -50,6 +50,7 @@ language: java generatorType: Server defaultOutputMode: local_files allowedFailures: + - exhaustive - file-download - file-upload - file-upload-openapi @@ -70,4 +71,4 @@ allowedFailures: - multiple-request-bodies - undiscriminated-union-with-response-property - enum - - java-streaming-accept-header \ No newline at end of file + - java-streaming-accept-header diff --git a/seed/php-sdk/seed.yml b/seed/php-sdk/seed.yml index 958071a5c7b5..08833aad7793 100644 --- a/seed/php-sdk/seed.yml +++ b/seed/php-sdk/seed.yml @@ -162,6 +162,8 @@ scripts: test: - composer test allowedFailures: + - exhaustive:no-custom-config + - exhaustive:wire-tests - pagination-custom - inferred-auth-implicit-reference # Dynamic snippets need to add support for global headers included in the client constructor. diff --git a/seed/python-sdk/exhaustive/deps_with_min_python_version/poetry.lock b/seed/python-sdk/exhaustive/deps_with_min_python_version/poetry.lock index ce23b7045567..3a3d05b4bb8b 100644 --- a/seed/python-sdk/exhaustive/deps_with_min_python_version/poetry.lock +++ b/seed/python-sdk/exhaustive/deps_with_min_python_version/poetry.lock @@ -1963,70 +1963,74 @@ files = [ [[package]] name = "sqlalchemy" -version = "2.0.46" +version = "2.0.47" description = "Database Abstraction Library" optional = false python-versions = ">=3.7" files = [ - {file = "sqlalchemy-2.0.46-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:895296687ad06dc9b11a024cf68e8d9d3943aa0b4964278d2553b86f1b267735"}, - {file = "sqlalchemy-2.0.46-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ab65cb2885a9f80f979b85aa4e9c9165a31381ca322cbde7c638fe6eefd1ec39"}, - {file = "sqlalchemy-2.0.46-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:52fe29b3817bd191cc20bad564237c808967972c97fa683c04b28ec8979ae36f"}, - {file = "sqlalchemy-2.0.46-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:09168817d6c19954d3b7655da6ba87fcb3a62bb575fb396a81a8b6a9fadfe8b5"}, - {file = "sqlalchemy-2.0.46-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:be6c0466b4c25b44c5d82b0426b5501de3c424d7a3220e86cd32f319ba56798e"}, - {file = "sqlalchemy-2.0.46-cp310-cp310-win32.whl", hash = "sha256:1bc3f601f0a818d27bfe139f6766487d9c88502062a2cd3a7ee6c342e81d5047"}, - {file = "sqlalchemy-2.0.46-cp310-cp310-win_amd64.whl", hash = "sha256:e0c05aff5c6b1bb5fb46a87e0f9d2f733f83ef6cbbbcd5c642b6c01678268061"}, - {file = "sqlalchemy-2.0.46-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:261c4b1f101b4a411154f1da2b76497d73abbfc42740029205d4d01fa1052684"}, - {file = "sqlalchemy-2.0.46-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:181903fe8c1b9082995325f1b2e84ac078b1189e2819380c2303a5f90e114a62"}, - {file = "sqlalchemy-2.0.46-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:590be24e20e2424a4c3c1b0835e9405fa3d0af5823a1a9fc02e5dff56471515f"}, - {file = "sqlalchemy-2.0.46-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:7568fe771f974abadce52669ef3a03150ff03186d8eb82613bc8adc435a03f01"}, - {file = "sqlalchemy-2.0.46-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ebf7e1e78af38047e08836d33502c7a278915698b7c2145d045f780201679999"}, - {file = "sqlalchemy-2.0.46-cp311-cp311-win32.whl", hash = "sha256:9d80ea2ac519c364a7286e8d765d6cd08648f5b21ca855a8017d9871f075542d"}, - {file = "sqlalchemy-2.0.46-cp311-cp311-win_amd64.whl", hash = "sha256:585af6afe518732d9ccd3aea33af2edaae4a7aa881af5d8f6f4fe3a368699597"}, - {file = "sqlalchemy-2.0.46-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3a9a72b0da8387f15d5810f1facca8f879de9b85af8c645138cba61ea147968c"}, - {file = "sqlalchemy-2.0.46-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2347c3f0efc4de367ba00218e0ae5c4ba2306e47216ef80d6e31761ac97cb0b9"}, - {file = "sqlalchemy-2.0.46-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9094c8b3197db12aa6f05c51c05daaad0a92b8c9af5388569847b03b1007fb1b"}, - {file = "sqlalchemy-2.0.46-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:37fee2164cf21417478b6a906adc1a91d69ae9aba8f9533e67ce882f4bb1de53"}, - {file = "sqlalchemy-2.0.46-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b1e14b2f6965a685c7128bd315e27387205429c2e339eeec55cb75ca4ab0ea2e"}, - {file = "sqlalchemy-2.0.46-cp312-cp312-win32.whl", hash = "sha256:412f26bb4ba942d52016edc8d12fb15d91d3cd46b0047ba46e424213ad407bcb"}, - {file = "sqlalchemy-2.0.46-cp312-cp312-win_amd64.whl", hash = "sha256:ea3cd46b6713a10216323cda3333514944e510aa691c945334713fca6b5279ff"}, - {file = "sqlalchemy-2.0.46-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:93a12da97cca70cea10d4b4fc602589c4511f96c1f8f6c11817620c021d21d00"}, - {file = "sqlalchemy-2.0.46-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:af865c18752d416798dae13f83f38927c52f085c52e2f32b8ab0fef46fdd02c2"}, - {file = "sqlalchemy-2.0.46-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8d679b5f318423eacb61f933a9a0f75535bfca7056daeadbf6bd5bcee6183aee"}, - {file = "sqlalchemy-2.0.46-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:64901e08c33462acc9ec3bad27fc7a5c2b6491665f2aa57564e57a4f5d7c52ad"}, - {file = "sqlalchemy-2.0.46-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e8ac45e8f4eaac0f9f8043ea0e224158855c6a4329fd4ee37c45c61e3beb518e"}, - {file = "sqlalchemy-2.0.46-cp313-cp313-win32.whl", hash = "sha256:8d3b44b3d0ab2f1319d71d9863d76eeb46766f8cf9e921ac293511804d39813f"}, - {file = "sqlalchemy-2.0.46-cp313-cp313-win_amd64.whl", hash = "sha256:77f8071d8fbcbb2dd11b7fd40dedd04e8ebe2eb80497916efedba844298065ef"}, - {file = "sqlalchemy-2.0.46-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a1e8cc6cc01da346dc92d9509a63033b9b1bda4fed7a7a7807ed385c7dccdc10"}, - {file = "sqlalchemy-2.0.46-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:96c7cca1a4babaaf3bfff3e4e606e38578856917e52f0384635a95b226c87764"}, - {file = "sqlalchemy-2.0.46-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:b2a9f9aee38039cf4755891a1e50e1effcc42ea6ba053743f452c372c3152b1b"}, - {file = "sqlalchemy-2.0.46-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:db23b1bf8cfe1f7fda19018e7207b20cdb5168f83c437ff7e95d19e39289c447"}, - {file = "sqlalchemy-2.0.46-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:56bdd261bfd0895452006d5316cbf35739c53b9bb71a170a331fa0ea560b2ada"}, - {file = "sqlalchemy-2.0.46-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:33e462154edb9493f6c3ad2125931e273bbd0be8ae53f3ecd1c161ea9a1dd366"}, - {file = "sqlalchemy-2.0.46-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9bcdce05f056622a632f1d44bb47dbdb677f58cad393612280406ce37530eb6d"}, - {file = "sqlalchemy-2.0.46-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:8e84b09a9b0f19accedcbeff5c2caf36e0dd537341a33aad8d680336152dc34e"}, - {file = "sqlalchemy-2.0.46-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:4f52f7291a92381e9b4de9050b0a65ce5d6a763333406861e33906b8aa4906bf"}, - {file = "sqlalchemy-2.0.46-cp314-cp314-win32.whl", hash = "sha256:70ed2830b169a9960193f4d4322d22be5c0925357d82cbf485b3369893350908"}, - {file = "sqlalchemy-2.0.46-cp314-cp314-win_amd64.whl", hash = "sha256:3c32e993bc57be6d177f7d5d31edb93f30726d798ad86ff9066d75d9bf2e0b6b"}, - {file = "sqlalchemy-2.0.46-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4dafb537740eef640c4d6a7c254611dca2df87eaf6d14d6a5fca9d1f4c3fc0fa"}, - {file = "sqlalchemy-2.0.46-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:42a1643dc5427b69aca967dae540a90b0fbf57eaf248f13a90ea5930e0966863"}, - {file = "sqlalchemy-2.0.46-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:ff33c6e6ad006bbc0f34f5faf941cfc62c45841c64c0a058ac38c799f15b5ede"}, - {file = "sqlalchemy-2.0.46-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:82ec52100ec1e6ec671563bbd02d7c7c8d0b9e71a0723c72f22ecf52d1755330"}, - {file = "sqlalchemy-2.0.46-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:6ac245604295b521de49b465bab845e3afe6916bcb2147e5929c8041b4ec0545"}, - {file = "sqlalchemy-2.0.46-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1e6199143d51e3e1168bedd98cc698397404a8f7508831b81b6a29b18b051069"}, - {file = "sqlalchemy-2.0.46-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:716be5bcabf327b6d5d265dbdc6213a01199be587224eb991ad0d37e83d728fd"}, - {file = "sqlalchemy-2.0.46-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:6f827fd687fa1ba7f51699e1132129eac8db8003695513fcf13fc587e1bd47a5"}, - {file = "sqlalchemy-2.0.46-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:c805fa6e5d461329fa02f53f88c914d189ea771b6821083937e79550bf31fc19"}, - {file = "sqlalchemy-2.0.46-cp38-cp38-win32.whl", hash = "sha256:3aac08f7546179889c62b53b18ebf1148b10244b3405569c93984b0388d016a7"}, - {file = "sqlalchemy-2.0.46-cp38-cp38-win_amd64.whl", hash = "sha256:0cc3117db526cad3e61074100bd2867b533e2c7dc1569e95c14089735d6fb4fe"}, - {file = "sqlalchemy-2.0.46-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:90bde6c6b1827565a95fde597da001212ab436f1b2e0c2dcc7246e14db26e2a3"}, - {file = "sqlalchemy-2.0.46-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:94b1e5f3a5f1ff4f42d5daab047428cd45a3380e51e191360a35cef71c9a7a2a"}, - {file = "sqlalchemy-2.0.46-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:93bb0aae40b52c57fd74ef9c6933c08c040ba98daf23ad33c3f9893494b8d3ce"}, - {file = "sqlalchemy-2.0.46-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:c4e2cc868b7b5208aec6c960950b7bb821f82c2fe66446c92ee0a571765e91a5"}, - {file = "sqlalchemy-2.0.46-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:965c62be8256d10c11f8907e7a8d3e18127a4c527a5919d85fa87fd9ecc2cfdc"}, - {file = "sqlalchemy-2.0.46-cp39-cp39-win32.whl", hash = "sha256:9397b381dcee8a2d6b99447ae85ea2530dcac82ca494d1db877087a13e38926d"}, - {file = "sqlalchemy-2.0.46-cp39-cp39-win_amd64.whl", hash = "sha256:4396c948d8217e83e2c202fbdcc0389cf8c93d2c1c5e60fa5c5a955eae0e64be"}, - {file = "sqlalchemy-2.0.46-py3-none-any.whl", hash = "sha256:f9c11766e7e7c0a2767dda5acb006a118640c9fc0a4104214b96269bfb78399e"}, - {file = "sqlalchemy-2.0.46.tar.gz", hash = "sha256:cf36851ee7219c170bb0793dbc3da3e80c582e04a5437bc601bfe8c85c9216d7"}, + {file = "sqlalchemy-2.0.47-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:33a917ede39406ddb93c3e642b5bc480be7c5fd0f3d0d6ae1036d466fb963f1a"}, + {file = "sqlalchemy-2.0.47-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:561d027c829b01e040bdade6b6f5b429249d056ef95d7bdcb9211539ecc82803"}, + {file = "sqlalchemy-2.0.47-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fa5072a37e68c565363c009b7afa5b199b488c87940ec02719860093a08f34ca"}, + {file = "sqlalchemy-2.0.47-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:1e7ed17dd4312a298b6024bfd1baf51654bc49e3f03c798005babf0c7922d6a7"}, + {file = "sqlalchemy-2.0.47-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:6992e353fcb0593eb42d95ad84b3e58fe40b5e37fd332b9ccba28f4b2f36d1fc"}, + {file = "sqlalchemy-2.0.47-cp310-cp310-win32.whl", hash = "sha256:05a6d58ed99ebd01303c92d29a0c9cbf70f637b3ddd155f5172c5a7239940998"}, + {file = "sqlalchemy-2.0.47-cp310-cp310-win_amd64.whl", hash = "sha256:4a7aa4a584cc97e268c11e700dea0b763874eaebb435e75e7d0ffee5d90f5030"}, + {file = "sqlalchemy-2.0.47-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3a1dbf0913879c443617d6b64403cf2801c941651db8c60e96d204ed9388d6b0"}, + {file = "sqlalchemy-2.0.47-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:775effbb97ea3b00c4dd3aeaf3ba8acba6e3e2b4b41d17d67a27e696843dbc95"}, + {file = "sqlalchemy-2.0.47-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:56cc834a3ffac34270cc2a41875e0f40e97aa651f4f3ca1cfbbf421c044cb62b"}, + {file = "sqlalchemy-2.0.47-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:49b5e0c7244262f39e767c018e4fdb5e5dbc23cd54c5ddac8eea8f0ba32ef890"}, + {file = "sqlalchemy-2.0.47-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:15cd822a3f1f6f77b5b841a30c1a07a07f7dee3385f17e638e1722de9ab683be"}, + {file = "sqlalchemy-2.0.47-cp311-cp311-win32.whl", hash = "sha256:9847a19548cd283a65e1ce0afd54016598d55ff72682d6fd3e493af6fc044064"}, + {file = "sqlalchemy-2.0.47-cp311-cp311-win_amd64.whl", hash = "sha256:722abf1c82aeca46a1a0803711244a48a298279eeaec9e02f7bfee9e064182e5"}, + {file = "sqlalchemy-2.0.47-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4fa91b19d6b9821c04cc8f7aa2476429cc8887b9687c762815aa629f5c0edec1"}, + {file = "sqlalchemy-2.0.47-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7c5bbbd14eff577c8c79cbfe39a0771eecd20f430f3678533476f0087138f356"}, + {file = "sqlalchemy-2.0.47-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a5a6c555da8d4280a3c4c78c5b7a3f990cee2b2884e5f934f87a226191682ff7"}, + {file = "sqlalchemy-2.0.47-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ed48a1701d24dff3bb49a5bce94d6bc84cbe33d98af2aa2d3cdcce3dea1709ec"}, + {file = "sqlalchemy-2.0.47-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:4f3178c920ad98158f0b6309382194df04b14808fa6052ae07099fdde29d5602"}, + {file = "sqlalchemy-2.0.47-cp312-cp312-win32.whl", hash = "sha256:b9c11ac9934dd59ece9619fe42780a08abe2faab7b0543bb00d5eabea4f421b9"}, + {file = "sqlalchemy-2.0.47-cp312-cp312-win_amd64.whl", hash = "sha256:db43b72cf8274a99e089755c9c1e0b947159b71adbc2c83c3de2e38d5d607acb"}, + {file = "sqlalchemy-2.0.47-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:456a135b790da5d3c6b53d0ef71ac7b7d280b7f41eb0c438986352bf03ca7143"}, + {file = "sqlalchemy-2.0.47-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:09a2f7698e44b3135433387da5d8846cf7cc7c10e5425af7c05fee609df978b6"}, + {file = "sqlalchemy-2.0.47-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a0bbc72e6a177c78d724f9106aaddc0d26a2ada89c6332b5935414eccf04cbd5"}, + {file = "sqlalchemy-2.0.47-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:75460456b043b78b6006e41bdf5b86747ee42eafaf7fffa3b24a6e9a456a2092"}, + {file = "sqlalchemy-2.0.47-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5d9adaa616c3bc7d80f9ded57cd84b51d6617cad6a5456621d858c9f23aaee01"}, + {file = "sqlalchemy-2.0.47-cp313-cp313-win32.whl", hash = "sha256:76e09f974382a496a5ed985db9343628b1cb1ac911f27342e4cc46a8bac10476"}, + {file = "sqlalchemy-2.0.47-cp313-cp313-win_amd64.whl", hash = "sha256:0664089b0bf6724a0bfb49a0cf4d4da24868a0a5c8e937cd7db356d5dcdf2c66"}, + {file = "sqlalchemy-2.0.47-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ed0c967c701ae13da98eb220f9ddab3044ab63504c1ba24ad6a59b26826ad003"}, + {file = "sqlalchemy-2.0.47-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d3537943a61fd25b241e976426a0c6814434b93cf9b09d39e8e78f3c9eb9a487"}, + {file = "sqlalchemy-2.0.47-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:57f7e336a64a0dba686c66392d46b9bc7af2c57d55ce6dc1697b4ef32b043ceb"}, + {file = "sqlalchemy-2.0.47-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:dff735a621858680217cb5142b779bad40ef7322ddbb7c12062190db6879772e"}, + {file = "sqlalchemy-2.0.47-cp313-cp313t-win32.whl", hash = "sha256:3893dc096bb3cca9608ea3487372ffcea3ae9b162f40e4d3c51dd49db1d1b2dc"}, + {file = "sqlalchemy-2.0.47-cp313-cp313t-win_amd64.whl", hash = "sha256:b5103427466f4b3e61f04833ae01f9a914b1280a2a8bcde3a9d7ab11f3755b42"}, + {file = "sqlalchemy-2.0.47-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:b03010a5a5dfe71676bc83f2473ebe082478e32d77e6f082c8fe15a31c3b42a6"}, + {file = "sqlalchemy-2.0.47-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f8e3371aa9024520883a415a09cc20c33cfd3eeccf9e0f4f4c367f940b9cbd44"}, + {file = "sqlalchemy-2.0.47-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c9449f747e50d518c6e1b40cc379e48bfc796453c47b15e627ea901c201e48a6"}, + {file = "sqlalchemy-2.0.47-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:21410f60d5cac1d6bfe360e05bd91b179be4fa0aa6eea6be46054971d277608f"}, + {file = "sqlalchemy-2.0.47-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:819841dd5bb4324c284c09e2874cf96fe6338bfb57a64548d9b81a4e39c9871f"}, + {file = "sqlalchemy-2.0.47-cp314-cp314-win32.whl", hash = "sha256:e255ee44821a7ef45649c43064cf94e74f81f61b4df70547304b97a351e9b7db"}, + {file = "sqlalchemy-2.0.47-cp314-cp314-win_amd64.whl", hash = "sha256:209467ff73ea1518fe1a5aaed9ba75bb9e33b2666e2553af9ccd13387bf192cb"}, + {file = "sqlalchemy-2.0.47-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e78fd9186946afaa287f8a1fe147ead06e5d566b08c0afcb601226e9c7322a64"}, + {file = "sqlalchemy-2.0.47-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5740e2f31b5987ed9619d6912ae5b750c03637f2078850da3002934c9532f172"}, + {file = "sqlalchemy-2.0.47-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:fb9ac00d03de93acb210e8ec7243fefe3e012515bf5fd2f0898c8dff38bc77a4"}, + {file = "sqlalchemy-2.0.47-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:c72a0b9eb2672d70d112cb149fbaf172d466bc691014c496aaac594f1988e706"}, + {file = "sqlalchemy-2.0.47-cp314-cp314t-win32.whl", hash = "sha256:c200db1128d72a71dc3c31c24b42eb9fd85b2b3e5a3c9ba1e751c11ac31250ff"}, + {file = "sqlalchemy-2.0.47-cp314-cp314t-win_amd64.whl", hash = "sha256:669837759b84e575407355dcff912835892058aea9b80bd1cb76d6a151cf37f7"}, + {file = "sqlalchemy-2.0.47-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:fe3f8519a52ca5032015780de3fc4e6ab42c6e0bcf9d807143a3d17b3350d546"}, + {file = "sqlalchemy-2.0.47-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d6acfc1f95ed0369e0c4100d98870c9c4bfd56818ddc825357a0a979d5973195"}, + {file = "sqlalchemy-2.0.47-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f530b939eca775f6f77fa359a3e7039209a96958c1aa28c1b796f600e0fee7cd"}, + {file = "sqlalchemy-2.0.47-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:0a6fdf665268dfe0ba52fb2d8d62deee96b297d460e2797bdd52d2d1941dd8cd"}, + {file = "sqlalchemy-2.0.47-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:25b3c189dab94dedb6db9d4e06476ce955182e7f45412b096ae9033519e33ce8"}, + {file = "sqlalchemy-2.0.47-cp38-cp38-win32.whl", hash = "sha256:a8f991cac31b673aff1648cafb8b10022719e5a632bbadaa9c5d41511bd507a5"}, + {file = "sqlalchemy-2.0.47-cp38-cp38-win_amd64.whl", hash = "sha256:52be08b31f70bed2ed05c5c4b8237cf361a8581f32a5e89f9dfc295f795db10f"}, + {file = "sqlalchemy-2.0.47-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d7477190e90852c00bf654b70ae21e5b85b5ac4d09094cf82e84eb3abdb6c5a7"}, + {file = "sqlalchemy-2.0.47-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cb0b3e4946bf05d68673a1857db1a16bd58207c83ebc4ed5732a6e60029bac2d"}, + {file = "sqlalchemy-2.0.47-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9bc111a5b98881b7e1ab108921f2fcc09fa06abbd98f4f0ed6cb2c23e70cdd23"}, + {file = "sqlalchemy-2.0.47-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:97bf49caf4e405c18f3b9f695751c5bf14a9d8899c6e54eaeb49dda0d4fa009d"}, + {file = "sqlalchemy-2.0.47-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:d2fa029051d3db77ad79a55c3ddf005bd7c038a111af0db9b56158857702aef6"}, + {file = "sqlalchemy-2.0.47-cp39-cp39-win32.whl", hash = "sha256:6e547682d508d141de942484b9976cbee91b7a50739d4ee25b3d0a62dd71a954"}, + {file = "sqlalchemy-2.0.47-cp39-cp39-win_amd64.whl", hash = "sha256:bb833131169444c87160aa95fcdd22ae86d0fa4ef174d36b3dfb9be363b4e574"}, + {file = "sqlalchemy-2.0.47-py3-none-any.whl", hash = "sha256:e2647043599297a1ef10e720cf310846b7f31b6c841fee093d2b09d81215eb93"}, + {file = "sqlalchemy-2.0.47.tar.gz", hash = "sha256:e3e7feb57b267fe897e492b9721ae46d5c7de6f9e8dee58aacf105dc4e154f3d"}, ] [package.dependencies] diff --git a/seed/python-sdk/exhaustive/extra_dependencies/poetry.lock b/seed/python-sdk/exhaustive/extra_dependencies/poetry.lock index 9784eea003f1..65220e04f898 100644 --- a/seed/python-sdk/exhaustive/extra_dependencies/poetry.lock +++ b/seed/python-sdk/exhaustive/extra_dependencies/poetry.lock @@ -1703,70 +1703,74 @@ files = [ [[package]] name = "sqlalchemy" -version = "2.0.46" +version = "2.0.47" description = "Database Abstraction Library" optional = true python-versions = ">=3.7" files = [ - {file = "sqlalchemy-2.0.46-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:895296687ad06dc9b11a024cf68e8d9d3943aa0b4964278d2553b86f1b267735"}, - {file = "sqlalchemy-2.0.46-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ab65cb2885a9f80f979b85aa4e9c9165a31381ca322cbde7c638fe6eefd1ec39"}, - {file = "sqlalchemy-2.0.46-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:52fe29b3817bd191cc20bad564237c808967972c97fa683c04b28ec8979ae36f"}, - {file = "sqlalchemy-2.0.46-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:09168817d6c19954d3b7655da6ba87fcb3a62bb575fb396a81a8b6a9fadfe8b5"}, - {file = "sqlalchemy-2.0.46-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:be6c0466b4c25b44c5d82b0426b5501de3c424d7a3220e86cd32f319ba56798e"}, - {file = "sqlalchemy-2.0.46-cp310-cp310-win32.whl", hash = "sha256:1bc3f601f0a818d27bfe139f6766487d9c88502062a2cd3a7ee6c342e81d5047"}, - {file = "sqlalchemy-2.0.46-cp310-cp310-win_amd64.whl", hash = "sha256:e0c05aff5c6b1bb5fb46a87e0f9d2f733f83ef6cbbbcd5c642b6c01678268061"}, - {file = "sqlalchemy-2.0.46-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:261c4b1f101b4a411154f1da2b76497d73abbfc42740029205d4d01fa1052684"}, - {file = "sqlalchemy-2.0.46-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:181903fe8c1b9082995325f1b2e84ac078b1189e2819380c2303a5f90e114a62"}, - {file = "sqlalchemy-2.0.46-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:590be24e20e2424a4c3c1b0835e9405fa3d0af5823a1a9fc02e5dff56471515f"}, - {file = "sqlalchemy-2.0.46-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:7568fe771f974abadce52669ef3a03150ff03186d8eb82613bc8adc435a03f01"}, - {file = "sqlalchemy-2.0.46-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ebf7e1e78af38047e08836d33502c7a278915698b7c2145d045f780201679999"}, - {file = "sqlalchemy-2.0.46-cp311-cp311-win32.whl", hash = "sha256:9d80ea2ac519c364a7286e8d765d6cd08648f5b21ca855a8017d9871f075542d"}, - {file = "sqlalchemy-2.0.46-cp311-cp311-win_amd64.whl", hash = "sha256:585af6afe518732d9ccd3aea33af2edaae4a7aa881af5d8f6f4fe3a368699597"}, - {file = "sqlalchemy-2.0.46-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3a9a72b0da8387f15d5810f1facca8f879de9b85af8c645138cba61ea147968c"}, - {file = "sqlalchemy-2.0.46-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2347c3f0efc4de367ba00218e0ae5c4ba2306e47216ef80d6e31761ac97cb0b9"}, - {file = "sqlalchemy-2.0.46-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9094c8b3197db12aa6f05c51c05daaad0a92b8c9af5388569847b03b1007fb1b"}, - {file = "sqlalchemy-2.0.46-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:37fee2164cf21417478b6a906adc1a91d69ae9aba8f9533e67ce882f4bb1de53"}, - {file = "sqlalchemy-2.0.46-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b1e14b2f6965a685c7128bd315e27387205429c2e339eeec55cb75ca4ab0ea2e"}, - {file = "sqlalchemy-2.0.46-cp312-cp312-win32.whl", hash = "sha256:412f26bb4ba942d52016edc8d12fb15d91d3cd46b0047ba46e424213ad407bcb"}, - {file = "sqlalchemy-2.0.46-cp312-cp312-win_amd64.whl", hash = "sha256:ea3cd46b6713a10216323cda3333514944e510aa691c945334713fca6b5279ff"}, - {file = "sqlalchemy-2.0.46-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:93a12da97cca70cea10d4b4fc602589c4511f96c1f8f6c11817620c021d21d00"}, - {file = "sqlalchemy-2.0.46-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:af865c18752d416798dae13f83f38927c52f085c52e2f32b8ab0fef46fdd02c2"}, - {file = "sqlalchemy-2.0.46-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8d679b5f318423eacb61f933a9a0f75535bfca7056daeadbf6bd5bcee6183aee"}, - {file = "sqlalchemy-2.0.46-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:64901e08c33462acc9ec3bad27fc7a5c2b6491665f2aa57564e57a4f5d7c52ad"}, - {file = "sqlalchemy-2.0.46-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e8ac45e8f4eaac0f9f8043ea0e224158855c6a4329fd4ee37c45c61e3beb518e"}, - {file = "sqlalchemy-2.0.46-cp313-cp313-win32.whl", hash = "sha256:8d3b44b3d0ab2f1319d71d9863d76eeb46766f8cf9e921ac293511804d39813f"}, - {file = "sqlalchemy-2.0.46-cp313-cp313-win_amd64.whl", hash = "sha256:77f8071d8fbcbb2dd11b7fd40dedd04e8ebe2eb80497916efedba844298065ef"}, - {file = "sqlalchemy-2.0.46-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a1e8cc6cc01da346dc92d9509a63033b9b1bda4fed7a7a7807ed385c7dccdc10"}, - {file = "sqlalchemy-2.0.46-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:96c7cca1a4babaaf3bfff3e4e606e38578856917e52f0384635a95b226c87764"}, - {file = "sqlalchemy-2.0.46-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:b2a9f9aee38039cf4755891a1e50e1effcc42ea6ba053743f452c372c3152b1b"}, - {file = "sqlalchemy-2.0.46-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:db23b1bf8cfe1f7fda19018e7207b20cdb5168f83c437ff7e95d19e39289c447"}, - {file = "sqlalchemy-2.0.46-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:56bdd261bfd0895452006d5316cbf35739c53b9bb71a170a331fa0ea560b2ada"}, - {file = "sqlalchemy-2.0.46-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:33e462154edb9493f6c3ad2125931e273bbd0be8ae53f3ecd1c161ea9a1dd366"}, - {file = "sqlalchemy-2.0.46-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9bcdce05f056622a632f1d44bb47dbdb677f58cad393612280406ce37530eb6d"}, - {file = "sqlalchemy-2.0.46-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:8e84b09a9b0f19accedcbeff5c2caf36e0dd537341a33aad8d680336152dc34e"}, - {file = "sqlalchemy-2.0.46-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:4f52f7291a92381e9b4de9050b0a65ce5d6a763333406861e33906b8aa4906bf"}, - {file = "sqlalchemy-2.0.46-cp314-cp314-win32.whl", hash = "sha256:70ed2830b169a9960193f4d4322d22be5c0925357d82cbf485b3369893350908"}, - {file = "sqlalchemy-2.0.46-cp314-cp314-win_amd64.whl", hash = "sha256:3c32e993bc57be6d177f7d5d31edb93f30726d798ad86ff9066d75d9bf2e0b6b"}, - {file = "sqlalchemy-2.0.46-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4dafb537740eef640c4d6a7c254611dca2df87eaf6d14d6a5fca9d1f4c3fc0fa"}, - {file = "sqlalchemy-2.0.46-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:42a1643dc5427b69aca967dae540a90b0fbf57eaf248f13a90ea5930e0966863"}, - {file = "sqlalchemy-2.0.46-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:ff33c6e6ad006bbc0f34f5faf941cfc62c45841c64c0a058ac38c799f15b5ede"}, - {file = "sqlalchemy-2.0.46-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:82ec52100ec1e6ec671563bbd02d7c7c8d0b9e71a0723c72f22ecf52d1755330"}, - {file = "sqlalchemy-2.0.46-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:6ac245604295b521de49b465bab845e3afe6916bcb2147e5929c8041b4ec0545"}, - {file = "sqlalchemy-2.0.46-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1e6199143d51e3e1168bedd98cc698397404a8f7508831b81b6a29b18b051069"}, - {file = "sqlalchemy-2.0.46-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:716be5bcabf327b6d5d265dbdc6213a01199be587224eb991ad0d37e83d728fd"}, - {file = "sqlalchemy-2.0.46-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:6f827fd687fa1ba7f51699e1132129eac8db8003695513fcf13fc587e1bd47a5"}, - {file = "sqlalchemy-2.0.46-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:c805fa6e5d461329fa02f53f88c914d189ea771b6821083937e79550bf31fc19"}, - {file = "sqlalchemy-2.0.46-cp38-cp38-win32.whl", hash = "sha256:3aac08f7546179889c62b53b18ebf1148b10244b3405569c93984b0388d016a7"}, - {file = "sqlalchemy-2.0.46-cp38-cp38-win_amd64.whl", hash = "sha256:0cc3117db526cad3e61074100bd2867b533e2c7dc1569e95c14089735d6fb4fe"}, - {file = "sqlalchemy-2.0.46-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:90bde6c6b1827565a95fde597da001212ab436f1b2e0c2dcc7246e14db26e2a3"}, - {file = "sqlalchemy-2.0.46-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:94b1e5f3a5f1ff4f42d5daab047428cd45a3380e51e191360a35cef71c9a7a2a"}, - {file = "sqlalchemy-2.0.46-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:93bb0aae40b52c57fd74ef9c6933c08c040ba98daf23ad33c3f9893494b8d3ce"}, - {file = "sqlalchemy-2.0.46-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:c4e2cc868b7b5208aec6c960950b7bb821f82c2fe66446c92ee0a571765e91a5"}, - {file = "sqlalchemy-2.0.46-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:965c62be8256d10c11f8907e7a8d3e18127a4c527a5919d85fa87fd9ecc2cfdc"}, - {file = "sqlalchemy-2.0.46-cp39-cp39-win32.whl", hash = "sha256:9397b381dcee8a2d6b99447ae85ea2530dcac82ca494d1db877087a13e38926d"}, - {file = "sqlalchemy-2.0.46-cp39-cp39-win_amd64.whl", hash = "sha256:4396c948d8217e83e2c202fbdcc0389cf8c93d2c1c5e60fa5c5a955eae0e64be"}, - {file = "sqlalchemy-2.0.46-py3-none-any.whl", hash = "sha256:f9c11766e7e7c0a2767dda5acb006a118640c9fc0a4104214b96269bfb78399e"}, - {file = "sqlalchemy-2.0.46.tar.gz", hash = "sha256:cf36851ee7219c170bb0793dbc3da3e80c582e04a5437bc601bfe8c85c9216d7"}, + {file = "sqlalchemy-2.0.47-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:33a917ede39406ddb93c3e642b5bc480be7c5fd0f3d0d6ae1036d466fb963f1a"}, + {file = "sqlalchemy-2.0.47-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:561d027c829b01e040bdade6b6f5b429249d056ef95d7bdcb9211539ecc82803"}, + {file = "sqlalchemy-2.0.47-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fa5072a37e68c565363c009b7afa5b199b488c87940ec02719860093a08f34ca"}, + {file = "sqlalchemy-2.0.47-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:1e7ed17dd4312a298b6024bfd1baf51654bc49e3f03c798005babf0c7922d6a7"}, + {file = "sqlalchemy-2.0.47-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:6992e353fcb0593eb42d95ad84b3e58fe40b5e37fd332b9ccba28f4b2f36d1fc"}, + {file = "sqlalchemy-2.0.47-cp310-cp310-win32.whl", hash = "sha256:05a6d58ed99ebd01303c92d29a0c9cbf70f637b3ddd155f5172c5a7239940998"}, + {file = "sqlalchemy-2.0.47-cp310-cp310-win_amd64.whl", hash = "sha256:4a7aa4a584cc97e268c11e700dea0b763874eaebb435e75e7d0ffee5d90f5030"}, + {file = "sqlalchemy-2.0.47-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3a1dbf0913879c443617d6b64403cf2801c941651db8c60e96d204ed9388d6b0"}, + {file = "sqlalchemy-2.0.47-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:775effbb97ea3b00c4dd3aeaf3ba8acba6e3e2b4b41d17d67a27e696843dbc95"}, + {file = "sqlalchemy-2.0.47-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:56cc834a3ffac34270cc2a41875e0f40e97aa651f4f3ca1cfbbf421c044cb62b"}, + {file = "sqlalchemy-2.0.47-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:49b5e0c7244262f39e767c018e4fdb5e5dbc23cd54c5ddac8eea8f0ba32ef890"}, + {file = "sqlalchemy-2.0.47-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:15cd822a3f1f6f77b5b841a30c1a07a07f7dee3385f17e638e1722de9ab683be"}, + {file = "sqlalchemy-2.0.47-cp311-cp311-win32.whl", hash = "sha256:9847a19548cd283a65e1ce0afd54016598d55ff72682d6fd3e493af6fc044064"}, + {file = "sqlalchemy-2.0.47-cp311-cp311-win_amd64.whl", hash = "sha256:722abf1c82aeca46a1a0803711244a48a298279eeaec9e02f7bfee9e064182e5"}, + {file = "sqlalchemy-2.0.47-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4fa91b19d6b9821c04cc8f7aa2476429cc8887b9687c762815aa629f5c0edec1"}, + {file = "sqlalchemy-2.0.47-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7c5bbbd14eff577c8c79cbfe39a0771eecd20f430f3678533476f0087138f356"}, + {file = "sqlalchemy-2.0.47-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a5a6c555da8d4280a3c4c78c5b7a3f990cee2b2884e5f934f87a226191682ff7"}, + {file = "sqlalchemy-2.0.47-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ed48a1701d24dff3bb49a5bce94d6bc84cbe33d98af2aa2d3cdcce3dea1709ec"}, + {file = "sqlalchemy-2.0.47-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:4f3178c920ad98158f0b6309382194df04b14808fa6052ae07099fdde29d5602"}, + {file = "sqlalchemy-2.0.47-cp312-cp312-win32.whl", hash = "sha256:b9c11ac9934dd59ece9619fe42780a08abe2faab7b0543bb00d5eabea4f421b9"}, + {file = "sqlalchemy-2.0.47-cp312-cp312-win_amd64.whl", hash = "sha256:db43b72cf8274a99e089755c9c1e0b947159b71adbc2c83c3de2e38d5d607acb"}, + {file = "sqlalchemy-2.0.47-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:456a135b790da5d3c6b53d0ef71ac7b7d280b7f41eb0c438986352bf03ca7143"}, + {file = "sqlalchemy-2.0.47-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:09a2f7698e44b3135433387da5d8846cf7cc7c10e5425af7c05fee609df978b6"}, + {file = "sqlalchemy-2.0.47-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a0bbc72e6a177c78d724f9106aaddc0d26a2ada89c6332b5935414eccf04cbd5"}, + {file = "sqlalchemy-2.0.47-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:75460456b043b78b6006e41bdf5b86747ee42eafaf7fffa3b24a6e9a456a2092"}, + {file = "sqlalchemy-2.0.47-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5d9adaa616c3bc7d80f9ded57cd84b51d6617cad6a5456621d858c9f23aaee01"}, + {file = "sqlalchemy-2.0.47-cp313-cp313-win32.whl", hash = "sha256:76e09f974382a496a5ed985db9343628b1cb1ac911f27342e4cc46a8bac10476"}, + {file = "sqlalchemy-2.0.47-cp313-cp313-win_amd64.whl", hash = "sha256:0664089b0bf6724a0bfb49a0cf4d4da24868a0a5c8e937cd7db356d5dcdf2c66"}, + {file = "sqlalchemy-2.0.47-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ed0c967c701ae13da98eb220f9ddab3044ab63504c1ba24ad6a59b26826ad003"}, + {file = "sqlalchemy-2.0.47-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d3537943a61fd25b241e976426a0c6814434b93cf9b09d39e8e78f3c9eb9a487"}, + {file = "sqlalchemy-2.0.47-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:57f7e336a64a0dba686c66392d46b9bc7af2c57d55ce6dc1697b4ef32b043ceb"}, + {file = "sqlalchemy-2.0.47-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:dff735a621858680217cb5142b779bad40ef7322ddbb7c12062190db6879772e"}, + {file = "sqlalchemy-2.0.47-cp313-cp313t-win32.whl", hash = "sha256:3893dc096bb3cca9608ea3487372ffcea3ae9b162f40e4d3c51dd49db1d1b2dc"}, + {file = "sqlalchemy-2.0.47-cp313-cp313t-win_amd64.whl", hash = "sha256:b5103427466f4b3e61f04833ae01f9a914b1280a2a8bcde3a9d7ab11f3755b42"}, + {file = "sqlalchemy-2.0.47-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:b03010a5a5dfe71676bc83f2473ebe082478e32d77e6f082c8fe15a31c3b42a6"}, + {file = "sqlalchemy-2.0.47-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f8e3371aa9024520883a415a09cc20c33cfd3eeccf9e0f4f4c367f940b9cbd44"}, + {file = "sqlalchemy-2.0.47-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c9449f747e50d518c6e1b40cc379e48bfc796453c47b15e627ea901c201e48a6"}, + {file = "sqlalchemy-2.0.47-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:21410f60d5cac1d6bfe360e05bd91b179be4fa0aa6eea6be46054971d277608f"}, + {file = "sqlalchemy-2.0.47-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:819841dd5bb4324c284c09e2874cf96fe6338bfb57a64548d9b81a4e39c9871f"}, + {file = "sqlalchemy-2.0.47-cp314-cp314-win32.whl", hash = "sha256:e255ee44821a7ef45649c43064cf94e74f81f61b4df70547304b97a351e9b7db"}, + {file = "sqlalchemy-2.0.47-cp314-cp314-win_amd64.whl", hash = "sha256:209467ff73ea1518fe1a5aaed9ba75bb9e33b2666e2553af9ccd13387bf192cb"}, + {file = "sqlalchemy-2.0.47-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e78fd9186946afaa287f8a1fe147ead06e5d566b08c0afcb601226e9c7322a64"}, + {file = "sqlalchemy-2.0.47-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5740e2f31b5987ed9619d6912ae5b750c03637f2078850da3002934c9532f172"}, + {file = "sqlalchemy-2.0.47-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:fb9ac00d03de93acb210e8ec7243fefe3e012515bf5fd2f0898c8dff38bc77a4"}, + {file = "sqlalchemy-2.0.47-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:c72a0b9eb2672d70d112cb149fbaf172d466bc691014c496aaac594f1988e706"}, + {file = "sqlalchemy-2.0.47-cp314-cp314t-win32.whl", hash = "sha256:c200db1128d72a71dc3c31c24b42eb9fd85b2b3e5a3c9ba1e751c11ac31250ff"}, + {file = "sqlalchemy-2.0.47-cp314-cp314t-win_amd64.whl", hash = "sha256:669837759b84e575407355dcff912835892058aea9b80bd1cb76d6a151cf37f7"}, + {file = "sqlalchemy-2.0.47-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:fe3f8519a52ca5032015780de3fc4e6ab42c6e0bcf9d807143a3d17b3350d546"}, + {file = "sqlalchemy-2.0.47-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d6acfc1f95ed0369e0c4100d98870c9c4bfd56818ddc825357a0a979d5973195"}, + {file = "sqlalchemy-2.0.47-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f530b939eca775f6f77fa359a3e7039209a96958c1aa28c1b796f600e0fee7cd"}, + {file = "sqlalchemy-2.0.47-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:0a6fdf665268dfe0ba52fb2d8d62deee96b297d460e2797bdd52d2d1941dd8cd"}, + {file = "sqlalchemy-2.0.47-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:25b3c189dab94dedb6db9d4e06476ce955182e7f45412b096ae9033519e33ce8"}, + {file = "sqlalchemy-2.0.47-cp38-cp38-win32.whl", hash = "sha256:a8f991cac31b673aff1648cafb8b10022719e5a632bbadaa9c5d41511bd507a5"}, + {file = "sqlalchemy-2.0.47-cp38-cp38-win_amd64.whl", hash = "sha256:52be08b31f70bed2ed05c5c4b8237cf361a8581f32a5e89f9dfc295f795db10f"}, + {file = "sqlalchemy-2.0.47-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d7477190e90852c00bf654b70ae21e5b85b5ac4d09094cf82e84eb3abdb6c5a7"}, + {file = "sqlalchemy-2.0.47-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cb0b3e4946bf05d68673a1857db1a16bd58207c83ebc4ed5732a6e60029bac2d"}, + {file = "sqlalchemy-2.0.47-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9bc111a5b98881b7e1ab108921f2fcc09fa06abbd98f4f0ed6cb2c23e70cdd23"}, + {file = "sqlalchemy-2.0.47-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:97bf49caf4e405c18f3b9f695751c5bf14a9d8899c6e54eaeb49dda0d4fa009d"}, + {file = "sqlalchemy-2.0.47-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:d2fa029051d3db77ad79a55c3ddf005bd7c038a111af0db9b56158857702aef6"}, + {file = "sqlalchemy-2.0.47-cp39-cp39-win32.whl", hash = "sha256:6e547682d508d141de942484b9976cbee91b7a50739d4ee25b3d0a62dd71a954"}, + {file = "sqlalchemy-2.0.47-cp39-cp39-win_amd64.whl", hash = "sha256:bb833131169444c87160aa95fcdd22ae86d0fa4ef174d36b3dfb9be363b4e574"}, + {file = "sqlalchemy-2.0.47-py3-none-any.whl", hash = "sha256:e2647043599297a1ef10e720cf310846b7f31b6c841fee093d2b09d81215eb93"}, + {file = "sqlalchemy-2.0.47.tar.gz", hash = "sha256:e3e7feb57b267fe897e492b9721ae46d5c7de6f9e8dee58aacf105dc4e154f3d"}, ] [package.dependencies] diff --git a/seed/ts-express/seed.yml b/seed/ts-express/seed.yml index 4f5652234a3b..2791bf81724f 100644 --- a/seed/ts-express/seed.yml +++ b/seed/ts-express/seed.yml @@ -100,6 +100,12 @@ fixtures: allowedFailures: - bytes-download - bytes-upload + - exhaustive:test-package-path + - exhaustive:no-custom-config + - exhaustive:retain-original-casing + - exhaustive:no-optional-properties + - exhaustive:allow-extra-fields + - exhaustive:union-utils - file-download - file-upload - file-upload-openapi diff --git a/test-definitions/fern/apis/exhaustive/definition/endpoints/params.yml b/test-definitions/fern/apis/exhaustive/definition/endpoints/params.yml index 8dd6fa96197c..ef1f29865078 100644 --- a/test-definitions/fern/apis/exhaustive/definition/endpoints/params.yml +++ b/test-definitions/fern/apis/exhaustive/definition/endpoints/params.yml @@ -1,3 +1,6 @@ +imports: + objects: ../types/object.yml + service: auth: true base-path: /params @@ -87,3 +90,21 @@ service: path-parameters: param: string response: string + + uploadWithPath: + docs: POST bytes with path param returning object + path: /path/{param} + path-parameters: + param: string + method: POST + request: + name: UploadWithPath + body: bytes + response: objects.ObjectWithRequiredField + examples: + - path-parameters: + param: "upload-path" + request: "bytes-content" + response: + body: + string: "uploaded"