diff --git a/generators/typescript/sdk/CHANGELOG.md b/generators/typescript/sdk/CHANGELOG.md index 2d3a5e3a8f..63d1b5ed64 100644 --- a/generators/typescript/sdk/CHANGELOG.md +++ b/generators/typescript/sdk/CHANGELOG.md @@ -5,6 +5,18 @@ 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). +## [0.20.0-rc0] - 2024-05-20 + +- Feature: Add `abortSignal` to `RequestOptions`. SDK consumers can now specify an + an arbitrary abort signal that can interrupt the API call. + + ```ts + const controller = new AbortController(); + client.endpoint.call(..., { + abortSignal: controller.signal, + }) + ``` + ## [0.19.0] - 2024-05-20 - Feature: Add `inlineFileProperties` configuration to support generating file upload properties diff --git a/generators/typescript/sdk/VERSION b/generators/typescript/sdk/VERSION index 1cf0537c34..26f5c15c56 100644 --- a/generators/typescript/sdk/VERSION +++ b/generators/typescript/sdk/VERSION @@ -1 +1 @@ -0.19.0 +0.20.0-rc0 diff --git a/generators/typescript/sdk/client-class-generator/src/GeneratedSdkClientClassImpl.ts b/generators/typescript/sdk/client-class-generator/src/GeneratedSdkClientClassImpl.ts index 5aec7488cd..0a274dac4b 100644 --- a/generators/typescript/sdk/client-class-generator/src/GeneratedSdkClientClassImpl.ts +++ b/generators/typescript/sdk/client-class-generator/src/GeneratedSdkClientClassImpl.ts @@ -69,6 +69,7 @@ export class GeneratedSdkClientClassImpl implements GeneratedSdkClientClass { private static REQUEST_OPTIONS_INTERFACE_NAME = "RequestOptions"; private static IDEMPOTENT_REQUEST_OPTIONS_INTERFACE_NAME = "IdempotentRequestOptions"; private static TIMEOUT_IN_SECONDS_REQUEST_OPTION_PROPERTY_NAME = "timeoutInSeconds"; + private static ABORT_SIGNAL_PROPERTY_NAME = "abortSignal"; private static MAX_RETRIES_REQUEST_OPTION_PROPERTY_NAME = "maxRetries"; private static OPTIONS_INTERFACE_NAME = "Options"; private static OPTIONS_PRIVATE_MEMBER = "_options"; @@ -766,6 +767,11 @@ export class GeneratedSdkClientClassImpl implements GeneratedSdkClientClass { name: GeneratedSdkClientClassImpl.MAX_RETRIES_REQUEST_OPTION_PROPERTY_NAME, type: getTextOfTsNode(ts.factory.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword)), hasQuestionToken: true + }, + { + name: GeneratedSdkClientClassImpl.ABORT_SIGNAL_PROPERTY_NAME, + type: getTextOfTsNode(ts.factory.createIdentifier("AbortSignal")), + hasQuestionToken: true } ] }; @@ -1125,6 +1131,18 @@ export class GeneratedSdkClientClassImpl implements GeneratedSdkClientClass { ); } + public getReferenceToAbortSignal({ + referenceToRequestOptions + }: { + referenceToRequestOptions: ts.Expression; + }): ts.Expression { + return ts.factory.createPropertyAccessChain( + referenceToRequestOptions, + ts.factory.createToken(ts.SyntaxKind.QuestionDotToken), + ts.factory.createIdentifier(GeneratedSdkClientClassImpl.ABORT_SIGNAL_PROPERTY_NAME) + ); + } + public getReferenceToOptions(): ts.Expression { return ts.factory.createPropertyAccessExpression( ts.factory.createThis(), diff --git a/generators/typescript/sdk/client-class-generator/src/endpoints/GeneratedFileDownloadEndpointImplementation.ts b/generators/typescript/sdk/client-class-generator/src/endpoints/GeneratedFileDownloadEndpointImplementation.ts index 3f20b84563..16c91ba501 100644 --- a/generators/typescript/sdk/client-class-generator/src/endpoints/GeneratedFileDownloadEndpointImplementation.ts +++ b/generators/typescript/sdk/client-class-generator/src/endpoints/GeneratedFileDownloadEndpointImplementation.ts @@ -7,6 +7,7 @@ import { GeneratedSdkClientClassImpl } from "../GeneratedSdkClientClassImpl"; import { GeneratedEndpointResponse } from "./default/endpoint-response/GeneratedEndpointResponse"; import { buildUrl } from "./utils/buildUrl"; import { + getAbortSignalExpression, getMaxRetriesExpression, getRequestOptionsParameter, getTimeoutExpression @@ -160,6 +161,11 @@ export class GeneratedFileDownloadEndpointImplementation implements GeneratedEnd this.generatedSdkClientClass ) }), + abortSignal: getAbortSignalExpression({ + abortSignalReference: this.generatedSdkClientClass.getReferenceToAbortSignal.bind( + this.generatedSdkClientClass + ) + }), withCredentials: this.includeCredentialsOnCrossOriginRequests, responseType: visitJavaScriptRuntime(context.targetRuntime, { browser: () => "blob", diff --git a/generators/typescript/sdk/client-class-generator/src/endpoints/GeneratedStreamingEndpointImplementation.ts b/generators/typescript/sdk/client-class-generator/src/endpoints/GeneratedStreamingEndpointImplementation.ts index 2d19e56812..647ea7583d 100644 --- a/generators/typescript/sdk/client-class-generator/src/endpoints/GeneratedStreamingEndpointImplementation.ts +++ b/generators/typescript/sdk/client-class-generator/src/endpoints/GeneratedStreamingEndpointImplementation.ts @@ -7,6 +7,7 @@ import { GeneratedSdkClientClassImpl } from "../GeneratedSdkClientClassImpl"; import { GeneratedEndpointResponse } from "./default/endpoint-response/GeneratedEndpointResponse"; import { buildUrl } from "./utils/buildUrl"; import { + getAbortSignalExpression, getMaxRetriesExpression, getRequestOptionsParameter, getTimeoutExpression @@ -131,6 +132,11 @@ export class GeneratedStreamingEndpointImplementation implements GeneratedEndpoi this.generatedSdkClientClass ) }), + abortSignal: getAbortSignalExpression({ + abortSignalReference: this.generatedSdkClientClass.getReferenceToAbortSignal.bind( + this.generatedSdkClientClass + ) + }), responseType: "streaming", withCredentials: this.includeCredentialsOnCrossOriginRequests }; diff --git a/generators/typescript/sdk/client-class-generator/src/endpoints/default/GeneratedDefaultEndpointImplementation.ts b/generators/typescript/sdk/client-class-generator/src/endpoints/default/GeneratedDefaultEndpointImplementation.ts index b0ce807ab3..667285fc7f 100644 --- a/generators/typescript/sdk/client-class-generator/src/endpoints/default/GeneratedDefaultEndpointImplementation.ts +++ b/generators/typescript/sdk/client-class-generator/src/endpoints/default/GeneratedDefaultEndpointImplementation.ts @@ -6,6 +6,7 @@ import { GeneratedEndpointRequest } from "../../endpoint-request/GeneratedEndpoi import { GeneratedSdkClientClassImpl } from "../../GeneratedSdkClientClassImpl"; import { buildUrl } from "../utils/buildUrl"; import { + getAbortSignalExpression, getMaxRetriesExpression, getRequestOptionsParameter, getTimeoutExpression, @@ -206,6 +207,12 @@ export class GeneratedDefaultEndpointImplementation implements GeneratedEndpoint this.generatedSdkClientClass ) }), + abortSignal: getAbortSignalExpression({ + abortSignalReference: this.generatedSdkClientClass.getReferenceToAbortSignal.bind( + this.generatedSdkClientClass + ) + }), + withCredentials: this.includeCredentialsOnCrossOriginRequests }; diff --git a/generators/typescript/sdk/client-class-generator/src/endpoints/utils/requestOptionsParameter.ts b/generators/typescript/sdk/client-class-generator/src/endpoints/utils/requestOptionsParameter.ts index 0338cf27fd..9011cd1f3d 100644 --- a/generators/typescript/sdk/client-class-generator/src/endpoints/utils/requestOptionsParameter.ts +++ b/generators/typescript/sdk/client-class-generator/src/endpoints/utils/requestOptionsParameter.ts @@ -63,3 +63,13 @@ export const getMaxRetriesExpression = ({ isNullable: true }); }; + +export const getAbortSignalExpression = ({ + abortSignalReference +}: { + abortSignalReference: (args: { referenceToRequestOptions: ts.Expression }) => ts.Expression; +}): ts.Expression => { + return abortSignalReference({ + referenceToRequestOptions: ts.factory.createIdentifier(REQUEST_OPTIONS_PARAMETER_NAME) + }); +}; diff --git a/generators/typescript/utils/commons/src/core-utilities/fetcher/Fetcher.ts b/generators/typescript/utils/commons/src/core-utilities/fetcher/Fetcher.ts index f7c5589bc9..480298bec0 100644 --- a/generators/typescript/utils/commons/src/core-utilities/fetcher/Fetcher.ts +++ b/generators/typescript/utils/commons/src/core-utilities/fetcher/Fetcher.ts @@ -90,6 +90,7 @@ export declare namespace Fetcher { contentType?: string | ts.Expression; queryParameters: ts.Expression | undefined; body: ts.Expression | undefined; + abortSignal: ts.Expression | undefined; withCredentials: boolean; timeoutInSeconds: ts.Expression; maxRetries?: ts.Expression; diff --git a/generators/typescript/utils/commons/src/core-utilities/fetcher/FetcherImpl.ts b/generators/typescript/utils/commons/src/core-utilities/fetcher/FetcherImpl.ts index 9de673d480..0589918b35 100644 --- a/generators/typescript/utils/commons/src/core-utilities/fetcher/FetcherImpl.ts +++ b/generators/typescript/utils/commons/src/core-utilities/fetcher/FetcherImpl.ts @@ -38,7 +38,8 @@ export class FetcherImpl extends CoreUtility implements Fetcher { body: "body", timeoutMs: "timeoutMs", withCredentials: "withCredentials", - responseType: "responseType" + responseType: "responseType", + abortSignal: "abortSignal" }, _getReferenceToType: this.getReferenceToTypeInFetcherModule("Args") }, @@ -132,6 +133,11 @@ export class FetcherImpl extends CoreUtility implements Fetcher { ) ); } + if (args.abortSignal) { + properties.push( + ts.factory.createPropertyAssignment(this.Fetcher.Args.properties.abortSignal, args.abortSignal) + ); + } return ts.factory.createAwaitExpression( ts.factory.createCallExpression(referenceToFetcher, cast != null ? [cast] : [], [ diff --git a/generators/typescript/utils/core-utilities/fetcher/.depcheckrc.json b/generators/typescript/utils/core-utilities/fetcher/.depcheckrc.json index 57573daed0..abf9834a9c 100644 --- a/generators/typescript/utils/core-utilities/fetcher/.depcheckrc.json +++ b/generators/typescript/utils/core-utilities/fetcher/.depcheckrc.json @@ -1 +1 @@ -{ "ignores": ["@types/jest", "@types/node"], "ignore-patterns": ["lib"] } +{ "ignores": ["@types/jest", "@types/node", "node-fetch", "qs", "@types/node-fetch", "@types/qs"], "ignore-patterns": ["lib"] } diff --git a/generators/typescript/utils/core-utilities/fetcher/.mrlint.json b/generators/typescript/utils/core-utilities/fetcher/.mrlint.json index 93e7eb71b3..01ef26e75e 100644 --- a/generators/typescript/utils/core-utilities/fetcher/.mrlint.json +++ b/generators/typescript/utils/core-utilities/fetcher/.mrlint.json @@ -5,6 +5,9 @@ "rules": { "duplicate-dependencies": { "exclude": ["@fern-fern/ir-sdk"] + }, + "depcheck": { + "ignores": ["@types/jest", "@types/node", "node-fetch", "qs", "@types/node-fetch", "@types/qs"] } } } diff --git a/generators/typescript/utils/core-utilities/fetcher/src/fetcher/Fetcher.ts b/generators/typescript/utils/core-utilities/fetcher/src/fetcher/Fetcher.ts index 5ec784b776..ba29b6636c 100644 --- a/generators/typescript/utils/core-utilities/fetcher/src/fetcher/Fetcher.ts +++ b/generators/typescript/utils/core-utilities/fetcher/src/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/generators/typescript/utils/core-utilities/fetcher/src/stream/Stream.ts b/generators/typescript/utils/core-utilities/fetcher/src/stream/Stream.ts index cb302b67ce..ec1a4b8ded 100644 --- a/generators/typescript/utils/core-utilities/fetcher/src/stream/Stream.ts +++ b/generators/typescript/utils/core-utilities/fetcher/src/stream/Stream.ts @@ -11,6 +11,10 @@ export declare namespace Stream { * The event shape to use for parsing the stream data. */ eventShape: JsonEvent | SseEvent; + /** + * An abort signal to stop the stream. + */ + signal?: AbortSignal; } interface JsonEvent { @@ -36,8 +40,9 @@ export class Stream implements AsyncIterable { private prefix: string | undefined; private messageTerminator: string; private streamTerminator: string | undefined; + private controller: AbortController = new AbortController(); - constructor({ stream, parse, eventShape }: Stream.Args & { parse: (val: unknown) => Promise }) { + constructor({ stream, parse, eventShape, signal }: Stream.Args & { parse: (val: unknown) => Promise }) { this.stream = stream; this.parse = parse; if (eventShape.type === "sse") { @@ -47,9 +52,11 @@ export class Stream implements AsyncIterable { } else { this.messageTerminator = eventShape.messageTerminator; } + signal?.addEventListener("abort", () => this.controller.abort()); } private async *iterMessages(): AsyncGenerator { + this.controller.signal; const stream = readableStreamAsyncIterable(this.stream); let buf = ""; let prefixSeen = false; diff --git a/packages/cli/ete-tests/src/tests/fetcher/fetcher.test.ts b/packages/cli/ete-tests/src/tests/fetcher/fetcher.test.ts index 6a13c3dce3..493d666524 100644 --- a/packages/cli/ete-tests/src/tests/fetcher/fetcher.test.ts +++ b/packages/cli/ete-tests/src/tests/fetcher/fetcher.test.ts @@ -115,4 +115,69 @@ describe("Fetcher Tests", () => { process.stdout.write(JSON.stringify(message)); } }, 90_000); + + it.skip("abort while making request", async () => { + const controller = new AbortController(); + const call = fetcher({ + url: "https://api.cohere.ai/v1/chat", + method: "POST", + responseType: "streaming", + headers: { + Authorization: "Bearer <>", + "Content-Type": "application/json" + }, + body: { + message: "Write a long essay about devtools", + stream: true + }, + // timeoutMs: 10, + abortSignal: controller.signal + }); + controller.abort(); + const response = await call; + expect(response.ok).toEqual(false); + if (response.ok) { + throw new Error("Expected response to fail"); + } + expect(response.error.reason === "unknown" && response.error.errorMessage.includes("aborted")).toBe(true); + }, 90_000); + + it.skip("abort while streaming events", async () => { + const controller = new AbortController(); + const response = await fetcher({ + url: "https://api.cohere.ai/v1/chat", + method: "POST", + responseType: "streaming", + headers: { + Authorization: "Bearer ", + "Content-Type": "application/json" + }, + body: { + message: "Write a long essay about devtools", + stream: true + }, + // timeoutMs: 10, + abortSignal: controller.signal + }); + expect(response.ok).toEqual(true); + if (!response.ok) { + throw new Error("Response failed"); + } + const stream = new Stream({ + stream: response.body, + parse: async (data) => data, + eventShape: { + type: "json", + messageTerminator: "\n" + } + }); + let i = 1; + for await (const event of stream) { + if (i === 10) { + controller.abort(); + } + console.log(JSON.stringify(event)); + i += 1; + } + }, 90_000); }); diff --git a/seed/ts-sdk/api-wide-base-path/src/Client.ts b/seed/ts-sdk/api-wide-base-path/src/Client.ts index 754f9be363..ea19d02df4 100644 --- a/seed/ts-sdk/api-wide-base-path/src/Client.ts +++ b/seed/ts-sdk/api-wide-base-path/src/Client.ts @@ -14,6 +14,7 @@ export declare namespace SeedApiWideBasePathClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/api-wide-base-path/src/api/resources/service/client/Client.ts b/seed/ts-sdk/api-wide-base-path/src/api/resources/service/client/Client.ts index 8055a912d6..168a82d6f2 100644 --- a/seed/ts-sdk/api-wide-base-path/src/api/resources/service/client/Client.ts +++ b/seed/ts-sdk/api-wide-base-path/src/api/resources/service/client/Client.ts @@ -15,6 +15,7 @@ export declare namespace Service { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -54,6 +55,7 @@ export class Service { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; diff --git a/seed/ts-sdk/api-wide-base-path/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/api-wide-base-path/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/api-wide-base-path/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/api-wide-base-path/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/audiences/src/Client.ts b/seed/ts-sdk/audiences/src/Client.ts index 4ae754c6d1..eab613179a 100644 --- a/seed/ts-sdk/audiences/src/Client.ts +++ b/seed/ts-sdk/audiences/src/Client.ts @@ -14,6 +14,7 @@ export declare namespace SeedAudiencesClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/audiences/src/api/resources/folderA/client/Client.ts b/seed/ts-sdk/audiences/src/api/resources/folderA/client/Client.ts index 572b74f6ed..3d62b80558 100644 --- a/seed/ts-sdk/audiences/src/api/resources/folderA/client/Client.ts +++ b/seed/ts-sdk/audiences/src/api/resources/folderA/client/Client.ts @@ -13,6 +13,7 @@ export declare namespace FolderA { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/audiences/src/api/resources/folderA/resources/service/client/Client.ts b/seed/ts-sdk/audiences/src/api/resources/folderA/resources/service/client/Client.ts index 19577d40b9..b313277090 100644 --- a/seed/ts-sdk/audiences/src/api/resources/folderA/resources/service/client/Client.ts +++ b/seed/ts-sdk/audiences/src/api/resources/folderA/resources/service/client/Client.ts @@ -15,6 +15,7 @@ export declare namespace Service { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -41,6 +42,7 @@ export class Service { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.folderA.Response.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/audiences/src/api/resources/foo/client/Client.ts b/seed/ts-sdk/audiences/src/api/resources/foo/client/Client.ts index 0651f22d98..8ebc28cd60 100644 --- a/seed/ts-sdk/audiences/src/api/resources/foo/client/Client.ts +++ b/seed/ts-sdk/audiences/src/api/resources/foo/client/Client.ts @@ -15,6 +15,7 @@ export declare namespace Foo { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -57,6 +58,7 @@ export class Foo { body: await serializers.FindRequest.jsonOrThrow(_body, { unrecognizedObjectKeys: "strip" }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.ImportingType.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/audiences/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/audiences/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/audiences/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/audiences/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/auth-environment-variables/src/Client.ts b/seed/ts-sdk/auth-environment-variables/src/Client.ts index f7fd08aeb6..875c547dff 100644 --- a/seed/ts-sdk/auth-environment-variables/src/Client.ts +++ b/seed/ts-sdk/auth-environment-variables/src/Client.ts @@ -15,6 +15,7 @@ export declare namespace SeedAuthEnvironmentVariablesClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/auth-environment-variables/src/api/resources/service/client/Client.ts b/seed/ts-sdk/auth-environment-variables/src/api/resources/service/client/Client.ts index a4ed697126..7b956ec96b 100644 --- a/seed/ts-sdk/auth-environment-variables/src/api/resources/service/client/Client.ts +++ b/seed/ts-sdk/auth-environment-variables/src/api/resources/service/client/Client.ts @@ -18,6 +18,7 @@ export declare namespace Service { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -48,6 +49,7 @@ export class Service { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.service.getWithApiKey.Response.parseOrThrow(_response.body, { @@ -112,6 +114,7 @@ export class Service { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.service.getWithHeader.Response.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/auth-environment-variables/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/auth-environment-variables/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/auth-environment-variables/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/auth-environment-variables/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/basic-auth-environment-variables/src/Client.ts b/seed/ts-sdk/basic-auth-environment-variables/src/Client.ts index 020a366817..410007fb78 100644 --- a/seed/ts-sdk/basic-auth-environment-variables/src/Client.ts +++ b/seed/ts-sdk/basic-auth-environment-variables/src/Client.ts @@ -15,6 +15,7 @@ export declare namespace SeedBasicAuthEnvironmentVariablesClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/basic-auth-environment-variables/src/api/resources/basicAuth/client/Client.ts b/seed/ts-sdk/basic-auth-environment-variables/src/api/resources/basicAuth/client/Client.ts index e4ebc93351..80dddb74da 100644 --- a/seed/ts-sdk/basic-auth-environment-variables/src/api/resources/basicAuth/client/Client.ts +++ b/seed/ts-sdk/basic-auth-environment-variables/src/api/resources/basicAuth/client/Client.ts @@ -18,6 +18,7 @@ export declare namespace BasicAuth { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -49,6 +50,7 @@ export class BasicAuth { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.basicAuth.getWithBasicAuth.Response.parseOrThrow(_response.body, { @@ -123,6 +125,7 @@ export class BasicAuth { body: request, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.basicAuth.postWithBasicAuth.Response.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/basic-auth-environment-variables/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/basic-auth-environment-variables/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/basic-auth-environment-variables/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/basic-auth-environment-variables/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/basic-auth/src/Client.ts b/seed/ts-sdk/basic-auth/src/Client.ts index 846019dade..82734e3cc7 100644 --- a/seed/ts-sdk/basic-auth/src/Client.ts +++ b/seed/ts-sdk/basic-auth/src/Client.ts @@ -15,6 +15,7 @@ export declare namespace SeedBasicAuthClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/basic-auth/src/api/resources/basicAuth/client/Client.ts b/seed/ts-sdk/basic-auth/src/api/resources/basicAuth/client/Client.ts index e67589726a..60a00cd4be 100644 --- a/seed/ts-sdk/basic-auth/src/api/resources/basicAuth/client/Client.ts +++ b/seed/ts-sdk/basic-auth/src/api/resources/basicAuth/client/Client.ts @@ -18,6 +18,7 @@ export declare namespace BasicAuth { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -49,6 +50,7 @@ export class BasicAuth { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.basicAuth.getWithBasicAuth.Response.parseOrThrow(_response.body, { @@ -123,6 +125,7 @@ export class BasicAuth { body: request, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.basicAuth.postWithBasicAuth.Response.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/basic-auth/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/basic-auth/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/basic-auth/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/basic-auth/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/bearer-token-environment-variable/src/Client.ts b/seed/ts-sdk/bearer-token-environment-variable/src/Client.ts index f55de62904..7b5af52851 100644 --- a/seed/ts-sdk/bearer-token-environment-variable/src/Client.ts +++ b/seed/ts-sdk/bearer-token-environment-variable/src/Client.ts @@ -14,6 +14,7 @@ export declare namespace SeedBearerTokenEnvironmentVariableClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/bearer-token-environment-variable/src/api/resources/service/client/Client.ts b/seed/ts-sdk/bearer-token-environment-variable/src/api/resources/service/client/Client.ts index 17997fd4cb..044599497f 100644 --- a/seed/ts-sdk/bearer-token-environment-variable/src/api/resources/service/client/Client.ts +++ b/seed/ts-sdk/bearer-token-environment-variable/src/api/resources/service/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace Service { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -45,6 +46,7 @@ export class Service { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.service.getWithBearerToken.Response.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/bearer-token-environment-variable/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/bearer-token-environment-variable/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/bearer-token-environment-variable/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/bearer-token-environment-variable/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/code-samples/src/Client.ts b/seed/ts-sdk/code-samples/src/Client.ts index 4852c93425..400fa66111 100644 --- a/seed/ts-sdk/code-samples/src/Client.ts +++ b/seed/ts-sdk/code-samples/src/Client.ts @@ -13,6 +13,7 @@ export declare namespace SeedCodeSamplesClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/code-samples/src/api/resources/service/client/Client.ts b/seed/ts-sdk/code-samples/src/api/resources/service/client/Client.ts index bab5aabe74..841d4a967d 100644 --- a/seed/ts-sdk/code-samples/src/api/resources/service/client/Client.ts +++ b/seed/ts-sdk/code-samples/src/api/resources/service/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace Service { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -49,6 +50,7 @@ export class Service { body: await serializers.MyRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.MyResponse.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/code-samples/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/code-samples/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/code-samples/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/code-samples/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/custom-auth/src/Client.ts b/seed/ts-sdk/custom-auth/src/Client.ts index c508cc75e9..952e9be6d9 100644 --- a/seed/ts-sdk/custom-auth/src/Client.ts +++ b/seed/ts-sdk/custom-auth/src/Client.ts @@ -14,6 +14,7 @@ export declare namespace SeedCustomAuthClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/custom-auth/src/api/resources/customAuth/client/Client.ts b/seed/ts-sdk/custom-auth/src/api/resources/customAuth/client/Client.ts index 65388f5c84..d737f24e27 100644 --- a/seed/ts-sdk/custom-auth/src/api/resources/customAuth/client/Client.ts +++ b/seed/ts-sdk/custom-auth/src/api/resources/customAuth/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace CustomAuth { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -48,6 +49,7 @@ export class CustomAuth { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.customAuth.getWithCustomAuth.Response.parseOrThrow(_response.body, { @@ -122,6 +124,7 @@ export class CustomAuth { body: request, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.customAuth.postWithCustomAuth.Response.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/custom-auth/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/custom-auth/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/custom-auth/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/custom-auth/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/enum/src/Client.ts b/seed/ts-sdk/enum/src/Client.ts index 1e98e55757..e3b2377f34 100644 --- a/seed/ts-sdk/enum/src/Client.ts +++ b/seed/ts-sdk/enum/src/Client.ts @@ -15,6 +15,7 @@ export declare namespace SeedEnumClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/enum/src/api/resources/inlinedRequest/client/Client.ts b/seed/ts-sdk/enum/src/api/resources/inlinedRequest/client/Client.ts index dea3a98593..58c4e45a9b 100644 --- a/seed/ts-sdk/enum/src/api/resources/inlinedRequest/client/Client.ts +++ b/seed/ts-sdk/enum/src/api/resources/inlinedRequest/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace InlinedRequest { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -50,6 +51,7 @@ export class InlinedRequest { body: await serializers.SendEnumInlinedRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; diff --git a/seed/ts-sdk/enum/src/api/resources/pathParam/client/Client.ts b/seed/ts-sdk/enum/src/api/resources/pathParam/client/Client.ts index 08d37ee8d1..ca7ce85ece 100644 --- a/seed/ts-sdk/enum/src/api/resources/pathParam/client/Client.ts +++ b/seed/ts-sdk/enum/src/api/resources/pathParam/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace PathParam { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -59,6 +60,7 @@ export class PathParam { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; diff --git a/seed/ts-sdk/enum/src/api/resources/queryParam/client/Client.ts b/seed/ts-sdk/enum/src/api/resources/queryParam/client/Client.ts index ed84a205b4..376997e430 100644 --- a/seed/ts-sdk/enum/src/api/resources/queryParam/client/Client.ts +++ b/seed/ts-sdk/enum/src/api/resources/queryParam/client/Client.ts @@ -15,6 +15,7 @@ export declare namespace QueryParam { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -63,6 +64,7 @@ export class QueryParam { queryParameters: _queryParams, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; @@ -156,6 +158,7 @@ export class QueryParam { queryParameters: _queryParams, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; diff --git a/seed/ts-sdk/enum/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/enum/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/enum/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/enum/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/error-property/union-utils/src/Client.ts b/seed/ts-sdk/error-property/union-utils/src/Client.ts index 9a3d622b97..4370ee0740 100644 --- a/seed/ts-sdk/error-property/union-utils/src/Client.ts +++ b/seed/ts-sdk/error-property/union-utils/src/Client.ts @@ -13,6 +13,7 @@ export declare namespace SeedErrorPropertyClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/error-property/union-utils/src/api/resources/propertyBasedError/client/Client.ts b/seed/ts-sdk/error-property/union-utils/src/api/resources/propertyBasedError/client/Client.ts index c0eb421f4d..34c91e1bbc 100644 --- a/seed/ts-sdk/error-property/union-utils/src/api/resources/propertyBasedError/client/Client.ts +++ b/seed/ts-sdk/error-property/union-utils/src/api/resources/propertyBasedError/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace PropertyBasedError { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -46,6 +47,7 @@ export class PropertyBasedError { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.propertyBasedError.throwError.Response.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/error-property/union-utils/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/error-property/union-utils/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/error-property/union-utils/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/error-property/union-utils/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/examples/examples-with-api-reference/src/Client.ts b/seed/ts-sdk/examples/examples-with-api-reference/src/Client.ts index 462fc591d3..9eec0c399d 100644 --- a/seed/ts-sdk/examples/examples-with-api-reference/src/Client.ts +++ b/seed/ts-sdk/examples/examples-with-api-reference/src/Client.ts @@ -19,6 +19,7 @@ export declare namespace SeedExamplesClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -48,6 +49,7 @@ export class SeedExamplesClient { body: await serializers.echo.Request.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.echo.Response.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/examples/examples-with-api-reference/src/api/resources/file/client/Client.ts b/seed/ts-sdk/examples/examples-with-api-reference/src/api/resources/file/client/Client.ts index 87b96fccb4..35a576d93c 100644 --- a/seed/ts-sdk/examples/examples-with-api-reference/src/api/resources/file/client/Client.ts +++ b/seed/ts-sdk/examples/examples-with-api-reference/src/api/resources/file/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace File_ { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/examples/examples-with-api-reference/src/api/resources/file/resources/notification/client/Client.ts b/seed/ts-sdk/examples/examples-with-api-reference/src/api/resources/file/resources/notification/client/Client.ts index 9b6b895cf1..b19a05e838 100644 --- a/seed/ts-sdk/examples/examples-with-api-reference/src/api/resources/file/resources/notification/client/Client.ts +++ b/seed/ts-sdk/examples/examples-with-api-reference/src/api/resources/file/resources/notification/client/Client.ts @@ -15,6 +15,7 @@ export declare namespace Notification { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/examples/examples-with-api-reference/src/api/resources/file/resources/notification/resources/service/client/Client.ts b/seed/ts-sdk/examples/examples-with-api-reference/src/api/resources/file/resources/notification/resources/service/client/Client.ts index 74dc8ef962..3818aca302 100644 --- a/seed/ts-sdk/examples/examples-with-api-reference/src/api/resources/file/resources/notification/resources/service/client/Client.ts +++ b/seed/ts-sdk/examples/examples-with-api-reference/src/api/resources/file/resources/notification/resources/service/client/Client.ts @@ -18,6 +18,7 @@ export declare namespace Service { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -52,6 +53,7 @@ export class Service { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.Exception.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/examples/examples-with-api-reference/src/api/resources/file/resources/service/client/Client.ts b/seed/ts-sdk/examples/examples-with-api-reference/src/api/resources/file/resources/service/client/Client.ts index 87c495bc05..dfae91912a 100644 --- a/seed/ts-sdk/examples/examples-with-api-reference/src/api/resources/file/resources/service/client/Client.ts +++ b/seed/ts-sdk/examples/examples-with-api-reference/src/api/resources/file/resources/service/client/Client.ts @@ -18,6 +18,7 @@ export declare namespace Service { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -59,6 +60,7 @@ export class Service { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.File_.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/examples/examples-with-api-reference/src/api/resources/health/client/Client.ts b/seed/ts-sdk/examples/examples-with-api-reference/src/api/resources/health/client/Client.ts index bdd1bda766..dd772942b0 100644 --- a/seed/ts-sdk/examples/examples-with-api-reference/src/api/resources/health/client/Client.ts +++ b/seed/ts-sdk/examples/examples-with-api-reference/src/api/resources/health/client/Client.ts @@ -15,6 +15,7 @@ export declare namespace Health { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/examples/examples-with-api-reference/src/api/resources/health/resources/service/client/Client.ts b/seed/ts-sdk/examples/examples-with-api-reference/src/api/resources/health/resources/service/client/Client.ts index f575a56e0e..1bebb79b28 100644 --- a/seed/ts-sdk/examples/examples-with-api-reference/src/api/resources/health/resources/service/client/Client.ts +++ b/seed/ts-sdk/examples/examples-with-api-reference/src/api/resources/health/resources/service/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace Service { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -47,6 +48,7 @@ export class Service { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; @@ -97,6 +99,7 @@ export class Service { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.health.service.ping.Response.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/examples/examples-with-api-reference/src/api/resources/service/client/Client.ts b/seed/ts-sdk/examples/examples-with-api-reference/src/api/resources/service/client/Client.ts index 2127ef665c..1365e9d91e 100644 --- a/seed/ts-sdk/examples/examples-with-api-reference/src/api/resources/service/client/Client.ts +++ b/seed/ts-sdk/examples/examples-with-api-reference/src/api/resources/service/client/Client.ts @@ -18,6 +18,7 @@ export declare namespace Service { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -52,6 +53,7 @@ export class Service { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.Movie.parseOrThrow(_response.body, { @@ -130,6 +132,7 @@ export class Service { body: await serializers.Movie.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.MovieId.parseOrThrow(_response.body, { @@ -207,6 +210,7 @@ export class Service { queryParameters: _queryParams, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.Metadata.parseOrThrow(_response.body, { @@ -260,6 +264,7 @@ export class Service { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.Response.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/examples/examples-with-api-reference/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/examples/examples-with-api-reference/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/examples/examples-with-api-reference/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/examples/examples-with-api-reference/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/examples/retain-original-casing/src/Client.ts b/seed/ts-sdk/examples/retain-original-casing/src/Client.ts index 462fc591d3..9eec0c399d 100644 --- a/seed/ts-sdk/examples/retain-original-casing/src/Client.ts +++ b/seed/ts-sdk/examples/retain-original-casing/src/Client.ts @@ -19,6 +19,7 @@ export declare namespace SeedExamplesClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -48,6 +49,7 @@ export class SeedExamplesClient { body: await serializers.echo.Request.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.echo.Response.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/examples/retain-original-casing/src/api/resources/file/client/Client.ts b/seed/ts-sdk/examples/retain-original-casing/src/api/resources/file/client/Client.ts index 87b96fccb4..35a576d93c 100644 --- a/seed/ts-sdk/examples/retain-original-casing/src/api/resources/file/client/Client.ts +++ b/seed/ts-sdk/examples/retain-original-casing/src/api/resources/file/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace File_ { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/examples/retain-original-casing/src/api/resources/file/resources/notification/client/Client.ts b/seed/ts-sdk/examples/retain-original-casing/src/api/resources/file/resources/notification/client/Client.ts index 9b6b895cf1..b19a05e838 100644 --- a/seed/ts-sdk/examples/retain-original-casing/src/api/resources/file/resources/notification/client/Client.ts +++ b/seed/ts-sdk/examples/retain-original-casing/src/api/resources/file/resources/notification/client/Client.ts @@ -15,6 +15,7 @@ export declare namespace Notification { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/examples/retain-original-casing/src/api/resources/file/resources/notification/resources/service/client/Client.ts b/seed/ts-sdk/examples/retain-original-casing/src/api/resources/file/resources/notification/resources/service/client/Client.ts index 74dc8ef962..3818aca302 100644 --- a/seed/ts-sdk/examples/retain-original-casing/src/api/resources/file/resources/notification/resources/service/client/Client.ts +++ b/seed/ts-sdk/examples/retain-original-casing/src/api/resources/file/resources/notification/resources/service/client/Client.ts @@ -18,6 +18,7 @@ export declare namespace Service { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -52,6 +53,7 @@ export class Service { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.Exception.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/examples/retain-original-casing/src/api/resources/file/resources/service/client/Client.ts b/seed/ts-sdk/examples/retain-original-casing/src/api/resources/file/resources/service/client/Client.ts index 722f327115..7329e85670 100644 --- a/seed/ts-sdk/examples/retain-original-casing/src/api/resources/file/resources/service/client/Client.ts +++ b/seed/ts-sdk/examples/retain-original-casing/src/api/resources/file/resources/service/client/Client.ts @@ -18,6 +18,7 @@ export declare namespace Service { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -59,6 +60,7 @@ export class Service { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.File_.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/examples/retain-original-casing/src/api/resources/health/client/Client.ts b/seed/ts-sdk/examples/retain-original-casing/src/api/resources/health/client/Client.ts index bdd1bda766..dd772942b0 100644 --- a/seed/ts-sdk/examples/retain-original-casing/src/api/resources/health/client/Client.ts +++ b/seed/ts-sdk/examples/retain-original-casing/src/api/resources/health/client/Client.ts @@ -15,6 +15,7 @@ export declare namespace Health { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/examples/retain-original-casing/src/api/resources/health/resources/service/client/Client.ts b/seed/ts-sdk/examples/retain-original-casing/src/api/resources/health/resources/service/client/Client.ts index f575a56e0e..1bebb79b28 100644 --- a/seed/ts-sdk/examples/retain-original-casing/src/api/resources/health/resources/service/client/Client.ts +++ b/seed/ts-sdk/examples/retain-original-casing/src/api/resources/health/resources/service/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace Service { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -47,6 +48,7 @@ export class Service { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; @@ -97,6 +99,7 @@ export class Service { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.health.service.ping.Response.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/examples/retain-original-casing/src/api/resources/service/client/Client.ts b/seed/ts-sdk/examples/retain-original-casing/src/api/resources/service/client/Client.ts index 16685f052e..0fb72e7176 100644 --- a/seed/ts-sdk/examples/retain-original-casing/src/api/resources/service/client/Client.ts +++ b/seed/ts-sdk/examples/retain-original-casing/src/api/resources/service/client/Client.ts @@ -18,6 +18,7 @@ export declare namespace Service { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -52,6 +53,7 @@ export class Service { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.Movie.parseOrThrow(_response.body, { @@ -130,6 +132,7 @@ export class Service { body: await serializers.Movie.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.MovieId.parseOrThrow(_response.body, { @@ -207,6 +210,7 @@ export class Service { queryParameters: _queryParams, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.Metadata.parseOrThrow(_response.body, { @@ -260,6 +264,7 @@ export class Service { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.Response.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/examples/retain-original-casing/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/examples/retain-original-casing/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/examples/retain-original-casing/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/examples/retain-original-casing/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/exhaustive/allow-extra-fields/src/Client.ts b/seed/ts-sdk/exhaustive/allow-extra-fields/src/Client.ts index 809e3c208e..03f60717a3 100644 --- a/seed/ts-sdk/exhaustive/allow-extra-fields/src/Client.ts +++ b/seed/ts-sdk/exhaustive/allow-extra-fields/src/Client.ts @@ -18,6 +18,7 @@ export declare namespace SeedExhaustiveClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/endpoints/client/Client.ts b/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/endpoints/client/Client.ts index 8cd8fabf7d..431e43e574 100644 --- a/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/endpoints/client/Client.ts +++ b/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/endpoints/client/Client.ts @@ -20,6 +20,7 @@ export declare namespace Endpoints { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/endpoints/resources/container/client/Client.ts b/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/endpoints/resources/container/client/Client.ts index 000b5d14b0..ab2b391b81 100644 --- a/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/endpoints/resources/container/client/Client.ts +++ b/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/endpoints/resources/container/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace Container { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -53,6 +54,7 @@ export class Container { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.container.getAndReturnListOfPrimitives.Response.parseOrThrow( @@ -120,6 +122,7 @@ export class Container { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.container.getAndReturnListOfObjects.Response.parseOrThrow( @@ -185,6 +188,7 @@ export class Container { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.container.getAndReturnSetOfPrimitives.Response.parseOrThrow( @@ -252,6 +256,7 @@ export class Container { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.container.getAndReturnSetOfObjects.Response.parseOrThrow( @@ -319,6 +324,7 @@ export class Container { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.container.getAndReturnMapPrimToPrim.Response.parseOrThrow( @@ -388,6 +394,7 @@ export class Container { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.container.getAndReturnMapOfPrimToObject.Response.parseOrThrow( @@ -458,6 +465,7 @@ export class Container { : undefined, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.container.getAndReturnOptional.Response.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/endpoints/resources/enum/client/Client.ts b/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/endpoints/resources/enum/client/Client.ts index 71a0b84854..4eeae7f023 100644 --- a/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/endpoints/resources/enum/client/Client.ts +++ b/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/endpoints/resources/enum/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace Enum { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -53,6 +54,7 @@ export class Enum { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.types.WeatherReport.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/endpoints/resources/httpMethods/client/Client.ts b/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/endpoints/resources/httpMethods/client/Client.ts index dbc362bec6..7d1ef98331 100644 --- a/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/endpoints/resources/httpMethods/client/Client.ts +++ b/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/endpoints/resources/httpMethods/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace HttpMethods { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -45,6 +46,7 @@ export class HttpMethods { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.httpMethods.testGet.Response.parseOrThrow(_response.body, { @@ -109,6 +111,7 @@ export class HttpMethods { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.types.ObjectWithOptionalField.parseOrThrow(_response.body, { @@ -175,6 +178,7 @@ export class HttpMethods { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.types.ObjectWithOptionalField.parseOrThrow(_response.body, { @@ -254,6 +258,7 @@ export class HttpMethods { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.types.ObjectWithOptionalField.parseOrThrow(_response.body, { @@ -308,6 +313,7 @@ export class HttpMethods { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.httpMethods.testDelete.Response.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/endpoints/resources/object/client/Client.ts b/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/endpoints/resources/object/client/Client.ts index a02b873cf9..42d5088635 100644 --- a/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/endpoints/resources/object/client/Client.ts +++ b/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/endpoints/resources/object/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace Object_ { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -71,6 +72,7 @@ export class Object_ { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.types.ObjectWithOptionalField.parseOrThrow(_response.body, { @@ -138,6 +140,7 @@ export class Object_ { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.types.ObjectWithRequiredField.parseOrThrow(_response.body, { @@ -206,6 +209,7 @@ export class Object_ { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.types.ObjectWithMapOfMap.parseOrThrow(_response.body, { @@ -289,6 +293,7 @@ export class Object_ { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.types.NestedObjectWithOptionalField.parseOrThrow(_response.body, { @@ -374,6 +379,7 @@ export class Object_ { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.types.NestedObjectWithRequiredField.parseOrThrow(_response.body, { @@ -460,6 +466,7 @@ export class Object_ { ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.types.NestedObjectWithRequiredField.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/endpoints/resources/params/client/Client.ts b/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/endpoints/resources/params/client/Client.ts index 26b9439f22..24747cfb1d 100644 --- a/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/endpoints/resources/params/client/Client.ts +++ b/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/endpoints/resources/params/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace Params { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -50,6 +51,7 @@ export class Params { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.params.getWithPath.Response.parseOrThrow(_response.body, { @@ -117,6 +119,7 @@ export class Params { queryParameters: _queryParams, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; @@ -189,6 +192,7 @@ export class Params { queryParameters: _queryParams, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; @@ -254,6 +258,7 @@ export class Params { queryParameters: _queryParams, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; @@ -318,6 +323,7 @@ export class Params { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.params.modifyWithPath.Response.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/endpoints/resources/primitive/client/Client.ts b/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/endpoints/resources/primitive/client/Client.ts index afb2a86fd4..518c14869b 100644 --- a/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/endpoints/resources/primitive/client/Client.ts +++ b/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/endpoints/resources/primitive/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace Primitive { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -49,6 +50,7 @@ export class Primitive { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.primitive.getAndReturnString.Response.parseOrThrow(_response.body, { @@ -108,6 +110,7 @@ export class Primitive { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.primitive.getAndReturnInt.Response.parseOrThrow(_response.body, { @@ -167,6 +170,7 @@ export class Primitive { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.primitive.getAndReturnLong.Response.parseOrThrow(_response.body, { @@ -226,6 +230,7 @@ export class Primitive { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.primitive.getAndReturnDouble.Response.parseOrThrow(_response.body, { @@ -285,6 +290,7 @@ export class Primitive { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.primitive.getAndReturnBool.Response.parseOrThrow(_response.body, { @@ -344,6 +350,7 @@ export class Primitive { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.primitive.getAndReturnDatetime.Response.parseOrThrow(_response.body, { @@ -403,6 +410,7 @@ export class Primitive { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.primitive.getAndReturnDate.Response.parseOrThrow(_response.body, { @@ -462,6 +470,7 @@ export class Primitive { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.primitive.getAndReturnUuid.Response.parseOrThrow(_response.body, { @@ -521,6 +530,7 @@ export class Primitive { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.primitive.getAndReturnBase64.Response.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/endpoints/resources/union/client/Client.ts b/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/endpoints/resources/union/client/Client.ts index 3eaa98ac3e..d3cd2f38bf 100644 --- a/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/endpoints/resources/union/client/Client.ts +++ b/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/endpoints/resources/union/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace Union { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -57,6 +58,7 @@ export class Union { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.types.Animal.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/inlinedRequests/client/Client.ts b/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/inlinedRequests/client/Client.ts index 685b9018db..3a0cdbae92 100644 --- a/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/inlinedRequests/client/Client.ts +++ b/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/inlinedRequests/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace InlinedRequests { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -76,6 +77,7 @@ export class InlinedRequests { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.types.ObjectWithOptionalField.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/noAuth/client/Client.ts b/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/noAuth/client/Client.ts index 2b3118ebdd..7016fc6a47 100644 --- a/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/noAuth/client/Client.ts +++ b/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/noAuth/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace NoAuth { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -52,6 +53,7 @@ export class NoAuth { body: request, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.noAuth.postWithNoAuth.Response.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/noReqBody/client/Client.ts b/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/noReqBody/client/Client.ts index 239d51124f..1e96f4bcdc 100644 --- a/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/noReqBody/client/Client.ts +++ b/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/noReqBody/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace NoReqBody { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -46,6 +47,7 @@ export class NoReqBody { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.types.ObjectWithOptionalField.parseOrThrow(_response.body, { @@ -99,6 +101,7 @@ export class NoReqBody { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.noReqBody.postWithNoRequestBody.Response.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/reqWithHeaders/client/Client.ts b/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/reqWithHeaders/client/Client.ts index 5b91f9f930..47f1559025 100644 --- a/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/reqWithHeaders/client/Client.ts +++ b/seed/ts-sdk/exhaustive/allow-extra-fields/src/api/resources/reqWithHeaders/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace ReqWithHeaders { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -60,6 +61,7 @@ export class ReqWithHeaders { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; diff --git a/seed/ts-sdk/exhaustive/allow-extra-fields/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/exhaustive/allow-extra-fields/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/exhaustive/allow-extra-fields/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/exhaustive/allow-extra-fields/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/exhaustive/bundle/.inputs/ir.json b/seed/ts-sdk/exhaustive/bundle/.inputs/ir.json index ce60c11b70..e69de29bb2 100644 --- a/seed/ts-sdk/exhaustive/bundle/.inputs/ir.json +++ b/seed/ts-sdk/exhaustive/bundle/.inputs/ir.json @@ -1,55841 +0,0 @@ -{ - "apiName": { - "originalName": "exhaustive", - "camelCase": { - "unsafeName": "exhaustive", - "safeName": "exhaustive" - }, - "snakeCase": { - "unsafeName": "exhaustive", - "safeName": "exhaustive" - }, - "screamingSnakeCase": { - "unsafeName": "EXHAUSTIVE", - "safeName": "EXHAUSTIVE" - }, - "pascalCase": { - "unsafeName": "Exhaustive", - "safeName": "Exhaustive" - } - }, - "apiDisplayName": null, - "apiDocs": null, - "auth": { - "requirement": "ALL", - "schemes": [ - { - "_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" - } - }, - "tokenEnvVar": null, - "docs": null - } - ], - "docs": null - }, - "headers": [], - "idempotencyHeaders": [], - "types": { - "type_general-errors:BadObjectRequestInfo": { - "name": { - "name": { - "originalName": "BadObjectRequestInfo", - "camelCase": { - "unsafeName": "badObjectRequestInfo", - "safeName": "badObjectRequestInfo" - }, - "snakeCase": { - "unsafeName": "bad_object_request_info", - "safeName": "bad_object_request_info" - }, - "screamingSnakeCase": { - "unsafeName": "BAD_OBJECT_REQUEST_INFO", - "safeName": "BAD_OBJECT_REQUEST_INFO" - }, - "pascalCase": { - "unsafeName": "BadObjectRequestInfo", - "safeName": "BadObjectRequestInfo" - } - }, - "fernFilepath": { - "allParts": [ - { - "originalName": "general-errors", - "camelCase": { - "unsafeName": "generalErrors", - "safeName": "generalErrors" - }, - "snakeCase": { - "unsafeName": "general_errors", - "safeName": "general_errors" - }, - "screamingSnakeCase": { - "unsafeName": "GENERAL_ERRORS", - "safeName": "GENERAL_ERRORS" - }, - "pascalCase": { - "unsafeName": "GeneralErrors", - "safeName": "GeneralErrors" - } - } - ], - "packagePath": [], - "file": { - "originalName": "general-errors", - "camelCase": { - "unsafeName": "generalErrors", - "safeName": "generalErrors" - }, - "snakeCase": { - "unsafeName": "general_errors", - "safeName": "general_errors" - }, - "screamingSnakeCase": { - "unsafeName": "GENERAL_ERRORS", - "safeName": "GENERAL_ERRORS" - }, - "pascalCase": { - "unsafeName": "GeneralErrors", - "safeName": "GeneralErrors" - } - } - }, - "typeId": "type_general-errors:BadObjectRequestInfo" - }, - "shape": { - "_type": "object", - "extends": [], - "properties": [ - { - "name": { - "name": { - "originalName": "message", - "camelCase": { - "unsafeName": "message", - "safeName": "message" - }, - "snakeCase": { - "unsafeName": "message", - "safeName": "message" - }, - "screamingSnakeCase": { - "unsafeName": "MESSAGE", - "safeName": "MESSAGE" - }, - "pascalCase": { - "unsafeName": "Message", - "safeName": "Message" - } - }, - "wireValue": "message" - }, - "valueType": { - "_type": "primitive", - "primitive": "STRING" - }, - "availability": null, - "docs": null - } - ], - "extra-properties": false - }, - "referencedTypes": [], - "examples": [], - "availability": null, - "docs": null - }, - "type_types/enum:WeatherReport": { - "name": { - "name": { - "originalName": "WeatherReport", - "camelCase": { - "unsafeName": "weatherReport", - "safeName": "weatherReport" - }, - "snakeCase": { - "unsafeName": "weather_report", - "safeName": "weather_report" - }, - "screamingSnakeCase": { - "unsafeName": "WEATHER_REPORT", - "safeName": "WEATHER_REPORT" - }, - "pascalCase": { - "unsafeName": "WeatherReport", - "safeName": "WeatherReport" - } - }, - "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": "enum", - "camelCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "snakeCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "screamingSnakeCase": { - "unsafeName": "ENUM", - "safeName": "ENUM" - }, - "pascalCase": { - "unsafeName": "Enum", - "safeName": "Enum" - } - } - ], - "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": "enum", - "camelCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "snakeCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "screamingSnakeCase": { - "unsafeName": "ENUM", - "safeName": "ENUM" - }, - "pascalCase": { - "unsafeName": "Enum", - "safeName": "Enum" - } - } - }, - "typeId": "type_types/enum:WeatherReport" - }, - "shape": { - "_type": "enum", - "values": [ - { - "name": { - "name": { - "originalName": "SUNNY", - "camelCase": { - "unsafeName": "sunny", - "safeName": "sunny" - }, - "snakeCase": { - "unsafeName": "sunny", - "safeName": "sunny" - }, - "screamingSnakeCase": { - "unsafeName": "SUNNY", - "safeName": "SUNNY" - }, - "pascalCase": { - "unsafeName": "Sunny", - "safeName": "Sunny" - } - }, - "wireValue": "SUNNY" - }, - "availability": null, - "docs": null - }, - { - "name": { - "name": { - "originalName": "CLOUDY", - "camelCase": { - "unsafeName": "cloudy", - "safeName": "cloudy" - }, - "snakeCase": { - "unsafeName": "cloudy", - "safeName": "cloudy" - }, - "screamingSnakeCase": { - "unsafeName": "CLOUDY", - "safeName": "CLOUDY" - }, - "pascalCase": { - "unsafeName": "Cloudy", - "safeName": "Cloudy" - } - }, - "wireValue": "CLOUDY" - }, - "availability": null, - "docs": null - }, - { - "name": { - "name": { - "originalName": "RAINING", - "camelCase": { - "unsafeName": "raining", - "safeName": "raining" - }, - "snakeCase": { - "unsafeName": "raining", - "safeName": "raining" - }, - "screamingSnakeCase": { - "unsafeName": "RAINING", - "safeName": "RAINING" - }, - "pascalCase": { - "unsafeName": "Raining", - "safeName": "Raining" - } - }, - "wireValue": "RAINING" - }, - "availability": null, - "docs": null - }, - { - "name": { - "name": { - "originalName": "SNOWING", - "camelCase": { - "unsafeName": "snowing", - "safeName": "snowing" - }, - "snakeCase": { - "unsafeName": "snowing", - "safeName": "snowing" - }, - "screamingSnakeCase": { - "unsafeName": "SNOWING", - "safeName": "SNOWING" - }, - "pascalCase": { - "unsafeName": "Snowing", - "safeName": "Snowing" - } - }, - "wireValue": "SNOWING" - }, - "availability": null, - "docs": null - } - ] - }, - "referencedTypes": [], - "examples": [], - "availability": null, - "docs": null - }, - "type_types/object:ObjectWithOptionalField": { - "name": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - }, - "shape": { - "_type": "object", - "extends": [], - "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" - }, - "valueType": { - "_type": "container", - "container": { - "_type": "optional", - "optional": { - "_type": "primitive", - "primitive": "STRING" - } - } - }, - "availability": null, - "docs": null - }, - { - "name": { - "name": { - "originalName": "integer", - "camelCase": { - "unsafeName": "integer", - "safeName": "integer" - }, - "snakeCase": { - "unsafeName": "integer", - "safeName": "integer" - }, - "screamingSnakeCase": { - "unsafeName": "INTEGER", - "safeName": "INTEGER" - }, - "pascalCase": { - "unsafeName": "Integer", - "safeName": "Integer" - } - }, - "wireValue": "integer" - }, - "valueType": { - "_type": "container", - "container": { - "_type": "optional", - "optional": { - "_type": "primitive", - "primitive": "INTEGER" - } - } - }, - "availability": null, - "docs": null - }, - { - "name": { - "name": { - "originalName": "long", - "camelCase": { - "unsafeName": "long", - "safeName": "long" - }, - "snakeCase": { - "unsafeName": "long", - "safeName": "long" - }, - "screamingSnakeCase": { - "unsafeName": "LONG", - "safeName": "LONG" - }, - "pascalCase": { - "unsafeName": "Long", - "safeName": "Long" - } - }, - "wireValue": "long" - }, - "valueType": { - "_type": "container", - "container": { - "_type": "optional", - "optional": { - "_type": "primitive", - "primitive": "LONG" - } - } - }, - "availability": null, - "docs": null - }, - { - "name": { - "name": { - "originalName": "double", - "camelCase": { - "unsafeName": "double", - "safeName": "double" - }, - "snakeCase": { - "unsafeName": "double", - "safeName": "double" - }, - "screamingSnakeCase": { - "unsafeName": "DOUBLE", - "safeName": "DOUBLE" - }, - "pascalCase": { - "unsafeName": "Double", - "safeName": "Double" - } - }, - "wireValue": "double" - }, - "valueType": { - "_type": "container", - "container": { - "_type": "optional", - "optional": { - "_type": "primitive", - "primitive": "DOUBLE" - } - } - }, - "availability": null, - "docs": null - }, - { - "name": { - "name": { - "originalName": "bool", - "camelCase": { - "unsafeName": "bool", - "safeName": "bool" - }, - "snakeCase": { - "unsafeName": "bool", - "safeName": "bool" - }, - "screamingSnakeCase": { - "unsafeName": "BOOL", - "safeName": "BOOL" - }, - "pascalCase": { - "unsafeName": "Bool", - "safeName": "Bool" - } - }, - "wireValue": "bool" - }, - "valueType": { - "_type": "container", - "container": { - "_type": "optional", - "optional": { - "_type": "primitive", - "primitive": "BOOLEAN" - } - } - }, - "availability": null, - "docs": null - }, - { - "name": { - "name": { - "originalName": "datetime", - "camelCase": { - "unsafeName": "datetime", - "safeName": "datetime" - }, - "snakeCase": { - "unsafeName": "datetime", - "safeName": "datetime" - }, - "screamingSnakeCase": { - "unsafeName": "DATETIME", - "safeName": "DATETIME" - }, - "pascalCase": { - "unsafeName": "Datetime", - "safeName": "Datetime" - } - }, - "wireValue": "datetime" - }, - "valueType": { - "_type": "container", - "container": { - "_type": "optional", - "optional": { - "_type": "primitive", - "primitive": "DATE_TIME" - } - } - }, - "availability": null, - "docs": null - }, - { - "name": { - "name": { - "originalName": "date", - "camelCase": { - "unsafeName": "date", - "safeName": "date" - }, - "snakeCase": { - "unsafeName": "date", - "safeName": "date" - }, - "screamingSnakeCase": { - "unsafeName": "DATE", - "safeName": "DATE" - }, - "pascalCase": { - "unsafeName": "Date", - "safeName": "Date_" - } - }, - "wireValue": "date" - }, - "valueType": { - "_type": "container", - "container": { - "_type": "optional", - "optional": { - "_type": "primitive", - "primitive": "DATE" - } - } - }, - "availability": null, - "docs": null - }, - { - "name": { - "name": { - "originalName": "uuid", - "camelCase": { - "unsafeName": "uuid", - "safeName": "uuid" - }, - "snakeCase": { - "unsafeName": "uuid", - "safeName": "uuid" - }, - "screamingSnakeCase": { - "unsafeName": "UUID", - "safeName": "UUID" - }, - "pascalCase": { - "unsafeName": "Uuid", - "safeName": "Uuid" - } - }, - "wireValue": "uuid" - }, - "valueType": { - "_type": "container", - "container": { - "_type": "optional", - "optional": { - "_type": "primitive", - "primitive": "UUID" - } - } - }, - "availability": null, - "docs": null - }, - { - "name": { - "name": { - "originalName": "base64", - "camelCase": { - "unsafeName": "base64", - "safeName": "base64" - }, - "snakeCase": { - "unsafeName": "base_64", - "safeName": "base_64" - }, - "screamingSnakeCase": { - "unsafeName": "BASE_64", - "safeName": "BASE_64" - }, - "pascalCase": { - "unsafeName": "Base64", - "safeName": "Base64" - } - }, - "wireValue": "base64" - }, - "valueType": { - "_type": "container", - "container": { - "_type": "optional", - "optional": { - "_type": "primitive", - "primitive": "BASE_64" - } - } - }, - "availability": null, - "docs": null - }, - { - "name": { - "name": { - "originalName": "list", - "camelCase": { - "unsafeName": "list", - "safeName": "list" - }, - "snakeCase": { - "unsafeName": "list", - "safeName": "list" - }, - "screamingSnakeCase": { - "unsafeName": "LIST", - "safeName": "LIST" - }, - "pascalCase": { - "unsafeName": "List", - "safeName": "List" - } - }, - "wireValue": "list" - }, - "valueType": { - "_type": "container", - "container": { - "_type": "optional", - "optional": { - "_type": "container", - "container": { - "_type": "list", - "list": { - "_type": "primitive", - "primitive": "STRING" - } - } - } - } - }, - "availability": null, - "docs": null - }, - { - "name": { - "name": { - "originalName": "set", - "camelCase": { - "unsafeName": "set", - "safeName": "set_" - }, - "snakeCase": { - "unsafeName": "set", - "safeName": "set_" - }, - "screamingSnakeCase": { - "unsafeName": "SET", - "safeName": "SET" - }, - "pascalCase": { - "unsafeName": "Set", - "safeName": "Set" - } - }, - "wireValue": "set" - }, - "valueType": { - "_type": "container", - "container": { - "_type": "optional", - "optional": { - "_type": "container", - "container": { - "_type": "set", - "set": { - "_type": "primitive", - "primitive": "STRING" - } - } - } - } - }, - "availability": null, - "docs": null - }, - { - "name": { - "name": { - "originalName": "map", - "camelCase": { - "unsafeName": "map", - "safeName": "map" - }, - "snakeCase": { - "unsafeName": "map", - "safeName": "map" - }, - "screamingSnakeCase": { - "unsafeName": "MAP", - "safeName": "MAP" - }, - "pascalCase": { - "unsafeName": "Map", - "safeName": "Map" - } - }, - "wireValue": "map" - }, - "valueType": { - "_type": "container", - "container": { - "_type": "optional", - "optional": { - "_type": "container", - "container": { - "_type": "map", - "keyType": { - "_type": "primitive", - "primitive": "INTEGER" - }, - "valueType": { - "_type": "primitive", - "primitive": "STRING" - } - } - } - } - }, - "availability": null, - "docs": null - } - ], - "extra-properties": false - }, - "referencedTypes": [], - "examples": [], - "availability": null, - "docs": null - }, - "type_types/object:ObjectWithRequiredField": { - "name": { - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithRequiredField" - }, - "shape": { - "_type": "object", - "extends": [], - "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" - }, - "valueType": { - "_type": "primitive", - "primitive": "STRING" - }, - "availability": null, - "docs": null - } - ], - "extra-properties": false - }, - "referencedTypes": [], - "examples": [], - "availability": null, - "docs": null - }, - "type_types/object:ObjectWithMapOfMap": { - "name": { - "name": { - "originalName": "ObjectWithMapOfMap", - "camelCase": { - "unsafeName": "objectWithMapOfMap", - "safeName": "objectWithMapOfMap" - }, - "snakeCase": { - "unsafeName": "object_with_map_of_map", - "safeName": "object_with_map_of_map" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_MAP_OF_MAP", - "safeName": "OBJECT_WITH_MAP_OF_MAP" - }, - "pascalCase": { - "unsafeName": "ObjectWithMapOfMap", - "safeName": "ObjectWithMapOfMap" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithMapOfMap" - }, - "shape": { - "_type": "object", - "extends": [], - "properties": [ - { - "name": { - "name": { - "originalName": "map", - "camelCase": { - "unsafeName": "map", - "safeName": "map" - }, - "snakeCase": { - "unsafeName": "map", - "safeName": "map" - }, - "screamingSnakeCase": { - "unsafeName": "MAP", - "safeName": "MAP" - }, - "pascalCase": { - "unsafeName": "Map", - "safeName": "Map" - } - }, - "wireValue": "map" - }, - "valueType": { - "_type": "container", - "container": { - "_type": "map", - "keyType": { - "_type": "primitive", - "primitive": "STRING" - }, - "valueType": { - "_type": "container", - "container": { - "_type": "map", - "keyType": { - "_type": "primitive", - "primitive": "STRING" - }, - "valueType": { - "_type": "primitive", - "primitive": "STRING" - } - } - } - } - }, - "availability": null, - "docs": null - } - ], - "extra-properties": false - }, - "referencedTypes": [], - "examples": [], - "availability": null, - "docs": null - }, - "type_types/object:NestedObjectWithOptionalField": { - "name": { - "name": { - "originalName": "NestedObjectWithOptionalField", - "camelCase": { - "unsafeName": "nestedObjectWithOptionalField", - "safeName": "nestedObjectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "nested_object_with_optional_field", - "safeName": "nested_object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "NESTED_OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "NESTED_OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "NestedObjectWithOptionalField", - "safeName": "NestedObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:NestedObjectWithOptionalField" - }, - "shape": { - "_type": "object", - "extends": [], - "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" - }, - "valueType": { - "_type": "container", - "container": { - "_type": "optional", - "optional": { - "_type": "primitive", - "primitive": "STRING" - } - } - }, - "availability": null, - "docs": null - }, - { - "name": { - "name": { - "originalName": "NestedObject", - "camelCase": { - "unsafeName": "nestedObject", - "safeName": "nestedObject" - }, - "snakeCase": { - "unsafeName": "nested_object", - "safeName": "nested_object" - }, - "screamingSnakeCase": { - "unsafeName": "NESTED_OBJECT", - "safeName": "NESTED_OBJECT" - }, - "pascalCase": { - "unsafeName": "NestedObject", - "safeName": "NestedObject" - } - }, - "wireValue": "NestedObject" - }, - "valueType": { - "_type": "container", - "container": { - "_type": "optional", - "optional": { - "_type": "named", - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - } - }, - "availability": null, - "docs": null - } - ], - "extra-properties": false - }, - "referencedTypes": [ - "type_types/object:ObjectWithOptionalField" - ], - "examples": [], - "availability": null, - "docs": null - }, - "type_types/object:NestedObjectWithRequiredField": { - "name": { - "name": { - "originalName": "NestedObjectWithRequiredField", - "camelCase": { - "unsafeName": "nestedObjectWithRequiredField", - "safeName": "nestedObjectWithRequiredField" - }, - "snakeCase": { - "unsafeName": "nested_object_with_required_field", - "safeName": "nested_object_with_required_field" - }, - "screamingSnakeCase": { - "unsafeName": "NESTED_OBJECT_WITH_REQUIRED_FIELD", - "safeName": "NESTED_OBJECT_WITH_REQUIRED_FIELD" - }, - "pascalCase": { - "unsafeName": "NestedObjectWithRequiredField", - "safeName": "NestedObjectWithRequiredField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:NestedObjectWithRequiredField" - }, - "shape": { - "_type": "object", - "extends": [], - "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" - }, - "valueType": { - "_type": "primitive", - "primitive": "STRING" - }, - "availability": null, - "docs": null - }, - { - "name": { - "name": { - "originalName": "NestedObject", - "camelCase": { - "unsafeName": "nestedObject", - "safeName": "nestedObject" - }, - "snakeCase": { - "unsafeName": "nested_object", - "safeName": "nested_object" - }, - "screamingSnakeCase": { - "unsafeName": "NESTED_OBJECT", - "safeName": "NESTED_OBJECT" - }, - "pascalCase": { - "unsafeName": "NestedObject", - "safeName": "NestedObject" - } - }, - "wireValue": "NestedObject" - }, - "valueType": { - "_type": "named", - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - }, - "availability": null, - "docs": null - } - ], - "extra-properties": false - }, - "referencedTypes": [ - "type_types/object:ObjectWithOptionalField" - ], - "examples": [], - "availability": null, - "docs": null - }, - "type_types/union:Animal": { - "name": { - "name": { - "originalName": "Animal", - "camelCase": { - "unsafeName": "animal", - "safeName": "animal" - }, - "snakeCase": { - "unsafeName": "animal", - "safeName": "animal" - }, - "screamingSnakeCase": { - "unsafeName": "ANIMAL", - "safeName": "ANIMAL" - }, - "pascalCase": { - "unsafeName": "Animal", - "safeName": "Animal" - } - }, - "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": "union", - "camelCase": { - "unsafeName": "union", - "safeName": "union" - }, - "snakeCase": { - "unsafeName": "union", - "safeName": "union" - }, - "screamingSnakeCase": { - "unsafeName": "UNION", - "safeName": "UNION" - }, - "pascalCase": { - "unsafeName": "Union", - "safeName": "Union" - } - } - ], - "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": "union", - "camelCase": { - "unsafeName": "union", - "safeName": "union" - }, - "snakeCase": { - "unsafeName": "union", - "safeName": "union" - }, - "screamingSnakeCase": { - "unsafeName": "UNION", - "safeName": "UNION" - }, - "pascalCase": { - "unsafeName": "Union", - "safeName": "Union" - } - } - }, - "typeId": "type_types/union:Animal" - }, - "shape": { - "_type": "union", - "discriminant": { - "name": { - "originalName": "animal", - "camelCase": { - "unsafeName": "animal", - "safeName": "animal" - }, - "snakeCase": { - "unsafeName": "animal", - "safeName": "animal" - }, - "screamingSnakeCase": { - "unsafeName": "ANIMAL", - "safeName": "ANIMAL" - }, - "pascalCase": { - "unsafeName": "Animal", - "safeName": "Animal" - } - }, - "wireValue": "animal" - }, - "extends": [], - "baseProperties": [], - "types": [ - { - "discriminantValue": { - "name": { - "originalName": "dog", - "camelCase": { - "unsafeName": "dog", - "safeName": "dog" - }, - "snakeCase": { - "unsafeName": "dog", - "safeName": "dog" - }, - "screamingSnakeCase": { - "unsafeName": "DOG", - "safeName": "DOG" - }, - "pascalCase": { - "unsafeName": "Dog", - "safeName": "Dog" - } - }, - "wireValue": "dog" - }, - "shape": { - "_type": "samePropertiesAsObject", - "name": { - "originalName": "Dog", - "camelCase": { - "unsafeName": "dog", - "safeName": "dog" - }, - "snakeCase": { - "unsafeName": "dog", - "safeName": "dog" - }, - "screamingSnakeCase": { - "unsafeName": "DOG", - "safeName": "DOG" - }, - "pascalCase": { - "unsafeName": "Dog", - "safeName": "Dog" - } - }, - "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": "union", - "camelCase": { - "unsafeName": "union", - "safeName": "union" - }, - "snakeCase": { - "unsafeName": "union", - "safeName": "union" - }, - "screamingSnakeCase": { - "unsafeName": "UNION", - "safeName": "UNION" - }, - "pascalCase": { - "unsafeName": "Union", - "safeName": "Union" - } - } - ], - "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": "union", - "camelCase": { - "unsafeName": "union", - "safeName": "union" - }, - "snakeCase": { - "unsafeName": "union", - "safeName": "union" - }, - "screamingSnakeCase": { - "unsafeName": "UNION", - "safeName": "UNION" - }, - "pascalCase": { - "unsafeName": "Union", - "safeName": "Union" - } - } - }, - "typeId": "type_types/union:Dog" - }, - "docs": null - }, - { - "discriminantValue": { - "name": { - "originalName": "cat", - "camelCase": { - "unsafeName": "cat", - "safeName": "cat" - }, - "snakeCase": { - "unsafeName": "cat", - "safeName": "cat" - }, - "screamingSnakeCase": { - "unsafeName": "CAT", - "safeName": "CAT" - }, - "pascalCase": { - "unsafeName": "Cat", - "safeName": "Cat" - } - }, - "wireValue": "cat" - }, - "shape": { - "_type": "samePropertiesAsObject", - "name": { - "originalName": "Cat", - "camelCase": { - "unsafeName": "cat", - "safeName": "cat" - }, - "snakeCase": { - "unsafeName": "cat", - "safeName": "cat" - }, - "screamingSnakeCase": { - "unsafeName": "CAT", - "safeName": "CAT" - }, - "pascalCase": { - "unsafeName": "Cat", - "safeName": "Cat" - } - }, - "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": "union", - "camelCase": { - "unsafeName": "union", - "safeName": "union" - }, - "snakeCase": { - "unsafeName": "union", - "safeName": "union" - }, - "screamingSnakeCase": { - "unsafeName": "UNION", - "safeName": "UNION" - }, - "pascalCase": { - "unsafeName": "Union", - "safeName": "Union" - } - } - ], - "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": "union", - "camelCase": { - "unsafeName": "union", - "safeName": "union" - }, - "snakeCase": { - "unsafeName": "union", - "safeName": "union" - }, - "screamingSnakeCase": { - "unsafeName": "UNION", - "safeName": "UNION" - }, - "pascalCase": { - "unsafeName": "Union", - "safeName": "Union" - } - } - }, - "typeId": "type_types/union:Cat" - }, - "docs": null - } - ] - }, - "referencedTypes": [ - "type_types/union:Dog", - "type_types/union:Cat" - ], - "examples": [], - "availability": null, - "docs": null - }, - "type_types/union:Dog": { - "name": { - "name": { - "originalName": "Dog", - "camelCase": { - "unsafeName": "dog", - "safeName": "dog" - }, - "snakeCase": { - "unsafeName": "dog", - "safeName": "dog" - }, - "screamingSnakeCase": { - "unsafeName": "DOG", - "safeName": "DOG" - }, - "pascalCase": { - "unsafeName": "Dog", - "safeName": "Dog" - } - }, - "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": "union", - "camelCase": { - "unsafeName": "union", - "safeName": "union" - }, - "snakeCase": { - "unsafeName": "union", - "safeName": "union" - }, - "screamingSnakeCase": { - "unsafeName": "UNION", - "safeName": "UNION" - }, - "pascalCase": { - "unsafeName": "Union", - "safeName": "Union" - } - } - ], - "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": "union", - "camelCase": { - "unsafeName": "union", - "safeName": "union" - }, - "snakeCase": { - "unsafeName": "union", - "safeName": "union" - }, - "screamingSnakeCase": { - "unsafeName": "UNION", - "safeName": "UNION" - }, - "pascalCase": { - "unsafeName": "Union", - "safeName": "Union" - } - } - }, - "typeId": "type_types/union:Dog" - }, - "shape": { - "_type": "object", - "extends": [], - "properties": [ - { - "name": { - "name": { - "originalName": "name", - "camelCase": { - "unsafeName": "name", - "safeName": "name" - }, - "snakeCase": { - "unsafeName": "name", - "safeName": "name" - }, - "screamingSnakeCase": { - "unsafeName": "NAME", - "safeName": "NAME" - }, - "pascalCase": { - "unsafeName": "Name", - "safeName": "Name" - } - }, - "wireValue": "name" - }, - "valueType": { - "_type": "primitive", - "primitive": "STRING" - }, - "availability": null, - "docs": null - }, - { - "name": { - "name": { - "originalName": "likesToWoof", - "camelCase": { - "unsafeName": "likesToWoof", - "safeName": "likesToWoof" - }, - "snakeCase": { - "unsafeName": "likes_to_woof", - "safeName": "likes_to_woof" - }, - "screamingSnakeCase": { - "unsafeName": "LIKES_TO_WOOF", - "safeName": "LIKES_TO_WOOF" - }, - "pascalCase": { - "unsafeName": "LikesToWoof", - "safeName": "LikesToWoof" - } - }, - "wireValue": "likesToWoof" - }, - "valueType": { - "_type": "primitive", - "primitive": "BOOLEAN" - }, - "availability": null, - "docs": null - } - ], - "extra-properties": false - }, - "referencedTypes": [], - "examples": [], - "availability": null, - "docs": null - }, - "type_types/union:Cat": { - "name": { - "name": { - "originalName": "Cat", - "camelCase": { - "unsafeName": "cat", - "safeName": "cat" - }, - "snakeCase": { - "unsafeName": "cat", - "safeName": "cat" - }, - "screamingSnakeCase": { - "unsafeName": "CAT", - "safeName": "CAT" - }, - "pascalCase": { - "unsafeName": "Cat", - "safeName": "Cat" - } - }, - "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": "union", - "camelCase": { - "unsafeName": "union", - "safeName": "union" - }, - "snakeCase": { - "unsafeName": "union", - "safeName": "union" - }, - "screamingSnakeCase": { - "unsafeName": "UNION", - "safeName": "UNION" - }, - "pascalCase": { - "unsafeName": "Union", - "safeName": "Union" - } - } - ], - "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": "union", - "camelCase": { - "unsafeName": "union", - "safeName": "union" - }, - "snakeCase": { - "unsafeName": "union", - "safeName": "union" - }, - "screamingSnakeCase": { - "unsafeName": "UNION", - "safeName": "UNION" - }, - "pascalCase": { - "unsafeName": "Union", - "safeName": "Union" - } - } - }, - "typeId": "type_types/union:Cat" - }, - "shape": { - "_type": "object", - "extends": [], - "properties": [ - { - "name": { - "name": { - "originalName": "name", - "camelCase": { - "unsafeName": "name", - "safeName": "name" - }, - "snakeCase": { - "unsafeName": "name", - "safeName": "name" - }, - "screamingSnakeCase": { - "unsafeName": "NAME", - "safeName": "NAME" - }, - "pascalCase": { - "unsafeName": "Name", - "safeName": "Name" - } - }, - "wireValue": "name" - }, - "valueType": { - "_type": "primitive", - "primitive": "STRING" - }, - "availability": null, - "docs": null - }, - { - "name": { - "name": { - "originalName": "likesToMeow", - "camelCase": { - "unsafeName": "likesToMeow", - "safeName": "likesToMeow" - }, - "snakeCase": { - "unsafeName": "likes_to_meow", - "safeName": "likes_to_meow" - }, - "screamingSnakeCase": { - "unsafeName": "LIKES_TO_MEOW", - "safeName": "LIKES_TO_MEOW" - }, - "pascalCase": { - "unsafeName": "LikesToMeow", - "safeName": "LikesToMeow" - } - }, - "wireValue": "likesToMeow" - }, - "valueType": { - "_type": "primitive", - "primitive": "BOOLEAN" - }, - "availability": null, - "docs": null - } - ], - "extra-properties": false - }, - "referencedTypes": [], - "examples": [], - "availability": null, - "docs": null - } - }, - "errors": { - "error_general-errors:BadRequestBody": { - "name": { - "name": { - "originalName": "BadRequestBody", - "camelCase": { - "unsafeName": "badRequestBody", - "safeName": "badRequestBody" - }, - "snakeCase": { - "unsafeName": "bad_request_body", - "safeName": "bad_request_body" - }, - "screamingSnakeCase": { - "unsafeName": "BAD_REQUEST_BODY", - "safeName": "BAD_REQUEST_BODY" - }, - "pascalCase": { - "unsafeName": "BadRequestBody", - "safeName": "BadRequestBody" - } - }, - "fernFilepath": { - "allParts": [ - { - "originalName": "general-errors", - "camelCase": { - "unsafeName": "generalErrors", - "safeName": "generalErrors" - }, - "snakeCase": { - "unsafeName": "general_errors", - "safeName": "general_errors" - }, - "screamingSnakeCase": { - "unsafeName": "GENERAL_ERRORS", - "safeName": "GENERAL_ERRORS" - }, - "pascalCase": { - "unsafeName": "GeneralErrors", - "safeName": "GeneralErrors" - } - } - ], - "packagePath": [], - "file": { - "originalName": "general-errors", - "camelCase": { - "unsafeName": "generalErrors", - "safeName": "generalErrors" - }, - "snakeCase": { - "unsafeName": "general_errors", - "safeName": "general_errors" - }, - "screamingSnakeCase": { - "unsafeName": "GENERAL_ERRORS", - "safeName": "GENERAL_ERRORS" - }, - "pascalCase": { - "unsafeName": "GeneralErrors", - "safeName": "GeneralErrors" - } - } - }, - "errorId": "error_general-errors:BadRequestBody" - }, - "discriminantValue": { - "name": { - "originalName": "BadRequestBody", - "camelCase": { - "unsafeName": "badRequestBody", - "safeName": "badRequestBody" - }, - "snakeCase": { - "unsafeName": "bad_request_body", - "safeName": "bad_request_body" - }, - "screamingSnakeCase": { - "unsafeName": "BAD_REQUEST_BODY", - "safeName": "BAD_REQUEST_BODY" - }, - "pascalCase": { - "unsafeName": "BadRequestBody", - "safeName": "BadRequestBody" - } - }, - "wireValue": "BadRequestBody" - }, - "statusCode": 400, - "type": { - "_type": "named", - "name": { - "originalName": "BadObjectRequestInfo", - "camelCase": { - "unsafeName": "badObjectRequestInfo", - "safeName": "badObjectRequestInfo" - }, - "snakeCase": { - "unsafeName": "bad_object_request_info", - "safeName": "bad_object_request_info" - }, - "screamingSnakeCase": { - "unsafeName": "BAD_OBJECT_REQUEST_INFO", - "safeName": "BAD_OBJECT_REQUEST_INFO" - }, - "pascalCase": { - "unsafeName": "BadObjectRequestInfo", - "safeName": "BadObjectRequestInfo" - } - }, - "fernFilepath": { - "allParts": [ - { - "originalName": "general-errors", - "camelCase": { - "unsafeName": "generalErrors", - "safeName": "generalErrors" - }, - "snakeCase": { - "unsafeName": "general_errors", - "safeName": "general_errors" - }, - "screamingSnakeCase": { - "unsafeName": "GENERAL_ERRORS", - "safeName": "GENERAL_ERRORS" - }, - "pascalCase": { - "unsafeName": "GeneralErrors", - "safeName": "GeneralErrors" - } - } - ], - "packagePath": [], - "file": { - "originalName": "general-errors", - "camelCase": { - "unsafeName": "generalErrors", - "safeName": "generalErrors" - }, - "snakeCase": { - "unsafeName": "general_errors", - "safeName": "general_errors" - }, - "screamingSnakeCase": { - "unsafeName": "GENERAL_ERRORS", - "safeName": "GENERAL_ERRORS" - }, - "pascalCase": { - "unsafeName": "GeneralErrors", - "safeName": "GeneralErrors" - } - } - }, - "typeId": "type_general-errors:BadObjectRequestInfo" - }, - "examples": [], - "docs": null - }, - "error_types/enum:ErrorWithEnumBody": { - "name": { - "name": { - "originalName": "ErrorWithEnumBody", - "camelCase": { - "unsafeName": "errorWithEnumBody", - "safeName": "errorWithEnumBody" - }, - "snakeCase": { - "unsafeName": "error_with_enum_body", - "safeName": "error_with_enum_body" - }, - "screamingSnakeCase": { - "unsafeName": "ERROR_WITH_ENUM_BODY", - "safeName": "ERROR_WITH_ENUM_BODY" - }, - "pascalCase": { - "unsafeName": "ErrorWithEnumBody", - "safeName": "ErrorWithEnumBody" - } - }, - "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": "enum", - "camelCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "snakeCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "screamingSnakeCase": { - "unsafeName": "ENUM", - "safeName": "ENUM" - }, - "pascalCase": { - "unsafeName": "Enum", - "safeName": "Enum" - } - } - ], - "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": "enum", - "camelCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "snakeCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "screamingSnakeCase": { - "unsafeName": "ENUM", - "safeName": "ENUM" - }, - "pascalCase": { - "unsafeName": "Enum", - "safeName": "Enum" - } - } - }, - "errorId": "error_types/enum:ErrorWithEnumBody" - }, - "discriminantValue": { - "name": { - "originalName": "ErrorWithEnumBody", - "camelCase": { - "unsafeName": "errorWithEnumBody", - "safeName": "errorWithEnumBody" - }, - "snakeCase": { - "unsafeName": "error_with_enum_body", - "safeName": "error_with_enum_body" - }, - "screamingSnakeCase": { - "unsafeName": "ERROR_WITH_ENUM_BODY", - "safeName": "ERROR_WITH_ENUM_BODY" - }, - "pascalCase": { - "unsafeName": "ErrorWithEnumBody", - "safeName": "ErrorWithEnumBody" - } - }, - "wireValue": "ErrorWithEnumBody" - }, - "statusCode": 400, - "type": { - "_type": "named", - "name": { - "originalName": "WeatherReport", - "camelCase": { - "unsafeName": "weatherReport", - "safeName": "weatherReport" - }, - "snakeCase": { - "unsafeName": "weather_report", - "safeName": "weather_report" - }, - "screamingSnakeCase": { - "unsafeName": "WEATHER_REPORT", - "safeName": "WEATHER_REPORT" - }, - "pascalCase": { - "unsafeName": "WeatherReport", - "safeName": "WeatherReport" - } - }, - "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": "enum", - "camelCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "snakeCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "screamingSnakeCase": { - "unsafeName": "ENUM", - "safeName": "ENUM" - }, - "pascalCase": { - "unsafeName": "Enum", - "safeName": "Enum" - } - } - ], - "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": "enum", - "camelCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "snakeCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "screamingSnakeCase": { - "unsafeName": "ENUM", - "safeName": "ENUM" - }, - "pascalCase": { - "unsafeName": "Enum", - "safeName": "Enum" - } - } - }, - "typeId": "type_types/enum:WeatherReport" - }, - "examples": [], - "docs": null - }, - "error_types/object:ObjectWithOptionalFieldError": { - "name": { - "name": { - "originalName": "ObjectWithOptionalFieldError", - "camelCase": { - "unsafeName": "objectWithOptionalFieldError", - "safeName": "objectWithOptionalFieldError" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field_error", - "safeName": "object_with_optional_field_error" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD_ERROR", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD_ERROR" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalFieldError", - "safeName": "ObjectWithOptionalFieldError" - } - }, - "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_" - } - } - }, - "errorId": "error_types/object:ObjectWithOptionalFieldError" - }, - "discriminantValue": { - "name": { - "originalName": "ObjectWithOptionalFieldError", - "camelCase": { - "unsafeName": "objectWithOptionalFieldError", - "safeName": "objectWithOptionalFieldError" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field_error", - "safeName": "object_with_optional_field_error" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD_ERROR", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD_ERROR" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalFieldError", - "safeName": "ObjectWithOptionalFieldError" - } - }, - "wireValue": "ObjectWithOptionalFieldError" - }, - "statusCode": 400, - "type": { - "_type": "named", - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - }, - "examples": [], - "docs": null - }, - "error_types/object:ObjectWithRequiredFieldError": { - "name": { - "name": { - "originalName": "ObjectWithRequiredFieldError", - "camelCase": { - "unsafeName": "objectWithRequiredFieldError", - "safeName": "objectWithRequiredFieldError" - }, - "snakeCase": { - "unsafeName": "object_with_required_field_error", - "safeName": "object_with_required_field_error" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_REQUIRED_FIELD_ERROR", - "safeName": "OBJECT_WITH_REQUIRED_FIELD_ERROR" - }, - "pascalCase": { - "unsafeName": "ObjectWithRequiredFieldError", - "safeName": "ObjectWithRequiredFieldError" - } - }, - "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_" - } - } - }, - "errorId": "error_types/object:ObjectWithRequiredFieldError" - }, - "discriminantValue": { - "name": { - "originalName": "ObjectWithRequiredFieldError", - "camelCase": { - "unsafeName": "objectWithRequiredFieldError", - "safeName": "objectWithRequiredFieldError" - }, - "snakeCase": { - "unsafeName": "object_with_required_field_error", - "safeName": "object_with_required_field_error" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_REQUIRED_FIELD_ERROR", - "safeName": "OBJECT_WITH_REQUIRED_FIELD_ERROR" - }, - "pascalCase": { - "unsafeName": "ObjectWithRequiredFieldError", - "safeName": "ObjectWithRequiredFieldError" - } - }, - "wireValue": "ObjectWithRequiredFieldError" - }, - "statusCode": 400, - "type": { - "_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_" - } - } - }, - "typeId": "type_types/object:ObjectWithRequiredField" - }, - "examples": [], - "docs": null - }, - "error_types/object:NestedObjectWithOptionalFieldError": { - "name": { - "name": { - "originalName": "NestedObjectWithOptionalFieldError", - "camelCase": { - "unsafeName": "nestedObjectWithOptionalFieldError", - "safeName": "nestedObjectWithOptionalFieldError" - }, - "snakeCase": { - "unsafeName": "nested_object_with_optional_field_error", - "safeName": "nested_object_with_optional_field_error" - }, - "screamingSnakeCase": { - "unsafeName": "NESTED_OBJECT_WITH_OPTIONAL_FIELD_ERROR", - "safeName": "NESTED_OBJECT_WITH_OPTIONAL_FIELD_ERROR" - }, - "pascalCase": { - "unsafeName": "NestedObjectWithOptionalFieldError", - "safeName": "NestedObjectWithOptionalFieldError" - } - }, - "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_" - } - } - }, - "errorId": "error_types/object:NestedObjectWithOptionalFieldError" - }, - "discriminantValue": { - "name": { - "originalName": "NestedObjectWithOptionalFieldError", - "camelCase": { - "unsafeName": "nestedObjectWithOptionalFieldError", - "safeName": "nestedObjectWithOptionalFieldError" - }, - "snakeCase": { - "unsafeName": "nested_object_with_optional_field_error", - "safeName": "nested_object_with_optional_field_error" - }, - "screamingSnakeCase": { - "unsafeName": "NESTED_OBJECT_WITH_OPTIONAL_FIELD_ERROR", - "safeName": "NESTED_OBJECT_WITH_OPTIONAL_FIELD_ERROR" - }, - "pascalCase": { - "unsafeName": "NestedObjectWithOptionalFieldError", - "safeName": "NestedObjectWithOptionalFieldError" - } - }, - "wireValue": "NestedObjectWithOptionalFieldError" - }, - "statusCode": 400, - "type": { - "_type": "named", - "name": { - "originalName": "NestedObjectWithOptionalField", - "camelCase": { - "unsafeName": "nestedObjectWithOptionalField", - "safeName": "nestedObjectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "nested_object_with_optional_field", - "safeName": "nested_object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "NESTED_OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "NESTED_OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "NestedObjectWithOptionalField", - "safeName": "NestedObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:NestedObjectWithOptionalField" - }, - "examples": [], - "docs": null - }, - "error_types/object:NestedObjectWithRequiredFieldError": { - "name": { - "name": { - "originalName": "NestedObjectWithRequiredFieldError", - "camelCase": { - "unsafeName": "nestedObjectWithRequiredFieldError", - "safeName": "nestedObjectWithRequiredFieldError" - }, - "snakeCase": { - "unsafeName": "nested_object_with_required_field_error", - "safeName": "nested_object_with_required_field_error" - }, - "screamingSnakeCase": { - "unsafeName": "NESTED_OBJECT_WITH_REQUIRED_FIELD_ERROR", - "safeName": "NESTED_OBJECT_WITH_REQUIRED_FIELD_ERROR" - }, - "pascalCase": { - "unsafeName": "NestedObjectWithRequiredFieldError", - "safeName": "NestedObjectWithRequiredFieldError" - } - }, - "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_" - } - } - }, - "errorId": "error_types/object:NestedObjectWithRequiredFieldError" - }, - "discriminantValue": { - "name": { - "originalName": "NestedObjectWithRequiredFieldError", - "camelCase": { - "unsafeName": "nestedObjectWithRequiredFieldError", - "safeName": "nestedObjectWithRequiredFieldError" - }, - "snakeCase": { - "unsafeName": "nested_object_with_required_field_error", - "safeName": "nested_object_with_required_field_error" - }, - "screamingSnakeCase": { - "unsafeName": "NESTED_OBJECT_WITH_REQUIRED_FIELD_ERROR", - "safeName": "NESTED_OBJECT_WITH_REQUIRED_FIELD_ERROR" - }, - "pascalCase": { - "unsafeName": "NestedObjectWithRequiredFieldError", - "safeName": "NestedObjectWithRequiredFieldError" - } - }, - "wireValue": "NestedObjectWithRequiredFieldError" - }, - "statusCode": 400, - "type": { - "_type": "named", - "name": { - "originalName": "NestedObjectWithRequiredField", - "camelCase": { - "unsafeName": "nestedObjectWithRequiredField", - "safeName": "nestedObjectWithRequiredField" - }, - "snakeCase": { - "unsafeName": "nested_object_with_required_field", - "safeName": "nested_object_with_required_field" - }, - "screamingSnakeCase": { - "unsafeName": "NESTED_OBJECT_WITH_REQUIRED_FIELD", - "safeName": "NESTED_OBJECT_WITH_REQUIRED_FIELD" - }, - "pascalCase": { - "unsafeName": "NestedObjectWithRequiredField", - "safeName": "NestedObjectWithRequiredField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:NestedObjectWithRequiredField" - }, - "examples": [], - "docs": null - }, - "error_types/union:ErrorWithUnionBody": { - "name": { - "name": { - "originalName": "ErrorWithUnionBody", - "camelCase": { - "unsafeName": "errorWithUnionBody", - "safeName": "errorWithUnionBody" - }, - "snakeCase": { - "unsafeName": "error_with_union_body", - "safeName": "error_with_union_body" - }, - "screamingSnakeCase": { - "unsafeName": "ERROR_WITH_UNION_BODY", - "safeName": "ERROR_WITH_UNION_BODY" - }, - "pascalCase": { - "unsafeName": "ErrorWithUnionBody", - "safeName": "ErrorWithUnionBody" - } - }, - "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": "union", - "camelCase": { - "unsafeName": "union", - "safeName": "union" - }, - "snakeCase": { - "unsafeName": "union", - "safeName": "union" - }, - "screamingSnakeCase": { - "unsafeName": "UNION", - "safeName": "UNION" - }, - "pascalCase": { - "unsafeName": "Union", - "safeName": "Union" - } - } - ], - "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": "union", - "camelCase": { - "unsafeName": "union", - "safeName": "union" - }, - "snakeCase": { - "unsafeName": "union", - "safeName": "union" - }, - "screamingSnakeCase": { - "unsafeName": "UNION", - "safeName": "UNION" - }, - "pascalCase": { - "unsafeName": "Union", - "safeName": "Union" - } - } - }, - "errorId": "error_types/union:ErrorWithUnionBody" - }, - "discriminantValue": { - "name": { - "originalName": "ErrorWithUnionBody", - "camelCase": { - "unsafeName": "errorWithUnionBody", - "safeName": "errorWithUnionBody" - }, - "snakeCase": { - "unsafeName": "error_with_union_body", - "safeName": "error_with_union_body" - }, - "screamingSnakeCase": { - "unsafeName": "ERROR_WITH_UNION_BODY", - "safeName": "ERROR_WITH_UNION_BODY" - }, - "pascalCase": { - "unsafeName": "ErrorWithUnionBody", - "safeName": "ErrorWithUnionBody" - } - }, - "wireValue": "ErrorWithUnionBody" - }, - "statusCode": 400, - "type": { - "_type": "named", - "name": { - "originalName": "Animal", - "camelCase": { - "unsafeName": "animal", - "safeName": "animal" - }, - "snakeCase": { - "unsafeName": "animal", - "safeName": "animal" - }, - "screamingSnakeCase": { - "unsafeName": "ANIMAL", - "safeName": "ANIMAL" - }, - "pascalCase": { - "unsafeName": "Animal", - "safeName": "Animal" - } - }, - "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": "union", - "camelCase": { - "unsafeName": "union", - "safeName": "union" - }, - "snakeCase": { - "unsafeName": "union", - "safeName": "union" - }, - "screamingSnakeCase": { - "unsafeName": "UNION", - "safeName": "UNION" - }, - "pascalCase": { - "unsafeName": "Union", - "safeName": "Union" - } - } - ], - "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": "union", - "camelCase": { - "unsafeName": "union", - "safeName": "union" - }, - "snakeCase": { - "unsafeName": "union", - "safeName": "union" - }, - "screamingSnakeCase": { - "unsafeName": "UNION", - "safeName": "UNION" - }, - "pascalCase": { - "unsafeName": "Union", - "safeName": "Union" - } - } - }, - "typeId": "type_types/union:Animal" - }, - "examples": [], - "docs": null - } - }, - "services": { - "service_endpoints/container": { - "availability": null, - "name": { - "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": "container", - "camelCase": { - "unsafeName": "container", - "safeName": "container" - }, - "snakeCase": { - "unsafeName": "container", - "safeName": "container" - }, - "screamingSnakeCase": { - "unsafeName": "CONTAINER", - "safeName": "CONTAINER" - }, - "pascalCase": { - "unsafeName": "Container", - "safeName": "Container" - } - } - ], - "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": "container", - "camelCase": { - "unsafeName": "container", - "safeName": "container" - }, - "snakeCase": { - "unsafeName": "container", - "safeName": "container" - }, - "screamingSnakeCase": { - "unsafeName": "CONTAINER", - "safeName": "CONTAINER" - }, - "pascalCase": { - "unsafeName": "Container", - "safeName": "Container" - } - } - } - }, - "displayName": null, - "basePath": { - "head": "/container", - "parts": [] - }, - "headers": [], - "pathParameters": [], - "endpoints": [ - { - "id": "endpoint_endpoints/container.getAndReturnListOfPrimitives", - "name": { - "originalName": "getAndReturnListOfPrimitives", - "camelCase": { - "unsafeName": "getAndReturnListOfPrimitives", - "safeName": "getAndReturnListOfPrimitives" - }, - "snakeCase": { - "unsafeName": "get_and_return_list_of_primitives", - "safeName": "get_and_return_list_of_primitives" - }, - "screamingSnakeCase": { - "unsafeName": "GET_AND_RETURN_LIST_OF_PRIMITIVES", - "safeName": "GET_AND_RETURN_LIST_OF_PRIMITIVES" - }, - "pascalCase": { - "unsafeName": "GetAndReturnListOfPrimitives", - "safeName": "GetAndReturnListOfPrimitives" - } - }, - "displayName": null, - "auth": true, - "idempotent": false, - "baseUrl": null, - "method": "POST", - "path": { - "head": "/list-of-primitives", - "parts": [] - }, - "fullPath": { - "head": "/container/list-of-primitives", - "parts": [] - }, - "pathParameters": [], - "allPathParameters": [], - "queryParameters": [], - "headers": [], - "requestBody": { - "type": "reference", - "requestBodyType": { - "_type": "container", - "container": { - "_type": "list", - "list": { - "_type": "primitive", - "primitive": "STRING" - } - } - }, - "contentType": null, - "docs": null - }, - "sdkRequest": { - "shape": { - "type": "justRequestBody", - "value": { - "type": "typeReference", - "requestBodyType": { - "_type": "container", - "container": { - "_type": "list", - "list": { - "_type": "primitive", - "primitive": "STRING" - } - } - }, - "contentType": null, - "docs": null - } - }, - "requestParameterName": { - "originalName": "request", - "camelCase": { - "unsafeName": "request", - "safeName": "request" - }, - "snakeCase": { - "unsafeName": "request", - "safeName": "request" - }, - "screamingSnakeCase": { - "unsafeName": "REQUEST", - "safeName": "REQUEST" - }, - "pascalCase": { - "unsafeName": "Request", - "safeName": "Request" - } - } - }, - "response": { - "body": { - "type": "json", - "value": { - "type": "response", - "responseBodyType": { - "_type": "container", - "container": { - "_type": "list", - "list": { - "_type": "primitive", - "primitive": "STRING" - } - } - }, - "docs": null - } - }, - "status-code": null - }, - "errors": [], - "examples": [ - { - "exampleType": "generated", - "url": "/list-of-primitives", - "rootPathParameters": [], - "servicePathParameters": [], - "endpointPathParameters": [], - "serviceHeaders": [], - "endpointHeaders": [], - "queryParameters": [], - "request": { - "type": "reference", - "shape": { - "type": "container", - "container": { - "type": "list", - "list": [ - { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - ] - } - }, - "jsonExample": [ - "string" - ] - }, - "name": null, - "codeSamples": null, - "response": { - "type": "ok", - "body": { - "shape": { - "type": "container", - "container": { - "type": "list", - "list": [ - { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - ] - } - }, - "jsonExample": [ - "string" - ] - } - }, - "docs": null - } - ], - "pagination": null, - "availability": null, - "docs": null - }, - { - "id": "endpoint_endpoints/container.getAndReturnListOfObjects", - "name": { - "originalName": "getAndReturnListOfObjects", - "camelCase": { - "unsafeName": "getAndReturnListOfObjects", - "safeName": "getAndReturnListOfObjects" - }, - "snakeCase": { - "unsafeName": "get_and_return_list_of_objects", - "safeName": "get_and_return_list_of_objects" - }, - "screamingSnakeCase": { - "unsafeName": "GET_AND_RETURN_LIST_OF_OBJECTS", - "safeName": "GET_AND_RETURN_LIST_OF_OBJECTS" - }, - "pascalCase": { - "unsafeName": "GetAndReturnListOfObjects", - "safeName": "GetAndReturnListOfObjects" - } - }, - "displayName": null, - "auth": true, - "idempotent": false, - "baseUrl": null, - "method": "POST", - "path": { - "head": "/list-of-objects", - "parts": [] - }, - "fullPath": { - "head": "/container/list-of-objects", - "parts": [] - }, - "pathParameters": [], - "allPathParameters": [], - "queryParameters": [], - "headers": [], - "requestBody": { - "type": "reference", - "requestBodyType": { - "_type": "container", - "container": { - "_type": "list", - "list": { - "_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_" - } - } - }, - "typeId": "type_types/object:ObjectWithRequiredField" - } - } - }, - "contentType": null, - "docs": null - }, - "sdkRequest": { - "shape": { - "type": "justRequestBody", - "value": { - "type": "typeReference", - "requestBodyType": { - "_type": "container", - "container": { - "_type": "list", - "list": { - "_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_" - } - } - }, - "typeId": "type_types/object:ObjectWithRequiredField" - } - } - }, - "contentType": null, - "docs": null - } - }, - "requestParameterName": { - "originalName": "request", - "camelCase": { - "unsafeName": "request", - "safeName": "request" - }, - "snakeCase": { - "unsafeName": "request", - "safeName": "request" - }, - "screamingSnakeCase": { - "unsafeName": "REQUEST", - "safeName": "REQUEST" - }, - "pascalCase": { - "unsafeName": "Request", - "safeName": "Request" - } - } - }, - "response": { - "body": { - "type": "json", - "value": { - "type": "response", - "responseBodyType": { - "_type": "container", - "container": { - "_type": "list", - "list": { - "_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_" - } - } - }, - "typeId": "type_types/object:ObjectWithRequiredField" - } - } - }, - "docs": null - } - }, - "status-code": null - }, - "errors": [], - "examples": [ - { - "exampleType": "generated", - "url": "/list-of-objects", - "rootPathParameters": [], - "servicePathParameters": [], - "endpointPathParameters": [], - "serviceHeaders": [], - "endpointHeaders": [], - "queryParameters": [], - "request": { - "type": "reference", - "shape": { - "type": "container", - "container": { - "type": "list", - "list": [ - { - "shape": { - "type": "named", - "typeName": { - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithRequiredField" - }, - "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": "string" - } - } - }, - "jsonExample": "string" - }, - "originalTypeDeclaration": { - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithRequiredField" - } - } - ] - } - }, - "jsonExample": { - "string": "string" - } - } - ] - } - }, - "jsonExample": [ - { - "string": "string" - } - ] - }, - "name": null, - "codeSamples": null, - "response": { - "type": "ok", - "body": { - "shape": { - "type": "container", - "container": { - "type": "list", - "list": [ - { - "shape": { - "type": "named", - "typeName": { - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithRequiredField" - }, - "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": "string" - } - } - }, - "jsonExample": "string" - }, - "originalTypeDeclaration": { - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithRequiredField" - } - } - ] - } - }, - "jsonExample": { - "string": "string" - } - } - ] - } - }, - "jsonExample": [ - { - "string": "string" - } - ] - } - }, - "docs": null - } - ], - "pagination": null, - "availability": null, - "docs": null - }, - { - "id": "endpoint_endpoints/container.getAndReturnSetOfPrimitives", - "name": { - "originalName": "getAndReturnSetOfPrimitives", - "camelCase": { - "unsafeName": "getAndReturnSetOfPrimitives", - "safeName": "getAndReturnSetOfPrimitives" - }, - "snakeCase": { - "unsafeName": "get_and_return_set_of_primitives", - "safeName": "get_and_return_set_of_primitives" - }, - "screamingSnakeCase": { - "unsafeName": "GET_AND_RETURN_SET_OF_PRIMITIVES", - "safeName": "GET_AND_RETURN_SET_OF_PRIMITIVES" - }, - "pascalCase": { - "unsafeName": "GetAndReturnSetOfPrimitives", - "safeName": "GetAndReturnSetOfPrimitives" - } - }, - "displayName": null, - "auth": true, - "idempotent": false, - "baseUrl": null, - "method": "POST", - "path": { - "head": "/set-of-primitives", - "parts": [] - }, - "fullPath": { - "head": "/container/set-of-primitives", - "parts": [] - }, - "pathParameters": [], - "allPathParameters": [], - "queryParameters": [], - "headers": [], - "requestBody": { - "type": "reference", - "requestBodyType": { - "_type": "container", - "container": { - "_type": "set", - "set": { - "_type": "primitive", - "primitive": "STRING" - } - } - }, - "contentType": null, - "docs": null - }, - "sdkRequest": { - "shape": { - "type": "justRequestBody", - "value": { - "type": "typeReference", - "requestBodyType": { - "_type": "container", - "container": { - "_type": "set", - "set": { - "_type": "primitive", - "primitive": "STRING" - } - } - }, - "contentType": null, - "docs": null - } - }, - "requestParameterName": { - "originalName": "request", - "camelCase": { - "unsafeName": "request", - "safeName": "request" - }, - "snakeCase": { - "unsafeName": "request", - "safeName": "request" - }, - "screamingSnakeCase": { - "unsafeName": "REQUEST", - "safeName": "REQUEST" - }, - "pascalCase": { - "unsafeName": "Request", - "safeName": "Request" - } - } - }, - "response": { - "body": { - "type": "json", - "value": { - "type": "response", - "responseBodyType": { - "_type": "container", - "container": { - "_type": "set", - "set": { - "_type": "primitive", - "primitive": "STRING" - } - } - }, - "docs": null - } - }, - "status-code": null - }, - "errors": [], - "examples": [ - { - "exampleType": "generated", - "url": "/set-of-primitives", - "rootPathParameters": [], - "servicePathParameters": [], - "endpointPathParameters": [], - "serviceHeaders": [], - "endpointHeaders": [], - "queryParameters": [], - "request": { - "type": "reference", - "shape": { - "type": "container", - "container": { - "type": "set", - "set": [ - { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - ] - } - }, - "jsonExample": [ - "string" - ] - }, - "name": null, - "codeSamples": null, - "response": { - "type": "ok", - "body": { - "shape": { - "type": "container", - "container": { - "type": "set", - "set": [ - { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - ] - } - }, - "jsonExample": [ - "string" - ] - } - }, - "docs": null - } - ], - "pagination": null, - "availability": null, - "docs": null - }, - { - "id": "endpoint_endpoints/container.getAndReturnSetOfObjects", - "name": { - "originalName": "getAndReturnSetOfObjects", - "camelCase": { - "unsafeName": "getAndReturnSetOfObjects", - "safeName": "getAndReturnSetOfObjects" - }, - "snakeCase": { - "unsafeName": "get_and_return_set_of_objects", - "safeName": "get_and_return_set_of_objects" - }, - "screamingSnakeCase": { - "unsafeName": "GET_AND_RETURN_SET_OF_OBJECTS", - "safeName": "GET_AND_RETURN_SET_OF_OBJECTS" - }, - "pascalCase": { - "unsafeName": "GetAndReturnSetOfObjects", - "safeName": "GetAndReturnSetOfObjects" - } - }, - "displayName": null, - "auth": true, - "idempotent": false, - "baseUrl": null, - "method": "POST", - "path": { - "head": "/set-of-objects", - "parts": [] - }, - "fullPath": { - "head": "/container/set-of-objects", - "parts": [] - }, - "pathParameters": [], - "allPathParameters": [], - "queryParameters": [], - "headers": [], - "requestBody": { - "type": "reference", - "requestBodyType": { - "_type": "container", - "container": { - "_type": "set", - "set": { - "_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_" - } - } - }, - "typeId": "type_types/object:ObjectWithRequiredField" - } - } - }, - "contentType": null, - "docs": null - }, - "sdkRequest": { - "shape": { - "type": "justRequestBody", - "value": { - "type": "typeReference", - "requestBodyType": { - "_type": "container", - "container": { - "_type": "set", - "set": { - "_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_" - } - } - }, - "typeId": "type_types/object:ObjectWithRequiredField" - } - } - }, - "contentType": null, - "docs": null - } - }, - "requestParameterName": { - "originalName": "request", - "camelCase": { - "unsafeName": "request", - "safeName": "request" - }, - "snakeCase": { - "unsafeName": "request", - "safeName": "request" - }, - "screamingSnakeCase": { - "unsafeName": "REQUEST", - "safeName": "REQUEST" - }, - "pascalCase": { - "unsafeName": "Request", - "safeName": "Request" - } - } - }, - "response": { - "body": { - "type": "json", - "value": { - "type": "response", - "responseBodyType": { - "_type": "container", - "container": { - "_type": "set", - "set": { - "_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_" - } - } - }, - "typeId": "type_types/object:ObjectWithRequiredField" - } - } - }, - "docs": null - } - }, - "status-code": null - }, - "errors": [], - "examples": [ - { - "exampleType": "generated", - "url": "/set-of-objects", - "rootPathParameters": [], - "servicePathParameters": [], - "endpointPathParameters": [], - "serviceHeaders": [], - "endpointHeaders": [], - "queryParameters": [], - "request": { - "type": "reference", - "shape": { - "type": "container", - "container": { - "type": "set", - "set": [ - { - "shape": { - "type": "named", - "typeName": { - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithRequiredField" - }, - "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": "string" - } - } - }, - "jsonExample": "string" - }, - "originalTypeDeclaration": { - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithRequiredField" - } - } - ] - } - }, - "jsonExample": { - "string": "string" - } - } - ] - } - }, - "jsonExample": [ - { - "string": "string" - } - ] - }, - "name": null, - "codeSamples": null, - "response": { - "type": "ok", - "body": { - "shape": { - "type": "container", - "container": { - "type": "set", - "set": [ - { - "shape": { - "type": "named", - "typeName": { - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithRequiredField" - }, - "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": "string" - } - } - }, - "jsonExample": "string" - }, - "originalTypeDeclaration": { - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithRequiredField" - } - } - ] - } - }, - "jsonExample": { - "string": "string" - } - } - ] - } - }, - "jsonExample": [ - { - "string": "string" - } - ] - } - }, - "docs": null - } - ], - "pagination": null, - "availability": null, - "docs": null - }, - { - "id": "endpoint_endpoints/container.getAndReturnMapPrimToPrim", - "name": { - "originalName": "getAndReturnMapPrimToPrim", - "camelCase": { - "unsafeName": "getAndReturnMapPrimToPrim", - "safeName": "getAndReturnMapPrimToPrim" - }, - "snakeCase": { - "unsafeName": "get_and_return_map_prim_to_prim", - "safeName": "get_and_return_map_prim_to_prim" - }, - "screamingSnakeCase": { - "unsafeName": "GET_AND_RETURN_MAP_PRIM_TO_PRIM", - "safeName": "GET_AND_RETURN_MAP_PRIM_TO_PRIM" - }, - "pascalCase": { - "unsafeName": "GetAndReturnMapPrimToPrim", - "safeName": "GetAndReturnMapPrimToPrim" - } - }, - "displayName": null, - "auth": true, - "idempotent": false, - "baseUrl": null, - "method": "POST", - "path": { - "head": "/map-prim-to-prim", - "parts": [] - }, - "fullPath": { - "head": "/container/map-prim-to-prim", - "parts": [] - }, - "pathParameters": [], - "allPathParameters": [], - "queryParameters": [], - "headers": [], - "requestBody": { - "type": "reference", - "requestBodyType": { - "_type": "container", - "container": { - "_type": "map", - "keyType": { - "_type": "primitive", - "primitive": "STRING" - }, - "valueType": { - "_type": "primitive", - "primitive": "STRING" - } - } - }, - "contentType": null, - "docs": null - }, - "sdkRequest": { - "shape": { - "type": "justRequestBody", - "value": { - "type": "typeReference", - "requestBodyType": { - "_type": "container", - "container": { - "_type": "map", - "keyType": { - "_type": "primitive", - "primitive": "STRING" - }, - "valueType": { - "_type": "primitive", - "primitive": "STRING" - } - } - }, - "contentType": null, - "docs": null - } - }, - "requestParameterName": { - "originalName": "request", - "camelCase": { - "unsafeName": "request", - "safeName": "request" - }, - "snakeCase": { - "unsafeName": "request", - "safeName": "request" - }, - "screamingSnakeCase": { - "unsafeName": "REQUEST", - "safeName": "REQUEST" - }, - "pascalCase": { - "unsafeName": "Request", - "safeName": "Request" - } - } - }, - "response": { - "body": { - "type": "json", - "value": { - "type": "response", - "responseBodyType": { - "_type": "container", - "container": { - "_type": "map", - "keyType": { - "_type": "primitive", - "primitive": "STRING" - }, - "valueType": { - "_type": "primitive", - "primitive": "STRING" - } - } - }, - "docs": null - } - }, - "status-code": null - }, - "errors": [], - "examples": [ - { - "exampleType": "generated", - "url": "/map-prim-to-prim", - "rootPathParameters": [], - "servicePathParameters": [], - "endpointPathParameters": [], - "serviceHeaders": [], - "endpointHeaders": [], - "queryParameters": [], - "request": { - "type": "reference", - "shape": { - "type": "container", - "container": { - "type": "map", - "map": [ - { - "key": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - } - ] - } - }, - "jsonExample": { - "string": "string" - } - }, - "name": null, - "codeSamples": null, - "response": { - "type": "ok", - "body": { - "shape": { - "type": "container", - "container": { - "type": "map", - "map": [ - { - "key": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - } - ] - } - }, - "jsonExample": { - "string": "string" - } - } - }, - "docs": null - } - ], - "pagination": null, - "availability": null, - "docs": null - }, - { - "id": "endpoint_endpoints/container.getAndReturnMapOfPrimToObject", - "name": { - "originalName": "getAndReturnMapOfPrimToObject", - "camelCase": { - "unsafeName": "getAndReturnMapOfPrimToObject", - "safeName": "getAndReturnMapOfPrimToObject" - }, - "snakeCase": { - "unsafeName": "get_and_return_map_of_prim_to_object", - "safeName": "get_and_return_map_of_prim_to_object" - }, - "screamingSnakeCase": { - "unsafeName": "GET_AND_RETURN_MAP_OF_PRIM_TO_OBJECT", - "safeName": "GET_AND_RETURN_MAP_OF_PRIM_TO_OBJECT" - }, - "pascalCase": { - "unsafeName": "GetAndReturnMapOfPrimToObject", - "safeName": "GetAndReturnMapOfPrimToObject" - } - }, - "displayName": null, - "auth": true, - "idempotent": false, - "baseUrl": null, - "method": "POST", - "path": { - "head": "/map-prim-to-object", - "parts": [] - }, - "fullPath": { - "head": "/container/map-prim-to-object", - "parts": [] - }, - "pathParameters": [], - "allPathParameters": [], - "queryParameters": [], - "headers": [], - "requestBody": { - "type": "reference", - "requestBodyType": { - "_type": "container", - "container": { - "_type": "map", - "keyType": { - "_type": "primitive", - "primitive": "STRING" - }, - "valueType": { - "_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_" - } - } - }, - "typeId": "type_types/object:ObjectWithRequiredField" - } - } - }, - "contentType": null, - "docs": null - }, - "sdkRequest": { - "shape": { - "type": "justRequestBody", - "value": { - "type": "typeReference", - "requestBodyType": { - "_type": "container", - "container": { - "_type": "map", - "keyType": { - "_type": "primitive", - "primitive": "STRING" - }, - "valueType": { - "_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_" - } - } - }, - "typeId": "type_types/object:ObjectWithRequiredField" - } - } - }, - "contentType": null, - "docs": null - } - }, - "requestParameterName": { - "originalName": "request", - "camelCase": { - "unsafeName": "request", - "safeName": "request" - }, - "snakeCase": { - "unsafeName": "request", - "safeName": "request" - }, - "screamingSnakeCase": { - "unsafeName": "REQUEST", - "safeName": "REQUEST" - }, - "pascalCase": { - "unsafeName": "Request", - "safeName": "Request" - } - } - }, - "response": { - "body": { - "type": "json", - "value": { - "type": "response", - "responseBodyType": { - "_type": "container", - "container": { - "_type": "map", - "keyType": { - "_type": "primitive", - "primitive": "STRING" - }, - "valueType": { - "_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_" - } - } - }, - "typeId": "type_types/object:ObjectWithRequiredField" - } - } - }, - "docs": null - } - }, - "status-code": null - }, - "errors": [], - "examples": [ - { - "exampleType": "generated", - "url": "/map-prim-to-object", - "rootPathParameters": [], - "servicePathParameters": [], - "endpointPathParameters": [], - "serviceHeaders": [], - "endpointHeaders": [], - "queryParameters": [], - "request": { - "type": "reference", - "shape": { - "type": "container", - "container": { - "type": "map", - "map": [ - { - "key": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - }, - "value": { - "shape": { - "type": "named", - "typeName": { - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithRequiredField" - }, - "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": "string" - } - } - }, - "jsonExample": "string" - }, - "originalTypeDeclaration": { - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithRequiredField" - } - } - ] - } - }, - "jsonExample": { - "string": "string" - } - } - } - ] - } - }, - "jsonExample": { - "string": { - "string": "string" - } - } - }, - "name": null, - "codeSamples": null, - "response": { - "type": "ok", - "body": { - "shape": { - "type": "container", - "container": { - "type": "map", - "map": [ - { - "key": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - }, - "value": { - "shape": { - "type": "named", - "typeName": { - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithRequiredField" - }, - "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": "string" - } - } - }, - "jsonExample": "string" - }, - "originalTypeDeclaration": { - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithRequiredField" - } - } - ] - } - }, - "jsonExample": { - "string": "string" - } - } - } - ] - } - }, - "jsonExample": { - "string": { - "string": "string" - } - } - } - }, - "docs": null - } - ], - "pagination": null, - "availability": null, - "docs": null - }, - { - "id": "endpoint_endpoints/container.getAndReturnOptional", - "name": { - "originalName": "getAndReturnOptional", - "camelCase": { - "unsafeName": "getAndReturnOptional", - "safeName": "getAndReturnOptional" - }, - "snakeCase": { - "unsafeName": "get_and_return_optional", - "safeName": "get_and_return_optional" - }, - "screamingSnakeCase": { - "unsafeName": "GET_AND_RETURN_OPTIONAL", - "safeName": "GET_AND_RETURN_OPTIONAL" - }, - "pascalCase": { - "unsafeName": "GetAndReturnOptional", - "safeName": "GetAndReturnOptional" - } - }, - "displayName": null, - "auth": true, - "idempotent": false, - "baseUrl": null, - "method": "POST", - "path": { - "head": "/opt-objects", - "parts": [] - }, - "fullPath": { - "head": "/container/opt-objects", - "parts": [] - }, - "pathParameters": [], - "allPathParameters": [], - "queryParameters": [], - "headers": [], - "requestBody": { - "type": "reference", - "requestBodyType": { - "_type": "container", - "container": { - "_type": "optional", - "optional": { - "_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_" - } - } - }, - "typeId": "type_types/object:ObjectWithRequiredField" - } - } - }, - "contentType": null, - "docs": null - }, - "sdkRequest": { - "shape": { - "type": "justRequestBody", - "value": { - "type": "typeReference", - "requestBodyType": { - "_type": "container", - "container": { - "_type": "optional", - "optional": { - "_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_" - } - } - }, - "typeId": "type_types/object:ObjectWithRequiredField" - } - } - }, - "contentType": null, - "docs": null - } - }, - "requestParameterName": { - "originalName": "request", - "camelCase": { - "unsafeName": "request", - "safeName": "request" - }, - "snakeCase": { - "unsafeName": "request", - "safeName": "request" - }, - "screamingSnakeCase": { - "unsafeName": "REQUEST", - "safeName": "REQUEST" - }, - "pascalCase": { - "unsafeName": "Request", - "safeName": "Request" - } - } - }, - "response": { - "body": { - "type": "json", - "value": { - "type": "response", - "responseBodyType": { - "_type": "container", - "container": { - "_type": "optional", - "optional": { - "_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_" - } - } - }, - "typeId": "type_types/object:ObjectWithRequiredField" - } - } - }, - "docs": null - } - }, - "status-code": null - }, - "errors": [], - "examples": [ - { - "exampleType": "generated", - "url": "/opt-objects", - "rootPathParameters": [], - "servicePathParameters": [], - "endpointPathParameters": [], - "serviceHeaders": [], - "endpointHeaders": [], - "queryParameters": [], - "request": { - "type": "reference", - "shape": { - "type": "named", - "typeName": { - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithRequiredField" - }, - "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": "string" - } - } - }, - "jsonExample": "string" - }, - "originalTypeDeclaration": { - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithRequiredField" - } - } - ] - } - }, - "jsonExample": { - "string": "string" - } - }, - "name": null, - "codeSamples": null, - "response": { - "type": "ok", - "body": { - "shape": { - "type": "named", - "typeName": { - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithRequiredField" - }, - "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": "string" - } - } - }, - "jsonExample": "string" - }, - "originalTypeDeclaration": { - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithRequiredField" - } - } - ] - } - }, - "jsonExample": { - "string": "string" - } - } - }, - "docs": null - } - ], - "pagination": null, - "availability": null, - "docs": null - } - ] - }, - "service_endpoints/enum": { - "availability": null, - "name": { - "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": "enum", - "camelCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "snakeCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "screamingSnakeCase": { - "unsafeName": "ENUM", - "safeName": "ENUM" - }, - "pascalCase": { - "unsafeName": "Enum", - "safeName": "Enum" - } - } - ], - "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": "enum", - "camelCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "snakeCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "screamingSnakeCase": { - "unsafeName": "ENUM", - "safeName": "ENUM" - }, - "pascalCase": { - "unsafeName": "Enum", - "safeName": "Enum" - } - } - } - }, - "displayName": null, - "basePath": { - "head": "/enum", - "parts": [] - }, - "headers": [], - "pathParameters": [], - "endpoints": [ - { - "id": "endpoint_endpoints/enum.getAndReturnEnum", - "name": { - "originalName": "getAndReturnEnum", - "camelCase": { - "unsafeName": "getAndReturnEnum", - "safeName": "getAndReturnEnum" - }, - "snakeCase": { - "unsafeName": "get_and_return_enum", - "safeName": "get_and_return_enum" - }, - "screamingSnakeCase": { - "unsafeName": "GET_AND_RETURN_ENUM", - "safeName": "GET_AND_RETURN_ENUM" - }, - "pascalCase": { - "unsafeName": "GetAndReturnEnum", - "safeName": "GetAndReturnEnum" - } - }, - "displayName": null, - "auth": true, - "idempotent": false, - "baseUrl": null, - "method": "POST", - "path": { - "head": "", - "parts": [] - }, - "fullPath": { - "head": "/enum", - "parts": [] - }, - "pathParameters": [], - "allPathParameters": [], - "queryParameters": [], - "headers": [], - "requestBody": { - "type": "reference", - "requestBodyType": { - "_type": "named", - "name": { - "originalName": "WeatherReport", - "camelCase": { - "unsafeName": "weatherReport", - "safeName": "weatherReport" - }, - "snakeCase": { - "unsafeName": "weather_report", - "safeName": "weather_report" - }, - "screamingSnakeCase": { - "unsafeName": "WEATHER_REPORT", - "safeName": "WEATHER_REPORT" - }, - "pascalCase": { - "unsafeName": "WeatherReport", - "safeName": "WeatherReport" - } - }, - "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": "enum", - "camelCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "snakeCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "screamingSnakeCase": { - "unsafeName": "ENUM", - "safeName": "ENUM" - }, - "pascalCase": { - "unsafeName": "Enum", - "safeName": "Enum" - } - } - ], - "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": "enum", - "camelCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "snakeCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "screamingSnakeCase": { - "unsafeName": "ENUM", - "safeName": "ENUM" - }, - "pascalCase": { - "unsafeName": "Enum", - "safeName": "Enum" - } - } - }, - "typeId": "type_types/enum:WeatherReport" - }, - "contentType": null, - "docs": null - }, - "sdkRequest": { - "shape": { - "type": "justRequestBody", - "value": { - "type": "typeReference", - "requestBodyType": { - "_type": "named", - "name": { - "originalName": "WeatherReport", - "camelCase": { - "unsafeName": "weatherReport", - "safeName": "weatherReport" - }, - "snakeCase": { - "unsafeName": "weather_report", - "safeName": "weather_report" - }, - "screamingSnakeCase": { - "unsafeName": "WEATHER_REPORT", - "safeName": "WEATHER_REPORT" - }, - "pascalCase": { - "unsafeName": "WeatherReport", - "safeName": "WeatherReport" - } - }, - "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": "enum", - "camelCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "snakeCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "screamingSnakeCase": { - "unsafeName": "ENUM", - "safeName": "ENUM" - }, - "pascalCase": { - "unsafeName": "Enum", - "safeName": "Enum" - } - } - ], - "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": "enum", - "camelCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "snakeCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "screamingSnakeCase": { - "unsafeName": "ENUM", - "safeName": "ENUM" - }, - "pascalCase": { - "unsafeName": "Enum", - "safeName": "Enum" - } - } - }, - "typeId": "type_types/enum:WeatherReport" - }, - "contentType": null, - "docs": null - } - }, - "requestParameterName": { - "originalName": "request", - "camelCase": { - "unsafeName": "request", - "safeName": "request" - }, - "snakeCase": { - "unsafeName": "request", - "safeName": "request" - }, - "screamingSnakeCase": { - "unsafeName": "REQUEST", - "safeName": "REQUEST" - }, - "pascalCase": { - "unsafeName": "Request", - "safeName": "Request" - } - } - }, - "response": { - "body": { - "type": "json", - "value": { - "type": "response", - "responseBodyType": { - "_type": "named", - "name": { - "originalName": "WeatherReport", - "camelCase": { - "unsafeName": "weatherReport", - "safeName": "weatherReport" - }, - "snakeCase": { - "unsafeName": "weather_report", - "safeName": "weather_report" - }, - "screamingSnakeCase": { - "unsafeName": "WEATHER_REPORT", - "safeName": "WEATHER_REPORT" - }, - "pascalCase": { - "unsafeName": "WeatherReport", - "safeName": "WeatherReport" - } - }, - "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": "enum", - "camelCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "snakeCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "screamingSnakeCase": { - "unsafeName": "ENUM", - "safeName": "ENUM" - }, - "pascalCase": { - "unsafeName": "Enum", - "safeName": "Enum" - } - } - ], - "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": "enum", - "camelCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "snakeCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "screamingSnakeCase": { - "unsafeName": "ENUM", - "safeName": "ENUM" - }, - "pascalCase": { - "unsafeName": "Enum", - "safeName": "Enum" - } - } - }, - "typeId": "type_types/enum:WeatherReport" - }, - "docs": null - } - }, - "status-code": null - }, - "errors": [], - "examples": [ - { - "exampleType": "generated", - "url": "", - "rootPathParameters": [], - "servicePathParameters": [], - "endpointPathParameters": [], - "serviceHeaders": [], - "endpointHeaders": [], - "queryParameters": [], - "request": { - "type": "reference", - "shape": { - "type": "named", - "typeName": { - "name": { - "originalName": "WeatherReport", - "camelCase": { - "unsafeName": "weatherReport", - "safeName": "weatherReport" - }, - "snakeCase": { - "unsafeName": "weather_report", - "safeName": "weather_report" - }, - "screamingSnakeCase": { - "unsafeName": "WEATHER_REPORT", - "safeName": "WEATHER_REPORT" - }, - "pascalCase": { - "unsafeName": "WeatherReport", - "safeName": "WeatherReport" - } - }, - "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": "enum", - "camelCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "snakeCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "screamingSnakeCase": { - "unsafeName": "ENUM", - "safeName": "ENUM" - }, - "pascalCase": { - "unsafeName": "Enum", - "safeName": "Enum" - } - } - ], - "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": "enum", - "camelCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "snakeCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "screamingSnakeCase": { - "unsafeName": "ENUM", - "safeName": "ENUM" - }, - "pascalCase": { - "unsafeName": "Enum", - "safeName": "Enum" - } - } - }, - "typeId": "type_types/enum:WeatherReport" - }, - "shape": { - "type": "enum", - "value": { - "name": { - "originalName": "SUNNY", - "camelCase": { - "unsafeName": "sunny", - "safeName": "sunny" - }, - "snakeCase": { - "unsafeName": "sunny", - "safeName": "sunny" - }, - "screamingSnakeCase": { - "unsafeName": "SUNNY", - "safeName": "SUNNY" - }, - "pascalCase": { - "unsafeName": "Sunny", - "safeName": "Sunny" - } - }, - "wireValue": "SUNNY" - } - } - }, - "jsonExample": "SUNNY" - }, - "name": null, - "codeSamples": null, - "response": { - "type": "ok", - "body": { - "shape": { - "type": "named", - "typeName": { - "name": { - "originalName": "WeatherReport", - "camelCase": { - "unsafeName": "weatherReport", - "safeName": "weatherReport" - }, - "snakeCase": { - "unsafeName": "weather_report", - "safeName": "weather_report" - }, - "screamingSnakeCase": { - "unsafeName": "WEATHER_REPORT", - "safeName": "WEATHER_REPORT" - }, - "pascalCase": { - "unsafeName": "WeatherReport", - "safeName": "WeatherReport" - } - }, - "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": "enum", - "camelCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "snakeCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "screamingSnakeCase": { - "unsafeName": "ENUM", - "safeName": "ENUM" - }, - "pascalCase": { - "unsafeName": "Enum", - "safeName": "Enum" - } - } - ], - "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": "enum", - "camelCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "snakeCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "screamingSnakeCase": { - "unsafeName": "ENUM", - "safeName": "ENUM" - }, - "pascalCase": { - "unsafeName": "Enum", - "safeName": "Enum" - } - } - }, - "typeId": "type_types/enum:WeatherReport" - }, - "shape": { - "type": "enum", - "value": { - "name": { - "originalName": "SUNNY", - "camelCase": { - "unsafeName": "sunny", - "safeName": "sunny" - }, - "snakeCase": { - "unsafeName": "sunny", - "safeName": "sunny" - }, - "screamingSnakeCase": { - "unsafeName": "SUNNY", - "safeName": "SUNNY" - }, - "pascalCase": { - "unsafeName": "Sunny", - "safeName": "Sunny" - } - }, - "wireValue": "SUNNY" - } - } - }, - "jsonExample": "SUNNY" - } - }, - "docs": null - } - ], - "pagination": null, - "availability": null, - "docs": null - } - ] - }, - "service_endpoints/http-methods": { - "availability": null, - "name": { - "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": "http-methods", - "camelCase": { - "unsafeName": "httpMethods", - "safeName": "httpMethods" - }, - "snakeCase": { - "unsafeName": "http_methods", - "safeName": "http_methods" - }, - "screamingSnakeCase": { - "unsafeName": "HTTP_METHODS", - "safeName": "HTTP_METHODS" - }, - "pascalCase": { - "unsafeName": "HttpMethods", - "safeName": "HttpMethods" - } - } - ], - "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": "http-methods", - "camelCase": { - "unsafeName": "httpMethods", - "safeName": "httpMethods" - }, - "snakeCase": { - "unsafeName": "http_methods", - "safeName": "http_methods" - }, - "screamingSnakeCase": { - "unsafeName": "HTTP_METHODS", - "safeName": "HTTP_METHODS" - }, - "pascalCase": { - "unsafeName": "HttpMethods", - "safeName": "HttpMethods" - } - } - } - }, - "displayName": null, - "basePath": { - "head": "/http-methods", - "parts": [] - }, - "headers": [], - "pathParameters": [], - "endpoints": [ - { - "id": "endpoint_endpoints/http-methods.testGet", - "name": { - "originalName": "testGet", - "camelCase": { - "unsafeName": "testGet", - "safeName": "testGet" - }, - "snakeCase": { - "unsafeName": "test_get", - "safeName": "test_get" - }, - "screamingSnakeCase": { - "unsafeName": "TEST_GET", - "safeName": "TEST_GET" - }, - "pascalCase": { - "unsafeName": "TestGet", - "safeName": "TestGet" - } - }, - "displayName": null, - "auth": true, - "idempotent": false, - "baseUrl": null, - "method": "GET", - "path": { - "head": "/", - "parts": [ - { - "pathParameter": "id", - "tail": "" - } - ] - }, - "fullPath": { - "head": "/http-methods/", - "parts": [ - { - "pathParameter": "id", - "tail": "" - } - ] - }, - "pathParameters": [ - { - "name": { - "originalName": "id", - "camelCase": { - "unsafeName": "id", - "safeName": "id" - }, - "snakeCase": { - "unsafeName": "id", - "safeName": "id" - }, - "screamingSnakeCase": { - "unsafeName": "ID", - "safeName": "ID" - }, - "pascalCase": { - "unsafeName": "Id", - "safeName": "Id" - } - }, - "valueType": { - "_type": "primitive", - "primitive": "STRING" - }, - "location": "ENDPOINT", - "variable": null, - "docs": null - } - ], - "allPathParameters": [ - { - "name": { - "originalName": "id", - "camelCase": { - "unsafeName": "id", - "safeName": "id" - }, - "snakeCase": { - "unsafeName": "id", - "safeName": "id" - }, - "screamingSnakeCase": { - "unsafeName": "ID", - "safeName": "ID" - }, - "pascalCase": { - "unsafeName": "Id", - "safeName": "Id" - } - }, - "valueType": { - "_type": "primitive", - "primitive": "STRING" - }, - "location": "ENDPOINT", - "variable": null, - "docs": null - } - ], - "queryParameters": [], - "headers": [], - "requestBody": null, - "sdkRequest": null, - "response": { - "body": { - "type": "json", - "value": { - "type": "response", - "responseBodyType": { - "_type": "primitive", - "primitive": "STRING" - }, - "docs": null - } - }, - "status-code": null - }, - "errors": [], - "examples": [ - { - "exampleType": "generated", - "url": "/", - "rootPathParameters": [], - "servicePathParameters": [], - "endpointPathParameters": [ - { - "name": { - "originalName": "id", - "camelCase": { - "unsafeName": "id", - "safeName": "id" - }, - "snakeCase": { - "unsafeName": "id", - "safeName": "id" - }, - "screamingSnakeCase": { - "unsafeName": "ID", - "safeName": "ID" - }, - "pascalCase": { - "unsafeName": "Id", - "safeName": "Id" - } - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - } - ], - "serviceHeaders": [], - "endpointHeaders": [], - "queryParameters": [], - "request": null, - "name": null, - "codeSamples": null, - "response": { - "type": "ok", - "body": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - }, - "docs": null - } - ], - "pagination": null, - "availability": null, - "docs": null - }, - { - "id": "endpoint_endpoints/http-methods.testPost", - "name": { - "originalName": "testPost", - "camelCase": { - "unsafeName": "testPost", - "safeName": "testPost" - }, - "snakeCase": { - "unsafeName": "test_post", - "safeName": "test_post" - }, - "screamingSnakeCase": { - "unsafeName": "TEST_POST", - "safeName": "TEST_POST" - }, - "pascalCase": { - "unsafeName": "TestPost", - "safeName": "TestPost" - } - }, - "displayName": null, - "auth": true, - "idempotent": false, - "baseUrl": null, - "method": "POST", - "path": { - "head": "", - "parts": [] - }, - "fullPath": { - "head": "/http-methods", - "parts": [] - }, - "pathParameters": [], - "allPathParameters": [], - "queryParameters": [], - "headers": [], - "requestBody": { - "type": "reference", - "requestBodyType": { - "_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_" - } - } - }, - "typeId": "type_types/object:ObjectWithRequiredField" - }, - "contentType": null, - "docs": null - }, - "sdkRequest": { - "shape": { - "type": "justRequestBody", - "value": { - "type": "typeReference", - "requestBodyType": { - "_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_" - } - } - }, - "typeId": "type_types/object:ObjectWithRequiredField" - }, - "contentType": null, - "docs": null - } - }, - "requestParameterName": { - "originalName": "request", - "camelCase": { - "unsafeName": "request", - "safeName": "request" - }, - "snakeCase": { - "unsafeName": "request", - "safeName": "request" - }, - "screamingSnakeCase": { - "unsafeName": "REQUEST", - "safeName": "REQUEST" - }, - "pascalCase": { - "unsafeName": "Request", - "safeName": "Request" - } - } - }, - "response": { - "body": { - "type": "json", - "value": { - "type": "response", - "responseBodyType": { - "_type": "named", - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - }, - "docs": null - } - }, - "status-code": null - }, - "errors": [], - "examples": [ - { - "exampleType": "generated", - "url": "", - "rootPathParameters": [], - "servicePathParameters": [], - "endpointPathParameters": [], - "serviceHeaders": [], - "endpointHeaders": [], - "queryParameters": [], - "request": { - "type": "reference", - "shape": { - "type": "named", - "typeName": { - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithRequiredField" - }, - "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": "string" - } - } - }, - "jsonExample": "string" - }, - "originalTypeDeclaration": { - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithRequiredField" - } - } - ] - } - }, - "jsonExample": { - "string": "string" - } - }, - "name": null, - "codeSamples": null, - "response": { - "type": "ok", - "body": { - "shape": { - "type": "named", - "typeName": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - }, - "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": "string" - } - } - }, - "jsonExample": "string" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "integer", - "camelCase": { - "unsafeName": "integer", - "safeName": "integer" - }, - "snakeCase": { - "unsafeName": "integer", - "safeName": "integer" - }, - "screamingSnakeCase": { - "unsafeName": "INTEGER", - "safeName": "INTEGER" - }, - "pascalCase": { - "unsafeName": "Integer", - "safeName": "Integer" - } - }, - "wireValue": "integer" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "integer", - "integer": 1 - } - }, - "jsonExample": 1 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "long", - "camelCase": { - "unsafeName": "long", - "safeName": "long" - }, - "snakeCase": { - "unsafeName": "long", - "safeName": "long" - }, - "screamingSnakeCase": { - "unsafeName": "LONG", - "safeName": "LONG" - }, - "pascalCase": { - "unsafeName": "Long", - "safeName": "Long" - } - }, - "wireValue": "long" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "long", - "long": 1000000 - } - }, - "jsonExample": 1000000 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "double", - "camelCase": { - "unsafeName": "double", - "safeName": "double" - }, - "snakeCase": { - "unsafeName": "double", - "safeName": "double" - }, - "screamingSnakeCase": { - "unsafeName": "DOUBLE", - "safeName": "DOUBLE" - }, - "pascalCase": { - "unsafeName": "Double", - "safeName": "Double" - } - }, - "wireValue": "double" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "double", - "double": 1.1 - } - }, - "jsonExample": 1.1 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "bool", - "camelCase": { - "unsafeName": "bool", - "safeName": "bool" - }, - "snakeCase": { - "unsafeName": "bool", - "safeName": "bool" - }, - "screamingSnakeCase": { - "unsafeName": "BOOL", - "safeName": "BOOL" - }, - "pascalCase": { - "unsafeName": "Bool", - "safeName": "Bool" - } - }, - "wireValue": "bool" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "boolean", - "boolean": true - } - }, - "jsonExample": true - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "datetime", - "camelCase": { - "unsafeName": "datetime", - "safeName": "datetime" - }, - "snakeCase": { - "unsafeName": "datetime", - "safeName": "datetime" - }, - "screamingSnakeCase": { - "unsafeName": "DATETIME", - "safeName": "DATETIME" - }, - "pascalCase": { - "unsafeName": "Datetime", - "safeName": "Datetime" - } - }, - "wireValue": "datetime" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "datetime", - "datetime": "2024-01-15T09:30:00.000Z" - } - }, - "jsonExample": "2024-01-15T09:30:00Z" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "date", - "camelCase": { - "unsafeName": "date", - "safeName": "date" - }, - "snakeCase": { - "unsafeName": "date", - "safeName": "date" - }, - "screamingSnakeCase": { - "unsafeName": "DATE", - "safeName": "DATE" - }, - "pascalCase": { - "unsafeName": "Date", - "safeName": "Date_" - } - }, - "wireValue": "date" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "date", - "date": "2023-01-15" - } - }, - "jsonExample": "2023-01-15" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "uuid", - "camelCase": { - "unsafeName": "uuid", - "safeName": "uuid" - }, - "snakeCase": { - "unsafeName": "uuid", - "safeName": "uuid" - }, - "screamingSnakeCase": { - "unsafeName": "UUID", - "safeName": "UUID" - }, - "pascalCase": { - "unsafeName": "Uuid", - "safeName": "Uuid" - } - }, - "wireValue": "uuid" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "uuid", - "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32" - } - }, - "jsonExample": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "base64", - "camelCase": { - "unsafeName": "base64", - "safeName": "base64" - }, - "snakeCase": { - "unsafeName": "base_64", - "safeName": "base_64" - }, - "screamingSnakeCase": { - "unsafeName": "BASE_64", - "safeName": "BASE_64" - }, - "pascalCase": { - "unsafeName": "Base64", - "safeName": "Base64" - } - }, - "wireValue": "base64" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "SGVsbG8gd29ybGQh" - } - } - }, - "jsonExample": "SGVsbG8gd29ybGQh" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "list", - "camelCase": { - "unsafeName": "list", - "safeName": "list" - }, - "snakeCase": { - "unsafeName": "list", - "safeName": "list" - }, - "screamingSnakeCase": { - "unsafeName": "LIST", - "safeName": "LIST" - }, - "pascalCase": { - "unsafeName": "List", - "safeName": "List" - } - }, - "wireValue": "list" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "list", - "list": [ - { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - ] - } - }, - "jsonExample": [ - "string" - ] - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "set", - "camelCase": { - "unsafeName": "set", - "safeName": "set_" - }, - "snakeCase": { - "unsafeName": "set", - "safeName": "set_" - }, - "screamingSnakeCase": { - "unsafeName": "SET", - "safeName": "SET" - }, - "pascalCase": { - "unsafeName": "Set", - "safeName": "Set" - } - }, - "wireValue": "set" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "set", - "set": [ - { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - ] - } - }, - "jsonExample": [ - "string" - ] - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "map", - "camelCase": { - "unsafeName": "map", - "safeName": "map" - }, - "snakeCase": { - "unsafeName": "map", - "safeName": "map" - }, - "screamingSnakeCase": { - "unsafeName": "MAP", - "safeName": "MAP" - }, - "pascalCase": { - "unsafeName": "Map", - "safeName": "Map" - } - }, - "wireValue": "map" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "map", - "map": [ - { - "key": { - "shape": { - "type": "primitive", - "primitive": { - "type": "integer", - "integer": 1 - } - }, - "jsonExample": 1 - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - } - ] - } - }, - "jsonExample": { - "1": "string" - } - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - } - ] - } - }, - "jsonExample": { - "string": "string", - "integer": 1, - "long": 1000000, - "double": 1.1, - "bool": true, - "datetime": "2024-01-15T09:30:00Z", - "date": "2023-01-15", - "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", - "base64": "SGVsbG8gd29ybGQh", - "list": [ - "string" - ], - "set": [ - "string" - ], - "map": { - "1": "string" - } - } - } - }, - "docs": null - } - ], - "pagination": null, - "availability": null, - "docs": null - }, - { - "id": "endpoint_endpoints/http-methods.testPut", - "name": { - "originalName": "testPut", - "camelCase": { - "unsafeName": "testPut", - "safeName": "testPut" - }, - "snakeCase": { - "unsafeName": "test_put", - "safeName": "test_put" - }, - "screamingSnakeCase": { - "unsafeName": "TEST_PUT", - "safeName": "TEST_PUT" - }, - "pascalCase": { - "unsafeName": "TestPut", - "safeName": "TestPut" - } - }, - "displayName": null, - "auth": true, - "idempotent": false, - "baseUrl": null, - "method": "PUT", - "path": { - "head": "/", - "parts": [ - { - "pathParameter": "id", - "tail": "" - } - ] - }, - "fullPath": { - "head": "/http-methods/", - "parts": [ - { - "pathParameter": "id", - "tail": "" - } - ] - }, - "pathParameters": [ - { - "name": { - "originalName": "id", - "camelCase": { - "unsafeName": "id", - "safeName": "id" - }, - "snakeCase": { - "unsafeName": "id", - "safeName": "id" - }, - "screamingSnakeCase": { - "unsafeName": "ID", - "safeName": "ID" - }, - "pascalCase": { - "unsafeName": "Id", - "safeName": "Id" - } - }, - "valueType": { - "_type": "primitive", - "primitive": "STRING" - }, - "location": "ENDPOINT", - "variable": null, - "docs": null - } - ], - "allPathParameters": [ - { - "name": { - "originalName": "id", - "camelCase": { - "unsafeName": "id", - "safeName": "id" - }, - "snakeCase": { - "unsafeName": "id", - "safeName": "id" - }, - "screamingSnakeCase": { - "unsafeName": "ID", - "safeName": "ID" - }, - "pascalCase": { - "unsafeName": "Id", - "safeName": "Id" - } - }, - "valueType": { - "_type": "primitive", - "primitive": "STRING" - }, - "location": "ENDPOINT", - "variable": null, - "docs": null - } - ], - "queryParameters": [], - "headers": [], - "requestBody": { - "type": "reference", - "requestBodyType": { - "_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_" - } - } - }, - "typeId": "type_types/object:ObjectWithRequiredField" - }, - "contentType": null, - "docs": null - }, - "sdkRequest": { - "shape": { - "type": "justRequestBody", - "value": { - "type": "typeReference", - "requestBodyType": { - "_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_" - } - } - }, - "typeId": "type_types/object:ObjectWithRequiredField" - }, - "contentType": null, - "docs": null - } - }, - "requestParameterName": { - "originalName": "request", - "camelCase": { - "unsafeName": "request", - "safeName": "request" - }, - "snakeCase": { - "unsafeName": "request", - "safeName": "request" - }, - "screamingSnakeCase": { - "unsafeName": "REQUEST", - "safeName": "REQUEST" - }, - "pascalCase": { - "unsafeName": "Request", - "safeName": "Request" - } - } - }, - "response": { - "body": { - "type": "json", - "value": { - "type": "response", - "responseBodyType": { - "_type": "named", - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - }, - "docs": null - } - }, - "status-code": null - }, - "errors": [], - "examples": [ - { - "exampleType": "generated", - "url": "/", - "rootPathParameters": [], - "servicePathParameters": [], - "endpointPathParameters": [ - { - "name": { - "originalName": "id", - "camelCase": { - "unsafeName": "id", - "safeName": "id" - }, - "snakeCase": { - "unsafeName": "id", - "safeName": "id" - }, - "screamingSnakeCase": { - "unsafeName": "ID", - "safeName": "ID" - }, - "pascalCase": { - "unsafeName": "Id", - "safeName": "Id" - } - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - } - ], - "serviceHeaders": [], - "endpointHeaders": [], - "queryParameters": [], - "request": { - "type": "reference", - "shape": { - "type": "named", - "typeName": { - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithRequiredField" - }, - "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": "string" - } - } - }, - "jsonExample": "string" - }, - "originalTypeDeclaration": { - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithRequiredField" - } - } - ] - } - }, - "jsonExample": { - "string": "string" - } - }, - "name": null, - "codeSamples": null, - "response": { - "type": "ok", - "body": { - "shape": { - "type": "named", - "typeName": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - }, - "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": "string" - } - } - }, - "jsonExample": "string" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "integer", - "camelCase": { - "unsafeName": "integer", - "safeName": "integer" - }, - "snakeCase": { - "unsafeName": "integer", - "safeName": "integer" - }, - "screamingSnakeCase": { - "unsafeName": "INTEGER", - "safeName": "INTEGER" - }, - "pascalCase": { - "unsafeName": "Integer", - "safeName": "Integer" - } - }, - "wireValue": "integer" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "integer", - "integer": 1 - } - }, - "jsonExample": 1 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "long", - "camelCase": { - "unsafeName": "long", - "safeName": "long" - }, - "snakeCase": { - "unsafeName": "long", - "safeName": "long" - }, - "screamingSnakeCase": { - "unsafeName": "LONG", - "safeName": "LONG" - }, - "pascalCase": { - "unsafeName": "Long", - "safeName": "Long" - } - }, - "wireValue": "long" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "long", - "long": 1000000 - } - }, - "jsonExample": 1000000 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "double", - "camelCase": { - "unsafeName": "double", - "safeName": "double" - }, - "snakeCase": { - "unsafeName": "double", - "safeName": "double" - }, - "screamingSnakeCase": { - "unsafeName": "DOUBLE", - "safeName": "DOUBLE" - }, - "pascalCase": { - "unsafeName": "Double", - "safeName": "Double" - } - }, - "wireValue": "double" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "double", - "double": 1.1 - } - }, - "jsonExample": 1.1 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "bool", - "camelCase": { - "unsafeName": "bool", - "safeName": "bool" - }, - "snakeCase": { - "unsafeName": "bool", - "safeName": "bool" - }, - "screamingSnakeCase": { - "unsafeName": "BOOL", - "safeName": "BOOL" - }, - "pascalCase": { - "unsafeName": "Bool", - "safeName": "Bool" - } - }, - "wireValue": "bool" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "boolean", - "boolean": true - } - }, - "jsonExample": true - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "datetime", - "camelCase": { - "unsafeName": "datetime", - "safeName": "datetime" - }, - "snakeCase": { - "unsafeName": "datetime", - "safeName": "datetime" - }, - "screamingSnakeCase": { - "unsafeName": "DATETIME", - "safeName": "DATETIME" - }, - "pascalCase": { - "unsafeName": "Datetime", - "safeName": "Datetime" - } - }, - "wireValue": "datetime" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "datetime", - "datetime": "2024-01-15T09:30:00.000Z" - } - }, - "jsonExample": "2024-01-15T09:30:00Z" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "date", - "camelCase": { - "unsafeName": "date", - "safeName": "date" - }, - "snakeCase": { - "unsafeName": "date", - "safeName": "date" - }, - "screamingSnakeCase": { - "unsafeName": "DATE", - "safeName": "DATE" - }, - "pascalCase": { - "unsafeName": "Date", - "safeName": "Date_" - } - }, - "wireValue": "date" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "date", - "date": "2023-01-15" - } - }, - "jsonExample": "2023-01-15" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "uuid", - "camelCase": { - "unsafeName": "uuid", - "safeName": "uuid" - }, - "snakeCase": { - "unsafeName": "uuid", - "safeName": "uuid" - }, - "screamingSnakeCase": { - "unsafeName": "UUID", - "safeName": "UUID" - }, - "pascalCase": { - "unsafeName": "Uuid", - "safeName": "Uuid" - } - }, - "wireValue": "uuid" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "uuid", - "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32" - } - }, - "jsonExample": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "base64", - "camelCase": { - "unsafeName": "base64", - "safeName": "base64" - }, - "snakeCase": { - "unsafeName": "base_64", - "safeName": "base_64" - }, - "screamingSnakeCase": { - "unsafeName": "BASE_64", - "safeName": "BASE_64" - }, - "pascalCase": { - "unsafeName": "Base64", - "safeName": "Base64" - } - }, - "wireValue": "base64" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "SGVsbG8gd29ybGQh" - } - } - }, - "jsonExample": "SGVsbG8gd29ybGQh" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "list", - "camelCase": { - "unsafeName": "list", - "safeName": "list" - }, - "snakeCase": { - "unsafeName": "list", - "safeName": "list" - }, - "screamingSnakeCase": { - "unsafeName": "LIST", - "safeName": "LIST" - }, - "pascalCase": { - "unsafeName": "List", - "safeName": "List" - } - }, - "wireValue": "list" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "list", - "list": [ - { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - ] - } - }, - "jsonExample": [ - "string" - ] - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "set", - "camelCase": { - "unsafeName": "set", - "safeName": "set_" - }, - "snakeCase": { - "unsafeName": "set", - "safeName": "set_" - }, - "screamingSnakeCase": { - "unsafeName": "SET", - "safeName": "SET" - }, - "pascalCase": { - "unsafeName": "Set", - "safeName": "Set" - } - }, - "wireValue": "set" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "set", - "set": [ - { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - ] - } - }, - "jsonExample": [ - "string" - ] - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "map", - "camelCase": { - "unsafeName": "map", - "safeName": "map" - }, - "snakeCase": { - "unsafeName": "map", - "safeName": "map" - }, - "screamingSnakeCase": { - "unsafeName": "MAP", - "safeName": "MAP" - }, - "pascalCase": { - "unsafeName": "Map", - "safeName": "Map" - } - }, - "wireValue": "map" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "map", - "map": [ - { - "key": { - "shape": { - "type": "primitive", - "primitive": { - "type": "integer", - "integer": 1 - } - }, - "jsonExample": 1 - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - } - ] - } - }, - "jsonExample": { - "1": "string" - } - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - } - ] - } - }, - "jsonExample": { - "string": "string", - "integer": 1, - "long": 1000000, - "double": 1.1, - "bool": true, - "datetime": "2024-01-15T09:30:00Z", - "date": "2023-01-15", - "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", - "base64": "SGVsbG8gd29ybGQh", - "list": [ - "string" - ], - "set": [ - "string" - ], - "map": { - "1": "string" - } - } - } - }, - "docs": null - } - ], - "pagination": null, - "availability": null, - "docs": null - }, - { - "id": "endpoint_endpoints/http-methods.testPatch", - "name": { - "originalName": "testPatch", - "camelCase": { - "unsafeName": "testPatch", - "safeName": "testPatch" - }, - "snakeCase": { - "unsafeName": "test_patch", - "safeName": "test_patch" - }, - "screamingSnakeCase": { - "unsafeName": "TEST_PATCH", - "safeName": "TEST_PATCH" - }, - "pascalCase": { - "unsafeName": "TestPatch", - "safeName": "TestPatch" - } - }, - "displayName": null, - "auth": true, - "idempotent": false, - "baseUrl": null, - "method": "PATCH", - "path": { - "head": "/", - "parts": [ - { - "pathParameter": "id", - "tail": "" - } - ] - }, - "fullPath": { - "head": "/http-methods/", - "parts": [ - { - "pathParameter": "id", - "tail": "" - } - ] - }, - "pathParameters": [ - { - "name": { - "originalName": "id", - "camelCase": { - "unsafeName": "id", - "safeName": "id" - }, - "snakeCase": { - "unsafeName": "id", - "safeName": "id" - }, - "screamingSnakeCase": { - "unsafeName": "ID", - "safeName": "ID" - }, - "pascalCase": { - "unsafeName": "Id", - "safeName": "Id" - } - }, - "valueType": { - "_type": "primitive", - "primitive": "STRING" - }, - "location": "ENDPOINT", - "variable": null, - "docs": null - } - ], - "allPathParameters": [ - { - "name": { - "originalName": "id", - "camelCase": { - "unsafeName": "id", - "safeName": "id" - }, - "snakeCase": { - "unsafeName": "id", - "safeName": "id" - }, - "screamingSnakeCase": { - "unsafeName": "ID", - "safeName": "ID" - }, - "pascalCase": { - "unsafeName": "Id", - "safeName": "Id" - } - }, - "valueType": { - "_type": "primitive", - "primitive": "STRING" - }, - "location": "ENDPOINT", - "variable": null, - "docs": null - } - ], - "queryParameters": [], - "headers": [], - "requestBody": { - "type": "reference", - "requestBodyType": { - "_type": "named", - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - }, - "contentType": null, - "docs": null - }, - "sdkRequest": { - "shape": { - "type": "justRequestBody", - "value": { - "type": "typeReference", - "requestBodyType": { - "_type": "named", - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - }, - "contentType": null, - "docs": null - } - }, - "requestParameterName": { - "originalName": "request", - "camelCase": { - "unsafeName": "request", - "safeName": "request" - }, - "snakeCase": { - "unsafeName": "request", - "safeName": "request" - }, - "screamingSnakeCase": { - "unsafeName": "REQUEST", - "safeName": "REQUEST" - }, - "pascalCase": { - "unsafeName": "Request", - "safeName": "Request" - } - } - }, - "response": { - "body": { - "type": "json", - "value": { - "type": "response", - "responseBodyType": { - "_type": "named", - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - }, - "docs": null - } - }, - "status-code": null - }, - "errors": [], - "examples": [ - { - "exampleType": "generated", - "url": "/", - "rootPathParameters": [], - "servicePathParameters": [], - "endpointPathParameters": [ - { - "name": { - "originalName": "id", - "camelCase": { - "unsafeName": "id", - "safeName": "id" - }, - "snakeCase": { - "unsafeName": "id", - "safeName": "id" - }, - "screamingSnakeCase": { - "unsafeName": "ID", - "safeName": "ID" - }, - "pascalCase": { - "unsafeName": "Id", - "safeName": "Id" - } - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - } - ], - "serviceHeaders": [], - "endpointHeaders": [], - "queryParameters": [], - "request": { - "type": "reference", - "shape": { - "type": "named", - "typeName": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - }, - "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": "string" - } - } - }, - "jsonExample": "string" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "integer", - "camelCase": { - "unsafeName": "integer", - "safeName": "integer" - }, - "snakeCase": { - "unsafeName": "integer", - "safeName": "integer" - }, - "screamingSnakeCase": { - "unsafeName": "INTEGER", - "safeName": "INTEGER" - }, - "pascalCase": { - "unsafeName": "Integer", - "safeName": "Integer" - } - }, - "wireValue": "integer" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "integer", - "integer": 1 - } - }, - "jsonExample": 1 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "long", - "camelCase": { - "unsafeName": "long", - "safeName": "long" - }, - "snakeCase": { - "unsafeName": "long", - "safeName": "long" - }, - "screamingSnakeCase": { - "unsafeName": "LONG", - "safeName": "LONG" - }, - "pascalCase": { - "unsafeName": "Long", - "safeName": "Long" - } - }, - "wireValue": "long" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "long", - "long": 1000000 - } - }, - "jsonExample": 1000000 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "double", - "camelCase": { - "unsafeName": "double", - "safeName": "double" - }, - "snakeCase": { - "unsafeName": "double", - "safeName": "double" - }, - "screamingSnakeCase": { - "unsafeName": "DOUBLE", - "safeName": "DOUBLE" - }, - "pascalCase": { - "unsafeName": "Double", - "safeName": "Double" - } - }, - "wireValue": "double" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "double", - "double": 1.1 - } - }, - "jsonExample": 1.1 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "bool", - "camelCase": { - "unsafeName": "bool", - "safeName": "bool" - }, - "snakeCase": { - "unsafeName": "bool", - "safeName": "bool" - }, - "screamingSnakeCase": { - "unsafeName": "BOOL", - "safeName": "BOOL" - }, - "pascalCase": { - "unsafeName": "Bool", - "safeName": "Bool" - } - }, - "wireValue": "bool" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "boolean", - "boolean": true - } - }, - "jsonExample": true - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "datetime", - "camelCase": { - "unsafeName": "datetime", - "safeName": "datetime" - }, - "snakeCase": { - "unsafeName": "datetime", - "safeName": "datetime" - }, - "screamingSnakeCase": { - "unsafeName": "DATETIME", - "safeName": "DATETIME" - }, - "pascalCase": { - "unsafeName": "Datetime", - "safeName": "Datetime" - } - }, - "wireValue": "datetime" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "datetime", - "datetime": "2024-01-15T09:30:00.000Z" - } - }, - "jsonExample": "2024-01-15T09:30:00Z" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "date", - "camelCase": { - "unsafeName": "date", - "safeName": "date" - }, - "snakeCase": { - "unsafeName": "date", - "safeName": "date" - }, - "screamingSnakeCase": { - "unsafeName": "DATE", - "safeName": "DATE" - }, - "pascalCase": { - "unsafeName": "Date", - "safeName": "Date_" - } - }, - "wireValue": "date" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "date", - "date": "2023-01-15" - } - }, - "jsonExample": "2023-01-15" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "uuid", - "camelCase": { - "unsafeName": "uuid", - "safeName": "uuid" - }, - "snakeCase": { - "unsafeName": "uuid", - "safeName": "uuid" - }, - "screamingSnakeCase": { - "unsafeName": "UUID", - "safeName": "UUID" - }, - "pascalCase": { - "unsafeName": "Uuid", - "safeName": "Uuid" - } - }, - "wireValue": "uuid" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "uuid", - "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32" - } - }, - "jsonExample": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "base64", - "camelCase": { - "unsafeName": "base64", - "safeName": "base64" - }, - "snakeCase": { - "unsafeName": "base_64", - "safeName": "base_64" - }, - "screamingSnakeCase": { - "unsafeName": "BASE_64", - "safeName": "BASE_64" - }, - "pascalCase": { - "unsafeName": "Base64", - "safeName": "Base64" - } - }, - "wireValue": "base64" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "SGVsbG8gd29ybGQh" - } - } - }, - "jsonExample": "SGVsbG8gd29ybGQh" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "list", - "camelCase": { - "unsafeName": "list", - "safeName": "list" - }, - "snakeCase": { - "unsafeName": "list", - "safeName": "list" - }, - "screamingSnakeCase": { - "unsafeName": "LIST", - "safeName": "LIST" - }, - "pascalCase": { - "unsafeName": "List", - "safeName": "List" - } - }, - "wireValue": "list" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "list", - "list": [ - { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - ] - } - }, - "jsonExample": [ - "string" - ] - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "set", - "camelCase": { - "unsafeName": "set", - "safeName": "set_" - }, - "snakeCase": { - "unsafeName": "set", - "safeName": "set_" - }, - "screamingSnakeCase": { - "unsafeName": "SET", - "safeName": "SET" - }, - "pascalCase": { - "unsafeName": "Set", - "safeName": "Set" - } - }, - "wireValue": "set" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "set", - "set": [ - { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - ] - } - }, - "jsonExample": [ - "string" - ] - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "map", - "camelCase": { - "unsafeName": "map", - "safeName": "map" - }, - "snakeCase": { - "unsafeName": "map", - "safeName": "map" - }, - "screamingSnakeCase": { - "unsafeName": "MAP", - "safeName": "MAP" - }, - "pascalCase": { - "unsafeName": "Map", - "safeName": "Map" - } - }, - "wireValue": "map" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "map", - "map": [ - { - "key": { - "shape": { - "type": "primitive", - "primitive": { - "type": "integer", - "integer": 1 - } - }, - "jsonExample": 1 - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - } - ] - } - }, - "jsonExample": { - "1": "string" - } - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - } - ] - } - }, - "jsonExample": { - "string": "string", - "integer": 1, - "long": 1000000, - "double": 1.1, - "bool": true, - "datetime": "2024-01-15T09:30:00Z", - "date": "2023-01-15", - "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", - "base64": "SGVsbG8gd29ybGQh", - "list": [ - "string" - ], - "set": [ - "string" - ], - "map": { - "1": "string" - } - } - }, - "name": null, - "codeSamples": null, - "response": { - "type": "ok", - "body": { - "shape": { - "type": "named", - "typeName": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - }, - "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": "string" - } - } - }, - "jsonExample": "string" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "integer", - "camelCase": { - "unsafeName": "integer", - "safeName": "integer" - }, - "snakeCase": { - "unsafeName": "integer", - "safeName": "integer" - }, - "screamingSnakeCase": { - "unsafeName": "INTEGER", - "safeName": "INTEGER" - }, - "pascalCase": { - "unsafeName": "Integer", - "safeName": "Integer" - } - }, - "wireValue": "integer" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "integer", - "integer": 1 - } - }, - "jsonExample": 1 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "long", - "camelCase": { - "unsafeName": "long", - "safeName": "long" - }, - "snakeCase": { - "unsafeName": "long", - "safeName": "long" - }, - "screamingSnakeCase": { - "unsafeName": "LONG", - "safeName": "LONG" - }, - "pascalCase": { - "unsafeName": "Long", - "safeName": "Long" - } - }, - "wireValue": "long" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "long", - "long": 1000000 - } - }, - "jsonExample": 1000000 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "double", - "camelCase": { - "unsafeName": "double", - "safeName": "double" - }, - "snakeCase": { - "unsafeName": "double", - "safeName": "double" - }, - "screamingSnakeCase": { - "unsafeName": "DOUBLE", - "safeName": "DOUBLE" - }, - "pascalCase": { - "unsafeName": "Double", - "safeName": "Double" - } - }, - "wireValue": "double" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "double", - "double": 1.1 - } - }, - "jsonExample": 1.1 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "bool", - "camelCase": { - "unsafeName": "bool", - "safeName": "bool" - }, - "snakeCase": { - "unsafeName": "bool", - "safeName": "bool" - }, - "screamingSnakeCase": { - "unsafeName": "BOOL", - "safeName": "BOOL" - }, - "pascalCase": { - "unsafeName": "Bool", - "safeName": "Bool" - } - }, - "wireValue": "bool" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "boolean", - "boolean": true - } - }, - "jsonExample": true - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "datetime", - "camelCase": { - "unsafeName": "datetime", - "safeName": "datetime" - }, - "snakeCase": { - "unsafeName": "datetime", - "safeName": "datetime" - }, - "screamingSnakeCase": { - "unsafeName": "DATETIME", - "safeName": "DATETIME" - }, - "pascalCase": { - "unsafeName": "Datetime", - "safeName": "Datetime" - } - }, - "wireValue": "datetime" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "datetime", - "datetime": "2024-01-15T09:30:00.000Z" - } - }, - "jsonExample": "2024-01-15T09:30:00Z" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "date", - "camelCase": { - "unsafeName": "date", - "safeName": "date" - }, - "snakeCase": { - "unsafeName": "date", - "safeName": "date" - }, - "screamingSnakeCase": { - "unsafeName": "DATE", - "safeName": "DATE" - }, - "pascalCase": { - "unsafeName": "Date", - "safeName": "Date_" - } - }, - "wireValue": "date" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "date", - "date": "2023-01-15" - } - }, - "jsonExample": "2023-01-15" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "uuid", - "camelCase": { - "unsafeName": "uuid", - "safeName": "uuid" - }, - "snakeCase": { - "unsafeName": "uuid", - "safeName": "uuid" - }, - "screamingSnakeCase": { - "unsafeName": "UUID", - "safeName": "UUID" - }, - "pascalCase": { - "unsafeName": "Uuid", - "safeName": "Uuid" - } - }, - "wireValue": "uuid" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "uuid", - "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32" - } - }, - "jsonExample": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "base64", - "camelCase": { - "unsafeName": "base64", - "safeName": "base64" - }, - "snakeCase": { - "unsafeName": "base_64", - "safeName": "base_64" - }, - "screamingSnakeCase": { - "unsafeName": "BASE_64", - "safeName": "BASE_64" - }, - "pascalCase": { - "unsafeName": "Base64", - "safeName": "Base64" - } - }, - "wireValue": "base64" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "SGVsbG8gd29ybGQh" - } - } - }, - "jsonExample": "SGVsbG8gd29ybGQh" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "list", - "camelCase": { - "unsafeName": "list", - "safeName": "list" - }, - "snakeCase": { - "unsafeName": "list", - "safeName": "list" - }, - "screamingSnakeCase": { - "unsafeName": "LIST", - "safeName": "LIST" - }, - "pascalCase": { - "unsafeName": "List", - "safeName": "List" - } - }, - "wireValue": "list" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "list", - "list": [ - { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - ] - } - }, - "jsonExample": [ - "string" - ] - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "set", - "camelCase": { - "unsafeName": "set", - "safeName": "set_" - }, - "snakeCase": { - "unsafeName": "set", - "safeName": "set_" - }, - "screamingSnakeCase": { - "unsafeName": "SET", - "safeName": "SET" - }, - "pascalCase": { - "unsafeName": "Set", - "safeName": "Set" - } - }, - "wireValue": "set" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "set", - "set": [ - { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - ] - } - }, - "jsonExample": [ - "string" - ] - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "map", - "camelCase": { - "unsafeName": "map", - "safeName": "map" - }, - "snakeCase": { - "unsafeName": "map", - "safeName": "map" - }, - "screamingSnakeCase": { - "unsafeName": "MAP", - "safeName": "MAP" - }, - "pascalCase": { - "unsafeName": "Map", - "safeName": "Map" - } - }, - "wireValue": "map" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "map", - "map": [ - { - "key": { - "shape": { - "type": "primitive", - "primitive": { - "type": "integer", - "integer": 1 - } - }, - "jsonExample": 1 - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - } - ] - } - }, - "jsonExample": { - "1": "string" - } - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - } - ] - } - }, - "jsonExample": { - "string": "string", - "integer": 1, - "long": 1000000, - "double": 1.1, - "bool": true, - "datetime": "2024-01-15T09:30:00Z", - "date": "2023-01-15", - "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", - "base64": "SGVsbG8gd29ybGQh", - "list": [ - "string" - ], - "set": [ - "string" - ], - "map": { - "1": "string" - } - } - } - }, - "docs": null - } - ], - "pagination": null, - "availability": null, - "docs": null - }, - { - "id": "endpoint_endpoints/http-methods.testDelete", - "name": { - "originalName": "testDelete", - "camelCase": { - "unsafeName": "testDelete", - "safeName": "testDelete" - }, - "snakeCase": { - "unsafeName": "test_delete", - "safeName": "test_delete" - }, - "screamingSnakeCase": { - "unsafeName": "TEST_DELETE", - "safeName": "TEST_DELETE" - }, - "pascalCase": { - "unsafeName": "TestDelete", - "safeName": "TestDelete" - } - }, - "displayName": null, - "auth": true, - "idempotent": false, - "baseUrl": null, - "method": "DELETE", - "path": { - "head": "/", - "parts": [ - { - "pathParameter": "id", - "tail": "" - } - ] - }, - "fullPath": { - "head": "/http-methods/", - "parts": [ - { - "pathParameter": "id", - "tail": "" - } - ] - }, - "pathParameters": [ - { - "name": { - "originalName": "id", - "camelCase": { - "unsafeName": "id", - "safeName": "id" - }, - "snakeCase": { - "unsafeName": "id", - "safeName": "id" - }, - "screamingSnakeCase": { - "unsafeName": "ID", - "safeName": "ID" - }, - "pascalCase": { - "unsafeName": "Id", - "safeName": "Id" - } - }, - "valueType": { - "_type": "primitive", - "primitive": "STRING" - }, - "location": "ENDPOINT", - "variable": null, - "docs": null - } - ], - "allPathParameters": [ - { - "name": { - "originalName": "id", - "camelCase": { - "unsafeName": "id", - "safeName": "id" - }, - "snakeCase": { - "unsafeName": "id", - "safeName": "id" - }, - "screamingSnakeCase": { - "unsafeName": "ID", - "safeName": "ID" - }, - "pascalCase": { - "unsafeName": "Id", - "safeName": "Id" - } - }, - "valueType": { - "_type": "primitive", - "primitive": "STRING" - }, - "location": "ENDPOINT", - "variable": null, - "docs": null - } - ], - "queryParameters": [], - "headers": [], - "requestBody": null, - "sdkRequest": null, - "response": { - "body": { - "type": "json", - "value": { - "type": "response", - "responseBodyType": { - "_type": "primitive", - "primitive": "BOOLEAN" - }, - "docs": null - } - }, - "status-code": null - }, - "errors": [], - "examples": [ - { - "exampleType": "generated", - "url": "/", - "rootPathParameters": [], - "servicePathParameters": [], - "endpointPathParameters": [ - { - "name": { - "originalName": "id", - "camelCase": { - "unsafeName": "id", - "safeName": "id" - }, - "snakeCase": { - "unsafeName": "id", - "safeName": "id" - }, - "screamingSnakeCase": { - "unsafeName": "ID", - "safeName": "ID" - }, - "pascalCase": { - "unsafeName": "Id", - "safeName": "Id" - } - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - } - ], - "serviceHeaders": [], - "endpointHeaders": [], - "queryParameters": [], - "request": null, - "name": null, - "codeSamples": null, - "response": { - "type": "ok", - "body": { - "shape": { - "type": "primitive", - "primitive": { - "type": "boolean", - "boolean": true - } - }, - "jsonExample": true - } - }, - "docs": null - } - ], - "pagination": null, - "availability": null, - "docs": null - } - ] - }, - "service_endpoints/object": { - "availability": null, - "name": { - "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": "object", - "camelCase": { - "unsafeName": "object", - "safeName": "object" - }, - "snakeCase": { - "unsafeName": "object", - "safeName": "object" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT", - "safeName": "OBJECT" - }, - "pascalCase": { - "unsafeName": "Object", - "safeName": "Object_" - } - } - ], - "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": "object", - "camelCase": { - "unsafeName": "object", - "safeName": "object" - }, - "snakeCase": { - "unsafeName": "object", - "safeName": "object" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT", - "safeName": "OBJECT" - }, - "pascalCase": { - "unsafeName": "Object", - "safeName": "Object_" - } - } - } - }, - "displayName": null, - "basePath": { - "head": "/object", - "parts": [] - }, - "headers": [], - "pathParameters": [], - "endpoints": [ - { - "id": "endpoint_endpoints/object.getAndReturnWithOptionalField", - "name": { - "originalName": "getAndReturnWithOptionalField", - "camelCase": { - "unsafeName": "getAndReturnWithOptionalField", - "safeName": "getAndReturnWithOptionalField" - }, - "snakeCase": { - "unsafeName": "get_and_return_with_optional_field", - "safeName": "get_and_return_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "GET_AND_RETURN_WITH_OPTIONAL_FIELD", - "safeName": "GET_AND_RETURN_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "GetAndReturnWithOptionalField", - "safeName": "GetAndReturnWithOptionalField" - } - }, - "displayName": null, - "auth": true, - "idempotent": false, - "baseUrl": null, - "method": "POST", - "path": { - "head": "/get-and-return-with-optional-field", - "parts": [] - }, - "fullPath": { - "head": "/object/get-and-return-with-optional-field", - "parts": [] - }, - "pathParameters": [], - "allPathParameters": [], - "queryParameters": [], - "headers": [], - "requestBody": { - "type": "reference", - "requestBodyType": { - "_type": "named", - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - }, - "contentType": null, - "docs": null - }, - "sdkRequest": { - "shape": { - "type": "justRequestBody", - "value": { - "type": "typeReference", - "requestBodyType": { - "_type": "named", - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - }, - "contentType": null, - "docs": null - } - }, - "requestParameterName": { - "originalName": "request", - "camelCase": { - "unsafeName": "request", - "safeName": "request" - }, - "snakeCase": { - "unsafeName": "request", - "safeName": "request" - }, - "screamingSnakeCase": { - "unsafeName": "REQUEST", - "safeName": "REQUEST" - }, - "pascalCase": { - "unsafeName": "Request", - "safeName": "Request" - } - } - }, - "response": { - "body": { - "type": "json", - "value": { - "type": "response", - "responseBodyType": { - "_type": "named", - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - }, - "docs": null - } - }, - "status-code": null - }, - "errors": [], - "examples": [ - { - "exampleType": "generated", - "url": "/get-and-return-with-optional-field", - "rootPathParameters": [], - "servicePathParameters": [], - "endpointPathParameters": [], - "serviceHeaders": [], - "endpointHeaders": [], - "queryParameters": [], - "request": { - "type": "reference", - "shape": { - "type": "named", - "typeName": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - }, - "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": "string" - } - } - }, - "jsonExample": "string" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "integer", - "camelCase": { - "unsafeName": "integer", - "safeName": "integer" - }, - "snakeCase": { - "unsafeName": "integer", - "safeName": "integer" - }, - "screamingSnakeCase": { - "unsafeName": "INTEGER", - "safeName": "INTEGER" - }, - "pascalCase": { - "unsafeName": "Integer", - "safeName": "Integer" - } - }, - "wireValue": "integer" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "integer", - "integer": 1 - } - }, - "jsonExample": 1 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "long", - "camelCase": { - "unsafeName": "long", - "safeName": "long" - }, - "snakeCase": { - "unsafeName": "long", - "safeName": "long" - }, - "screamingSnakeCase": { - "unsafeName": "LONG", - "safeName": "LONG" - }, - "pascalCase": { - "unsafeName": "Long", - "safeName": "Long" - } - }, - "wireValue": "long" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "long", - "long": 1000000 - } - }, - "jsonExample": 1000000 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "double", - "camelCase": { - "unsafeName": "double", - "safeName": "double" - }, - "snakeCase": { - "unsafeName": "double", - "safeName": "double" - }, - "screamingSnakeCase": { - "unsafeName": "DOUBLE", - "safeName": "DOUBLE" - }, - "pascalCase": { - "unsafeName": "Double", - "safeName": "Double" - } - }, - "wireValue": "double" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "double", - "double": 1.1 - } - }, - "jsonExample": 1.1 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "bool", - "camelCase": { - "unsafeName": "bool", - "safeName": "bool" - }, - "snakeCase": { - "unsafeName": "bool", - "safeName": "bool" - }, - "screamingSnakeCase": { - "unsafeName": "BOOL", - "safeName": "BOOL" - }, - "pascalCase": { - "unsafeName": "Bool", - "safeName": "Bool" - } - }, - "wireValue": "bool" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "boolean", - "boolean": true - } - }, - "jsonExample": true - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "datetime", - "camelCase": { - "unsafeName": "datetime", - "safeName": "datetime" - }, - "snakeCase": { - "unsafeName": "datetime", - "safeName": "datetime" - }, - "screamingSnakeCase": { - "unsafeName": "DATETIME", - "safeName": "DATETIME" - }, - "pascalCase": { - "unsafeName": "Datetime", - "safeName": "Datetime" - } - }, - "wireValue": "datetime" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "datetime", - "datetime": "2024-01-15T09:30:00.000Z" - } - }, - "jsonExample": "2024-01-15T09:30:00Z" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "date", - "camelCase": { - "unsafeName": "date", - "safeName": "date" - }, - "snakeCase": { - "unsafeName": "date", - "safeName": "date" - }, - "screamingSnakeCase": { - "unsafeName": "DATE", - "safeName": "DATE" - }, - "pascalCase": { - "unsafeName": "Date", - "safeName": "Date_" - } - }, - "wireValue": "date" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "date", - "date": "2023-01-15" - } - }, - "jsonExample": "2023-01-15" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "uuid", - "camelCase": { - "unsafeName": "uuid", - "safeName": "uuid" - }, - "snakeCase": { - "unsafeName": "uuid", - "safeName": "uuid" - }, - "screamingSnakeCase": { - "unsafeName": "UUID", - "safeName": "UUID" - }, - "pascalCase": { - "unsafeName": "Uuid", - "safeName": "Uuid" - } - }, - "wireValue": "uuid" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "uuid", - "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32" - } - }, - "jsonExample": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "base64", - "camelCase": { - "unsafeName": "base64", - "safeName": "base64" - }, - "snakeCase": { - "unsafeName": "base_64", - "safeName": "base_64" - }, - "screamingSnakeCase": { - "unsafeName": "BASE_64", - "safeName": "BASE_64" - }, - "pascalCase": { - "unsafeName": "Base64", - "safeName": "Base64" - } - }, - "wireValue": "base64" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "SGVsbG8gd29ybGQh" - } - } - }, - "jsonExample": "SGVsbG8gd29ybGQh" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "list", - "camelCase": { - "unsafeName": "list", - "safeName": "list" - }, - "snakeCase": { - "unsafeName": "list", - "safeName": "list" - }, - "screamingSnakeCase": { - "unsafeName": "LIST", - "safeName": "LIST" - }, - "pascalCase": { - "unsafeName": "List", - "safeName": "List" - } - }, - "wireValue": "list" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "list", - "list": [ - { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - ] - } - }, - "jsonExample": [ - "string" - ] - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "set", - "camelCase": { - "unsafeName": "set", - "safeName": "set_" - }, - "snakeCase": { - "unsafeName": "set", - "safeName": "set_" - }, - "screamingSnakeCase": { - "unsafeName": "SET", - "safeName": "SET" - }, - "pascalCase": { - "unsafeName": "Set", - "safeName": "Set" - } - }, - "wireValue": "set" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "set", - "set": [ - { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - ] - } - }, - "jsonExample": [ - "string" - ] - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "map", - "camelCase": { - "unsafeName": "map", - "safeName": "map" - }, - "snakeCase": { - "unsafeName": "map", - "safeName": "map" - }, - "screamingSnakeCase": { - "unsafeName": "MAP", - "safeName": "MAP" - }, - "pascalCase": { - "unsafeName": "Map", - "safeName": "Map" - } - }, - "wireValue": "map" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "map", - "map": [ - { - "key": { - "shape": { - "type": "primitive", - "primitive": { - "type": "integer", - "integer": 1 - } - }, - "jsonExample": 1 - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - } - ] - } - }, - "jsonExample": { - "1": "string" - } - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - } - ] - } - }, - "jsonExample": { - "string": "string", - "integer": 1, - "long": 1000000, - "double": 1.1, - "bool": true, - "datetime": "2024-01-15T09:30:00Z", - "date": "2023-01-15", - "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", - "base64": "SGVsbG8gd29ybGQh", - "list": [ - "string" - ], - "set": [ - "string" - ], - "map": { - "1": "string" - } - } - }, - "name": null, - "codeSamples": null, - "response": { - "type": "ok", - "body": { - "shape": { - "type": "named", - "typeName": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - }, - "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": "string" - } - } - }, - "jsonExample": "string" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "integer", - "camelCase": { - "unsafeName": "integer", - "safeName": "integer" - }, - "snakeCase": { - "unsafeName": "integer", - "safeName": "integer" - }, - "screamingSnakeCase": { - "unsafeName": "INTEGER", - "safeName": "INTEGER" - }, - "pascalCase": { - "unsafeName": "Integer", - "safeName": "Integer" - } - }, - "wireValue": "integer" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "integer", - "integer": 1 - } - }, - "jsonExample": 1 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "long", - "camelCase": { - "unsafeName": "long", - "safeName": "long" - }, - "snakeCase": { - "unsafeName": "long", - "safeName": "long" - }, - "screamingSnakeCase": { - "unsafeName": "LONG", - "safeName": "LONG" - }, - "pascalCase": { - "unsafeName": "Long", - "safeName": "Long" - } - }, - "wireValue": "long" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "long", - "long": 1000000 - } - }, - "jsonExample": 1000000 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "double", - "camelCase": { - "unsafeName": "double", - "safeName": "double" - }, - "snakeCase": { - "unsafeName": "double", - "safeName": "double" - }, - "screamingSnakeCase": { - "unsafeName": "DOUBLE", - "safeName": "DOUBLE" - }, - "pascalCase": { - "unsafeName": "Double", - "safeName": "Double" - } - }, - "wireValue": "double" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "double", - "double": 1.1 - } - }, - "jsonExample": 1.1 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "bool", - "camelCase": { - "unsafeName": "bool", - "safeName": "bool" - }, - "snakeCase": { - "unsafeName": "bool", - "safeName": "bool" - }, - "screamingSnakeCase": { - "unsafeName": "BOOL", - "safeName": "BOOL" - }, - "pascalCase": { - "unsafeName": "Bool", - "safeName": "Bool" - } - }, - "wireValue": "bool" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "boolean", - "boolean": true - } - }, - "jsonExample": true - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "datetime", - "camelCase": { - "unsafeName": "datetime", - "safeName": "datetime" - }, - "snakeCase": { - "unsafeName": "datetime", - "safeName": "datetime" - }, - "screamingSnakeCase": { - "unsafeName": "DATETIME", - "safeName": "DATETIME" - }, - "pascalCase": { - "unsafeName": "Datetime", - "safeName": "Datetime" - } - }, - "wireValue": "datetime" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "datetime", - "datetime": "2024-01-15T09:30:00.000Z" - } - }, - "jsonExample": "2024-01-15T09:30:00Z" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "date", - "camelCase": { - "unsafeName": "date", - "safeName": "date" - }, - "snakeCase": { - "unsafeName": "date", - "safeName": "date" - }, - "screamingSnakeCase": { - "unsafeName": "DATE", - "safeName": "DATE" - }, - "pascalCase": { - "unsafeName": "Date", - "safeName": "Date_" - } - }, - "wireValue": "date" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "date", - "date": "2023-01-15" - } - }, - "jsonExample": "2023-01-15" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "uuid", - "camelCase": { - "unsafeName": "uuid", - "safeName": "uuid" - }, - "snakeCase": { - "unsafeName": "uuid", - "safeName": "uuid" - }, - "screamingSnakeCase": { - "unsafeName": "UUID", - "safeName": "UUID" - }, - "pascalCase": { - "unsafeName": "Uuid", - "safeName": "Uuid" - } - }, - "wireValue": "uuid" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "uuid", - "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32" - } - }, - "jsonExample": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "base64", - "camelCase": { - "unsafeName": "base64", - "safeName": "base64" - }, - "snakeCase": { - "unsafeName": "base_64", - "safeName": "base_64" - }, - "screamingSnakeCase": { - "unsafeName": "BASE_64", - "safeName": "BASE_64" - }, - "pascalCase": { - "unsafeName": "Base64", - "safeName": "Base64" - } - }, - "wireValue": "base64" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "SGVsbG8gd29ybGQh" - } - } - }, - "jsonExample": "SGVsbG8gd29ybGQh" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "list", - "camelCase": { - "unsafeName": "list", - "safeName": "list" - }, - "snakeCase": { - "unsafeName": "list", - "safeName": "list" - }, - "screamingSnakeCase": { - "unsafeName": "LIST", - "safeName": "LIST" - }, - "pascalCase": { - "unsafeName": "List", - "safeName": "List" - } - }, - "wireValue": "list" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "list", - "list": [ - { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - ] - } - }, - "jsonExample": [ - "string" - ] - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "set", - "camelCase": { - "unsafeName": "set", - "safeName": "set_" - }, - "snakeCase": { - "unsafeName": "set", - "safeName": "set_" - }, - "screamingSnakeCase": { - "unsafeName": "SET", - "safeName": "SET" - }, - "pascalCase": { - "unsafeName": "Set", - "safeName": "Set" - } - }, - "wireValue": "set" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "set", - "set": [ - { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - ] - } - }, - "jsonExample": [ - "string" - ] - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "map", - "camelCase": { - "unsafeName": "map", - "safeName": "map" - }, - "snakeCase": { - "unsafeName": "map", - "safeName": "map" - }, - "screamingSnakeCase": { - "unsafeName": "MAP", - "safeName": "MAP" - }, - "pascalCase": { - "unsafeName": "Map", - "safeName": "Map" - } - }, - "wireValue": "map" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "map", - "map": [ - { - "key": { - "shape": { - "type": "primitive", - "primitive": { - "type": "integer", - "integer": 1 - } - }, - "jsonExample": 1 - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - } - ] - } - }, - "jsonExample": { - "1": "string" - } - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - } - ] - } - }, - "jsonExample": { - "string": "string", - "integer": 1, - "long": 1000000, - "double": 1.1, - "bool": true, - "datetime": "2024-01-15T09:30:00Z", - "date": "2023-01-15", - "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", - "base64": "SGVsbG8gd29ybGQh", - "list": [ - "string" - ], - "set": [ - "string" - ], - "map": { - "1": "string" - } - } - } - }, - "docs": null - } - ], - "pagination": null, - "availability": null, - "docs": null - }, - { - "id": "endpoint_endpoints/object.getAndReturnWithRequiredField", - "name": { - "originalName": "getAndReturnWithRequiredField", - "camelCase": { - "unsafeName": "getAndReturnWithRequiredField", - "safeName": "getAndReturnWithRequiredField" - }, - "snakeCase": { - "unsafeName": "get_and_return_with_required_field", - "safeName": "get_and_return_with_required_field" - }, - "screamingSnakeCase": { - "unsafeName": "GET_AND_RETURN_WITH_REQUIRED_FIELD", - "safeName": "GET_AND_RETURN_WITH_REQUIRED_FIELD" - }, - "pascalCase": { - "unsafeName": "GetAndReturnWithRequiredField", - "safeName": "GetAndReturnWithRequiredField" - } - }, - "displayName": null, - "auth": true, - "idempotent": false, - "baseUrl": null, - "method": "POST", - "path": { - "head": "/get-and-return-with-required-field", - "parts": [] - }, - "fullPath": { - "head": "/object/get-and-return-with-required-field", - "parts": [] - }, - "pathParameters": [], - "allPathParameters": [], - "queryParameters": [], - "headers": [], - "requestBody": { - "type": "reference", - "requestBodyType": { - "_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_" - } - } - }, - "typeId": "type_types/object:ObjectWithRequiredField" - }, - "contentType": null, - "docs": null - }, - "sdkRequest": { - "shape": { - "type": "justRequestBody", - "value": { - "type": "typeReference", - "requestBodyType": { - "_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_" - } - } - }, - "typeId": "type_types/object:ObjectWithRequiredField" - }, - "contentType": null, - "docs": null - } - }, - "requestParameterName": { - "originalName": "request", - "camelCase": { - "unsafeName": "request", - "safeName": "request" - }, - "snakeCase": { - "unsafeName": "request", - "safeName": "request" - }, - "screamingSnakeCase": { - "unsafeName": "REQUEST", - "safeName": "REQUEST" - }, - "pascalCase": { - "unsafeName": "Request", - "safeName": "Request" - } - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithRequiredField" - }, - "docs": null - } - }, - "status-code": null - }, - "errors": [], - "examples": [ - { - "exampleType": "generated", - "url": "/get-and-return-with-required-field", - "rootPathParameters": [], - "servicePathParameters": [], - "endpointPathParameters": [], - "serviceHeaders": [], - "endpointHeaders": [], - "queryParameters": [], - "request": { - "type": "reference", - "shape": { - "type": "named", - "typeName": { - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithRequiredField" - }, - "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": "string" - } - } - }, - "jsonExample": "string" - }, - "originalTypeDeclaration": { - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithRequiredField" - } - } - ] - } - }, - "jsonExample": { - "string": "string" - } - }, - "name": null, - "codeSamples": null, - "response": { - "type": "ok", - "body": { - "shape": { - "type": "named", - "typeName": { - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithRequiredField" - }, - "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": "string" - } - } - }, - "jsonExample": "string" - }, - "originalTypeDeclaration": { - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithRequiredField" - } - } - ] - } - }, - "jsonExample": { - "string": "string" - } - } - }, - "docs": null - } - ], - "pagination": null, - "availability": null, - "docs": null - }, - { - "id": "endpoint_endpoints/object.getAndReturnWithMapOfMap", - "name": { - "originalName": "getAndReturnWithMapOfMap", - "camelCase": { - "unsafeName": "getAndReturnWithMapOfMap", - "safeName": "getAndReturnWithMapOfMap" - }, - "snakeCase": { - "unsafeName": "get_and_return_with_map_of_map", - "safeName": "get_and_return_with_map_of_map" - }, - "screamingSnakeCase": { - "unsafeName": "GET_AND_RETURN_WITH_MAP_OF_MAP", - "safeName": "GET_AND_RETURN_WITH_MAP_OF_MAP" - }, - "pascalCase": { - "unsafeName": "GetAndReturnWithMapOfMap", - "safeName": "GetAndReturnWithMapOfMap" - } - }, - "displayName": null, - "auth": true, - "idempotent": false, - "baseUrl": null, - "method": "POST", - "path": { - "head": "/get-and-return-with-map-of-map", - "parts": [] - }, - "fullPath": { - "head": "/object/get-and-return-with-map-of-map", - "parts": [] - }, - "pathParameters": [], - "allPathParameters": [], - "queryParameters": [], - "headers": [], - "requestBody": { - "type": "reference", - "requestBodyType": { - "_type": "named", - "name": { - "originalName": "ObjectWithMapOfMap", - "camelCase": { - "unsafeName": "objectWithMapOfMap", - "safeName": "objectWithMapOfMap" - }, - "snakeCase": { - "unsafeName": "object_with_map_of_map", - "safeName": "object_with_map_of_map" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_MAP_OF_MAP", - "safeName": "OBJECT_WITH_MAP_OF_MAP" - }, - "pascalCase": { - "unsafeName": "ObjectWithMapOfMap", - "safeName": "ObjectWithMapOfMap" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithMapOfMap" - }, - "contentType": null, - "docs": null - }, - "sdkRequest": { - "shape": { - "type": "justRequestBody", - "value": { - "type": "typeReference", - "requestBodyType": { - "_type": "named", - "name": { - "originalName": "ObjectWithMapOfMap", - "camelCase": { - "unsafeName": "objectWithMapOfMap", - "safeName": "objectWithMapOfMap" - }, - "snakeCase": { - "unsafeName": "object_with_map_of_map", - "safeName": "object_with_map_of_map" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_MAP_OF_MAP", - "safeName": "OBJECT_WITH_MAP_OF_MAP" - }, - "pascalCase": { - "unsafeName": "ObjectWithMapOfMap", - "safeName": "ObjectWithMapOfMap" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithMapOfMap" - }, - "contentType": null, - "docs": null - } - }, - "requestParameterName": { - "originalName": "request", - "camelCase": { - "unsafeName": "request", - "safeName": "request" - }, - "snakeCase": { - "unsafeName": "request", - "safeName": "request" - }, - "screamingSnakeCase": { - "unsafeName": "REQUEST", - "safeName": "REQUEST" - }, - "pascalCase": { - "unsafeName": "Request", - "safeName": "Request" - } - } - }, - "response": { - "body": { - "type": "json", - "value": { - "type": "response", - "responseBodyType": { - "_type": "named", - "name": { - "originalName": "ObjectWithMapOfMap", - "camelCase": { - "unsafeName": "objectWithMapOfMap", - "safeName": "objectWithMapOfMap" - }, - "snakeCase": { - "unsafeName": "object_with_map_of_map", - "safeName": "object_with_map_of_map" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_MAP_OF_MAP", - "safeName": "OBJECT_WITH_MAP_OF_MAP" - }, - "pascalCase": { - "unsafeName": "ObjectWithMapOfMap", - "safeName": "ObjectWithMapOfMap" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithMapOfMap" - }, - "docs": null - } - }, - "status-code": null - }, - "errors": [], - "examples": [ - { - "exampleType": "generated", - "url": "/get-and-return-with-map-of-map", - "rootPathParameters": [], - "servicePathParameters": [], - "endpointPathParameters": [], - "serviceHeaders": [], - "endpointHeaders": [], - "queryParameters": [], - "request": { - "type": "reference", - "shape": { - "type": "named", - "typeName": { - "name": { - "originalName": "ObjectWithMapOfMap", - "camelCase": { - "unsafeName": "objectWithMapOfMap", - "safeName": "objectWithMapOfMap" - }, - "snakeCase": { - "unsafeName": "object_with_map_of_map", - "safeName": "object_with_map_of_map" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_MAP_OF_MAP", - "safeName": "OBJECT_WITH_MAP_OF_MAP" - }, - "pascalCase": { - "unsafeName": "ObjectWithMapOfMap", - "safeName": "ObjectWithMapOfMap" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithMapOfMap" - }, - "shape": { - "type": "object", - "properties": [ - { - "name": { - "name": { - "originalName": "map", - "camelCase": { - "unsafeName": "map", - "safeName": "map" - }, - "snakeCase": { - "unsafeName": "map", - "safeName": "map" - }, - "screamingSnakeCase": { - "unsafeName": "MAP", - "safeName": "MAP" - }, - "pascalCase": { - "unsafeName": "Map", - "safeName": "Map" - } - }, - "wireValue": "map" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "map", - "map": [ - { - "key": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "map", - "map": [ - { - "key": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - } - ] - } - }, - "jsonExample": { - "string": "string" - } - } - } - ] - } - }, - "jsonExample": { - "string": { - "string": "string" - } - } - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithMapOfMap", - "camelCase": { - "unsafeName": "objectWithMapOfMap", - "safeName": "objectWithMapOfMap" - }, - "snakeCase": { - "unsafeName": "object_with_map_of_map", - "safeName": "object_with_map_of_map" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_MAP_OF_MAP", - "safeName": "OBJECT_WITH_MAP_OF_MAP" - }, - "pascalCase": { - "unsafeName": "ObjectWithMapOfMap", - "safeName": "ObjectWithMapOfMap" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithMapOfMap" - } - } - ] - } - }, - "jsonExample": { - "map": { - "string": { - "string": "string" - } - } - } - }, - "name": null, - "codeSamples": null, - "response": { - "type": "ok", - "body": { - "shape": { - "type": "named", - "typeName": { - "name": { - "originalName": "ObjectWithMapOfMap", - "camelCase": { - "unsafeName": "objectWithMapOfMap", - "safeName": "objectWithMapOfMap" - }, - "snakeCase": { - "unsafeName": "object_with_map_of_map", - "safeName": "object_with_map_of_map" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_MAP_OF_MAP", - "safeName": "OBJECT_WITH_MAP_OF_MAP" - }, - "pascalCase": { - "unsafeName": "ObjectWithMapOfMap", - "safeName": "ObjectWithMapOfMap" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithMapOfMap" - }, - "shape": { - "type": "object", - "properties": [ - { - "name": { - "name": { - "originalName": "map", - "camelCase": { - "unsafeName": "map", - "safeName": "map" - }, - "snakeCase": { - "unsafeName": "map", - "safeName": "map" - }, - "screamingSnakeCase": { - "unsafeName": "MAP", - "safeName": "MAP" - }, - "pascalCase": { - "unsafeName": "Map", - "safeName": "Map" - } - }, - "wireValue": "map" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "map", - "map": [ - { - "key": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "map", - "map": [ - { - "key": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - } - ] - } - }, - "jsonExample": { - "string": "string" - } - } - } - ] - } - }, - "jsonExample": { - "string": { - "string": "string" - } - } - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithMapOfMap", - "camelCase": { - "unsafeName": "objectWithMapOfMap", - "safeName": "objectWithMapOfMap" - }, - "snakeCase": { - "unsafeName": "object_with_map_of_map", - "safeName": "object_with_map_of_map" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_MAP_OF_MAP", - "safeName": "OBJECT_WITH_MAP_OF_MAP" - }, - "pascalCase": { - "unsafeName": "ObjectWithMapOfMap", - "safeName": "ObjectWithMapOfMap" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithMapOfMap" - } - } - ] - } - }, - "jsonExample": { - "map": { - "string": { - "string": "string" - } - } - } - } - }, - "docs": null - } - ], - "pagination": null, - "availability": null, - "docs": null - }, - { - "id": "endpoint_endpoints/object.getAndReturnNestedWithOptionalField", - "name": { - "originalName": "getAndReturnNestedWithOptionalField", - "camelCase": { - "unsafeName": "getAndReturnNestedWithOptionalField", - "safeName": "getAndReturnNestedWithOptionalField" - }, - "snakeCase": { - "unsafeName": "get_and_return_nested_with_optional_field", - "safeName": "get_and_return_nested_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "GET_AND_RETURN_NESTED_WITH_OPTIONAL_FIELD", - "safeName": "GET_AND_RETURN_NESTED_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "GetAndReturnNestedWithOptionalField", - "safeName": "GetAndReturnNestedWithOptionalField" - } - }, - "displayName": null, - "auth": true, - "idempotent": false, - "baseUrl": null, - "method": "POST", - "path": { - "head": "/get-and-return-nested-with-optional-field", - "parts": [] - }, - "fullPath": { - "head": "/object/get-and-return-nested-with-optional-field", - "parts": [] - }, - "pathParameters": [], - "allPathParameters": [], - "queryParameters": [], - "headers": [], - "requestBody": { - "type": "reference", - "requestBodyType": { - "_type": "named", - "name": { - "originalName": "NestedObjectWithOptionalField", - "camelCase": { - "unsafeName": "nestedObjectWithOptionalField", - "safeName": "nestedObjectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "nested_object_with_optional_field", - "safeName": "nested_object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "NESTED_OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "NESTED_OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "NestedObjectWithOptionalField", - "safeName": "NestedObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:NestedObjectWithOptionalField" - }, - "contentType": null, - "docs": null - }, - "sdkRequest": { - "shape": { - "type": "justRequestBody", - "value": { - "type": "typeReference", - "requestBodyType": { - "_type": "named", - "name": { - "originalName": "NestedObjectWithOptionalField", - "camelCase": { - "unsafeName": "nestedObjectWithOptionalField", - "safeName": "nestedObjectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "nested_object_with_optional_field", - "safeName": "nested_object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "NESTED_OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "NESTED_OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "NestedObjectWithOptionalField", - "safeName": "NestedObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:NestedObjectWithOptionalField" - }, - "contentType": null, - "docs": null - } - }, - "requestParameterName": { - "originalName": "request", - "camelCase": { - "unsafeName": "request", - "safeName": "request" - }, - "snakeCase": { - "unsafeName": "request", - "safeName": "request" - }, - "screamingSnakeCase": { - "unsafeName": "REQUEST", - "safeName": "REQUEST" - }, - "pascalCase": { - "unsafeName": "Request", - "safeName": "Request" - } - } - }, - "response": { - "body": { - "type": "json", - "value": { - "type": "response", - "responseBodyType": { - "_type": "named", - "name": { - "originalName": "NestedObjectWithOptionalField", - "camelCase": { - "unsafeName": "nestedObjectWithOptionalField", - "safeName": "nestedObjectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "nested_object_with_optional_field", - "safeName": "nested_object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "NESTED_OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "NESTED_OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "NestedObjectWithOptionalField", - "safeName": "NestedObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:NestedObjectWithOptionalField" - }, - "docs": null - } - }, - "status-code": null - }, - "errors": [], - "examples": [ - { - "exampleType": "generated", - "url": "/get-and-return-nested-with-optional-field", - "rootPathParameters": [], - "servicePathParameters": [], - "endpointPathParameters": [], - "serviceHeaders": [], - "endpointHeaders": [], - "queryParameters": [], - "request": { - "type": "reference", - "shape": { - "type": "named", - "typeName": { - "name": { - "originalName": "NestedObjectWithOptionalField", - "camelCase": { - "unsafeName": "nestedObjectWithOptionalField", - "safeName": "nestedObjectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "nested_object_with_optional_field", - "safeName": "nested_object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "NESTED_OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "NESTED_OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "NestedObjectWithOptionalField", - "safeName": "NestedObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:NestedObjectWithOptionalField" - }, - "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": "string" - } - } - }, - "jsonExample": "string" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "NestedObjectWithOptionalField", - "camelCase": { - "unsafeName": "nestedObjectWithOptionalField", - "safeName": "nestedObjectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "nested_object_with_optional_field", - "safeName": "nested_object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "NESTED_OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "NESTED_OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "NestedObjectWithOptionalField", - "safeName": "NestedObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:NestedObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "NestedObject", - "camelCase": { - "unsafeName": "nestedObject", - "safeName": "nestedObject" - }, - "snakeCase": { - "unsafeName": "nested_object", - "safeName": "nested_object" - }, - "screamingSnakeCase": { - "unsafeName": "NESTED_OBJECT", - "safeName": "NESTED_OBJECT" - }, - "pascalCase": { - "unsafeName": "NestedObject", - "safeName": "NestedObject" - } - }, - "wireValue": "NestedObject" - }, - "value": { - "shape": { - "type": "named", - "typeName": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - }, - "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": "string" - } - } - }, - "jsonExample": "string" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "integer", - "camelCase": { - "unsafeName": "integer", - "safeName": "integer" - }, - "snakeCase": { - "unsafeName": "integer", - "safeName": "integer" - }, - "screamingSnakeCase": { - "unsafeName": "INTEGER", - "safeName": "INTEGER" - }, - "pascalCase": { - "unsafeName": "Integer", - "safeName": "Integer" - } - }, - "wireValue": "integer" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "integer", - "integer": 1 - } - }, - "jsonExample": 1 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "long", - "camelCase": { - "unsafeName": "long", - "safeName": "long" - }, - "snakeCase": { - "unsafeName": "long", - "safeName": "long" - }, - "screamingSnakeCase": { - "unsafeName": "LONG", - "safeName": "LONG" - }, - "pascalCase": { - "unsafeName": "Long", - "safeName": "Long" - } - }, - "wireValue": "long" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "long", - "long": 1000000 - } - }, - "jsonExample": 1000000 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "double", - "camelCase": { - "unsafeName": "double", - "safeName": "double" - }, - "snakeCase": { - "unsafeName": "double", - "safeName": "double" - }, - "screamingSnakeCase": { - "unsafeName": "DOUBLE", - "safeName": "DOUBLE" - }, - "pascalCase": { - "unsafeName": "Double", - "safeName": "Double" - } - }, - "wireValue": "double" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "double", - "double": 1.1 - } - }, - "jsonExample": 1.1 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "bool", - "camelCase": { - "unsafeName": "bool", - "safeName": "bool" - }, - "snakeCase": { - "unsafeName": "bool", - "safeName": "bool" - }, - "screamingSnakeCase": { - "unsafeName": "BOOL", - "safeName": "BOOL" - }, - "pascalCase": { - "unsafeName": "Bool", - "safeName": "Bool" - } - }, - "wireValue": "bool" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "boolean", - "boolean": true - } - }, - "jsonExample": true - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "datetime", - "camelCase": { - "unsafeName": "datetime", - "safeName": "datetime" - }, - "snakeCase": { - "unsafeName": "datetime", - "safeName": "datetime" - }, - "screamingSnakeCase": { - "unsafeName": "DATETIME", - "safeName": "DATETIME" - }, - "pascalCase": { - "unsafeName": "Datetime", - "safeName": "Datetime" - } - }, - "wireValue": "datetime" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "datetime", - "datetime": "2024-01-15T09:30:00.000Z" - } - }, - "jsonExample": "2024-01-15T09:30:00Z" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "date", - "camelCase": { - "unsafeName": "date", - "safeName": "date" - }, - "snakeCase": { - "unsafeName": "date", - "safeName": "date" - }, - "screamingSnakeCase": { - "unsafeName": "DATE", - "safeName": "DATE" - }, - "pascalCase": { - "unsafeName": "Date", - "safeName": "Date_" - } - }, - "wireValue": "date" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "date", - "date": "2023-01-15" - } - }, - "jsonExample": "2023-01-15" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "uuid", - "camelCase": { - "unsafeName": "uuid", - "safeName": "uuid" - }, - "snakeCase": { - "unsafeName": "uuid", - "safeName": "uuid" - }, - "screamingSnakeCase": { - "unsafeName": "UUID", - "safeName": "UUID" - }, - "pascalCase": { - "unsafeName": "Uuid", - "safeName": "Uuid" - } - }, - "wireValue": "uuid" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "uuid", - "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32" - } - }, - "jsonExample": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "base64", - "camelCase": { - "unsafeName": "base64", - "safeName": "base64" - }, - "snakeCase": { - "unsafeName": "base_64", - "safeName": "base_64" - }, - "screamingSnakeCase": { - "unsafeName": "BASE_64", - "safeName": "BASE_64" - }, - "pascalCase": { - "unsafeName": "Base64", - "safeName": "Base64" - } - }, - "wireValue": "base64" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "SGVsbG8gd29ybGQh" - } - } - }, - "jsonExample": "SGVsbG8gd29ybGQh" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "list", - "camelCase": { - "unsafeName": "list", - "safeName": "list" - }, - "snakeCase": { - "unsafeName": "list", - "safeName": "list" - }, - "screamingSnakeCase": { - "unsafeName": "LIST", - "safeName": "LIST" - }, - "pascalCase": { - "unsafeName": "List", - "safeName": "List" - } - }, - "wireValue": "list" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "list", - "list": [ - { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - ] - } - }, - "jsonExample": [ - "string" - ] - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "set", - "camelCase": { - "unsafeName": "set", - "safeName": "set_" - }, - "snakeCase": { - "unsafeName": "set", - "safeName": "set_" - }, - "screamingSnakeCase": { - "unsafeName": "SET", - "safeName": "SET" - }, - "pascalCase": { - "unsafeName": "Set", - "safeName": "Set" - } - }, - "wireValue": "set" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "set", - "set": [ - { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - ] - } - }, - "jsonExample": [ - "string" - ] - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "map", - "camelCase": { - "unsafeName": "map", - "safeName": "map" - }, - "snakeCase": { - "unsafeName": "map", - "safeName": "map" - }, - "screamingSnakeCase": { - "unsafeName": "MAP", - "safeName": "MAP" - }, - "pascalCase": { - "unsafeName": "Map", - "safeName": "Map" - } - }, - "wireValue": "map" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "map", - "map": [ - { - "key": { - "shape": { - "type": "primitive", - "primitive": { - "type": "integer", - "integer": 1 - } - }, - "jsonExample": 1 - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - } - ] - } - }, - "jsonExample": { - "1": "string" - } - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - } - ] - } - }, - "jsonExample": { - "string": "string", - "integer": 1, - "long": 1000000, - "double": 1.1, - "bool": true, - "datetime": "2024-01-15T09:30:00Z", - "date": "2023-01-15", - "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", - "base64": "SGVsbG8gd29ybGQh", - "list": [ - "string" - ], - "set": [ - "string" - ], - "map": { - "1": "string" - } - } - }, - "originalTypeDeclaration": { - "name": { - "originalName": "NestedObjectWithOptionalField", - "camelCase": { - "unsafeName": "nestedObjectWithOptionalField", - "safeName": "nestedObjectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "nested_object_with_optional_field", - "safeName": "nested_object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "NESTED_OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "NESTED_OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "NestedObjectWithOptionalField", - "safeName": "NestedObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:NestedObjectWithOptionalField" - } - } - ] - } - }, - "jsonExample": { - "string": "string", - "NestedObject": { - "string": "string", - "integer": 1, - "long": 1000000, - "double": 1.1, - "bool": true, - "datetime": "2024-01-15T09:30:00Z", - "date": "2023-01-15", - "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", - "base64": "SGVsbG8gd29ybGQh", - "list": [ - "string" - ], - "set": [ - "string" - ], - "map": { - "1": "string" - } - } - } - }, - "name": null, - "codeSamples": null, - "response": { - "type": "ok", - "body": { - "shape": { - "type": "named", - "typeName": { - "name": { - "originalName": "NestedObjectWithOptionalField", - "camelCase": { - "unsafeName": "nestedObjectWithOptionalField", - "safeName": "nestedObjectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "nested_object_with_optional_field", - "safeName": "nested_object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "NESTED_OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "NESTED_OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "NestedObjectWithOptionalField", - "safeName": "NestedObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:NestedObjectWithOptionalField" - }, - "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": "string" - } - } - }, - "jsonExample": "string" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "NestedObjectWithOptionalField", - "camelCase": { - "unsafeName": "nestedObjectWithOptionalField", - "safeName": "nestedObjectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "nested_object_with_optional_field", - "safeName": "nested_object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "NESTED_OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "NESTED_OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "NestedObjectWithOptionalField", - "safeName": "NestedObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:NestedObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "NestedObject", - "camelCase": { - "unsafeName": "nestedObject", - "safeName": "nestedObject" - }, - "snakeCase": { - "unsafeName": "nested_object", - "safeName": "nested_object" - }, - "screamingSnakeCase": { - "unsafeName": "NESTED_OBJECT", - "safeName": "NESTED_OBJECT" - }, - "pascalCase": { - "unsafeName": "NestedObject", - "safeName": "NestedObject" - } - }, - "wireValue": "NestedObject" - }, - "value": { - "shape": { - "type": "named", - "typeName": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - }, - "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": "string" - } - } - }, - "jsonExample": "string" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "integer", - "camelCase": { - "unsafeName": "integer", - "safeName": "integer" - }, - "snakeCase": { - "unsafeName": "integer", - "safeName": "integer" - }, - "screamingSnakeCase": { - "unsafeName": "INTEGER", - "safeName": "INTEGER" - }, - "pascalCase": { - "unsafeName": "Integer", - "safeName": "Integer" - } - }, - "wireValue": "integer" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "integer", - "integer": 1 - } - }, - "jsonExample": 1 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "long", - "camelCase": { - "unsafeName": "long", - "safeName": "long" - }, - "snakeCase": { - "unsafeName": "long", - "safeName": "long" - }, - "screamingSnakeCase": { - "unsafeName": "LONG", - "safeName": "LONG" - }, - "pascalCase": { - "unsafeName": "Long", - "safeName": "Long" - } - }, - "wireValue": "long" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "long", - "long": 1000000 - } - }, - "jsonExample": 1000000 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "double", - "camelCase": { - "unsafeName": "double", - "safeName": "double" - }, - "snakeCase": { - "unsafeName": "double", - "safeName": "double" - }, - "screamingSnakeCase": { - "unsafeName": "DOUBLE", - "safeName": "DOUBLE" - }, - "pascalCase": { - "unsafeName": "Double", - "safeName": "Double" - } - }, - "wireValue": "double" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "double", - "double": 1.1 - } - }, - "jsonExample": 1.1 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "bool", - "camelCase": { - "unsafeName": "bool", - "safeName": "bool" - }, - "snakeCase": { - "unsafeName": "bool", - "safeName": "bool" - }, - "screamingSnakeCase": { - "unsafeName": "BOOL", - "safeName": "BOOL" - }, - "pascalCase": { - "unsafeName": "Bool", - "safeName": "Bool" - } - }, - "wireValue": "bool" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "boolean", - "boolean": true - } - }, - "jsonExample": true - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "datetime", - "camelCase": { - "unsafeName": "datetime", - "safeName": "datetime" - }, - "snakeCase": { - "unsafeName": "datetime", - "safeName": "datetime" - }, - "screamingSnakeCase": { - "unsafeName": "DATETIME", - "safeName": "DATETIME" - }, - "pascalCase": { - "unsafeName": "Datetime", - "safeName": "Datetime" - } - }, - "wireValue": "datetime" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "datetime", - "datetime": "2024-01-15T09:30:00.000Z" - } - }, - "jsonExample": "2024-01-15T09:30:00Z" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "date", - "camelCase": { - "unsafeName": "date", - "safeName": "date" - }, - "snakeCase": { - "unsafeName": "date", - "safeName": "date" - }, - "screamingSnakeCase": { - "unsafeName": "DATE", - "safeName": "DATE" - }, - "pascalCase": { - "unsafeName": "Date", - "safeName": "Date_" - } - }, - "wireValue": "date" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "date", - "date": "2023-01-15" - } - }, - "jsonExample": "2023-01-15" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "uuid", - "camelCase": { - "unsafeName": "uuid", - "safeName": "uuid" - }, - "snakeCase": { - "unsafeName": "uuid", - "safeName": "uuid" - }, - "screamingSnakeCase": { - "unsafeName": "UUID", - "safeName": "UUID" - }, - "pascalCase": { - "unsafeName": "Uuid", - "safeName": "Uuid" - } - }, - "wireValue": "uuid" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "uuid", - "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32" - } - }, - "jsonExample": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "base64", - "camelCase": { - "unsafeName": "base64", - "safeName": "base64" - }, - "snakeCase": { - "unsafeName": "base_64", - "safeName": "base_64" - }, - "screamingSnakeCase": { - "unsafeName": "BASE_64", - "safeName": "BASE_64" - }, - "pascalCase": { - "unsafeName": "Base64", - "safeName": "Base64" - } - }, - "wireValue": "base64" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "SGVsbG8gd29ybGQh" - } - } - }, - "jsonExample": "SGVsbG8gd29ybGQh" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "list", - "camelCase": { - "unsafeName": "list", - "safeName": "list" - }, - "snakeCase": { - "unsafeName": "list", - "safeName": "list" - }, - "screamingSnakeCase": { - "unsafeName": "LIST", - "safeName": "LIST" - }, - "pascalCase": { - "unsafeName": "List", - "safeName": "List" - } - }, - "wireValue": "list" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "list", - "list": [ - { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - ] - } - }, - "jsonExample": [ - "string" - ] - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "set", - "camelCase": { - "unsafeName": "set", - "safeName": "set_" - }, - "snakeCase": { - "unsafeName": "set", - "safeName": "set_" - }, - "screamingSnakeCase": { - "unsafeName": "SET", - "safeName": "SET" - }, - "pascalCase": { - "unsafeName": "Set", - "safeName": "Set" - } - }, - "wireValue": "set" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "set", - "set": [ - { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - ] - } - }, - "jsonExample": [ - "string" - ] - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "map", - "camelCase": { - "unsafeName": "map", - "safeName": "map" - }, - "snakeCase": { - "unsafeName": "map", - "safeName": "map" - }, - "screamingSnakeCase": { - "unsafeName": "MAP", - "safeName": "MAP" - }, - "pascalCase": { - "unsafeName": "Map", - "safeName": "Map" - } - }, - "wireValue": "map" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "map", - "map": [ - { - "key": { - "shape": { - "type": "primitive", - "primitive": { - "type": "integer", - "integer": 1 - } - }, - "jsonExample": 1 - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - } - ] - } - }, - "jsonExample": { - "1": "string" - } - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - } - ] - } - }, - "jsonExample": { - "string": "string", - "integer": 1, - "long": 1000000, - "double": 1.1, - "bool": true, - "datetime": "2024-01-15T09:30:00Z", - "date": "2023-01-15", - "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", - "base64": "SGVsbG8gd29ybGQh", - "list": [ - "string" - ], - "set": [ - "string" - ], - "map": { - "1": "string" - } - } - }, - "originalTypeDeclaration": { - "name": { - "originalName": "NestedObjectWithOptionalField", - "camelCase": { - "unsafeName": "nestedObjectWithOptionalField", - "safeName": "nestedObjectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "nested_object_with_optional_field", - "safeName": "nested_object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "NESTED_OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "NESTED_OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "NestedObjectWithOptionalField", - "safeName": "NestedObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:NestedObjectWithOptionalField" - } - } - ] - } - }, - "jsonExample": { - "string": "string", - "NestedObject": { - "string": "string", - "integer": 1, - "long": 1000000, - "double": 1.1, - "bool": true, - "datetime": "2024-01-15T09:30:00Z", - "date": "2023-01-15", - "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", - "base64": "SGVsbG8gd29ybGQh", - "list": [ - "string" - ], - "set": [ - "string" - ], - "map": { - "1": "string" - } - } - } - } - }, - "docs": null - } - ], - "pagination": null, - "availability": null, - "docs": null - }, - { - "id": "endpoint_endpoints/object.getAndReturnNestedWithRequiredField", - "name": { - "originalName": "getAndReturnNestedWithRequiredField", - "camelCase": { - "unsafeName": "getAndReturnNestedWithRequiredField", - "safeName": "getAndReturnNestedWithRequiredField" - }, - "snakeCase": { - "unsafeName": "get_and_return_nested_with_required_field", - "safeName": "get_and_return_nested_with_required_field" - }, - "screamingSnakeCase": { - "unsafeName": "GET_AND_RETURN_NESTED_WITH_REQUIRED_FIELD", - "safeName": "GET_AND_RETURN_NESTED_WITH_REQUIRED_FIELD" - }, - "pascalCase": { - "unsafeName": "GetAndReturnNestedWithRequiredField", - "safeName": "GetAndReturnNestedWithRequiredField" - } - }, - "displayName": null, - "auth": true, - "idempotent": false, - "baseUrl": null, - "method": "POST", - "path": { - "head": "/get-and-return-nested-with-required-field/", - "parts": [ - { - "pathParameter": "string", - "tail": "" - } - ] - }, - "fullPath": { - "head": "/object/get-and-return-nested-with-required-field/", - "parts": [ - { - "pathParameter": "string", - "tail": "" - } - ] - }, - "pathParameters": [ - { - "name": { - "originalName": "string", - "camelCase": { - "unsafeName": "string", - "safeName": "string_" - }, - "snakeCase": { - "unsafeName": "string", - "safeName": "string_" - }, - "screamingSnakeCase": { - "unsafeName": "STRING", - "safeName": "STRING" - }, - "pascalCase": { - "unsafeName": "String", - "safeName": "String" - } - }, - "valueType": { - "_type": "primitive", - "primitive": "STRING" - }, - "location": "ENDPOINT", - "variable": null, - "docs": null - } - ], - "allPathParameters": [ - { - "name": { - "originalName": "string", - "camelCase": { - "unsafeName": "string", - "safeName": "string_" - }, - "snakeCase": { - "unsafeName": "string", - "safeName": "string_" - }, - "screamingSnakeCase": { - "unsafeName": "STRING", - "safeName": "STRING" - }, - "pascalCase": { - "unsafeName": "String", - "safeName": "String" - } - }, - "valueType": { - "_type": "primitive", - "primitive": "STRING" - }, - "location": "ENDPOINT", - "variable": null, - "docs": null - } - ], - "queryParameters": [], - "headers": [], - "requestBody": { - "type": "reference", - "requestBodyType": { - "_type": "named", - "name": { - "originalName": "NestedObjectWithRequiredField", - "camelCase": { - "unsafeName": "nestedObjectWithRequiredField", - "safeName": "nestedObjectWithRequiredField" - }, - "snakeCase": { - "unsafeName": "nested_object_with_required_field", - "safeName": "nested_object_with_required_field" - }, - "screamingSnakeCase": { - "unsafeName": "NESTED_OBJECT_WITH_REQUIRED_FIELD", - "safeName": "NESTED_OBJECT_WITH_REQUIRED_FIELD" - }, - "pascalCase": { - "unsafeName": "NestedObjectWithRequiredField", - "safeName": "NestedObjectWithRequiredField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:NestedObjectWithRequiredField" - }, - "contentType": null, - "docs": null - }, - "sdkRequest": { - "shape": { - "type": "justRequestBody", - "value": { - "type": "typeReference", - "requestBodyType": { - "_type": "named", - "name": { - "originalName": "NestedObjectWithRequiredField", - "camelCase": { - "unsafeName": "nestedObjectWithRequiredField", - "safeName": "nestedObjectWithRequiredField" - }, - "snakeCase": { - "unsafeName": "nested_object_with_required_field", - "safeName": "nested_object_with_required_field" - }, - "screamingSnakeCase": { - "unsafeName": "NESTED_OBJECT_WITH_REQUIRED_FIELD", - "safeName": "NESTED_OBJECT_WITH_REQUIRED_FIELD" - }, - "pascalCase": { - "unsafeName": "NestedObjectWithRequiredField", - "safeName": "NestedObjectWithRequiredField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:NestedObjectWithRequiredField" - }, - "contentType": null, - "docs": null - } - }, - "requestParameterName": { - "originalName": "request", - "camelCase": { - "unsafeName": "request", - "safeName": "request" - }, - "snakeCase": { - "unsafeName": "request", - "safeName": "request" - }, - "screamingSnakeCase": { - "unsafeName": "REQUEST", - "safeName": "REQUEST" - }, - "pascalCase": { - "unsafeName": "Request", - "safeName": "Request" - } - } - }, - "response": { - "body": { - "type": "json", - "value": { - "type": "response", - "responseBodyType": { - "_type": "named", - "name": { - "originalName": "NestedObjectWithRequiredField", - "camelCase": { - "unsafeName": "nestedObjectWithRequiredField", - "safeName": "nestedObjectWithRequiredField" - }, - "snakeCase": { - "unsafeName": "nested_object_with_required_field", - "safeName": "nested_object_with_required_field" - }, - "screamingSnakeCase": { - "unsafeName": "NESTED_OBJECT_WITH_REQUIRED_FIELD", - "safeName": "NESTED_OBJECT_WITH_REQUIRED_FIELD" - }, - "pascalCase": { - "unsafeName": "NestedObjectWithRequiredField", - "safeName": "NestedObjectWithRequiredField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:NestedObjectWithRequiredField" - }, - "docs": null - } - }, - "status-code": null - }, - "errors": [], - "examples": [ - { - "exampleType": "generated", - "url": "/get-and-return-nested-with-required-field/", - "rootPathParameters": [], - "servicePathParameters": [], - "endpointPathParameters": [ - { - "name": { - "originalName": "string", - "camelCase": { - "unsafeName": "string", - "safeName": "string_" - }, - "snakeCase": { - "unsafeName": "string", - "safeName": "string_" - }, - "screamingSnakeCase": { - "unsafeName": "STRING", - "safeName": "STRING" - }, - "pascalCase": { - "unsafeName": "String", - "safeName": "String" - } - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - } - ], - "serviceHeaders": [], - "endpointHeaders": [], - "queryParameters": [], - "request": { - "type": "reference", - "shape": { - "type": "named", - "typeName": { - "name": { - "originalName": "NestedObjectWithRequiredField", - "camelCase": { - "unsafeName": "nestedObjectWithRequiredField", - "safeName": "nestedObjectWithRequiredField" - }, - "snakeCase": { - "unsafeName": "nested_object_with_required_field", - "safeName": "nested_object_with_required_field" - }, - "screamingSnakeCase": { - "unsafeName": "NESTED_OBJECT_WITH_REQUIRED_FIELD", - "safeName": "NESTED_OBJECT_WITH_REQUIRED_FIELD" - }, - "pascalCase": { - "unsafeName": "NestedObjectWithRequiredField", - "safeName": "NestedObjectWithRequiredField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:NestedObjectWithRequiredField" - }, - "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": "string" - } - } - }, - "jsonExample": "string" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "NestedObjectWithRequiredField", - "camelCase": { - "unsafeName": "nestedObjectWithRequiredField", - "safeName": "nestedObjectWithRequiredField" - }, - "snakeCase": { - "unsafeName": "nested_object_with_required_field", - "safeName": "nested_object_with_required_field" - }, - "screamingSnakeCase": { - "unsafeName": "NESTED_OBJECT_WITH_REQUIRED_FIELD", - "safeName": "NESTED_OBJECT_WITH_REQUIRED_FIELD" - }, - "pascalCase": { - "unsafeName": "NestedObjectWithRequiredField", - "safeName": "NestedObjectWithRequiredField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:NestedObjectWithRequiredField" - } - }, - { - "name": { - "name": { - "originalName": "NestedObject", - "camelCase": { - "unsafeName": "nestedObject", - "safeName": "nestedObject" - }, - "snakeCase": { - "unsafeName": "nested_object", - "safeName": "nested_object" - }, - "screamingSnakeCase": { - "unsafeName": "NESTED_OBJECT", - "safeName": "NESTED_OBJECT" - }, - "pascalCase": { - "unsafeName": "NestedObject", - "safeName": "NestedObject" - } - }, - "wireValue": "NestedObject" - }, - "value": { - "shape": { - "type": "named", - "typeName": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - }, - "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": "string" - } - } - }, - "jsonExample": "string" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "integer", - "camelCase": { - "unsafeName": "integer", - "safeName": "integer" - }, - "snakeCase": { - "unsafeName": "integer", - "safeName": "integer" - }, - "screamingSnakeCase": { - "unsafeName": "INTEGER", - "safeName": "INTEGER" - }, - "pascalCase": { - "unsafeName": "Integer", - "safeName": "Integer" - } - }, - "wireValue": "integer" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "integer", - "integer": 1 - } - }, - "jsonExample": 1 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "long", - "camelCase": { - "unsafeName": "long", - "safeName": "long" - }, - "snakeCase": { - "unsafeName": "long", - "safeName": "long" - }, - "screamingSnakeCase": { - "unsafeName": "LONG", - "safeName": "LONG" - }, - "pascalCase": { - "unsafeName": "Long", - "safeName": "Long" - } - }, - "wireValue": "long" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "long", - "long": 1000000 - } - }, - "jsonExample": 1000000 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "double", - "camelCase": { - "unsafeName": "double", - "safeName": "double" - }, - "snakeCase": { - "unsafeName": "double", - "safeName": "double" - }, - "screamingSnakeCase": { - "unsafeName": "DOUBLE", - "safeName": "DOUBLE" - }, - "pascalCase": { - "unsafeName": "Double", - "safeName": "Double" - } - }, - "wireValue": "double" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "double", - "double": 1.1 - } - }, - "jsonExample": 1.1 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "bool", - "camelCase": { - "unsafeName": "bool", - "safeName": "bool" - }, - "snakeCase": { - "unsafeName": "bool", - "safeName": "bool" - }, - "screamingSnakeCase": { - "unsafeName": "BOOL", - "safeName": "BOOL" - }, - "pascalCase": { - "unsafeName": "Bool", - "safeName": "Bool" - } - }, - "wireValue": "bool" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "boolean", - "boolean": true - } - }, - "jsonExample": true - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "datetime", - "camelCase": { - "unsafeName": "datetime", - "safeName": "datetime" - }, - "snakeCase": { - "unsafeName": "datetime", - "safeName": "datetime" - }, - "screamingSnakeCase": { - "unsafeName": "DATETIME", - "safeName": "DATETIME" - }, - "pascalCase": { - "unsafeName": "Datetime", - "safeName": "Datetime" - } - }, - "wireValue": "datetime" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "datetime", - "datetime": "2024-01-15T09:30:00.000Z" - } - }, - "jsonExample": "2024-01-15T09:30:00Z" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "date", - "camelCase": { - "unsafeName": "date", - "safeName": "date" - }, - "snakeCase": { - "unsafeName": "date", - "safeName": "date" - }, - "screamingSnakeCase": { - "unsafeName": "DATE", - "safeName": "DATE" - }, - "pascalCase": { - "unsafeName": "Date", - "safeName": "Date_" - } - }, - "wireValue": "date" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "date", - "date": "2023-01-15" - } - }, - "jsonExample": "2023-01-15" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "uuid", - "camelCase": { - "unsafeName": "uuid", - "safeName": "uuid" - }, - "snakeCase": { - "unsafeName": "uuid", - "safeName": "uuid" - }, - "screamingSnakeCase": { - "unsafeName": "UUID", - "safeName": "UUID" - }, - "pascalCase": { - "unsafeName": "Uuid", - "safeName": "Uuid" - } - }, - "wireValue": "uuid" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "uuid", - "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32" - } - }, - "jsonExample": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "base64", - "camelCase": { - "unsafeName": "base64", - "safeName": "base64" - }, - "snakeCase": { - "unsafeName": "base_64", - "safeName": "base_64" - }, - "screamingSnakeCase": { - "unsafeName": "BASE_64", - "safeName": "BASE_64" - }, - "pascalCase": { - "unsafeName": "Base64", - "safeName": "Base64" - } - }, - "wireValue": "base64" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "SGVsbG8gd29ybGQh" - } - } - }, - "jsonExample": "SGVsbG8gd29ybGQh" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "list", - "camelCase": { - "unsafeName": "list", - "safeName": "list" - }, - "snakeCase": { - "unsafeName": "list", - "safeName": "list" - }, - "screamingSnakeCase": { - "unsafeName": "LIST", - "safeName": "LIST" - }, - "pascalCase": { - "unsafeName": "List", - "safeName": "List" - } - }, - "wireValue": "list" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "list", - "list": [ - { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - ] - } - }, - "jsonExample": [ - "string" - ] - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "set", - "camelCase": { - "unsafeName": "set", - "safeName": "set_" - }, - "snakeCase": { - "unsafeName": "set", - "safeName": "set_" - }, - "screamingSnakeCase": { - "unsafeName": "SET", - "safeName": "SET" - }, - "pascalCase": { - "unsafeName": "Set", - "safeName": "Set" - } - }, - "wireValue": "set" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "set", - "set": [ - { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - ] - } - }, - "jsonExample": [ - "string" - ] - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "map", - "camelCase": { - "unsafeName": "map", - "safeName": "map" - }, - "snakeCase": { - "unsafeName": "map", - "safeName": "map" - }, - "screamingSnakeCase": { - "unsafeName": "MAP", - "safeName": "MAP" - }, - "pascalCase": { - "unsafeName": "Map", - "safeName": "Map" - } - }, - "wireValue": "map" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "map", - "map": [ - { - "key": { - "shape": { - "type": "primitive", - "primitive": { - "type": "integer", - "integer": 1 - } - }, - "jsonExample": 1 - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - } - ] - } - }, - "jsonExample": { - "1": "string" - } - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - } - ] - } - }, - "jsonExample": { - "string": "string", - "integer": 1, - "long": 1000000, - "double": 1.1, - "bool": true, - "datetime": "2024-01-15T09:30:00Z", - "date": "2023-01-15", - "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", - "base64": "SGVsbG8gd29ybGQh", - "list": [ - "string" - ], - "set": [ - "string" - ], - "map": { - "1": "string" - } - } - }, - "originalTypeDeclaration": { - "name": { - "originalName": "NestedObjectWithRequiredField", - "camelCase": { - "unsafeName": "nestedObjectWithRequiredField", - "safeName": "nestedObjectWithRequiredField" - }, - "snakeCase": { - "unsafeName": "nested_object_with_required_field", - "safeName": "nested_object_with_required_field" - }, - "screamingSnakeCase": { - "unsafeName": "NESTED_OBJECT_WITH_REQUIRED_FIELD", - "safeName": "NESTED_OBJECT_WITH_REQUIRED_FIELD" - }, - "pascalCase": { - "unsafeName": "NestedObjectWithRequiredField", - "safeName": "NestedObjectWithRequiredField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:NestedObjectWithRequiredField" - } - } - ] - } - }, - "jsonExample": { - "string": "string", - "NestedObject": { - "string": "string", - "integer": 1, - "long": 1000000, - "double": 1.1, - "bool": true, - "datetime": "2024-01-15T09:30:00Z", - "date": "2023-01-15", - "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", - "base64": "SGVsbG8gd29ybGQh", - "list": [ - "string" - ], - "set": [ - "string" - ], - "map": { - "1": "string" - } - } - } - }, - "name": null, - "codeSamples": null, - "response": { - "type": "ok", - "body": { - "shape": { - "type": "named", - "typeName": { - "name": { - "originalName": "NestedObjectWithRequiredField", - "camelCase": { - "unsafeName": "nestedObjectWithRequiredField", - "safeName": "nestedObjectWithRequiredField" - }, - "snakeCase": { - "unsafeName": "nested_object_with_required_field", - "safeName": "nested_object_with_required_field" - }, - "screamingSnakeCase": { - "unsafeName": "NESTED_OBJECT_WITH_REQUIRED_FIELD", - "safeName": "NESTED_OBJECT_WITH_REQUIRED_FIELD" - }, - "pascalCase": { - "unsafeName": "NestedObjectWithRequiredField", - "safeName": "NestedObjectWithRequiredField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:NestedObjectWithRequiredField" - }, - "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": "string" - } - } - }, - "jsonExample": "string" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "NestedObjectWithRequiredField", - "camelCase": { - "unsafeName": "nestedObjectWithRequiredField", - "safeName": "nestedObjectWithRequiredField" - }, - "snakeCase": { - "unsafeName": "nested_object_with_required_field", - "safeName": "nested_object_with_required_field" - }, - "screamingSnakeCase": { - "unsafeName": "NESTED_OBJECT_WITH_REQUIRED_FIELD", - "safeName": "NESTED_OBJECT_WITH_REQUIRED_FIELD" - }, - "pascalCase": { - "unsafeName": "NestedObjectWithRequiredField", - "safeName": "NestedObjectWithRequiredField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:NestedObjectWithRequiredField" - } - }, - { - "name": { - "name": { - "originalName": "NestedObject", - "camelCase": { - "unsafeName": "nestedObject", - "safeName": "nestedObject" - }, - "snakeCase": { - "unsafeName": "nested_object", - "safeName": "nested_object" - }, - "screamingSnakeCase": { - "unsafeName": "NESTED_OBJECT", - "safeName": "NESTED_OBJECT" - }, - "pascalCase": { - "unsafeName": "NestedObject", - "safeName": "NestedObject" - } - }, - "wireValue": "NestedObject" - }, - "value": { - "shape": { - "type": "named", - "typeName": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - }, - "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": "string" - } - } - }, - "jsonExample": "string" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "integer", - "camelCase": { - "unsafeName": "integer", - "safeName": "integer" - }, - "snakeCase": { - "unsafeName": "integer", - "safeName": "integer" - }, - "screamingSnakeCase": { - "unsafeName": "INTEGER", - "safeName": "INTEGER" - }, - "pascalCase": { - "unsafeName": "Integer", - "safeName": "Integer" - } - }, - "wireValue": "integer" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "integer", - "integer": 1 - } - }, - "jsonExample": 1 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "long", - "camelCase": { - "unsafeName": "long", - "safeName": "long" - }, - "snakeCase": { - "unsafeName": "long", - "safeName": "long" - }, - "screamingSnakeCase": { - "unsafeName": "LONG", - "safeName": "LONG" - }, - "pascalCase": { - "unsafeName": "Long", - "safeName": "Long" - } - }, - "wireValue": "long" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "long", - "long": 1000000 - } - }, - "jsonExample": 1000000 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "double", - "camelCase": { - "unsafeName": "double", - "safeName": "double" - }, - "snakeCase": { - "unsafeName": "double", - "safeName": "double" - }, - "screamingSnakeCase": { - "unsafeName": "DOUBLE", - "safeName": "DOUBLE" - }, - "pascalCase": { - "unsafeName": "Double", - "safeName": "Double" - } - }, - "wireValue": "double" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "double", - "double": 1.1 - } - }, - "jsonExample": 1.1 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "bool", - "camelCase": { - "unsafeName": "bool", - "safeName": "bool" - }, - "snakeCase": { - "unsafeName": "bool", - "safeName": "bool" - }, - "screamingSnakeCase": { - "unsafeName": "BOOL", - "safeName": "BOOL" - }, - "pascalCase": { - "unsafeName": "Bool", - "safeName": "Bool" - } - }, - "wireValue": "bool" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "boolean", - "boolean": true - } - }, - "jsonExample": true - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "datetime", - "camelCase": { - "unsafeName": "datetime", - "safeName": "datetime" - }, - "snakeCase": { - "unsafeName": "datetime", - "safeName": "datetime" - }, - "screamingSnakeCase": { - "unsafeName": "DATETIME", - "safeName": "DATETIME" - }, - "pascalCase": { - "unsafeName": "Datetime", - "safeName": "Datetime" - } - }, - "wireValue": "datetime" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "datetime", - "datetime": "2024-01-15T09:30:00.000Z" - } - }, - "jsonExample": "2024-01-15T09:30:00Z" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "date", - "camelCase": { - "unsafeName": "date", - "safeName": "date" - }, - "snakeCase": { - "unsafeName": "date", - "safeName": "date" - }, - "screamingSnakeCase": { - "unsafeName": "DATE", - "safeName": "DATE" - }, - "pascalCase": { - "unsafeName": "Date", - "safeName": "Date_" - } - }, - "wireValue": "date" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "date", - "date": "2023-01-15" - } - }, - "jsonExample": "2023-01-15" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "uuid", - "camelCase": { - "unsafeName": "uuid", - "safeName": "uuid" - }, - "snakeCase": { - "unsafeName": "uuid", - "safeName": "uuid" - }, - "screamingSnakeCase": { - "unsafeName": "UUID", - "safeName": "UUID" - }, - "pascalCase": { - "unsafeName": "Uuid", - "safeName": "Uuid" - } - }, - "wireValue": "uuid" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "uuid", - "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32" - } - }, - "jsonExample": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "base64", - "camelCase": { - "unsafeName": "base64", - "safeName": "base64" - }, - "snakeCase": { - "unsafeName": "base_64", - "safeName": "base_64" - }, - "screamingSnakeCase": { - "unsafeName": "BASE_64", - "safeName": "BASE_64" - }, - "pascalCase": { - "unsafeName": "Base64", - "safeName": "Base64" - } - }, - "wireValue": "base64" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "SGVsbG8gd29ybGQh" - } - } - }, - "jsonExample": "SGVsbG8gd29ybGQh" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "list", - "camelCase": { - "unsafeName": "list", - "safeName": "list" - }, - "snakeCase": { - "unsafeName": "list", - "safeName": "list" - }, - "screamingSnakeCase": { - "unsafeName": "LIST", - "safeName": "LIST" - }, - "pascalCase": { - "unsafeName": "List", - "safeName": "List" - } - }, - "wireValue": "list" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "list", - "list": [ - { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - ] - } - }, - "jsonExample": [ - "string" - ] - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "set", - "camelCase": { - "unsafeName": "set", - "safeName": "set_" - }, - "snakeCase": { - "unsafeName": "set", - "safeName": "set_" - }, - "screamingSnakeCase": { - "unsafeName": "SET", - "safeName": "SET" - }, - "pascalCase": { - "unsafeName": "Set", - "safeName": "Set" - } - }, - "wireValue": "set" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "set", - "set": [ - { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - ] - } - }, - "jsonExample": [ - "string" - ] - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "map", - "camelCase": { - "unsafeName": "map", - "safeName": "map" - }, - "snakeCase": { - "unsafeName": "map", - "safeName": "map" - }, - "screamingSnakeCase": { - "unsafeName": "MAP", - "safeName": "MAP" - }, - "pascalCase": { - "unsafeName": "Map", - "safeName": "Map" - } - }, - "wireValue": "map" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "map", - "map": [ - { - "key": { - "shape": { - "type": "primitive", - "primitive": { - "type": "integer", - "integer": 1 - } - }, - "jsonExample": 1 - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - } - ] - } - }, - "jsonExample": { - "1": "string" - } - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - } - ] - } - }, - "jsonExample": { - "string": "string", - "integer": 1, - "long": 1000000, - "double": 1.1, - "bool": true, - "datetime": "2024-01-15T09:30:00Z", - "date": "2023-01-15", - "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", - "base64": "SGVsbG8gd29ybGQh", - "list": [ - "string" - ], - "set": [ - "string" - ], - "map": { - "1": "string" - } - } - }, - "originalTypeDeclaration": { - "name": { - "originalName": "NestedObjectWithRequiredField", - "camelCase": { - "unsafeName": "nestedObjectWithRequiredField", - "safeName": "nestedObjectWithRequiredField" - }, - "snakeCase": { - "unsafeName": "nested_object_with_required_field", - "safeName": "nested_object_with_required_field" - }, - "screamingSnakeCase": { - "unsafeName": "NESTED_OBJECT_WITH_REQUIRED_FIELD", - "safeName": "NESTED_OBJECT_WITH_REQUIRED_FIELD" - }, - "pascalCase": { - "unsafeName": "NestedObjectWithRequiredField", - "safeName": "NestedObjectWithRequiredField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:NestedObjectWithRequiredField" - } - } - ] - } - }, - "jsonExample": { - "string": "string", - "NestedObject": { - "string": "string", - "integer": 1, - "long": 1000000, - "double": 1.1, - "bool": true, - "datetime": "2024-01-15T09:30:00Z", - "date": "2023-01-15", - "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", - "base64": "SGVsbG8gd29ybGQh", - "list": [ - "string" - ], - "set": [ - "string" - ], - "map": { - "1": "string" - } - } - } - } - }, - "docs": null - } - ], - "pagination": null, - "availability": null, - "docs": null - }, - { - "id": "endpoint_endpoints/object.getAndReturnNestedWithRequiredFieldAsList", - "name": { - "originalName": "getAndReturnNestedWithRequiredFieldAsList", - "camelCase": { - "unsafeName": "getAndReturnNestedWithRequiredFieldAsList", - "safeName": "getAndReturnNestedWithRequiredFieldAsList" - }, - "snakeCase": { - "unsafeName": "get_and_return_nested_with_required_field_as_list", - "safeName": "get_and_return_nested_with_required_field_as_list" - }, - "screamingSnakeCase": { - "unsafeName": "GET_AND_RETURN_NESTED_WITH_REQUIRED_FIELD_AS_LIST", - "safeName": "GET_AND_RETURN_NESTED_WITH_REQUIRED_FIELD_AS_LIST" - }, - "pascalCase": { - "unsafeName": "GetAndReturnNestedWithRequiredFieldAsList", - "safeName": "GetAndReturnNestedWithRequiredFieldAsList" - } - }, - "displayName": null, - "auth": true, - "idempotent": false, - "baseUrl": null, - "method": "POST", - "path": { - "head": "/get-and-return-nested-with-required-field-list", - "parts": [] - }, - "fullPath": { - "head": "/object/get-and-return-nested-with-required-field-list", - "parts": [] - }, - "pathParameters": [], - "allPathParameters": [], - "queryParameters": [], - "headers": [], - "requestBody": { - "type": "reference", - "requestBodyType": { - "_type": "container", - "container": { - "_type": "list", - "list": { - "_type": "named", - "name": { - "originalName": "NestedObjectWithRequiredField", - "camelCase": { - "unsafeName": "nestedObjectWithRequiredField", - "safeName": "nestedObjectWithRequiredField" - }, - "snakeCase": { - "unsafeName": "nested_object_with_required_field", - "safeName": "nested_object_with_required_field" - }, - "screamingSnakeCase": { - "unsafeName": "NESTED_OBJECT_WITH_REQUIRED_FIELD", - "safeName": "NESTED_OBJECT_WITH_REQUIRED_FIELD" - }, - "pascalCase": { - "unsafeName": "NestedObjectWithRequiredField", - "safeName": "NestedObjectWithRequiredField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:NestedObjectWithRequiredField" - } - } - }, - "contentType": null, - "docs": null - }, - "sdkRequest": { - "shape": { - "type": "justRequestBody", - "value": { - "type": "typeReference", - "requestBodyType": { - "_type": "container", - "container": { - "_type": "list", - "list": { - "_type": "named", - "name": { - "originalName": "NestedObjectWithRequiredField", - "camelCase": { - "unsafeName": "nestedObjectWithRequiredField", - "safeName": "nestedObjectWithRequiredField" - }, - "snakeCase": { - "unsafeName": "nested_object_with_required_field", - "safeName": "nested_object_with_required_field" - }, - "screamingSnakeCase": { - "unsafeName": "NESTED_OBJECT_WITH_REQUIRED_FIELD", - "safeName": "NESTED_OBJECT_WITH_REQUIRED_FIELD" - }, - "pascalCase": { - "unsafeName": "NestedObjectWithRequiredField", - "safeName": "NestedObjectWithRequiredField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:NestedObjectWithRequiredField" - } - } - }, - "contentType": null, - "docs": null - } - }, - "requestParameterName": { - "originalName": "request", - "camelCase": { - "unsafeName": "request", - "safeName": "request" - }, - "snakeCase": { - "unsafeName": "request", - "safeName": "request" - }, - "screamingSnakeCase": { - "unsafeName": "REQUEST", - "safeName": "REQUEST" - }, - "pascalCase": { - "unsafeName": "Request", - "safeName": "Request" - } - } - }, - "response": { - "body": { - "type": "json", - "value": { - "type": "response", - "responseBodyType": { - "_type": "named", - "name": { - "originalName": "NestedObjectWithRequiredField", - "camelCase": { - "unsafeName": "nestedObjectWithRequiredField", - "safeName": "nestedObjectWithRequiredField" - }, - "snakeCase": { - "unsafeName": "nested_object_with_required_field", - "safeName": "nested_object_with_required_field" - }, - "screamingSnakeCase": { - "unsafeName": "NESTED_OBJECT_WITH_REQUIRED_FIELD", - "safeName": "NESTED_OBJECT_WITH_REQUIRED_FIELD" - }, - "pascalCase": { - "unsafeName": "NestedObjectWithRequiredField", - "safeName": "NestedObjectWithRequiredField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:NestedObjectWithRequiredField" - }, - "docs": null - } - }, - "status-code": null - }, - "errors": [], - "examples": [ - { - "exampleType": "generated", - "url": "/get-and-return-nested-with-required-field-list", - "rootPathParameters": [], - "servicePathParameters": [], - "endpointPathParameters": [], - "serviceHeaders": [], - "endpointHeaders": [], - "queryParameters": [], - "request": { - "type": "reference", - "shape": { - "type": "container", - "container": { - "type": "list", - "list": [ - { - "shape": { - "type": "named", - "typeName": { - "name": { - "originalName": "NestedObjectWithRequiredField", - "camelCase": { - "unsafeName": "nestedObjectWithRequiredField", - "safeName": "nestedObjectWithRequiredField" - }, - "snakeCase": { - "unsafeName": "nested_object_with_required_field", - "safeName": "nested_object_with_required_field" - }, - "screamingSnakeCase": { - "unsafeName": "NESTED_OBJECT_WITH_REQUIRED_FIELD", - "safeName": "NESTED_OBJECT_WITH_REQUIRED_FIELD" - }, - "pascalCase": { - "unsafeName": "NestedObjectWithRequiredField", - "safeName": "NestedObjectWithRequiredField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:NestedObjectWithRequiredField" - }, - "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": "string" - } - } - }, - "jsonExample": "string" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "NestedObjectWithRequiredField", - "camelCase": { - "unsafeName": "nestedObjectWithRequiredField", - "safeName": "nestedObjectWithRequiredField" - }, - "snakeCase": { - "unsafeName": "nested_object_with_required_field", - "safeName": "nested_object_with_required_field" - }, - "screamingSnakeCase": { - "unsafeName": "NESTED_OBJECT_WITH_REQUIRED_FIELD", - "safeName": "NESTED_OBJECT_WITH_REQUIRED_FIELD" - }, - "pascalCase": { - "unsafeName": "NestedObjectWithRequiredField", - "safeName": "NestedObjectWithRequiredField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:NestedObjectWithRequiredField" - } - }, - { - "name": { - "name": { - "originalName": "NestedObject", - "camelCase": { - "unsafeName": "nestedObject", - "safeName": "nestedObject" - }, - "snakeCase": { - "unsafeName": "nested_object", - "safeName": "nested_object" - }, - "screamingSnakeCase": { - "unsafeName": "NESTED_OBJECT", - "safeName": "NESTED_OBJECT" - }, - "pascalCase": { - "unsafeName": "NestedObject", - "safeName": "NestedObject" - } - }, - "wireValue": "NestedObject" - }, - "value": { - "shape": { - "type": "named", - "typeName": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - }, - "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": "string" - } - } - }, - "jsonExample": "string" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "integer", - "camelCase": { - "unsafeName": "integer", - "safeName": "integer" - }, - "snakeCase": { - "unsafeName": "integer", - "safeName": "integer" - }, - "screamingSnakeCase": { - "unsafeName": "INTEGER", - "safeName": "INTEGER" - }, - "pascalCase": { - "unsafeName": "Integer", - "safeName": "Integer" - } - }, - "wireValue": "integer" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "integer", - "integer": 1 - } - }, - "jsonExample": 1 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "long", - "camelCase": { - "unsafeName": "long", - "safeName": "long" - }, - "snakeCase": { - "unsafeName": "long", - "safeName": "long" - }, - "screamingSnakeCase": { - "unsafeName": "LONG", - "safeName": "LONG" - }, - "pascalCase": { - "unsafeName": "Long", - "safeName": "Long" - } - }, - "wireValue": "long" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "long", - "long": 1000000 - } - }, - "jsonExample": 1000000 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "double", - "camelCase": { - "unsafeName": "double", - "safeName": "double" - }, - "snakeCase": { - "unsafeName": "double", - "safeName": "double" - }, - "screamingSnakeCase": { - "unsafeName": "DOUBLE", - "safeName": "DOUBLE" - }, - "pascalCase": { - "unsafeName": "Double", - "safeName": "Double" - } - }, - "wireValue": "double" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "double", - "double": 1.1 - } - }, - "jsonExample": 1.1 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "bool", - "camelCase": { - "unsafeName": "bool", - "safeName": "bool" - }, - "snakeCase": { - "unsafeName": "bool", - "safeName": "bool" - }, - "screamingSnakeCase": { - "unsafeName": "BOOL", - "safeName": "BOOL" - }, - "pascalCase": { - "unsafeName": "Bool", - "safeName": "Bool" - } - }, - "wireValue": "bool" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "boolean", - "boolean": true - } - }, - "jsonExample": true - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "datetime", - "camelCase": { - "unsafeName": "datetime", - "safeName": "datetime" - }, - "snakeCase": { - "unsafeName": "datetime", - "safeName": "datetime" - }, - "screamingSnakeCase": { - "unsafeName": "DATETIME", - "safeName": "DATETIME" - }, - "pascalCase": { - "unsafeName": "Datetime", - "safeName": "Datetime" - } - }, - "wireValue": "datetime" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "datetime", - "datetime": "2024-01-15T09:30:00.000Z" - } - }, - "jsonExample": "2024-01-15T09:30:00Z" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "date", - "camelCase": { - "unsafeName": "date", - "safeName": "date" - }, - "snakeCase": { - "unsafeName": "date", - "safeName": "date" - }, - "screamingSnakeCase": { - "unsafeName": "DATE", - "safeName": "DATE" - }, - "pascalCase": { - "unsafeName": "Date", - "safeName": "Date_" - } - }, - "wireValue": "date" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "date", - "date": "2023-01-15" - } - }, - "jsonExample": "2023-01-15" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "uuid", - "camelCase": { - "unsafeName": "uuid", - "safeName": "uuid" - }, - "snakeCase": { - "unsafeName": "uuid", - "safeName": "uuid" - }, - "screamingSnakeCase": { - "unsafeName": "UUID", - "safeName": "UUID" - }, - "pascalCase": { - "unsafeName": "Uuid", - "safeName": "Uuid" - } - }, - "wireValue": "uuid" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "uuid", - "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32" - } - }, - "jsonExample": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "base64", - "camelCase": { - "unsafeName": "base64", - "safeName": "base64" - }, - "snakeCase": { - "unsafeName": "base_64", - "safeName": "base_64" - }, - "screamingSnakeCase": { - "unsafeName": "BASE_64", - "safeName": "BASE_64" - }, - "pascalCase": { - "unsafeName": "Base64", - "safeName": "Base64" - } - }, - "wireValue": "base64" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "SGVsbG8gd29ybGQh" - } - } - }, - "jsonExample": "SGVsbG8gd29ybGQh" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "list", - "camelCase": { - "unsafeName": "list", - "safeName": "list" - }, - "snakeCase": { - "unsafeName": "list", - "safeName": "list" - }, - "screamingSnakeCase": { - "unsafeName": "LIST", - "safeName": "LIST" - }, - "pascalCase": { - "unsafeName": "List", - "safeName": "List" - } - }, - "wireValue": "list" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "list", - "list": [ - { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - ] - } - }, - "jsonExample": [ - "string" - ] - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "set", - "camelCase": { - "unsafeName": "set", - "safeName": "set_" - }, - "snakeCase": { - "unsafeName": "set", - "safeName": "set_" - }, - "screamingSnakeCase": { - "unsafeName": "SET", - "safeName": "SET" - }, - "pascalCase": { - "unsafeName": "Set", - "safeName": "Set" - } - }, - "wireValue": "set" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "set", - "set": [ - { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - ] - } - }, - "jsonExample": [ - "string" - ] - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "map", - "camelCase": { - "unsafeName": "map", - "safeName": "map" - }, - "snakeCase": { - "unsafeName": "map", - "safeName": "map" - }, - "screamingSnakeCase": { - "unsafeName": "MAP", - "safeName": "MAP" - }, - "pascalCase": { - "unsafeName": "Map", - "safeName": "Map" - } - }, - "wireValue": "map" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "map", - "map": [ - { - "key": { - "shape": { - "type": "primitive", - "primitive": { - "type": "integer", - "integer": 1 - } - }, - "jsonExample": 1 - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - } - ] - } - }, - "jsonExample": { - "1": "string" - } - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - } - ] - } - }, - "jsonExample": { - "string": "string", - "integer": 1, - "long": 1000000, - "double": 1.1, - "bool": true, - "datetime": "2024-01-15T09:30:00Z", - "date": "2023-01-15", - "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", - "base64": "SGVsbG8gd29ybGQh", - "list": [ - "string" - ], - "set": [ - "string" - ], - "map": { - "1": "string" - } - } - }, - "originalTypeDeclaration": { - "name": { - "originalName": "NestedObjectWithRequiredField", - "camelCase": { - "unsafeName": "nestedObjectWithRequiredField", - "safeName": "nestedObjectWithRequiredField" - }, - "snakeCase": { - "unsafeName": "nested_object_with_required_field", - "safeName": "nested_object_with_required_field" - }, - "screamingSnakeCase": { - "unsafeName": "NESTED_OBJECT_WITH_REQUIRED_FIELD", - "safeName": "NESTED_OBJECT_WITH_REQUIRED_FIELD" - }, - "pascalCase": { - "unsafeName": "NestedObjectWithRequiredField", - "safeName": "NestedObjectWithRequiredField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:NestedObjectWithRequiredField" - } - } - ] - } - }, - "jsonExample": { - "string": "string", - "NestedObject": { - "string": "string", - "integer": 1, - "long": 1000000, - "double": 1.1, - "bool": true, - "datetime": "2024-01-15T09:30:00Z", - "date": "2023-01-15", - "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", - "base64": "SGVsbG8gd29ybGQh", - "list": [ - "string" - ], - "set": [ - "string" - ], - "map": { - "1": "string" - } - } - } - } - ] - } - }, - "jsonExample": [ - { - "string": "string", - "NestedObject": { - "string": "string", - "integer": 1, - "long": 1000000, - "double": 1.1, - "bool": true, - "datetime": "2024-01-15T09:30:00Z", - "date": "2023-01-15", - "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", - "base64": "SGVsbG8gd29ybGQh", - "list": [ - "string" - ], - "set": [ - "string" - ], - "map": { - "1": "string" - } - } - } - ] - }, - "name": null, - "codeSamples": null, - "response": { - "type": "ok", - "body": { - "shape": { - "type": "named", - "typeName": { - "name": { - "originalName": "NestedObjectWithRequiredField", - "camelCase": { - "unsafeName": "nestedObjectWithRequiredField", - "safeName": "nestedObjectWithRequiredField" - }, - "snakeCase": { - "unsafeName": "nested_object_with_required_field", - "safeName": "nested_object_with_required_field" - }, - "screamingSnakeCase": { - "unsafeName": "NESTED_OBJECT_WITH_REQUIRED_FIELD", - "safeName": "NESTED_OBJECT_WITH_REQUIRED_FIELD" - }, - "pascalCase": { - "unsafeName": "NestedObjectWithRequiredField", - "safeName": "NestedObjectWithRequiredField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:NestedObjectWithRequiredField" - }, - "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": "string" - } - } - }, - "jsonExample": "string" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "NestedObjectWithRequiredField", - "camelCase": { - "unsafeName": "nestedObjectWithRequiredField", - "safeName": "nestedObjectWithRequiredField" - }, - "snakeCase": { - "unsafeName": "nested_object_with_required_field", - "safeName": "nested_object_with_required_field" - }, - "screamingSnakeCase": { - "unsafeName": "NESTED_OBJECT_WITH_REQUIRED_FIELD", - "safeName": "NESTED_OBJECT_WITH_REQUIRED_FIELD" - }, - "pascalCase": { - "unsafeName": "NestedObjectWithRequiredField", - "safeName": "NestedObjectWithRequiredField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:NestedObjectWithRequiredField" - } - }, - { - "name": { - "name": { - "originalName": "NestedObject", - "camelCase": { - "unsafeName": "nestedObject", - "safeName": "nestedObject" - }, - "snakeCase": { - "unsafeName": "nested_object", - "safeName": "nested_object" - }, - "screamingSnakeCase": { - "unsafeName": "NESTED_OBJECT", - "safeName": "NESTED_OBJECT" - }, - "pascalCase": { - "unsafeName": "NestedObject", - "safeName": "NestedObject" - } - }, - "wireValue": "NestedObject" - }, - "value": { - "shape": { - "type": "named", - "typeName": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - }, - "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": "string" - } - } - }, - "jsonExample": "string" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "integer", - "camelCase": { - "unsafeName": "integer", - "safeName": "integer" - }, - "snakeCase": { - "unsafeName": "integer", - "safeName": "integer" - }, - "screamingSnakeCase": { - "unsafeName": "INTEGER", - "safeName": "INTEGER" - }, - "pascalCase": { - "unsafeName": "Integer", - "safeName": "Integer" - } - }, - "wireValue": "integer" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "integer", - "integer": 1 - } - }, - "jsonExample": 1 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "long", - "camelCase": { - "unsafeName": "long", - "safeName": "long" - }, - "snakeCase": { - "unsafeName": "long", - "safeName": "long" - }, - "screamingSnakeCase": { - "unsafeName": "LONG", - "safeName": "LONG" - }, - "pascalCase": { - "unsafeName": "Long", - "safeName": "Long" - } - }, - "wireValue": "long" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "long", - "long": 1000000 - } - }, - "jsonExample": 1000000 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "double", - "camelCase": { - "unsafeName": "double", - "safeName": "double" - }, - "snakeCase": { - "unsafeName": "double", - "safeName": "double" - }, - "screamingSnakeCase": { - "unsafeName": "DOUBLE", - "safeName": "DOUBLE" - }, - "pascalCase": { - "unsafeName": "Double", - "safeName": "Double" - } - }, - "wireValue": "double" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "double", - "double": 1.1 - } - }, - "jsonExample": 1.1 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "bool", - "camelCase": { - "unsafeName": "bool", - "safeName": "bool" - }, - "snakeCase": { - "unsafeName": "bool", - "safeName": "bool" - }, - "screamingSnakeCase": { - "unsafeName": "BOOL", - "safeName": "BOOL" - }, - "pascalCase": { - "unsafeName": "Bool", - "safeName": "Bool" - } - }, - "wireValue": "bool" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "boolean", - "boolean": true - } - }, - "jsonExample": true - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "datetime", - "camelCase": { - "unsafeName": "datetime", - "safeName": "datetime" - }, - "snakeCase": { - "unsafeName": "datetime", - "safeName": "datetime" - }, - "screamingSnakeCase": { - "unsafeName": "DATETIME", - "safeName": "DATETIME" - }, - "pascalCase": { - "unsafeName": "Datetime", - "safeName": "Datetime" - } - }, - "wireValue": "datetime" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "datetime", - "datetime": "2024-01-15T09:30:00.000Z" - } - }, - "jsonExample": "2024-01-15T09:30:00Z" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "date", - "camelCase": { - "unsafeName": "date", - "safeName": "date" - }, - "snakeCase": { - "unsafeName": "date", - "safeName": "date" - }, - "screamingSnakeCase": { - "unsafeName": "DATE", - "safeName": "DATE" - }, - "pascalCase": { - "unsafeName": "Date", - "safeName": "Date_" - } - }, - "wireValue": "date" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "date", - "date": "2023-01-15" - } - }, - "jsonExample": "2023-01-15" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "uuid", - "camelCase": { - "unsafeName": "uuid", - "safeName": "uuid" - }, - "snakeCase": { - "unsafeName": "uuid", - "safeName": "uuid" - }, - "screamingSnakeCase": { - "unsafeName": "UUID", - "safeName": "UUID" - }, - "pascalCase": { - "unsafeName": "Uuid", - "safeName": "Uuid" - } - }, - "wireValue": "uuid" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "uuid", - "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32" - } - }, - "jsonExample": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "base64", - "camelCase": { - "unsafeName": "base64", - "safeName": "base64" - }, - "snakeCase": { - "unsafeName": "base_64", - "safeName": "base_64" - }, - "screamingSnakeCase": { - "unsafeName": "BASE_64", - "safeName": "BASE_64" - }, - "pascalCase": { - "unsafeName": "Base64", - "safeName": "Base64" - } - }, - "wireValue": "base64" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "SGVsbG8gd29ybGQh" - } - } - }, - "jsonExample": "SGVsbG8gd29ybGQh" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "list", - "camelCase": { - "unsafeName": "list", - "safeName": "list" - }, - "snakeCase": { - "unsafeName": "list", - "safeName": "list" - }, - "screamingSnakeCase": { - "unsafeName": "LIST", - "safeName": "LIST" - }, - "pascalCase": { - "unsafeName": "List", - "safeName": "List" - } - }, - "wireValue": "list" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "list", - "list": [ - { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - ] - } - }, - "jsonExample": [ - "string" - ] - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "set", - "camelCase": { - "unsafeName": "set", - "safeName": "set_" - }, - "snakeCase": { - "unsafeName": "set", - "safeName": "set_" - }, - "screamingSnakeCase": { - "unsafeName": "SET", - "safeName": "SET" - }, - "pascalCase": { - "unsafeName": "Set", - "safeName": "Set" - } - }, - "wireValue": "set" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "set", - "set": [ - { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - ] - } - }, - "jsonExample": [ - "string" - ] - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "map", - "camelCase": { - "unsafeName": "map", - "safeName": "map" - }, - "snakeCase": { - "unsafeName": "map", - "safeName": "map" - }, - "screamingSnakeCase": { - "unsafeName": "MAP", - "safeName": "MAP" - }, - "pascalCase": { - "unsafeName": "Map", - "safeName": "Map" - } - }, - "wireValue": "map" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "map", - "map": [ - { - "key": { - "shape": { - "type": "primitive", - "primitive": { - "type": "integer", - "integer": 1 - } - }, - "jsonExample": 1 - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - } - ] - } - }, - "jsonExample": { - "1": "string" - } - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - } - ] - } - }, - "jsonExample": { - "string": "string", - "integer": 1, - "long": 1000000, - "double": 1.1, - "bool": true, - "datetime": "2024-01-15T09:30:00Z", - "date": "2023-01-15", - "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", - "base64": "SGVsbG8gd29ybGQh", - "list": [ - "string" - ], - "set": [ - "string" - ], - "map": { - "1": "string" - } - } - }, - "originalTypeDeclaration": { - "name": { - "originalName": "NestedObjectWithRequiredField", - "camelCase": { - "unsafeName": "nestedObjectWithRequiredField", - "safeName": "nestedObjectWithRequiredField" - }, - "snakeCase": { - "unsafeName": "nested_object_with_required_field", - "safeName": "nested_object_with_required_field" - }, - "screamingSnakeCase": { - "unsafeName": "NESTED_OBJECT_WITH_REQUIRED_FIELD", - "safeName": "NESTED_OBJECT_WITH_REQUIRED_FIELD" - }, - "pascalCase": { - "unsafeName": "NestedObjectWithRequiredField", - "safeName": "NestedObjectWithRequiredField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:NestedObjectWithRequiredField" - } - } - ] - } - }, - "jsonExample": { - "string": "string", - "NestedObject": { - "string": "string", - "integer": 1, - "long": 1000000, - "double": 1.1, - "bool": true, - "datetime": "2024-01-15T09:30:00Z", - "date": "2023-01-15", - "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", - "base64": "SGVsbG8gd29ybGQh", - "list": [ - "string" - ], - "set": [ - "string" - ], - "map": { - "1": "string" - } - } - } - } - }, - "docs": null - } - ], - "pagination": null, - "availability": null, - "docs": null - } - ] - }, - "service_endpoints/params": { - "availability": null, - "name": { - "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" - } - } - } - }, - "displayName": null, - "basePath": { - "head": "/params", - "parts": [] - }, - "headers": [], - "pathParameters": [], - "endpoints": [ - { - "id": "endpoint_endpoints/params.getWithPath", - "name": { - "originalName": "getWithPath", - "camelCase": { - "unsafeName": "getWithPath", - "safeName": "getWithPath" - }, - "snakeCase": { - "unsafeName": "get_with_path", - "safeName": "get_with_path" - }, - "screamingSnakeCase": { - "unsafeName": "GET_WITH_PATH", - "safeName": "GET_WITH_PATH" - }, - "pascalCase": { - "unsafeName": "GetWithPath", - "safeName": "GetWithPath" - } - }, - "displayName": null, - "auth": true, - "idempotent": false, - "baseUrl": null, - "method": "GET", - "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": "STRING" - }, - "location": "ENDPOINT", - "variable": 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": "STRING" - }, - "location": "ENDPOINT", - "variable": null, - "docs": null - } - ], - "queryParameters": [], - "headers": [], - "requestBody": null, - "sdkRequest": null, - "response": { - "body": { - "type": "json", - "value": { - "type": "response", - "responseBodyType": { - "_type": "primitive", - "primitive": "STRING" - }, - "docs": null - } - }, - "status-code": null - }, - "errors": [], - "examples": [ - { - "exampleType": "generated", - "url": "/path/", - "rootPathParameters": [], - "servicePathParameters": [], - "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": "string" - } - } - }, - "jsonExample": "string" - } - } - ], - "serviceHeaders": [], - "endpointHeaders": [], - "queryParameters": [], - "request": null, - "name": null, - "codeSamples": null, - "response": { - "type": "ok", - "body": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - }, - "docs": null - } - ], - "pagination": null, - "availability": null, - "docs": "GET with path param" - }, - { - "id": "endpoint_endpoints/params.getWithQuery", - "name": { - "originalName": "getWithQuery", - "camelCase": { - "unsafeName": "getWithQuery", - "safeName": "getWithQuery" - }, - "snakeCase": { - "unsafeName": "get_with_query", - "safeName": "get_with_query" - }, - "screamingSnakeCase": { - "unsafeName": "GET_WITH_QUERY", - "safeName": "GET_WITH_QUERY" - }, - "pascalCase": { - "unsafeName": "GetWithQuery", - "safeName": "GetWithQuery" - } - }, - "displayName": null, - "auth": true, - "idempotent": false, - "baseUrl": null, - "method": "GET", - "path": { - "head": "", - "parts": [] - }, - "fullPath": { - "head": "/params", - "parts": [] - }, - "pathParameters": [], - "allPathParameters": [], - "queryParameters": [ - { - "name": { - "name": { - "originalName": "query", - "camelCase": { - "unsafeName": "query", - "safeName": "query" - }, - "snakeCase": { - "unsafeName": "query", - "safeName": "query" - }, - "screamingSnakeCase": { - "unsafeName": "QUERY", - "safeName": "QUERY" - }, - "pascalCase": { - "unsafeName": "Query", - "safeName": "Query" - } - }, - "wireValue": "query" - }, - "valueType": { - "_type": "primitive", - "primitive": "STRING" - }, - "allowMultiple": false, - "availability": null, - "docs": null - }, - { - "name": { - "name": { - "originalName": "number", - "camelCase": { - "unsafeName": "number", - "safeName": "number_" - }, - "snakeCase": { - "unsafeName": "number", - "safeName": "number_" - }, - "screamingSnakeCase": { - "unsafeName": "NUMBER", - "safeName": "NUMBER" - }, - "pascalCase": { - "unsafeName": "Number", - "safeName": "Number" - } - }, - "wireValue": "number" - }, - "valueType": { - "_type": "primitive", - "primitive": "INTEGER" - }, - "allowMultiple": false, - "availability": null, - "docs": null - } - ], - "headers": [], - "requestBody": null, - "sdkRequest": { - "shape": { - "type": "wrapper", - "wrapperName": { - "originalName": "GetWithQuery", - "camelCase": { - "unsafeName": "getWithQuery", - "safeName": "getWithQuery" - }, - "snakeCase": { - "unsafeName": "get_with_query", - "safeName": "get_with_query" - }, - "screamingSnakeCase": { - "unsafeName": "GET_WITH_QUERY", - "safeName": "GET_WITH_QUERY" - }, - "pascalCase": { - "unsafeName": "GetWithQuery", - "safeName": "GetWithQuery" - } - }, - "bodyKey": { - "originalName": "body", - "camelCase": { - "unsafeName": "body", - "safeName": "body" - }, - "snakeCase": { - "unsafeName": "body", - "safeName": "body" - }, - "screamingSnakeCase": { - "unsafeName": "BODY", - "safeName": "BODY" - }, - "pascalCase": { - "unsafeName": "Body", - "safeName": "Body" - } - } - }, - "requestParameterName": { - "originalName": "request", - "camelCase": { - "unsafeName": "request", - "safeName": "request" - }, - "snakeCase": { - "unsafeName": "request", - "safeName": "request" - }, - "screamingSnakeCase": { - "unsafeName": "REQUEST", - "safeName": "REQUEST" - }, - "pascalCase": { - "unsafeName": "Request", - "safeName": "Request" - } - } - }, - "response": { - "body": null, - "status-code": null - }, - "errors": [], - "examples": [ - { - "exampleType": "generated", - "url": "", - "rootPathParameters": [], - "servicePathParameters": [], - "endpointPathParameters": [], - "serviceHeaders": [], - "endpointHeaders": [], - "queryParameters": [ - { - "name": { - "name": { - "originalName": "query", - "camelCase": { - "unsafeName": "query", - "safeName": "query" - }, - "snakeCase": { - "unsafeName": "query", - "safeName": "query" - }, - "screamingSnakeCase": { - "unsafeName": "QUERY", - "safeName": "QUERY" - }, - "pascalCase": { - "unsafeName": "Query", - "safeName": "Query" - } - }, - "wireValue": "query" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - }, - { - "name": { - "name": { - "originalName": "number", - "camelCase": { - "unsafeName": "number", - "safeName": "number_" - }, - "snakeCase": { - "unsafeName": "number", - "safeName": "number_" - }, - "screamingSnakeCase": { - "unsafeName": "NUMBER", - "safeName": "NUMBER" - }, - "pascalCase": { - "unsafeName": "Number", - "safeName": "Number" - } - }, - "wireValue": "number" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "integer", - "integer": 1 - } - }, - "jsonExample": 1 - } - } - ], - "request": null, - "name": null, - "codeSamples": null, - "response": { - "type": "ok", - "body": null - }, - "docs": null - } - ], - "pagination": null, - "availability": null, - "docs": "GET with query param" - }, - { - "id": "endpoint_endpoints/params.getWithAllowMultipleQuery", - "name": { - "originalName": "getWithAllowMultipleQuery", - "camelCase": { - "unsafeName": "getWithAllowMultipleQuery", - "safeName": "getWithAllowMultipleQuery" - }, - "snakeCase": { - "unsafeName": "get_with_allow_multiple_query", - "safeName": "get_with_allow_multiple_query" - }, - "screamingSnakeCase": { - "unsafeName": "GET_WITH_ALLOW_MULTIPLE_QUERY", - "safeName": "GET_WITH_ALLOW_MULTIPLE_QUERY" - }, - "pascalCase": { - "unsafeName": "GetWithAllowMultipleQuery", - "safeName": "GetWithAllowMultipleQuery" - } - }, - "displayName": null, - "auth": true, - "idempotent": false, - "baseUrl": null, - "method": "GET", - "path": { - "head": "", - "parts": [] - }, - "fullPath": { - "head": "/params", - "parts": [] - }, - "pathParameters": [], - "allPathParameters": [], - "queryParameters": [ - { - "name": { - "name": { - "originalName": "query", - "camelCase": { - "unsafeName": "query", - "safeName": "query" - }, - "snakeCase": { - "unsafeName": "query", - "safeName": "query" - }, - "screamingSnakeCase": { - "unsafeName": "QUERY", - "safeName": "QUERY" - }, - "pascalCase": { - "unsafeName": "Query", - "safeName": "Query" - } - }, - "wireValue": "query" - }, - "valueType": { - "_type": "primitive", - "primitive": "STRING" - }, - "allowMultiple": true, - "availability": null, - "docs": null - }, - { - "name": { - "name": { - "originalName": "numer", - "camelCase": { - "unsafeName": "numer", - "safeName": "numer" - }, - "snakeCase": { - "unsafeName": "numer", - "safeName": "numer" - }, - "screamingSnakeCase": { - "unsafeName": "NUMER", - "safeName": "NUMER" - }, - "pascalCase": { - "unsafeName": "Numer", - "safeName": "Numer" - } - }, - "wireValue": "numer" - }, - "valueType": { - "_type": "primitive", - "primitive": "INTEGER" - }, - "allowMultiple": true, - "availability": null, - "docs": null - } - ], - "headers": [], - "requestBody": null, - "sdkRequest": { - "shape": { - "type": "wrapper", - "wrapperName": { - "originalName": "GetWithMultipleQuery", - "camelCase": { - "unsafeName": "getWithMultipleQuery", - "safeName": "getWithMultipleQuery" - }, - "snakeCase": { - "unsafeName": "get_with_multiple_query", - "safeName": "get_with_multiple_query" - }, - "screamingSnakeCase": { - "unsafeName": "GET_WITH_MULTIPLE_QUERY", - "safeName": "GET_WITH_MULTIPLE_QUERY" - }, - "pascalCase": { - "unsafeName": "GetWithMultipleQuery", - "safeName": "GetWithMultipleQuery" - } - }, - "bodyKey": { - "originalName": "body", - "camelCase": { - "unsafeName": "body", - "safeName": "body" - }, - "snakeCase": { - "unsafeName": "body", - "safeName": "body" - }, - "screamingSnakeCase": { - "unsafeName": "BODY", - "safeName": "BODY" - }, - "pascalCase": { - "unsafeName": "Body", - "safeName": "Body" - } - } - }, - "requestParameterName": { - "originalName": "request", - "camelCase": { - "unsafeName": "request", - "safeName": "request" - }, - "snakeCase": { - "unsafeName": "request", - "safeName": "request" - }, - "screamingSnakeCase": { - "unsafeName": "REQUEST", - "safeName": "REQUEST" - }, - "pascalCase": { - "unsafeName": "Request", - "safeName": "Request" - } - } - }, - "response": { - "body": null, - "status-code": null - }, - "errors": [], - "examples": [ - { - "exampleType": "generated", - "url": "", - "rootPathParameters": [], - "servicePathParameters": [], - "endpointPathParameters": [], - "serviceHeaders": [], - "endpointHeaders": [], - "queryParameters": [ - { - "name": { - "name": { - "originalName": "query", - "camelCase": { - "unsafeName": "query", - "safeName": "query" - }, - "snakeCase": { - "unsafeName": "query", - "safeName": "query" - }, - "screamingSnakeCase": { - "unsafeName": "QUERY", - "safeName": "QUERY" - }, - "pascalCase": { - "unsafeName": "Query", - "safeName": "Query" - } - }, - "wireValue": "query" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - }, - { - "name": { - "name": { - "originalName": "numer", - "camelCase": { - "unsafeName": "numer", - "safeName": "numer" - }, - "snakeCase": { - "unsafeName": "numer", - "safeName": "numer" - }, - "screamingSnakeCase": { - "unsafeName": "NUMER", - "safeName": "NUMER" - }, - "pascalCase": { - "unsafeName": "Numer", - "safeName": "Numer" - } - }, - "wireValue": "numer" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "integer", - "integer": 1 - } - }, - "jsonExample": 1 - } - } - ], - "request": null, - "name": null, - "codeSamples": null, - "response": { - "type": "ok", - "body": null - }, - "docs": null - } - ], - "pagination": null, - "availability": null, - "docs": "GET with multiple of same query param" - }, - { - "id": "endpoint_endpoints/params.getWithPathAndQuery", - "name": { - "originalName": "getWithPathAndQuery", - "camelCase": { - "unsafeName": "getWithPathAndQuery", - "safeName": "getWithPathAndQuery" - }, - "snakeCase": { - "unsafeName": "get_with_path_and_query", - "safeName": "get_with_path_and_query" - }, - "screamingSnakeCase": { - "unsafeName": "GET_WITH_PATH_AND_QUERY", - "safeName": "GET_WITH_PATH_AND_QUERY" - }, - "pascalCase": { - "unsafeName": "GetWithPathAndQuery", - "safeName": "GetWithPathAndQuery" - } - }, - "displayName": null, - "auth": true, - "idempotent": false, - "baseUrl": null, - "method": "GET", - "path": { - "head": "/path-query/", - "parts": [ - { - "pathParameter": "param", - "tail": "" - } - ] - }, - "fullPath": { - "head": "/params/path-query/", - "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": "STRING" - }, - "location": "ENDPOINT", - "variable": 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": "STRING" - }, - "location": "ENDPOINT", - "variable": null, - "docs": null - } - ], - "queryParameters": [ - { - "name": { - "name": { - "originalName": "query", - "camelCase": { - "unsafeName": "query", - "safeName": "query" - }, - "snakeCase": { - "unsafeName": "query", - "safeName": "query" - }, - "screamingSnakeCase": { - "unsafeName": "QUERY", - "safeName": "QUERY" - }, - "pascalCase": { - "unsafeName": "Query", - "safeName": "Query" - } - }, - "wireValue": "query" - }, - "valueType": { - "_type": "primitive", - "primitive": "STRING" - }, - "allowMultiple": false, - "availability": null, - "docs": null - } - ], - "headers": [], - "requestBody": null, - "sdkRequest": { - "shape": { - "type": "wrapper", - "wrapperName": { - "originalName": "GetWithPathAndQuery", - "camelCase": { - "unsafeName": "getWithPathAndQuery", - "safeName": "getWithPathAndQuery" - }, - "snakeCase": { - "unsafeName": "get_with_path_and_query", - "safeName": "get_with_path_and_query" - }, - "screamingSnakeCase": { - "unsafeName": "GET_WITH_PATH_AND_QUERY", - "safeName": "GET_WITH_PATH_AND_QUERY" - }, - "pascalCase": { - "unsafeName": "GetWithPathAndQuery", - "safeName": "GetWithPathAndQuery" - } - }, - "bodyKey": { - "originalName": "body", - "camelCase": { - "unsafeName": "body", - "safeName": "body" - }, - "snakeCase": { - "unsafeName": "body", - "safeName": "body" - }, - "screamingSnakeCase": { - "unsafeName": "BODY", - "safeName": "BODY" - }, - "pascalCase": { - "unsafeName": "Body", - "safeName": "Body" - } - } - }, - "requestParameterName": { - "originalName": "request", - "camelCase": { - "unsafeName": "request", - "safeName": "request" - }, - "snakeCase": { - "unsafeName": "request", - "safeName": "request" - }, - "screamingSnakeCase": { - "unsafeName": "REQUEST", - "safeName": "REQUEST" - }, - "pascalCase": { - "unsafeName": "Request", - "safeName": "Request" - } - } - }, - "response": { - "body": null, - "status-code": null - }, - "errors": [], - "examples": [ - { - "exampleType": "generated", - "url": "/path-query/", - "rootPathParameters": [], - "servicePathParameters": [], - "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": "string" - } - } - }, - "jsonExample": "string" - } - } - ], - "serviceHeaders": [], - "endpointHeaders": [], - "queryParameters": [ - { - "name": { - "name": { - "originalName": "query", - "camelCase": { - "unsafeName": "query", - "safeName": "query" - }, - "snakeCase": { - "unsafeName": "query", - "safeName": "query" - }, - "screamingSnakeCase": { - "unsafeName": "QUERY", - "safeName": "QUERY" - }, - "pascalCase": { - "unsafeName": "Query", - "safeName": "Query" - } - }, - "wireValue": "query" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - } - ], - "request": null, - "name": null, - "codeSamples": null, - "response": { - "type": "ok", - "body": null - }, - "docs": null - } - ], - "pagination": null, - "availability": null, - "docs": "GET with path and query params" - }, - { - "id": "endpoint_endpoints/params.modifyWithPath", - "name": { - "originalName": "modifyWithPath", - "camelCase": { - "unsafeName": "modifyWithPath", - "safeName": "modifyWithPath" - }, - "snakeCase": { - "unsafeName": "modify_with_path", - "safeName": "modify_with_path" - }, - "screamingSnakeCase": { - "unsafeName": "MODIFY_WITH_PATH", - "safeName": "MODIFY_WITH_PATH" - }, - "pascalCase": { - "unsafeName": "ModifyWithPath", - "safeName": "ModifyWithPath" - } - }, - "displayName": null, - "auth": true, - "idempotent": false, - "baseUrl": null, - "method": "PUT", - "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": "STRING" - }, - "location": "ENDPOINT", - "variable": 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": "STRING" - }, - "location": "ENDPOINT", - "variable": null, - "docs": null - } - ], - "queryParameters": [], - "headers": [], - "requestBody": { - "type": "reference", - "requestBodyType": { - "_type": "primitive", - "primitive": "STRING" - }, - "contentType": null, - "docs": null - }, - "sdkRequest": { - "shape": { - "type": "justRequestBody", - "value": { - "type": "typeReference", - "requestBodyType": { - "_type": "primitive", - "primitive": "STRING" - }, - "contentType": null, - "docs": null - } - }, - "requestParameterName": { - "originalName": "request", - "camelCase": { - "unsafeName": "request", - "safeName": "request" - }, - "snakeCase": { - "unsafeName": "request", - "safeName": "request" - }, - "screamingSnakeCase": { - "unsafeName": "REQUEST", - "safeName": "REQUEST" - }, - "pascalCase": { - "unsafeName": "Request", - "safeName": "Request" - } - } - }, - "response": { - "body": { - "type": "json", - "value": { - "type": "response", - "responseBodyType": { - "_type": "primitive", - "primitive": "STRING" - }, - "docs": null - } - }, - "status-code": null - }, - "errors": [], - "examples": [ - { - "exampleType": "generated", - "url": "/path/", - "rootPathParameters": [], - "servicePathParameters": [], - "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": "string" - } - } - }, - "jsonExample": "string" - } - } - ], - "serviceHeaders": [], - "endpointHeaders": [], - "queryParameters": [], - "request": { - "type": "reference", - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - }, - "name": null, - "codeSamples": null, - "response": { - "type": "ok", - "body": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - }, - "docs": null - } - ], - "pagination": null, - "availability": null, - "docs": "PUT to update with path param" - } - ] - }, - "service_endpoints/primitive": { - "availability": null, - "name": { - "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": "primitive", - "camelCase": { - "unsafeName": "primitive", - "safeName": "primitive" - }, - "snakeCase": { - "unsafeName": "primitive", - "safeName": "primitive" - }, - "screamingSnakeCase": { - "unsafeName": "PRIMITIVE", - "safeName": "PRIMITIVE" - }, - "pascalCase": { - "unsafeName": "Primitive", - "safeName": "Primitive" - } - } - ], - "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": "primitive", - "camelCase": { - "unsafeName": "primitive", - "safeName": "primitive" - }, - "snakeCase": { - "unsafeName": "primitive", - "safeName": "primitive" - }, - "screamingSnakeCase": { - "unsafeName": "PRIMITIVE", - "safeName": "PRIMITIVE" - }, - "pascalCase": { - "unsafeName": "Primitive", - "safeName": "Primitive" - } - } - } - }, - "displayName": null, - "basePath": { - "head": "/primitive", - "parts": [] - }, - "headers": [], - "pathParameters": [], - "endpoints": [ - { - "id": "endpoint_endpoints/primitive.getAndReturnString", - "name": { - "originalName": "getAndReturnString", - "camelCase": { - "unsafeName": "getAndReturnString", - "safeName": "getAndReturnString" - }, - "snakeCase": { - "unsafeName": "get_and_return_string", - "safeName": "get_and_return_string" - }, - "screamingSnakeCase": { - "unsafeName": "GET_AND_RETURN_STRING", - "safeName": "GET_AND_RETURN_STRING" - }, - "pascalCase": { - "unsafeName": "GetAndReturnString", - "safeName": "GetAndReturnString" - } - }, - "displayName": null, - "auth": true, - "idempotent": false, - "baseUrl": null, - "method": "POST", - "path": { - "head": "/string", - "parts": [] - }, - "fullPath": { - "head": "/primitive/string", - "parts": [] - }, - "pathParameters": [], - "allPathParameters": [], - "queryParameters": [], - "headers": [], - "requestBody": { - "type": "reference", - "requestBodyType": { - "_type": "primitive", - "primitive": "STRING" - }, - "contentType": null, - "docs": null - }, - "sdkRequest": { - "shape": { - "type": "justRequestBody", - "value": { - "type": "typeReference", - "requestBodyType": { - "_type": "primitive", - "primitive": "STRING" - }, - "contentType": null, - "docs": null - } - }, - "requestParameterName": { - "originalName": "request", - "camelCase": { - "unsafeName": "request", - "safeName": "request" - }, - "snakeCase": { - "unsafeName": "request", - "safeName": "request" - }, - "screamingSnakeCase": { - "unsafeName": "REQUEST", - "safeName": "REQUEST" - }, - "pascalCase": { - "unsafeName": "Request", - "safeName": "Request" - } - } - }, - "response": { - "body": { - "type": "json", - "value": { - "type": "response", - "responseBodyType": { - "_type": "primitive", - "primitive": "STRING" - }, - "docs": null - } - }, - "status-code": null - }, - "errors": [], - "examples": [ - { - "exampleType": "generated", - "url": "/string", - "rootPathParameters": [], - "servicePathParameters": [], - "endpointPathParameters": [], - "serviceHeaders": [], - "endpointHeaders": [], - "queryParameters": [], - "request": { - "type": "reference", - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - }, - "name": null, - "codeSamples": null, - "response": { - "type": "ok", - "body": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - }, - "docs": null - } - ], - "pagination": null, - "availability": null, - "docs": null - }, - { - "id": "endpoint_endpoints/primitive.getAndReturnInt", - "name": { - "originalName": "getAndReturnInt", - "camelCase": { - "unsafeName": "getAndReturnInt", - "safeName": "getAndReturnInt" - }, - "snakeCase": { - "unsafeName": "get_and_return_int", - "safeName": "get_and_return_int" - }, - "screamingSnakeCase": { - "unsafeName": "GET_AND_RETURN_INT", - "safeName": "GET_AND_RETURN_INT" - }, - "pascalCase": { - "unsafeName": "GetAndReturnInt", - "safeName": "GetAndReturnInt" - } - }, - "displayName": null, - "auth": true, - "idempotent": false, - "baseUrl": null, - "method": "POST", - "path": { - "head": "/integer", - "parts": [] - }, - "fullPath": { - "head": "/primitive/integer", - "parts": [] - }, - "pathParameters": [], - "allPathParameters": [], - "queryParameters": [], - "headers": [], - "requestBody": { - "type": "reference", - "requestBodyType": { - "_type": "primitive", - "primitive": "INTEGER" - }, - "contentType": null, - "docs": null - }, - "sdkRequest": { - "shape": { - "type": "justRequestBody", - "value": { - "type": "typeReference", - "requestBodyType": { - "_type": "primitive", - "primitive": "INTEGER" - }, - "contentType": null, - "docs": null - } - }, - "requestParameterName": { - "originalName": "request", - "camelCase": { - "unsafeName": "request", - "safeName": "request" - }, - "snakeCase": { - "unsafeName": "request", - "safeName": "request" - }, - "screamingSnakeCase": { - "unsafeName": "REQUEST", - "safeName": "REQUEST" - }, - "pascalCase": { - "unsafeName": "Request", - "safeName": "Request" - } - } - }, - "response": { - "body": { - "type": "json", - "value": { - "type": "response", - "responseBodyType": { - "_type": "primitive", - "primitive": "INTEGER" - }, - "docs": null - } - }, - "status-code": null - }, - "errors": [], - "examples": [ - { - "exampleType": "generated", - "url": "/integer", - "rootPathParameters": [], - "servicePathParameters": [], - "endpointPathParameters": [], - "serviceHeaders": [], - "endpointHeaders": [], - "queryParameters": [], - "request": { - "type": "reference", - "shape": { - "type": "primitive", - "primitive": { - "type": "integer", - "integer": 1 - } - }, - "jsonExample": 1 - }, - "name": null, - "codeSamples": null, - "response": { - "type": "ok", - "body": { - "shape": { - "type": "primitive", - "primitive": { - "type": "integer", - "integer": 1 - } - }, - "jsonExample": 1 - } - }, - "docs": null - } - ], - "pagination": null, - "availability": null, - "docs": null - }, - { - "id": "endpoint_endpoints/primitive.getAndReturnLong", - "name": { - "originalName": "getAndReturnLong", - "camelCase": { - "unsafeName": "getAndReturnLong", - "safeName": "getAndReturnLong" - }, - "snakeCase": { - "unsafeName": "get_and_return_long", - "safeName": "get_and_return_long" - }, - "screamingSnakeCase": { - "unsafeName": "GET_AND_RETURN_LONG", - "safeName": "GET_AND_RETURN_LONG" - }, - "pascalCase": { - "unsafeName": "GetAndReturnLong", - "safeName": "GetAndReturnLong" - } - }, - "displayName": null, - "auth": true, - "idempotent": false, - "baseUrl": null, - "method": "POST", - "path": { - "head": "/long", - "parts": [] - }, - "fullPath": { - "head": "/primitive/long", - "parts": [] - }, - "pathParameters": [], - "allPathParameters": [], - "queryParameters": [], - "headers": [], - "requestBody": { - "type": "reference", - "requestBodyType": { - "_type": "primitive", - "primitive": "LONG" - }, - "contentType": null, - "docs": null - }, - "sdkRequest": { - "shape": { - "type": "justRequestBody", - "value": { - "type": "typeReference", - "requestBodyType": { - "_type": "primitive", - "primitive": "LONG" - }, - "contentType": null, - "docs": null - } - }, - "requestParameterName": { - "originalName": "request", - "camelCase": { - "unsafeName": "request", - "safeName": "request" - }, - "snakeCase": { - "unsafeName": "request", - "safeName": "request" - }, - "screamingSnakeCase": { - "unsafeName": "REQUEST", - "safeName": "REQUEST" - }, - "pascalCase": { - "unsafeName": "Request", - "safeName": "Request" - } - } - }, - "response": { - "body": { - "type": "json", - "value": { - "type": "response", - "responseBodyType": { - "_type": "primitive", - "primitive": "LONG" - }, - "docs": null - } - }, - "status-code": null - }, - "errors": [], - "examples": [ - { - "exampleType": "generated", - "url": "/long", - "rootPathParameters": [], - "servicePathParameters": [], - "endpointPathParameters": [], - "serviceHeaders": [], - "endpointHeaders": [], - "queryParameters": [], - "request": { - "type": "reference", - "shape": { - "type": "primitive", - "primitive": { - "type": "long", - "long": 1000000 - } - }, - "jsonExample": 1000000 - }, - "name": null, - "codeSamples": null, - "response": { - "type": "ok", - "body": { - "shape": { - "type": "primitive", - "primitive": { - "type": "long", - "long": 1000000 - } - }, - "jsonExample": 1000000 - } - }, - "docs": null - } - ], - "pagination": null, - "availability": null, - "docs": null - }, - { - "id": "endpoint_endpoints/primitive.getAndReturnDouble", - "name": { - "originalName": "getAndReturnDouble", - "camelCase": { - "unsafeName": "getAndReturnDouble", - "safeName": "getAndReturnDouble" - }, - "snakeCase": { - "unsafeName": "get_and_return_double", - "safeName": "get_and_return_double" - }, - "screamingSnakeCase": { - "unsafeName": "GET_AND_RETURN_DOUBLE", - "safeName": "GET_AND_RETURN_DOUBLE" - }, - "pascalCase": { - "unsafeName": "GetAndReturnDouble", - "safeName": "GetAndReturnDouble" - } - }, - "displayName": null, - "auth": true, - "idempotent": false, - "baseUrl": null, - "method": "POST", - "path": { - "head": "/double", - "parts": [] - }, - "fullPath": { - "head": "/primitive/double", - "parts": [] - }, - "pathParameters": [], - "allPathParameters": [], - "queryParameters": [], - "headers": [], - "requestBody": { - "type": "reference", - "requestBodyType": { - "_type": "primitive", - "primitive": "DOUBLE" - }, - "contentType": null, - "docs": null - }, - "sdkRequest": { - "shape": { - "type": "justRequestBody", - "value": { - "type": "typeReference", - "requestBodyType": { - "_type": "primitive", - "primitive": "DOUBLE" - }, - "contentType": null, - "docs": null - } - }, - "requestParameterName": { - "originalName": "request", - "camelCase": { - "unsafeName": "request", - "safeName": "request" - }, - "snakeCase": { - "unsafeName": "request", - "safeName": "request" - }, - "screamingSnakeCase": { - "unsafeName": "REQUEST", - "safeName": "REQUEST" - }, - "pascalCase": { - "unsafeName": "Request", - "safeName": "Request" - } - } - }, - "response": { - "body": { - "type": "json", - "value": { - "type": "response", - "responseBodyType": { - "_type": "primitive", - "primitive": "DOUBLE" - }, - "docs": null - } - }, - "status-code": null - }, - "errors": [], - "examples": [ - { - "exampleType": "generated", - "url": "/double", - "rootPathParameters": [], - "servicePathParameters": [], - "endpointPathParameters": [], - "serviceHeaders": [], - "endpointHeaders": [], - "queryParameters": [], - "request": { - "type": "reference", - "shape": { - "type": "primitive", - "primitive": { - "type": "double", - "double": 1.1 - } - }, - "jsonExample": 1.1 - }, - "name": null, - "codeSamples": null, - "response": { - "type": "ok", - "body": { - "shape": { - "type": "primitive", - "primitive": { - "type": "double", - "double": 1.1 - } - }, - "jsonExample": 1.1 - } - }, - "docs": null - } - ], - "pagination": null, - "availability": null, - "docs": null - }, - { - "id": "endpoint_endpoints/primitive.getAndReturnBool", - "name": { - "originalName": "getAndReturnBool", - "camelCase": { - "unsafeName": "getAndReturnBool", - "safeName": "getAndReturnBool" - }, - "snakeCase": { - "unsafeName": "get_and_return_bool", - "safeName": "get_and_return_bool" - }, - "screamingSnakeCase": { - "unsafeName": "GET_AND_RETURN_BOOL", - "safeName": "GET_AND_RETURN_BOOL" - }, - "pascalCase": { - "unsafeName": "GetAndReturnBool", - "safeName": "GetAndReturnBool" - } - }, - "displayName": null, - "auth": true, - "idempotent": false, - "baseUrl": null, - "method": "POST", - "path": { - "head": "/boolean", - "parts": [] - }, - "fullPath": { - "head": "/primitive/boolean", - "parts": [] - }, - "pathParameters": [], - "allPathParameters": [], - "queryParameters": [], - "headers": [], - "requestBody": { - "type": "reference", - "requestBodyType": { - "_type": "primitive", - "primitive": "BOOLEAN" - }, - "contentType": null, - "docs": null - }, - "sdkRequest": { - "shape": { - "type": "justRequestBody", - "value": { - "type": "typeReference", - "requestBodyType": { - "_type": "primitive", - "primitive": "BOOLEAN" - }, - "contentType": null, - "docs": null - } - }, - "requestParameterName": { - "originalName": "request", - "camelCase": { - "unsafeName": "request", - "safeName": "request" - }, - "snakeCase": { - "unsafeName": "request", - "safeName": "request" - }, - "screamingSnakeCase": { - "unsafeName": "REQUEST", - "safeName": "REQUEST" - }, - "pascalCase": { - "unsafeName": "Request", - "safeName": "Request" - } - } - }, - "response": { - "body": { - "type": "json", - "value": { - "type": "response", - "responseBodyType": { - "_type": "primitive", - "primitive": "BOOLEAN" - }, - "docs": null - } - }, - "status-code": null - }, - "errors": [], - "examples": [ - { - "exampleType": "generated", - "url": "/boolean", - "rootPathParameters": [], - "servicePathParameters": [], - "endpointPathParameters": [], - "serviceHeaders": [], - "endpointHeaders": [], - "queryParameters": [], - "request": { - "type": "reference", - "shape": { - "type": "primitive", - "primitive": { - "type": "boolean", - "boolean": true - } - }, - "jsonExample": true - }, - "name": null, - "codeSamples": null, - "response": { - "type": "ok", - "body": { - "shape": { - "type": "primitive", - "primitive": { - "type": "boolean", - "boolean": true - } - }, - "jsonExample": true - } - }, - "docs": null - } - ], - "pagination": null, - "availability": null, - "docs": null - }, - { - "id": "endpoint_endpoints/primitive.getAndReturnDatetime", - "name": { - "originalName": "getAndReturnDatetime", - "camelCase": { - "unsafeName": "getAndReturnDatetime", - "safeName": "getAndReturnDatetime" - }, - "snakeCase": { - "unsafeName": "get_and_return_datetime", - "safeName": "get_and_return_datetime" - }, - "screamingSnakeCase": { - "unsafeName": "GET_AND_RETURN_DATETIME", - "safeName": "GET_AND_RETURN_DATETIME" - }, - "pascalCase": { - "unsafeName": "GetAndReturnDatetime", - "safeName": "GetAndReturnDatetime" - } - }, - "displayName": null, - "auth": true, - "idempotent": false, - "baseUrl": null, - "method": "POST", - "path": { - "head": "/datetime", - "parts": [] - }, - "fullPath": { - "head": "/primitive/datetime", - "parts": [] - }, - "pathParameters": [], - "allPathParameters": [], - "queryParameters": [], - "headers": [], - "requestBody": { - "type": "reference", - "requestBodyType": { - "_type": "primitive", - "primitive": "DATE_TIME" - }, - "contentType": null, - "docs": null - }, - "sdkRequest": { - "shape": { - "type": "justRequestBody", - "value": { - "type": "typeReference", - "requestBodyType": { - "_type": "primitive", - "primitive": "DATE_TIME" - }, - "contentType": null, - "docs": null - } - }, - "requestParameterName": { - "originalName": "request", - "camelCase": { - "unsafeName": "request", - "safeName": "request" - }, - "snakeCase": { - "unsafeName": "request", - "safeName": "request" - }, - "screamingSnakeCase": { - "unsafeName": "REQUEST", - "safeName": "REQUEST" - }, - "pascalCase": { - "unsafeName": "Request", - "safeName": "Request" - } - } - }, - "response": { - "body": { - "type": "json", - "value": { - "type": "response", - "responseBodyType": { - "_type": "primitive", - "primitive": "DATE_TIME" - }, - "docs": null - } - }, - "status-code": null - }, - "errors": [], - "examples": [ - { - "exampleType": "generated", - "url": "/datetime", - "rootPathParameters": [], - "servicePathParameters": [], - "endpointPathParameters": [], - "serviceHeaders": [], - "endpointHeaders": [], - "queryParameters": [], - "request": { - "type": "reference", - "shape": { - "type": "primitive", - "primitive": { - "type": "datetime", - "datetime": "2024-01-15T09:30:00.000Z" - } - }, - "jsonExample": "2024-01-15T09:30:00Z" - }, - "name": null, - "codeSamples": null, - "response": { - "type": "ok", - "body": { - "shape": { - "type": "primitive", - "primitive": { - "type": "datetime", - "datetime": "2024-01-15T09:30:00.000Z" - } - }, - "jsonExample": "2024-01-15T09:30:00Z" - } - }, - "docs": null - } - ], - "pagination": null, - "availability": null, - "docs": null - }, - { - "id": "endpoint_endpoints/primitive.getAndReturnDate", - "name": { - "originalName": "getAndReturnDate", - "camelCase": { - "unsafeName": "getAndReturnDate", - "safeName": "getAndReturnDate" - }, - "snakeCase": { - "unsafeName": "get_and_return_date", - "safeName": "get_and_return_date" - }, - "screamingSnakeCase": { - "unsafeName": "GET_AND_RETURN_DATE", - "safeName": "GET_AND_RETURN_DATE" - }, - "pascalCase": { - "unsafeName": "GetAndReturnDate", - "safeName": "GetAndReturnDate" - } - }, - "displayName": null, - "auth": true, - "idempotent": false, - "baseUrl": null, - "method": "POST", - "path": { - "head": "/date", - "parts": [] - }, - "fullPath": { - "head": "/primitive/date", - "parts": [] - }, - "pathParameters": [], - "allPathParameters": [], - "queryParameters": [], - "headers": [], - "requestBody": { - "type": "reference", - "requestBodyType": { - "_type": "primitive", - "primitive": "DATE" - }, - "contentType": null, - "docs": null - }, - "sdkRequest": { - "shape": { - "type": "justRequestBody", - "value": { - "type": "typeReference", - "requestBodyType": { - "_type": "primitive", - "primitive": "DATE" - }, - "contentType": null, - "docs": null - } - }, - "requestParameterName": { - "originalName": "request", - "camelCase": { - "unsafeName": "request", - "safeName": "request" - }, - "snakeCase": { - "unsafeName": "request", - "safeName": "request" - }, - "screamingSnakeCase": { - "unsafeName": "REQUEST", - "safeName": "REQUEST" - }, - "pascalCase": { - "unsafeName": "Request", - "safeName": "Request" - } - } - }, - "response": { - "body": { - "type": "json", - "value": { - "type": "response", - "responseBodyType": { - "_type": "primitive", - "primitive": "DATE" - }, - "docs": null - } - }, - "status-code": null - }, - "errors": [], - "examples": [ - { - "exampleType": "generated", - "url": "/date", - "rootPathParameters": [], - "servicePathParameters": [], - "endpointPathParameters": [], - "serviceHeaders": [], - "endpointHeaders": [], - "queryParameters": [], - "request": { - "type": "reference", - "shape": { - "type": "primitive", - "primitive": { - "type": "date", - "date": "2023-01-15" - } - }, - "jsonExample": "2023-01-15" - }, - "name": null, - "codeSamples": null, - "response": { - "type": "ok", - "body": { - "shape": { - "type": "primitive", - "primitive": { - "type": "date", - "date": "2023-01-15" - } - }, - "jsonExample": "2023-01-15" - } - }, - "docs": null - } - ], - "pagination": null, - "availability": null, - "docs": null - }, - { - "id": "endpoint_endpoints/primitive.getAndReturnUUID", - "name": { - "originalName": "getAndReturnUUID", - "camelCase": { - "unsafeName": "getAndReturnUuid", - "safeName": "getAndReturnUuid" - }, - "snakeCase": { - "unsafeName": "get_and_return_uuid", - "safeName": "get_and_return_uuid" - }, - "screamingSnakeCase": { - "unsafeName": "GET_AND_RETURN_UUID", - "safeName": "GET_AND_RETURN_UUID" - }, - "pascalCase": { - "unsafeName": "GetAndReturnUuid", - "safeName": "GetAndReturnUuid" - } - }, - "displayName": null, - "auth": true, - "idempotent": false, - "baseUrl": null, - "method": "POST", - "path": { - "head": "/uuid", - "parts": [] - }, - "fullPath": { - "head": "/primitive/uuid", - "parts": [] - }, - "pathParameters": [], - "allPathParameters": [], - "queryParameters": [], - "headers": [], - "requestBody": { - "type": "reference", - "requestBodyType": { - "_type": "primitive", - "primitive": "UUID" - }, - "contentType": null, - "docs": null - }, - "sdkRequest": { - "shape": { - "type": "justRequestBody", - "value": { - "type": "typeReference", - "requestBodyType": { - "_type": "primitive", - "primitive": "UUID" - }, - "contentType": null, - "docs": null - } - }, - "requestParameterName": { - "originalName": "request", - "camelCase": { - "unsafeName": "request", - "safeName": "request" - }, - "snakeCase": { - "unsafeName": "request", - "safeName": "request" - }, - "screamingSnakeCase": { - "unsafeName": "REQUEST", - "safeName": "REQUEST" - }, - "pascalCase": { - "unsafeName": "Request", - "safeName": "Request" - } - } - }, - "response": { - "body": { - "type": "json", - "value": { - "type": "response", - "responseBodyType": { - "_type": "primitive", - "primitive": "UUID" - }, - "docs": null - } - }, - "status-code": null - }, - "errors": [], - "examples": [ - { - "exampleType": "generated", - "url": "/uuid", - "rootPathParameters": [], - "servicePathParameters": [], - "endpointPathParameters": [], - "serviceHeaders": [], - "endpointHeaders": [], - "queryParameters": [], - "request": { - "type": "reference", - "shape": { - "type": "primitive", - "primitive": { - "type": "uuid", - "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32" - } - }, - "jsonExample": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32" - }, - "name": null, - "codeSamples": null, - "response": { - "type": "ok", - "body": { - "shape": { - "type": "primitive", - "primitive": { - "type": "uuid", - "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32" - } - }, - "jsonExample": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32" - } - }, - "docs": null - } - ], - "pagination": null, - "availability": null, - "docs": null - }, - { - "id": "endpoint_endpoints/primitive.getAndReturnBase64", - "name": { - "originalName": "getAndReturnBase64", - "camelCase": { - "unsafeName": "getAndReturnBase64", - "safeName": "getAndReturnBase64" - }, - "snakeCase": { - "unsafeName": "get_and_return_base_64", - "safeName": "get_and_return_base_64" - }, - "screamingSnakeCase": { - "unsafeName": "GET_AND_RETURN_BASE_64", - "safeName": "GET_AND_RETURN_BASE_64" - }, - "pascalCase": { - "unsafeName": "GetAndReturnBase64", - "safeName": "GetAndReturnBase64" - } - }, - "displayName": null, - "auth": true, - "idempotent": false, - "baseUrl": null, - "method": "POST", - "path": { - "head": "/base64", - "parts": [] - }, - "fullPath": { - "head": "/primitive/base64", - "parts": [] - }, - "pathParameters": [], - "allPathParameters": [], - "queryParameters": [], - "headers": [], - "requestBody": { - "type": "reference", - "requestBodyType": { - "_type": "primitive", - "primitive": "BASE_64" - }, - "contentType": null, - "docs": null - }, - "sdkRequest": { - "shape": { - "type": "justRequestBody", - "value": { - "type": "typeReference", - "requestBodyType": { - "_type": "primitive", - "primitive": "BASE_64" - }, - "contentType": null, - "docs": null - } - }, - "requestParameterName": { - "originalName": "request", - "camelCase": { - "unsafeName": "request", - "safeName": "request" - }, - "snakeCase": { - "unsafeName": "request", - "safeName": "request" - }, - "screamingSnakeCase": { - "unsafeName": "REQUEST", - "safeName": "REQUEST" - }, - "pascalCase": { - "unsafeName": "Request", - "safeName": "Request" - } - } - }, - "response": { - "body": { - "type": "json", - "value": { - "type": "response", - "responseBodyType": { - "_type": "primitive", - "primitive": "BASE_64" - }, - "docs": null - } - }, - "status-code": null - }, - "errors": [], - "examples": [ - { - "exampleType": "generated", - "url": "/base64", - "rootPathParameters": [], - "servicePathParameters": [], - "endpointPathParameters": [], - "serviceHeaders": [], - "endpointHeaders": [], - "queryParameters": [], - "request": { - "type": "reference", - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "SGVsbG8gd29ybGQh" - } - } - }, - "jsonExample": "SGVsbG8gd29ybGQh" - }, - "name": null, - "codeSamples": null, - "response": { - "type": "ok", - "body": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "SGVsbG8gd29ybGQh" - } - } - }, - "jsonExample": "SGVsbG8gd29ybGQh" - } - }, - "docs": null - } - ], - "pagination": null, - "availability": null, - "docs": null - } - ] - }, - "service_endpoints/union": { - "availability": null, - "name": { - "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": "union", - "camelCase": { - "unsafeName": "union", - "safeName": "union" - }, - "snakeCase": { - "unsafeName": "union", - "safeName": "union" - }, - "screamingSnakeCase": { - "unsafeName": "UNION", - "safeName": "UNION" - }, - "pascalCase": { - "unsafeName": "Union", - "safeName": "Union" - } - } - ], - "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": "union", - "camelCase": { - "unsafeName": "union", - "safeName": "union" - }, - "snakeCase": { - "unsafeName": "union", - "safeName": "union" - }, - "screamingSnakeCase": { - "unsafeName": "UNION", - "safeName": "UNION" - }, - "pascalCase": { - "unsafeName": "Union", - "safeName": "Union" - } - } - } - }, - "displayName": null, - "basePath": { - "head": "/union", - "parts": [] - }, - "headers": [], - "pathParameters": [], - "endpoints": [ - { - "id": "endpoint_endpoints/union.getAndReturnUnion", - "name": { - "originalName": "getAndReturnUnion", - "camelCase": { - "unsafeName": "getAndReturnUnion", - "safeName": "getAndReturnUnion" - }, - "snakeCase": { - "unsafeName": "get_and_return_union", - "safeName": "get_and_return_union" - }, - "screamingSnakeCase": { - "unsafeName": "GET_AND_RETURN_UNION", - "safeName": "GET_AND_RETURN_UNION" - }, - "pascalCase": { - "unsafeName": "GetAndReturnUnion", - "safeName": "GetAndReturnUnion" - } - }, - "displayName": null, - "auth": true, - "idempotent": false, - "baseUrl": null, - "method": "POST", - "path": { - "head": "", - "parts": [] - }, - "fullPath": { - "head": "/union", - "parts": [] - }, - "pathParameters": [], - "allPathParameters": [], - "queryParameters": [], - "headers": [], - "requestBody": { - "type": "reference", - "requestBodyType": { - "_type": "named", - "name": { - "originalName": "Animal", - "camelCase": { - "unsafeName": "animal", - "safeName": "animal" - }, - "snakeCase": { - "unsafeName": "animal", - "safeName": "animal" - }, - "screamingSnakeCase": { - "unsafeName": "ANIMAL", - "safeName": "ANIMAL" - }, - "pascalCase": { - "unsafeName": "Animal", - "safeName": "Animal" - } - }, - "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": "union", - "camelCase": { - "unsafeName": "union", - "safeName": "union" - }, - "snakeCase": { - "unsafeName": "union", - "safeName": "union" - }, - "screamingSnakeCase": { - "unsafeName": "UNION", - "safeName": "UNION" - }, - "pascalCase": { - "unsafeName": "Union", - "safeName": "Union" - } - } - ], - "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": "union", - "camelCase": { - "unsafeName": "union", - "safeName": "union" - }, - "snakeCase": { - "unsafeName": "union", - "safeName": "union" - }, - "screamingSnakeCase": { - "unsafeName": "UNION", - "safeName": "UNION" - }, - "pascalCase": { - "unsafeName": "Union", - "safeName": "Union" - } - } - }, - "typeId": "type_types/union:Animal" - }, - "contentType": null, - "docs": null - }, - "sdkRequest": { - "shape": { - "type": "justRequestBody", - "value": { - "type": "typeReference", - "requestBodyType": { - "_type": "named", - "name": { - "originalName": "Animal", - "camelCase": { - "unsafeName": "animal", - "safeName": "animal" - }, - "snakeCase": { - "unsafeName": "animal", - "safeName": "animal" - }, - "screamingSnakeCase": { - "unsafeName": "ANIMAL", - "safeName": "ANIMAL" - }, - "pascalCase": { - "unsafeName": "Animal", - "safeName": "Animal" - } - }, - "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": "union", - "camelCase": { - "unsafeName": "union", - "safeName": "union" - }, - "snakeCase": { - "unsafeName": "union", - "safeName": "union" - }, - "screamingSnakeCase": { - "unsafeName": "UNION", - "safeName": "UNION" - }, - "pascalCase": { - "unsafeName": "Union", - "safeName": "Union" - } - } - ], - "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": "union", - "camelCase": { - "unsafeName": "union", - "safeName": "union" - }, - "snakeCase": { - "unsafeName": "union", - "safeName": "union" - }, - "screamingSnakeCase": { - "unsafeName": "UNION", - "safeName": "UNION" - }, - "pascalCase": { - "unsafeName": "Union", - "safeName": "Union" - } - } - }, - "typeId": "type_types/union:Animal" - }, - "contentType": null, - "docs": null - } - }, - "requestParameterName": { - "originalName": "request", - "camelCase": { - "unsafeName": "request", - "safeName": "request" - }, - "snakeCase": { - "unsafeName": "request", - "safeName": "request" - }, - "screamingSnakeCase": { - "unsafeName": "REQUEST", - "safeName": "REQUEST" - }, - "pascalCase": { - "unsafeName": "Request", - "safeName": "Request" - } - } - }, - "response": { - "body": { - "type": "json", - "value": { - "type": "response", - "responseBodyType": { - "_type": "named", - "name": { - "originalName": "Animal", - "camelCase": { - "unsafeName": "animal", - "safeName": "animal" - }, - "snakeCase": { - "unsafeName": "animal", - "safeName": "animal" - }, - "screamingSnakeCase": { - "unsafeName": "ANIMAL", - "safeName": "ANIMAL" - }, - "pascalCase": { - "unsafeName": "Animal", - "safeName": "Animal" - } - }, - "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": "union", - "camelCase": { - "unsafeName": "union", - "safeName": "union" - }, - "snakeCase": { - "unsafeName": "union", - "safeName": "union" - }, - "screamingSnakeCase": { - "unsafeName": "UNION", - "safeName": "UNION" - }, - "pascalCase": { - "unsafeName": "Union", - "safeName": "Union" - } - } - ], - "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": "union", - "camelCase": { - "unsafeName": "union", - "safeName": "union" - }, - "snakeCase": { - "unsafeName": "union", - "safeName": "union" - }, - "screamingSnakeCase": { - "unsafeName": "UNION", - "safeName": "UNION" - }, - "pascalCase": { - "unsafeName": "Union", - "safeName": "Union" - } - } - }, - "typeId": "type_types/union:Animal" - }, - "docs": null - } - }, - "status-code": null - }, - "errors": [], - "examples": [ - { - "exampleType": "generated", - "url": "", - "rootPathParameters": [], - "servicePathParameters": [], - "endpointPathParameters": [], - "serviceHeaders": [], - "endpointHeaders": [], - "queryParameters": [], - "request": { - "type": "reference", - "shape": { - "type": "named", - "typeName": { - "name": { - "originalName": "Animal", - "camelCase": { - "unsafeName": "animal", - "safeName": "animal" - }, - "snakeCase": { - "unsafeName": "animal", - "safeName": "animal" - }, - "screamingSnakeCase": { - "unsafeName": "ANIMAL", - "safeName": "ANIMAL" - }, - "pascalCase": { - "unsafeName": "Animal", - "safeName": "Animal" - } - }, - "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": "union", - "camelCase": { - "unsafeName": "union", - "safeName": "union" - }, - "snakeCase": { - "unsafeName": "union", - "safeName": "union" - }, - "screamingSnakeCase": { - "unsafeName": "UNION", - "safeName": "UNION" - }, - "pascalCase": { - "unsafeName": "Union", - "safeName": "Union" - } - } - ], - "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": "union", - "camelCase": { - "unsafeName": "union", - "safeName": "union" - }, - "snakeCase": { - "unsafeName": "union", - "safeName": "union" - }, - "screamingSnakeCase": { - "unsafeName": "UNION", - "safeName": "UNION" - }, - "pascalCase": { - "unsafeName": "Union", - "safeName": "Union" - } - } - }, - "typeId": "type_types/union:Animal" - }, - "shape": { - "type": "union", - "discriminant": { - "name": { - "originalName": "animal", - "camelCase": { - "unsafeName": "animal", - "safeName": "animal" - }, - "snakeCase": { - "unsafeName": "animal", - "safeName": "animal" - }, - "screamingSnakeCase": { - "unsafeName": "ANIMAL", - "safeName": "ANIMAL" - }, - "pascalCase": { - "unsafeName": "Animal", - "safeName": "Animal" - } - }, - "wireValue": "animal" - }, - "singleUnionType": { - "wireDiscriminantValue": { - "name": { - "originalName": "dog", - "camelCase": { - "unsafeName": "dog", - "safeName": "dog" - }, - "snakeCase": { - "unsafeName": "dog", - "safeName": "dog" - }, - "screamingSnakeCase": { - "unsafeName": "DOG", - "safeName": "DOG" - }, - "pascalCase": { - "unsafeName": "Dog", - "safeName": "Dog" - } - }, - "wireValue": "dog" - }, - "shape": { - "type": "samePropertiesAsObject", - "typeId": "type_types/union:Dog", - "object": { - "properties": [ - { - "name": { - "name": { - "originalName": "name", - "camelCase": { - "unsafeName": "name", - "safeName": "name" - }, - "snakeCase": { - "unsafeName": "name", - "safeName": "name" - }, - "screamingSnakeCase": { - "unsafeName": "NAME", - "safeName": "NAME" - }, - "pascalCase": { - "unsafeName": "Name", - "safeName": "Name" - } - }, - "wireValue": "name" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "Dog", - "camelCase": { - "unsafeName": "dog", - "safeName": "dog" - }, - "snakeCase": { - "unsafeName": "dog", - "safeName": "dog" - }, - "screamingSnakeCase": { - "unsafeName": "DOG", - "safeName": "DOG" - }, - "pascalCase": { - "unsafeName": "Dog", - "safeName": "Dog" - } - }, - "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": "union", - "camelCase": { - "unsafeName": "union", - "safeName": "union" - }, - "snakeCase": { - "unsafeName": "union", - "safeName": "union" - }, - "screamingSnakeCase": { - "unsafeName": "UNION", - "safeName": "UNION" - }, - "pascalCase": { - "unsafeName": "Union", - "safeName": "Union" - } - } - ], - "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": "union", - "camelCase": { - "unsafeName": "union", - "safeName": "union" - }, - "snakeCase": { - "unsafeName": "union", - "safeName": "union" - }, - "screamingSnakeCase": { - "unsafeName": "UNION", - "safeName": "UNION" - }, - "pascalCase": { - "unsafeName": "Union", - "safeName": "Union" - } - } - }, - "typeId": "type_types/union:Dog" - } - }, - { - "name": { - "name": { - "originalName": "likesToWoof", - "camelCase": { - "unsafeName": "likesToWoof", - "safeName": "likesToWoof" - }, - "snakeCase": { - "unsafeName": "likes_to_woof", - "safeName": "likes_to_woof" - }, - "screamingSnakeCase": { - "unsafeName": "LIKES_TO_WOOF", - "safeName": "LIKES_TO_WOOF" - }, - "pascalCase": { - "unsafeName": "LikesToWoof", - "safeName": "LikesToWoof" - } - }, - "wireValue": "likesToWoof" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "boolean", - "boolean": true - } - }, - "jsonExample": true - }, - "originalTypeDeclaration": { - "name": { - "originalName": "Dog", - "camelCase": { - "unsafeName": "dog", - "safeName": "dog" - }, - "snakeCase": { - "unsafeName": "dog", - "safeName": "dog" - }, - "screamingSnakeCase": { - "unsafeName": "DOG", - "safeName": "DOG" - }, - "pascalCase": { - "unsafeName": "Dog", - "safeName": "Dog" - } - }, - "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": "union", - "camelCase": { - "unsafeName": "union", - "safeName": "union" - }, - "snakeCase": { - "unsafeName": "union", - "safeName": "union" - }, - "screamingSnakeCase": { - "unsafeName": "UNION", - "safeName": "UNION" - }, - "pascalCase": { - "unsafeName": "Union", - "safeName": "Union" - } - } - ], - "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": "union", - "camelCase": { - "unsafeName": "union", - "safeName": "union" - }, - "snakeCase": { - "unsafeName": "union", - "safeName": "union" - }, - "screamingSnakeCase": { - "unsafeName": "UNION", - "safeName": "UNION" - }, - "pascalCase": { - "unsafeName": "Union", - "safeName": "Union" - } - } - }, - "typeId": "type_types/union:Dog" - } - } - ] - } - } - } - } - }, - "jsonExample": { - "animal": "dog", - "name": "string", - "likesToWoof": true - } - }, - "name": null, - "codeSamples": null, - "response": { - "type": "ok", - "body": { - "shape": { - "type": "named", - "typeName": { - "name": { - "originalName": "Animal", - "camelCase": { - "unsafeName": "animal", - "safeName": "animal" - }, - "snakeCase": { - "unsafeName": "animal", - "safeName": "animal" - }, - "screamingSnakeCase": { - "unsafeName": "ANIMAL", - "safeName": "ANIMAL" - }, - "pascalCase": { - "unsafeName": "Animal", - "safeName": "Animal" - } - }, - "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": "union", - "camelCase": { - "unsafeName": "union", - "safeName": "union" - }, - "snakeCase": { - "unsafeName": "union", - "safeName": "union" - }, - "screamingSnakeCase": { - "unsafeName": "UNION", - "safeName": "UNION" - }, - "pascalCase": { - "unsafeName": "Union", - "safeName": "Union" - } - } - ], - "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": "union", - "camelCase": { - "unsafeName": "union", - "safeName": "union" - }, - "snakeCase": { - "unsafeName": "union", - "safeName": "union" - }, - "screamingSnakeCase": { - "unsafeName": "UNION", - "safeName": "UNION" - }, - "pascalCase": { - "unsafeName": "Union", - "safeName": "Union" - } - } - }, - "typeId": "type_types/union:Animal" - }, - "shape": { - "type": "union", - "discriminant": { - "name": { - "originalName": "animal", - "camelCase": { - "unsafeName": "animal", - "safeName": "animal" - }, - "snakeCase": { - "unsafeName": "animal", - "safeName": "animal" - }, - "screamingSnakeCase": { - "unsafeName": "ANIMAL", - "safeName": "ANIMAL" - }, - "pascalCase": { - "unsafeName": "Animal", - "safeName": "Animal" - } - }, - "wireValue": "animal" - }, - "singleUnionType": { - "wireDiscriminantValue": { - "name": { - "originalName": "dog", - "camelCase": { - "unsafeName": "dog", - "safeName": "dog" - }, - "snakeCase": { - "unsafeName": "dog", - "safeName": "dog" - }, - "screamingSnakeCase": { - "unsafeName": "DOG", - "safeName": "DOG" - }, - "pascalCase": { - "unsafeName": "Dog", - "safeName": "Dog" - } - }, - "wireValue": "dog" - }, - "shape": { - "type": "samePropertiesAsObject", - "typeId": "type_types/union:Dog", - "object": { - "properties": [ - { - "name": { - "name": { - "originalName": "name", - "camelCase": { - "unsafeName": "name", - "safeName": "name" - }, - "snakeCase": { - "unsafeName": "name", - "safeName": "name" - }, - "screamingSnakeCase": { - "unsafeName": "NAME", - "safeName": "NAME" - }, - "pascalCase": { - "unsafeName": "Name", - "safeName": "Name" - } - }, - "wireValue": "name" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "Dog", - "camelCase": { - "unsafeName": "dog", - "safeName": "dog" - }, - "snakeCase": { - "unsafeName": "dog", - "safeName": "dog" - }, - "screamingSnakeCase": { - "unsafeName": "DOG", - "safeName": "DOG" - }, - "pascalCase": { - "unsafeName": "Dog", - "safeName": "Dog" - } - }, - "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": "union", - "camelCase": { - "unsafeName": "union", - "safeName": "union" - }, - "snakeCase": { - "unsafeName": "union", - "safeName": "union" - }, - "screamingSnakeCase": { - "unsafeName": "UNION", - "safeName": "UNION" - }, - "pascalCase": { - "unsafeName": "Union", - "safeName": "Union" - } - } - ], - "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": "union", - "camelCase": { - "unsafeName": "union", - "safeName": "union" - }, - "snakeCase": { - "unsafeName": "union", - "safeName": "union" - }, - "screamingSnakeCase": { - "unsafeName": "UNION", - "safeName": "UNION" - }, - "pascalCase": { - "unsafeName": "Union", - "safeName": "Union" - } - } - }, - "typeId": "type_types/union:Dog" - } - }, - { - "name": { - "name": { - "originalName": "likesToWoof", - "camelCase": { - "unsafeName": "likesToWoof", - "safeName": "likesToWoof" - }, - "snakeCase": { - "unsafeName": "likes_to_woof", - "safeName": "likes_to_woof" - }, - "screamingSnakeCase": { - "unsafeName": "LIKES_TO_WOOF", - "safeName": "LIKES_TO_WOOF" - }, - "pascalCase": { - "unsafeName": "LikesToWoof", - "safeName": "LikesToWoof" - } - }, - "wireValue": "likesToWoof" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "boolean", - "boolean": true - } - }, - "jsonExample": true - }, - "originalTypeDeclaration": { - "name": { - "originalName": "Dog", - "camelCase": { - "unsafeName": "dog", - "safeName": "dog" - }, - "snakeCase": { - "unsafeName": "dog", - "safeName": "dog" - }, - "screamingSnakeCase": { - "unsafeName": "DOG", - "safeName": "DOG" - }, - "pascalCase": { - "unsafeName": "Dog", - "safeName": "Dog" - } - }, - "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": "union", - "camelCase": { - "unsafeName": "union", - "safeName": "union" - }, - "snakeCase": { - "unsafeName": "union", - "safeName": "union" - }, - "screamingSnakeCase": { - "unsafeName": "UNION", - "safeName": "UNION" - }, - "pascalCase": { - "unsafeName": "Union", - "safeName": "Union" - } - } - ], - "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": "union", - "camelCase": { - "unsafeName": "union", - "safeName": "union" - }, - "snakeCase": { - "unsafeName": "union", - "safeName": "union" - }, - "screamingSnakeCase": { - "unsafeName": "UNION", - "safeName": "UNION" - }, - "pascalCase": { - "unsafeName": "Union", - "safeName": "Union" - } - } - }, - "typeId": "type_types/union:Dog" - } - } - ] - } - } - } - } - }, - "jsonExample": { - "animal": "dog", - "name": "string", - "likesToWoof": true - } - } - }, - "docs": null - } - ], - "pagination": null, - "availability": null, - "docs": null - } - ] - }, - "service_inlined-requests": { - "availability": null, - "name": { - "fernFilepath": { - "allParts": [ - { - "originalName": "inlined-requests", - "camelCase": { - "unsafeName": "inlinedRequests", - "safeName": "inlinedRequests" - }, - "snakeCase": { - "unsafeName": "inlined_requests", - "safeName": "inlined_requests" - }, - "screamingSnakeCase": { - "unsafeName": "INLINED_REQUESTS", - "safeName": "INLINED_REQUESTS" - }, - "pascalCase": { - "unsafeName": "InlinedRequests", - "safeName": "InlinedRequests" - } - } - ], - "packagePath": [], - "file": { - "originalName": "inlined-requests", - "camelCase": { - "unsafeName": "inlinedRequests", - "safeName": "inlinedRequests" - }, - "snakeCase": { - "unsafeName": "inlined_requests", - "safeName": "inlined_requests" - }, - "screamingSnakeCase": { - "unsafeName": "INLINED_REQUESTS", - "safeName": "INLINED_REQUESTS" - }, - "pascalCase": { - "unsafeName": "InlinedRequests", - "safeName": "InlinedRequests" - } - } - } - }, - "displayName": null, - "basePath": { - "head": "/req-bodies", - "parts": [] - }, - "headers": [], - "pathParameters": [], - "endpoints": [ - { - "id": "endpoint_inlined-requests.postWithObjectBodyandResponse", - "name": { - "originalName": "postWithObjectBodyandResponse", - "camelCase": { - "unsafeName": "postWithObjectBodyandResponse", - "safeName": "postWithObjectBodyandResponse" - }, - "snakeCase": { - "unsafeName": "post_with_object_bodyand_response", - "safeName": "post_with_object_bodyand_response" - }, - "screamingSnakeCase": { - "unsafeName": "POST_WITH_OBJECT_BODYAND_RESPONSE", - "safeName": "POST_WITH_OBJECT_BODYAND_RESPONSE" - }, - "pascalCase": { - "unsafeName": "PostWithObjectBodyandResponse", - "safeName": "PostWithObjectBodyandResponse" - } - }, - "displayName": null, - "auth": false, - "idempotent": false, - "baseUrl": null, - "method": "POST", - "path": { - "head": "/object", - "parts": [] - }, - "fullPath": { - "head": "/req-bodies/object", - "parts": [] - }, - "pathParameters": [], - "allPathParameters": [], - "queryParameters": [], - "headers": [], - "requestBody": { - "type": "inlinedRequestBody", - "name": { - "originalName": "PostWithObjectBody", - "camelCase": { - "unsafeName": "postWithObjectBody", - "safeName": "postWithObjectBody" - }, - "snakeCase": { - "unsafeName": "post_with_object_body", - "safeName": "post_with_object_body" - }, - "screamingSnakeCase": { - "unsafeName": "POST_WITH_OBJECT_BODY", - "safeName": "POST_WITH_OBJECT_BODY" - }, - "pascalCase": { - "unsafeName": "PostWithObjectBody", - "safeName": "PostWithObjectBody" - } - }, - "extends": [], - "contentType": null, - "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" - }, - "valueType": { - "_type": "primitive", - "primitive": "STRING" - }, - "docs": null - }, - { - "name": { - "name": { - "originalName": "integer", - "camelCase": { - "unsafeName": "integer", - "safeName": "integer" - }, - "snakeCase": { - "unsafeName": "integer", - "safeName": "integer" - }, - "screamingSnakeCase": { - "unsafeName": "INTEGER", - "safeName": "INTEGER" - }, - "pascalCase": { - "unsafeName": "Integer", - "safeName": "Integer" - } - }, - "wireValue": "integer" - }, - "valueType": { - "_type": "primitive", - "primitive": "INTEGER" - }, - "docs": null - }, - { - "name": { - "name": { - "originalName": "NestedObject", - "camelCase": { - "unsafeName": "nestedObject", - "safeName": "nestedObject" - }, - "snakeCase": { - "unsafeName": "nested_object", - "safeName": "nested_object" - }, - "screamingSnakeCase": { - "unsafeName": "NESTED_OBJECT", - "safeName": "NESTED_OBJECT" - }, - "pascalCase": { - "unsafeName": "NestedObject", - "safeName": "NestedObject" - } - }, - "wireValue": "NestedObject" - }, - "valueType": { - "_type": "named", - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - }, - "docs": null - } - ], - "extra-properties": false - }, - "sdkRequest": { - "shape": { - "type": "wrapper", - "wrapperName": { - "originalName": "PostWithObjectBody", - "camelCase": { - "unsafeName": "postWithObjectBody", - "safeName": "postWithObjectBody" - }, - "snakeCase": { - "unsafeName": "post_with_object_body", - "safeName": "post_with_object_body" - }, - "screamingSnakeCase": { - "unsafeName": "POST_WITH_OBJECT_BODY", - "safeName": "POST_WITH_OBJECT_BODY" - }, - "pascalCase": { - "unsafeName": "PostWithObjectBody", - "safeName": "PostWithObjectBody" - } - }, - "bodyKey": { - "originalName": "body", - "camelCase": { - "unsafeName": "body", - "safeName": "body" - }, - "snakeCase": { - "unsafeName": "body", - "safeName": "body" - }, - "screamingSnakeCase": { - "unsafeName": "BODY", - "safeName": "BODY" - }, - "pascalCase": { - "unsafeName": "Body", - "safeName": "Body" - } - } - }, - "requestParameterName": { - "originalName": "request", - "camelCase": { - "unsafeName": "request", - "safeName": "request" - }, - "snakeCase": { - "unsafeName": "request", - "safeName": "request" - }, - "screamingSnakeCase": { - "unsafeName": "REQUEST", - "safeName": "REQUEST" - }, - "pascalCase": { - "unsafeName": "Request", - "safeName": "Request" - } - } - }, - "response": { - "body": { - "type": "json", - "value": { - "type": "response", - "responseBodyType": { - "_type": "named", - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - }, - "docs": null - } - }, - "status-code": null - }, - "errors": [ - { - "error": { - "name": { - "originalName": "BadRequestBody", - "camelCase": { - "unsafeName": "badRequestBody", - "safeName": "badRequestBody" - }, - "snakeCase": { - "unsafeName": "bad_request_body", - "safeName": "bad_request_body" - }, - "screamingSnakeCase": { - "unsafeName": "BAD_REQUEST_BODY", - "safeName": "BAD_REQUEST_BODY" - }, - "pascalCase": { - "unsafeName": "BadRequestBody", - "safeName": "BadRequestBody" - } - }, - "fernFilepath": { - "allParts": [ - { - "originalName": "general-errors", - "camelCase": { - "unsafeName": "generalErrors", - "safeName": "generalErrors" - }, - "snakeCase": { - "unsafeName": "general_errors", - "safeName": "general_errors" - }, - "screamingSnakeCase": { - "unsafeName": "GENERAL_ERRORS", - "safeName": "GENERAL_ERRORS" - }, - "pascalCase": { - "unsafeName": "GeneralErrors", - "safeName": "GeneralErrors" - } - } - ], - "packagePath": [], - "file": { - "originalName": "general-errors", - "camelCase": { - "unsafeName": "generalErrors", - "safeName": "generalErrors" - }, - "snakeCase": { - "unsafeName": "general_errors", - "safeName": "general_errors" - }, - "screamingSnakeCase": { - "unsafeName": "GENERAL_ERRORS", - "safeName": "GENERAL_ERRORS" - }, - "pascalCase": { - "unsafeName": "GeneralErrors", - "safeName": "GeneralErrors" - } - } - }, - "errorId": "error_general-errors:BadRequestBody" - }, - "docs": null - } - ], - "examples": [ - { - "exampleType": "generated", - "url": "/object", - "rootPathParameters": [], - "servicePathParameters": [], - "endpointPathParameters": [], - "serviceHeaders": [], - "endpointHeaders": [], - "queryParameters": [], - "request": { - "type": "inlinedRequestBody", - "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": "string" - } - } - }, - "jsonExample": "string" - }, - "originalTypeDeclaration": null - }, - { - "name": { - "name": { - "originalName": "integer", - "camelCase": { - "unsafeName": "integer", - "safeName": "integer" - }, - "snakeCase": { - "unsafeName": "integer", - "safeName": "integer" - }, - "screamingSnakeCase": { - "unsafeName": "INTEGER", - "safeName": "INTEGER" - }, - "pascalCase": { - "unsafeName": "Integer", - "safeName": "Integer" - } - }, - "wireValue": "integer" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "integer", - "integer": 1 - } - }, - "jsonExample": 1 - }, - "originalTypeDeclaration": null - }, - { - "name": { - "name": { - "originalName": "NestedObject", - "camelCase": { - "unsafeName": "nestedObject", - "safeName": "nestedObject" - }, - "snakeCase": { - "unsafeName": "nested_object", - "safeName": "nested_object" - }, - "screamingSnakeCase": { - "unsafeName": "NESTED_OBJECT", - "safeName": "NESTED_OBJECT" - }, - "pascalCase": { - "unsafeName": "NestedObject", - "safeName": "NestedObject" - } - }, - "wireValue": "NestedObject" - }, - "value": { - "shape": { - "type": "named", - "typeName": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - }, - "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": "string" - } - } - }, - "jsonExample": "string" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "integer", - "camelCase": { - "unsafeName": "integer", - "safeName": "integer" - }, - "snakeCase": { - "unsafeName": "integer", - "safeName": "integer" - }, - "screamingSnakeCase": { - "unsafeName": "INTEGER", - "safeName": "INTEGER" - }, - "pascalCase": { - "unsafeName": "Integer", - "safeName": "Integer" - } - }, - "wireValue": "integer" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "integer", - "integer": 1 - } - }, - "jsonExample": 1 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "long", - "camelCase": { - "unsafeName": "long", - "safeName": "long" - }, - "snakeCase": { - "unsafeName": "long", - "safeName": "long" - }, - "screamingSnakeCase": { - "unsafeName": "LONG", - "safeName": "LONG" - }, - "pascalCase": { - "unsafeName": "Long", - "safeName": "Long" - } - }, - "wireValue": "long" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "long", - "long": 1000000 - } - }, - "jsonExample": 1000000 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "double", - "camelCase": { - "unsafeName": "double", - "safeName": "double" - }, - "snakeCase": { - "unsafeName": "double", - "safeName": "double" - }, - "screamingSnakeCase": { - "unsafeName": "DOUBLE", - "safeName": "DOUBLE" - }, - "pascalCase": { - "unsafeName": "Double", - "safeName": "Double" - } - }, - "wireValue": "double" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "double", - "double": 1.1 - } - }, - "jsonExample": 1.1 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "bool", - "camelCase": { - "unsafeName": "bool", - "safeName": "bool" - }, - "snakeCase": { - "unsafeName": "bool", - "safeName": "bool" - }, - "screamingSnakeCase": { - "unsafeName": "BOOL", - "safeName": "BOOL" - }, - "pascalCase": { - "unsafeName": "Bool", - "safeName": "Bool" - } - }, - "wireValue": "bool" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "boolean", - "boolean": true - } - }, - "jsonExample": true - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "datetime", - "camelCase": { - "unsafeName": "datetime", - "safeName": "datetime" - }, - "snakeCase": { - "unsafeName": "datetime", - "safeName": "datetime" - }, - "screamingSnakeCase": { - "unsafeName": "DATETIME", - "safeName": "DATETIME" - }, - "pascalCase": { - "unsafeName": "Datetime", - "safeName": "Datetime" - } - }, - "wireValue": "datetime" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "datetime", - "datetime": "2024-01-15T09:30:00.000Z" - } - }, - "jsonExample": "2024-01-15T09:30:00Z" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "date", - "camelCase": { - "unsafeName": "date", - "safeName": "date" - }, - "snakeCase": { - "unsafeName": "date", - "safeName": "date" - }, - "screamingSnakeCase": { - "unsafeName": "DATE", - "safeName": "DATE" - }, - "pascalCase": { - "unsafeName": "Date", - "safeName": "Date_" - } - }, - "wireValue": "date" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "date", - "date": "2023-01-15" - } - }, - "jsonExample": "2023-01-15" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "uuid", - "camelCase": { - "unsafeName": "uuid", - "safeName": "uuid" - }, - "snakeCase": { - "unsafeName": "uuid", - "safeName": "uuid" - }, - "screamingSnakeCase": { - "unsafeName": "UUID", - "safeName": "UUID" - }, - "pascalCase": { - "unsafeName": "Uuid", - "safeName": "Uuid" - } - }, - "wireValue": "uuid" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "uuid", - "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32" - } - }, - "jsonExample": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "base64", - "camelCase": { - "unsafeName": "base64", - "safeName": "base64" - }, - "snakeCase": { - "unsafeName": "base_64", - "safeName": "base_64" - }, - "screamingSnakeCase": { - "unsafeName": "BASE_64", - "safeName": "BASE_64" - }, - "pascalCase": { - "unsafeName": "Base64", - "safeName": "Base64" - } - }, - "wireValue": "base64" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "SGVsbG8gd29ybGQh" - } - } - }, - "jsonExample": "SGVsbG8gd29ybGQh" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "list", - "camelCase": { - "unsafeName": "list", - "safeName": "list" - }, - "snakeCase": { - "unsafeName": "list", - "safeName": "list" - }, - "screamingSnakeCase": { - "unsafeName": "LIST", - "safeName": "LIST" - }, - "pascalCase": { - "unsafeName": "List", - "safeName": "List" - } - }, - "wireValue": "list" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "list", - "list": [ - { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - ] - } - }, - "jsonExample": [ - "string" - ] - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "set", - "camelCase": { - "unsafeName": "set", - "safeName": "set_" - }, - "snakeCase": { - "unsafeName": "set", - "safeName": "set_" - }, - "screamingSnakeCase": { - "unsafeName": "SET", - "safeName": "SET" - }, - "pascalCase": { - "unsafeName": "Set", - "safeName": "Set" - } - }, - "wireValue": "set" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "set", - "set": [ - { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - ] - } - }, - "jsonExample": [ - "string" - ] - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "map", - "camelCase": { - "unsafeName": "map", - "safeName": "map" - }, - "snakeCase": { - "unsafeName": "map", - "safeName": "map" - }, - "screamingSnakeCase": { - "unsafeName": "MAP", - "safeName": "MAP" - }, - "pascalCase": { - "unsafeName": "Map", - "safeName": "Map" - } - }, - "wireValue": "map" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "map", - "map": [ - { - "key": { - "shape": { - "type": "primitive", - "primitive": { - "type": "integer", - "integer": 1 - } - }, - "jsonExample": 1 - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - } - ] - } - }, - "jsonExample": { - "1": "string" - } - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - } - ] - } - }, - "jsonExample": { - "string": "string", - "integer": 1, - "long": 1000000, - "double": 1.1, - "bool": true, - "datetime": "2024-01-15T09:30:00Z", - "date": "2023-01-15", - "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", - "base64": "SGVsbG8gd29ybGQh", - "list": [ - "string" - ], - "set": [ - "string" - ], - "map": { - "1": "string" - } - } - }, - "originalTypeDeclaration": null - } - ], - "jsonExample": { - "string": "string", - "integer": 1, - "NestedObject": { - "string": "string", - "integer": 1, - "long": 1000000, - "double": 1.1, - "bool": true, - "datetime": "2024-01-15T09:30:00Z", - "date": "2023-01-15", - "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", - "base64": "SGVsbG8gd29ybGQh", - "list": [ - "string" - ], - "set": [ - "string" - ], - "map": { - "1": "string" - } - } - } - }, - "name": null, - "codeSamples": null, - "response": { - "type": "ok", - "body": { - "shape": { - "type": "named", - "typeName": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - }, - "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": "string" - } - } - }, - "jsonExample": "string" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "integer", - "camelCase": { - "unsafeName": "integer", - "safeName": "integer" - }, - "snakeCase": { - "unsafeName": "integer", - "safeName": "integer" - }, - "screamingSnakeCase": { - "unsafeName": "INTEGER", - "safeName": "INTEGER" - }, - "pascalCase": { - "unsafeName": "Integer", - "safeName": "Integer" - } - }, - "wireValue": "integer" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "integer", - "integer": 1 - } - }, - "jsonExample": 1 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "long", - "camelCase": { - "unsafeName": "long", - "safeName": "long" - }, - "snakeCase": { - "unsafeName": "long", - "safeName": "long" - }, - "screamingSnakeCase": { - "unsafeName": "LONG", - "safeName": "LONG" - }, - "pascalCase": { - "unsafeName": "Long", - "safeName": "Long" - } - }, - "wireValue": "long" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "long", - "long": 1000000 - } - }, - "jsonExample": 1000000 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "double", - "camelCase": { - "unsafeName": "double", - "safeName": "double" - }, - "snakeCase": { - "unsafeName": "double", - "safeName": "double" - }, - "screamingSnakeCase": { - "unsafeName": "DOUBLE", - "safeName": "DOUBLE" - }, - "pascalCase": { - "unsafeName": "Double", - "safeName": "Double" - } - }, - "wireValue": "double" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "double", - "double": 1.1 - } - }, - "jsonExample": 1.1 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "bool", - "camelCase": { - "unsafeName": "bool", - "safeName": "bool" - }, - "snakeCase": { - "unsafeName": "bool", - "safeName": "bool" - }, - "screamingSnakeCase": { - "unsafeName": "BOOL", - "safeName": "BOOL" - }, - "pascalCase": { - "unsafeName": "Bool", - "safeName": "Bool" - } - }, - "wireValue": "bool" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "boolean", - "boolean": true - } - }, - "jsonExample": true - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "datetime", - "camelCase": { - "unsafeName": "datetime", - "safeName": "datetime" - }, - "snakeCase": { - "unsafeName": "datetime", - "safeName": "datetime" - }, - "screamingSnakeCase": { - "unsafeName": "DATETIME", - "safeName": "DATETIME" - }, - "pascalCase": { - "unsafeName": "Datetime", - "safeName": "Datetime" - } - }, - "wireValue": "datetime" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "datetime", - "datetime": "2024-01-15T09:30:00.000Z" - } - }, - "jsonExample": "2024-01-15T09:30:00Z" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "date", - "camelCase": { - "unsafeName": "date", - "safeName": "date" - }, - "snakeCase": { - "unsafeName": "date", - "safeName": "date" - }, - "screamingSnakeCase": { - "unsafeName": "DATE", - "safeName": "DATE" - }, - "pascalCase": { - "unsafeName": "Date", - "safeName": "Date_" - } - }, - "wireValue": "date" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "date", - "date": "2023-01-15" - } - }, - "jsonExample": "2023-01-15" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "uuid", - "camelCase": { - "unsafeName": "uuid", - "safeName": "uuid" - }, - "snakeCase": { - "unsafeName": "uuid", - "safeName": "uuid" - }, - "screamingSnakeCase": { - "unsafeName": "UUID", - "safeName": "UUID" - }, - "pascalCase": { - "unsafeName": "Uuid", - "safeName": "Uuid" - } - }, - "wireValue": "uuid" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "uuid", - "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32" - } - }, - "jsonExample": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "base64", - "camelCase": { - "unsafeName": "base64", - "safeName": "base64" - }, - "snakeCase": { - "unsafeName": "base_64", - "safeName": "base_64" - }, - "screamingSnakeCase": { - "unsafeName": "BASE_64", - "safeName": "BASE_64" - }, - "pascalCase": { - "unsafeName": "Base64", - "safeName": "Base64" - } - }, - "wireValue": "base64" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "SGVsbG8gd29ybGQh" - } - } - }, - "jsonExample": "SGVsbG8gd29ybGQh" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "list", - "camelCase": { - "unsafeName": "list", - "safeName": "list" - }, - "snakeCase": { - "unsafeName": "list", - "safeName": "list" - }, - "screamingSnakeCase": { - "unsafeName": "LIST", - "safeName": "LIST" - }, - "pascalCase": { - "unsafeName": "List", - "safeName": "List" - } - }, - "wireValue": "list" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "list", - "list": [ - { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - ] - } - }, - "jsonExample": [ - "string" - ] - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "set", - "camelCase": { - "unsafeName": "set", - "safeName": "set_" - }, - "snakeCase": { - "unsafeName": "set", - "safeName": "set_" - }, - "screamingSnakeCase": { - "unsafeName": "SET", - "safeName": "SET" - }, - "pascalCase": { - "unsafeName": "Set", - "safeName": "Set" - } - }, - "wireValue": "set" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "set", - "set": [ - { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - ] - } - }, - "jsonExample": [ - "string" - ] - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "map", - "camelCase": { - "unsafeName": "map", - "safeName": "map" - }, - "snakeCase": { - "unsafeName": "map", - "safeName": "map" - }, - "screamingSnakeCase": { - "unsafeName": "MAP", - "safeName": "MAP" - }, - "pascalCase": { - "unsafeName": "Map", - "safeName": "Map" - } - }, - "wireValue": "map" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "map", - "map": [ - { - "key": { - "shape": { - "type": "primitive", - "primitive": { - "type": "integer", - "integer": 1 - } - }, - "jsonExample": 1 - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - } - ] - } - }, - "jsonExample": { - "1": "string" - } - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - } - ] - } - }, - "jsonExample": { - "string": "string", - "integer": 1, - "long": 1000000, - "double": 1.1, - "bool": true, - "datetime": "2024-01-15T09:30:00Z", - "date": "2023-01-15", - "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", - "base64": "SGVsbG8gd29ybGQh", - "list": [ - "string" - ], - "set": [ - "string" - ], - "map": { - "1": "string" - } - } - } - }, - "docs": null - }, - { - "exampleType": "generated", - "url": "/object", - "rootPathParameters": [], - "servicePathParameters": [], - "endpointPathParameters": [], - "serviceHeaders": [], - "endpointHeaders": [], - "queryParameters": [], - "request": { - "type": "inlinedRequestBody", - "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": "string" - } - } - }, - "jsonExample": "string" - }, - "originalTypeDeclaration": null - }, - { - "name": { - "name": { - "originalName": "integer", - "camelCase": { - "unsafeName": "integer", - "safeName": "integer" - }, - "snakeCase": { - "unsafeName": "integer", - "safeName": "integer" - }, - "screamingSnakeCase": { - "unsafeName": "INTEGER", - "safeName": "INTEGER" - }, - "pascalCase": { - "unsafeName": "Integer", - "safeName": "Integer" - } - }, - "wireValue": "integer" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "integer", - "integer": 1 - } - }, - "jsonExample": 1 - }, - "originalTypeDeclaration": null - }, - { - "name": { - "name": { - "originalName": "NestedObject", - "camelCase": { - "unsafeName": "nestedObject", - "safeName": "nestedObject" - }, - "snakeCase": { - "unsafeName": "nested_object", - "safeName": "nested_object" - }, - "screamingSnakeCase": { - "unsafeName": "NESTED_OBJECT", - "safeName": "NESTED_OBJECT" - }, - "pascalCase": { - "unsafeName": "NestedObject", - "safeName": "NestedObject" - } - }, - "wireValue": "NestedObject" - }, - "value": { - "shape": { - "type": "named", - "typeName": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - }, - "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": "string" - } - } - }, - "jsonExample": "string" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "integer", - "camelCase": { - "unsafeName": "integer", - "safeName": "integer" - }, - "snakeCase": { - "unsafeName": "integer", - "safeName": "integer" - }, - "screamingSnakeCase": { - "unsafeName": "INTEGER", - "safeName": "INTEGER" - }, - "pascalCase": { - "unsafeName": "Integer", - "safeName": "Integer" - } - }, - "wireValue": "integer" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "integer", - "integer": 1 - } - }, - "jsonExample": 1 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "long", - "camelCase": { - "unsafeName": "long", - "safeName": "long" - }, - "snakeCase": { - "unsafeName": "long", - "safeName": "long" - }, - "screamingSnakeCase": { - "unsafeName": "LONG", - "safeName": "LONG" - }, - "pascalCase": { - "unsafeName": "Long", - "safeName": "Long" - } - }, - "wireValue": "long" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "long", - "long": 1000000 - } - }, - "jsonExample": 1000000 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "double", - "camelCase": { - "unsafeName": "double", - "safeName": "double" - }, - "snakeCase": { - "unsafeName": "double", - "safeName": "double" - }, - "screamingSnakeCase": { - "unsafeName": "DOUBLE", - "safeName": "DOUBLE" - }, - "pascalCase": { - "unsafeName": "Double", - "safeName": "Double" - } - }, - "wireValue": "double" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "double", - "double": 1.1 - } - }, - "jsonExample": 1.1 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "bool", - "camelCase": { - "unsafeName": "bool", - "safeName": "bool" - }, - "snakeCase": { - "unsafeName": "bool", - "safeName": "bool" - }, - "screamingSnakeCase": { - "unsafeName": "BOOL", - "safeName": "BOOL" - }, - "pascalCase": { - "unsafeName": "Bool", - "safeName": "Bool" - } - }, - "wireValue": "bool" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "boolean", - "boolean": true - } - }, - "jsonExample": true - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "datetime", - "camelCase": { - "unsafeName": "datetime", - "safeName": "datetime" - }, - "snakeCase": { - "unsafeName": "datetime", - "safeName": "datetime" - }, - "screamingSnakeCase": { - "unsafeName": "DATETIME", - "safeName": "DATETIME" - }, - "pascalCase": { - "unsafeName": "Datetime", - "safeName": "Datetime" - } - }, - "wireValue": "datetime" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "datetime", - "datetime": "2024-01-15T09:30:00.000Z" - } - }, - "jsonExample": "2024-01-15T09:30:00Z" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "date", - "camelCase": { - "unsafeName": "date", - "safeName": "date" - }, - "snakeCase": { - "unsafeName": "date", - "safeName": "date" - }, - "screamingSnakeCase": { - "unsafeName": "DATE", - "safeName": "DATE" - }, - "pascalCase": { - "unsafeName": "Date", - "safeName": "Date_" - } - }, - "wireValue": "date" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "date", - "date": "2023-01-15" - } - }, - "jsonExample": "2023-01-15" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "uuid", - "camelCase": { - "unsafeName": "uuid", - "safeName": "uuid" - }, - "snakeCase": { - "unsafeName": "uuid", - "safeName": "uuid" - }, - "screamingSnakeCase": { - "unsafeName": "UUID", - "safeName": "UUID" - }, - "pascalCase": { - "unsafeName": "Uuid", - "safeName": "Uuid" - } - }, - "wireValue": "uuid" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "uuid", - "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32" - } - }, - "jsonExample": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "base64", - "camelCase": { - "unsafeName": "base64", - "safeName": "base64" - }, - "snakeCase": { - "unsafeName": "base_64", - "safeName": "base_64" - }, - "screamingSnakeCase": { - "unsafeName": "BASE_64", - "safeName": "BASE_64" - }, - "pascalCase": { - "unsafeName": "Base64", - "safeName": "Base64" - } - }, - "wireValue": "base64" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "SGVsbG8gd29ybGQh" - } - } - }, - "jsonExample": "SGVsbG8gd29ybGQh" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "list", - "camelCase": { - "unsafeName": "list", - "safeName": "list" - }, - "snakeCase": { - "unsafeName": "list", - "safeName": "list" - }, - "screamingSnakeCase": { - "unsafeName": "LIST", - "safeName": "LIST" - }, - "pascalCase": { - "unsafeName": "List", - "safeName": "List" - } - }, - "wireValue": "list" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "list", - "list": [ - { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - ] - } - }, - "jsonExample": [ - "string" - ] - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "set", - "camelCase": { - "unsafeName": "set", - "safeName": "set_" - }, - "snakeCase": { - "unsafeName": "set", - "safeName": "set_" - }, - "screamingSnakeCase": { - "unsafeName": "SET", - "safeName": "SET" - }, - "pascalCase": { - "unsafeName": "Set", - "safeName": "Set" - } - }, - "wireValue": "set" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "set", - "set": [ - { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - ] - } - }, - "jsonExample": [ - "string" - ] - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "map", - "camelCase": { - "unsafeName": "map", - "safeName": "map" - }, - "snakeCase": { - "unsafeName": "map", - "safeName": "map" - }, - "screamingSnakeCase": { - "unsafeName": "MAP", - "safeName": "MAP" - }, - "pascalCase": { - "unsafeName": "Map", - "safeName": "Map" - } - }, - "wireValue": "map" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "map", - "map": [ - { - "key": { - "shape": { - "type": "primitive", - "primitive": { - "type": "integer", - "integer": 1 - } - }, - "jsonExample": 1 - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - } - ] - } - }, - "jsonExample": { - "1": "string" - } - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - } - ] - } - }, - "jsonExample": { - "string": "string", - "integer": 1, - "long": 1000000, - "double": 1.1, - "bool": true, - "datetime": "2024-01-15T09:30:00Z", - "date": "2023-01-15", - "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", - "base64": "SGVsbG8gd29ybGQh", - "list": [ - "string" - ], - "set": [ - "string" - ], - "map": { - "1": "string" - } - } - }, - "originalTypeDeclaration": null - } - ], - "jsonExample": { - "string": "string", - "integer": 1, - "NestedObject": { - "string": "string", - "integer": 1, - "long": 1000000, - "double": 1.1, - "bool": true, - "datetime": "2024-01-15T09:30:00Z", - "date": "2023-01-15", - "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", - "base64": "SGVsbG8gd29ybGQh", - "list": [ - "string" - ], - "set": [ - "string" - ], - "map": { - "1": "string" - } - } - } - }, - "name": null, - "codeSamples": null, - "response": { - "type": "error", - "error": { - "name": { - "originalName": "BadRequestBody", - "camelCase": { - "unsafeName": "badRequestBody", - "safeName": "badRequestBody" - }, - "snakeCase": { - "unsafeName": "bad_request_body", - "safeName": "bad_request_body" - }, - "screamingSnakeCase": { - "unsafeName": "BAD_REQUEST_BODY", - "safeName": "BAD_REQUEST_BODY" - }, - "pascalCase": { - "unsafeName": "BadRequestBody", - "safeName": "BadRequestBody" - } - }, - "fernFilepath": { - "allParts": [ - { - "originalName": "general-errors", - "camelCase": { - "unsafeName": "generalErrors", - "safeName": "generalErrors" - }, - "snakeCase": { - "unsafeName": "general_errors", - "safeName": "general_errors" - }, - "screamingSnakeCase": { - "unsafeName": "GENERAL_ERRORS", - "safeName": "GENERAL_ERRORS" - }, - "pascalCase": { - "unsafeName": "GeneralErrors", - "safeName": "GeneralErrors" - } - } - ], - "packagePath": [], - "file": { - "originalName": "general-errors", - "camelCase": { - "unsafeName": "generalErrors", - "safeName": "generalErrors" - }, - "snakeCase": { - "unsafeName": "general_errors", - "safeName": "general_errors" - }, - "screamingSnakeCase": { - "unsafeName": "GENERAL_ERRORS", - "safeName": "GENERAL_ERRORS" - }, - "pascalCase": { - "unsafeName": "GeneralErrors", - "safeName": "GeneralErrors" - } - } - }, - "errorId": "error_general-errors:BadRequestBody" - }, - "body": null - }, - "docs": null - } - ], - "pagination": null, - "availability": null, - "docs": "POST with custom object in request body, response is an object" - } - ] - }, - "service_no-auth": { - "availability": null, - "name": { - "fernFilepath": { - "allParts": [ - { - "originalName": "no-auth", - "camelCase": { - "unsafeName": "noAuth", - "safeName": "noAuth" - }, - "snakeCase": { - "unsafeName": "no_auth", - "safeName": "no_auth" - }, - "screamingSnakeCase": { - "unsafeName": "NO_AUTH", - "safeName": "NO_AUTH" - }, - "pascalCase": { - "unsafeName": "NoAuth", - "safeName": "NoAuth" - } - } - ], - "packagePath": [], - "file": { - "originalName": "no-auth", - "camelCase": { - "unsafeName": "noAuth", - "safeName": "noAuth" - }, - "snakeCase": { - "unsafeName": "no_auth", - "safeName": "no_auth" - }, - "screamingSnakeCase": { - "unsafeName": "NO_AUTH", - "safeName": "NO_AUTH" - }, - "pascalCase": { - "unsafeName": "NoAuth", - "safeName": "NoAuth" - } - } - } - }, - "displayName": null, - "basePath": { - "head": "/no-auth", - "parts": [] - }, - "headers": [], - "pathParameters": [], - "endpoints": [ - { - "id": "endpoint_no-auth.postWithNoAuth", - "name": { - "originalName": "postWithNoAuth", - "camelCase": { - "unsafeName": "postWithNoAuth", - "safeName": "postWithNoAuth" - }, - "snakeCase": { - "unsafeName": "post_with_no_auth", - "safeName": "post_with_no_auth" - }, - "screamingSnakeCase": { - "unsafeName": "POST_WITH_NO_AUTH", - "safeName": "POST_WITH_NO_AUTH" - }, - "pascalCase": { - "unsafeName": "PostWithNoAuth", - "safeName": "PostWithNoAuth" - } - }, - "displayName": null, - "auth": false, - "idempotent": false, - "baseUrl": null, - "method": "POST", - "path": { - "head": "", - "parts": [] - }, - "fullPath": { - "head": "/no-auth", - "parts": [] - }, - "pathParameters": [], - "allPathParameters": [], - "queryParameters": [], - "headers": [], - "requestBody": { - "type": "reference", - "requestBodyType": { - "_type": "unknown" - }, - "contentType": null, - "docs": null - }, - "sdkRequest": { - "shape": { - "type": "justRequestBody", - "value": { - "type": "typeReference", - "requestBodyType": { - "_type": "unknown" - }, - "contentType": null, - "docs": null - } - }, - "requestParameterName": { - "originalName": "request", - "camelCase": { - "unsafeName": "request", - "safeName": "request" - }, - "snakeCase": { - "unsafeName": "request", - "safeName": "request" - }, - "screamingSnakeCase": { - "unsafeName": "REQUEST", - "safeName": "REQUEST" - }, - "pascalCase": { - "unsafeName": "Request", - "safeName": "Request" - } - } - }, - "response": { - "body": { - "type": "json", - "value": { - "type": "response", - "responseBodyType": { - "_type": "primitive", - "primitive": "BOOLEAN" - }, - "docs": null - } - }, - "status-code": null - }, - "errors": [ - { - "error": { - "name": { - "originalName": "BadRequestBody", - "camelCase": { - "unsafeName": "badRequestBody", - "safeName": "badRequestBody" - }, - "snakeCase": { - "unsafeName": "bad_request_body", - "safeName": "bad_request_body" - }, - "screamingSnakeCase": { - "unsafeName": "BAD_REQUEST_BODY", - "safeName": "BAD_REQUEST_BODY" - }, - "pascalCase": { - "unsafeName": "BadRequestBody", - "safeName": "BadRequestBody" - } - }, - "fernFilepath": { - "allParts": [ - { - "originalName": "general-errors", - "camelCase": { - "unsafeName": "generalErrors", - "safeName": "generalErrors" - }, - "snakeCase": { - "unsafeName": "general_errors", - "safeName": "general_errors" - }, - "screamingSnakeCase": { - "unsafeName": "GENERAL_ERRORS", - "safeName": "GENERAL_ERRORS" - }, - "pascalCase": { - "unsafeName": "GeneralErrors", - "safeName": "GeneralErrors" - } - } - ], - "packagePath": [], - "file": { - "originalName": "general-errors", - "camelCase": { - "unsafeName": "generalErrors", - "safeName": "generalErrors" - }, - "snakeCase": { - "unsafeName": "general_errors", - "safeName": "general_errors" - }, - "screamingSnakeCase": { - "unsafeName": "GENERAL_ERRORS", - "safeName": "GENERAL_ERRORS" - }, - "pascalCase": { - "unsafeName": "GeneralErrors", - "safeName": "GeneralErrors" - } - } - }, - "errorId": "error_general-errors:BadRequestBody" - }, - "docs": null - } - ], - "examples": [ - { - "exampleType": "generated", - "url": "", - "rootPathParameters": [], - "servicePathParameters": [], - "endpointPathParameters": [], - "serviceHeaders": [], - "endpointHeaders": [], - "queryParameters": [], - "request": { - "type": "reference", - "shape": { - "type": "unknown", - "unknown": { - "key": "value" - } - }, - "jsonExample": { - "key": "value" - } - }, - "name": null, - "codeSamples": null, - "response": { - "type": "ok", - "body": { - "shape": { - "type": "primitive", - "primitive": { - "type": "boolean", - "boolean": true - } - }, - "jsonExample": true - } - }, - "docs": null - }, - { - "exampleType": "generated", - "url": "", - "rootPathParameters": [], - "servicePathParameters": [], - "endpointPathParameters": [], - "serviceHeaders": [], - "endpointHeaders": [], - "queryParameters": [], - "request": { - "type": "reference", - "shape": { - "type": "unknown", - "unknown": { - "key": "value" - } - }, - "jsonExample": { - "key": "value" - } - }, - "name": null, - "codeSamples": null, - "response": { - "type": "error", - "error": { - "name": { - "originalName": "BadRequestBody", - "camelCase": { - "unsafeName": "badRequestBody", - "safeName": "badRequestBody" - }, - "snakeCase": { - "unsafeName": "bad_request_body", - "safeName": "bad_request_body" - }, - "screamingSnakeCase": { - "unsafeName": "BAD_REQUEST_BODY", - "safeName": "BAD_REQUEST_BODY" - }, - "pascalCase": { - "unsafeName": "BadRequestBody", - "safeName": "BadRequestBody" - } - }, - "fernFilepath": { - "allParts": [ - { - "originalName": "general-errors", - "camelCase": { - "unsafeName": "generalErrors", - "safeName": "generalErrors" - }, - "snakeCase": { - "unsafeName": "general_errors", - "safeName": "general_errors" - }, - "screamingSnakeCase": { - "unsafeName": "GENERAL_ERRORS", - "safeName": "GENERAL_ERRORS" - }, - "pascalCase": { - "unsafeName": "GeneralErrors", - "safeName": "GeneralErrors" - } - } - ], - "packagePath": [], - "file": { - "originalName": "general-errors", - "camelCase": { - "unsafeName": "generalErrors", - "safeName": "generalErrors" - }, - "snakeCase": { - "unsafeName": "general_errors", - "safeName": "general_errors" - }, - "screamingSnakeCase": { - "unsafeName": "GENERAL_ERRORS", - "safeName": "GENERAL_ERRORS" - }, - "pascalCase": { - "unsafeName": "GeneralErrors", - "safeName": "GeneralErrors" - } - } - }, - "errorId": "error_general-errors:BadRequestBody" - }, - "body": null - }, - "docs": null - } - ], - "pagination": null, - "availability": null, - "docs": "POST request with no auth" - } - ] - }, - "service_no-req-body": { - "availability": null, - "name": { - "fernFilepath": { - "allParts": [ - { - "originalName": "no-req-body", - "camelCase": { - "unsafeName": "noReqBody", - "safeName": "noReqBody" - }, - "snakeCase": { - "unsafeName": "no_req_body", - "safeName": "no_req_body" - }, - "screamingSnakeCase": { - "unsafeName": "NO_REQ_BODY", - "safeName": "NO_REQ_BODY" - }, - "pascalCase": { - "unsafeName": "NoReqBody", - "safeName": "NoReqBody" - } - } - ], - "packagePath": [], - "file": { - "originalName": "no-req-body", - "camelCase": { - "unsafeName": "noReqBody", - "safeName": "noReqBody" - }, - "snakeCase": { - "unsafeName": "no_req_body", - "safeName": "no_req_body" - }, - "screamingSnakeCase": { - "unsafeName": "NO_REQ_BODY", - "safeName": "NO_REQ_BODY" - }, - "pascalCase": { - "unsafeName": "NoReqBody", - "safeName": "NoReqBody" - } - } - } - }, - "displayName": null, - "basePath": { - "head": "/no-req-body", - "parts": [] - }, - "headers": [], - "pathParameters": [], - "endpoints": [ - { - "id": "endpoint_no-req-body.getWithNoRequestBody", - "name": { - "originalName": "getWithNoRequestBody", - "camelCase": { - "unsafeName": "getWithNoRequestBody", - "safeName": "getWithNoRequestBody" - }, - "snakeCase": { - "unsafeName": "get_with_no_request_body", - "safeName": "get_with_no_request_body" - }, - "screamingSnakeCase": { - "unsafeName": "GET_WITH_NO_REQUEST_BODY", - "safeName": "GET_WITH_NO_REQUEST_BODY" - }, - "pascalCase": { - "unsafeName": "GetWithNoRequestBody", - "safeName": "GetWithNoRequestBody" - } - }, - "displayName": null, - "auth": true, - "idempotent": false, - "baseUrl": null, - "method": "GET", - "path": { - "head": "", - "parts": [] - }, - "fullPath": { - "head": "/no-req-body", - "parts": [] - }, - "pathParameters": [], - "allPathParameters": [], - "queryParameters": [], - "headers": [], - "requestBody": null, - "sdkRequest": null, - "response": { - "body": { - "type": "json", - "value": { - "type": "response", - "responseBodyType": { - "_type": "named", - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - }, - "docs": null - } - }, - "status-code": null - }, - "errors": [], - "examples": [ - { - "exampleType": "generated", - "url": "", - "rootPathParameters": [], - "servicePathParameters": [], - "endpointPathParameters": [], - "serviceHeaders": [], - "endpointHeaders": [], - "queryParameters": [], - "request": null, - "name": null, - "codeSamples": null, - "response": { - "type": "ok", - "body": { - "shape": { - "type": "named", - "typeName": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - }, - "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": "string" - } - } - }, - "jsonExample": "string" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "integer", - "camelCase": { - "unsafeName": "integer", - "safeName": "integer" - }, - "snakeCase": { - "unsafeName": "integer", - "safeName": "integer" - }, - "screamingSnakeCase": { - "unsafeName": "INTEGER", - "safeName": "INTEGER" - }, - "pascalCase": { - "unsafeName": "Integer", - "safeName": "Integer" - } - }, - "wireValue": "integer" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "integer", - "integer": 1 - } - }, - "jsonExample": 1 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "long", - "camelCase": { - "unsafeName": "long", - "safeName": "long" - }, - "snakeCase": { - "unsafeName": "long", - "safeName": "long" - }, - "screamingSnakeCase": { - "unsafeName": "LONG", - "safeName": "LONG" - }, - "pascalCase": { - "unsafeName": "Long", - "safeName": "Long" - } - }, - "wireValue": "long" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "long", - "long": 1000000 - } - }, - "jsonExample": 1000000 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "double", - "camelCase": { - "unsafeName": "double", - "safeName": "double" - }, - "snakeCase": { - "unsafeName": "double", - "safeName": "double" - }, - "screamingSnakeCase": { - "unsafeName": "DOUBLE", - "safeName": "DOUBLE" - }, - "pascalCase": { - "unsafeName": "Double", - "safeName": "Double" - } - }, - "wireValue": "double" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "double", - "double": 1.1 - } - }, - "jsonExample": 1.1 - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "bool", - "camelCase": { - "unsafeName": "bool", - "safeName": "bool" - }, - "snakeCase": { - "unsafeName": "bool", - "safeName": "bool" - }, - "screamingSnakeCase": { - "unsafeName": "BOOL", - "safeName": "BOOL" - }, - "pascalCase": { - "unsafeName": "Bool", - "safeName": "Bool" - } - }, - "wireValue": "bool" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "boolean", - "boolean": true - } - }, - "jsonExample": true - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "datetime", - "camelCase": { - "unsafeName": "datetime", - "safeName": "datetime" - }, - "snakeCase": { - "unsafeName": "datetime", - "safeName": "datetime" - }, - "screamingSnakeCase": { - "unsafeName": "DATETIME", - "safeName": "DATETIME" - }, - "pascalCase": { - "unsafeName": "Datetime", - "safeName": "Datetime" - } - }, - "wireValue": "datetime" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "datetime", - "datetime": "2024-01-15T09:30:00.000Z" - } - }, - "jsonExample": "2024-01-15T09:30:00Z" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "date", - "camelCase": { - "unsafeName": "date", - "safeName": "date" - }, - "snakeCase": { - "unsafeName": "date", - "safeName": "date" - }, - "screamingSnakeCase": { - "unsafeName": "DATE", - "safeName": "DATE" - }, - "pascalCase": { - "unsafeName": "Date", - "safeName": "Date_" - } - }, - "wireValue": "date" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "date", - "date": "2023-01-15" - } - }, - "jsonExample": "2023-01-15" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "uuid", - "camelCase": { - "unsafeName": "uuid", - "safeName": "uuid" - }, - "snakeCase": { - "unsafeName": "uuid", - "safeName": "uuid" - }, - "screamingSnakeCase": { - "unsafeName": "UUID", - "safeName": "UUID" - }, - "pascalCase": { - "unsafeName": "Uuid", - "safeName": "Uuid" - } - }, - "wireValue": "uuid" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "uuid", - "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32" - } - }, - "jsonExample": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "base64", - "camelCase": { - "unsafeName": "base64", - "safeName": "base64" - }, - "snakeCase": { - "unsafeName": "base_64", - "safeName": "base_64" - }, - "screamingSnakeCase": { - "unsafeName": "BASE_64", - "safeName": "BASE_64" - }, - "pascalCase": { - "unsafeName": "Base64", - "safeName": "Base64" - } - }, - "wireValue": "base64" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "SGVsbG8gd29ybGQh" - } - } - }, - "jsonExample": "SGVsbG8gd29ybGQh" - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "list", - "camelCase": { - "unsafeName": "list", - "safeName": "list" - }, - "snakeCase": { - "unsafeName": "list", - "safeName": "list" - }, - "screamingSnakeCase": { - "unsafeName": "LIST", - "safeName": "LIST" - }, - "pascalCase": { - "unsafeName": "List", - "safeName": "List" - } - }, - "wireValue": "list" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "list", - "list": [ - { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - ] - } - }, - "jsonExample": [ - "string" - ] - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "set", - "camelCase": { - "unsafeName": "set", - "safeName": "set_" - }, - "snakeCase": { - "unsafeName": "set", - "safeName": "set_" - }, - "screamingSnakeCase": { - "unsafeName": "SET", - "safeName": "SET" - }, - "pascalCase": { - "unsafeName": "Set", - "safeName": "Set" - } - }, - "wireValue": "set" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "set", - "set": [ - { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - ] - } - }, - "jsonExample": [ - "string" - ] - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - }, - { - "name": { - "name": { - "originalName": "map", - "camelCase": { - "unsafeName": "map", - "safeName": "map" - }, - "snakeCase": { - "unsafeName": "map", - "safeName": "map" - }, - "screamingSnakeCase": { - "unsafeName": "MAP", - "safeName": "MAP" - }, - "pascalCase": { - "unsafeName": "Map", - "safeName": "Map" - } - }, - "wireValue": "map" - }, - "value": { - "shape": { - "type": "container", - "container": { - "type": "map", - "map": [ - { - "key": { - "shape": { - "type": "primitive", - "primitive": { - "type": "integer", - "integer": 1 - } - }, - "jsonExample": 1 - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - } - ] - } - }, - "jsonExample": { - "1": "string" - } - }, - "originalTypeDeclaration": { - "name": { - "originalName": "ObjectWithOptionalField", - "camelCase": { - "unsafeName": "objectWithOptionalField", - "safeName": "objectWithOptionalField" - }, - "snakeCase": { - "unsafeName": "object_with_optional_field", - "safeName": "object_with_optional_field" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT_WITH_OPTIONAL_FIELD", - "safeName": "OBJECT_WITH_OPTIONAL_FIELD" - }, - "pascalCase": { - "unsafeName": "ObjectWithOptionalField", - "safeName": "ObjectWithOptionalField" - } - }, - "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_" - } - } - }, - "typeId": "type_types/object:ObjectWithOptionalField" - } - } - ] - } - }, - "jsonExample": { - "string": "string", - "integer": 1, - "long": 1000000, - "double": 1.1, - "bool": true, - "datetime": "2024-01-15T09:30:00Z", - "date": "2023-01-15", - "uuid": "d5e9c84f-c2b2-4bf4-b4b0-7ffd7a9ffc32", - "base64": "SGVsbG8gd29ybGQh", - "list": [ - "string" - ], - "set": [ - "string" - ], - "map": { - "1": "string" - } - } - } - }, - "docs": null - } - ], - "pagination": null, - "availability": null, - "docs": null - }, - { - "id": "endpoint_no-req-body.postWithNoRequestBody", - "name": { - "originalName": "postWithNoRequestBody", - "camelCase": { - "unsafeName": "postWithNoRequestBody", - "safeName": "postWithNoRequestBody" - }, - "snakeCase": { - "unsafeName": "post_with_no_request_body", - "safeName": "post_with_no_request_body" - }, - "screamingSnakeCase": { - "unsafeName": "POST_WITH_NO_REQUEST_BODY", - "safeName": "POST_WITH_NO_REQUEST_BODY" - }, - "pascalCase": { - "unsafeName": "PostWithNoRequestBody", - "safeName": "PostWithNoRequestBody" - } - }, - "displayName": null, - "auth": true, - "idempotent": false, - "baseUrl": null, - "method": "POST", - "path": { - "head": "", - "parts": [] - }, - "fullPath": { - "head": "/no-req-body", - "parts": [] - }, - "pathParameters": [], - "allPathParameters": [], - "queryParameters": [], - "headers": [], - "requestBody": null, - "sdkRequest": null, - "response": { - "body": { - "type": "json", - "value": { - "type": "response", - "responseBodyType": { - "_type": "primitive", - "primitive": "STRING" - }, - "docs": null - } - }, - "status-code": null - }, - "errors": [], - "examples": [ - { - "exampleType": "generated", - "url": "", - "rootPathParameters": [], - "servicePathParameters": [], - "endpointPathParameters": [], - "serviceHeaders": [], - "endpointHeaders": [], - "queryParameters": [], - "request": null, - "name": null, - "codeSamples": null, - "response": { - "type": "ok", - "body": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - }, - "docs": null - } - ], - "pagination": null, - "availability": null, - "docs": null - } - ] - }, - "service_req-with-headers": { - "availability": null, - "name": { - "fernFilepath": { - "allParts": [ - { - "originalName": "req-with-headers", - "camelCase": { - "unsafeName": "reqWithHeaders", - "safeName": "reqWithHeaders" - }, - "snakeCase": { - "unsafeName": "req_with_headers", - "safeName": "req_with_headers" - }, - "screamingSnakeCase": { - "unsafeName": "REQ_WITH_HEADERS", - "safeName": "REQ_WITH_HEADERS" - }, - "pascalCase": { - "unsafeName": "ReqWithHeaders", - "safeName": "ReqWithHeaders" - } - } - ], - "packagePath": [], - "file": { - "originalName": "req-with-headers", - "camelCase": { - "unsafeName": "reqWithHeaders", - "safeName": "reqWithHeaders" - }, - "snakeCase": { - "unsafeName": "req_with_headers", - "safeName": "req_with_headers" - }, - "screamingSnakeCase": { - "unsafeName": "REQ_WITH_HEADERS", - "safeName": "REQ_WITH_HEADERS" - }, - "pascalCase": { - "unsafeName": "ReqWithHeaders", - "safeName": "ReqWithHeaders" - } - } - } - }, - "displayName": null, - "basePath": { - "head": "/test-headers", - "parts": [] - }, - "headers": [ - { - "name": { - "name": { - "originalName": "X-TEST-SERVICE-HEADER", - "camelCase": { - "unsafeName": "xTestServiceHeader", - "safeName": "xTestServiceHeader" - }, - "snakeCase": { - "unsafeName": "x_test_service_header", - "safeName": "x_test_service_header" - }, - "screamingSnakeCase": { - "unsafeName": "X_TEST_SERVICE_HEADER", - "safeName": "X_TEST_SERVICE_HEADER" - }, - "pascalCase": { - "unsafeName": "XTestServiceHeader", - "safeName": "XTestServiceHeader" - } - }, - "wireValue": "X-TEST-SERVICE-HEADER" - }, - "valueType": { - "_type": "primitive", - "primitive": "STRING" - }, - "env": null, - "availability": null, - "docs": null - } - ], - "pathParameters": [], - "endpoints": [ - { - "id": "endpoint_req-with-headers.getWithCustomHeader", - "name": { - "originalName": "getWithCustomHeader", - "camelCase": { - "unsafeName": "getWithCustomHeader", - "safeName": "getWithCustomHeader" - }, - "snakeCase": { - "unsafeName": "get_with_custom_header", - "safeName": "get_with_custom_header" - }, - "screamingSnakeCase": { - "unsafeName": "GET_WITH_CUSTOM_HEADER", - "safeName": "GET_WITH_CUSTOM_HEADER" - }, - "pascalCase": { - "unsafeName": "GetWithCustomHeader", - "safeName": "GetWithCustomHeader" - } - }, - "displayName": null, - "auth": true, - "idempotent": false, - "baseUrl": null, - "method": "POST", - "path": { - "head": "/custom-header", - "parts": [] - }, - "fullPath": { - "head": "/test-headers/custom-header", - "parts": [] - }, - "pathParameters": [], - "allPathParameters": [], - "queryParameters": [], - "headers": [ - { - "name": { - "name": { - "originalName": "X-TEST-ENDPOINT-HEADER", - "camelCase": { - "unsafeName": "xTestEndpointHeader", - "safeName": "xTestEndpointHeader" - }, - "snakeCase": { - "unsafeName": "x_test_endpoint_header", - "safeName": "x_test_endpoint_header" - }, - "screamingSnakeCase": { - "unsafeName": "X_TEST_ENDPOINT_HEADER", - "safeName": "X_TEST_ENDPOINT_HEADER" - }, - "pascalCase": { - "unsafeName": "XTestEndpointHeader", - "safeName": "XTestEndpointHeader" - } - }, - "wireValue": "X-TEST-ENDPOINT-HEADER" - }, - "valueType": { - "_type": "primitive", - "primitive": "STRING" - }, - "env": null, - "availability": null, - "docs": null - } - ], - "requestBody": { - "type": "reference", - "requestBodyType": { - "_type": "primitive", - "primitive": "STRING" - }, - "contentType": null, - "docs": null - }, - "sdkRequest": { - "shape": { - "type": "wrapper", - "wrapperName": { - "originalName": "ReqWithHeaders", - "camelCase": { - "unsafeName": "reqWithHeaders", - "safeName": "reqWithHeaders" - }, - "snakeCase": { - "unsafeName": "req_with_headers", - "safeName": "req_with_headers" - }, - "screamingSnakeCase": { - "unsafeName": "REQ_WITH_HEADERS", - "safeName": "REQ_WITH_HEADERS" - }, - "pascalCase": { - "unsafeName": "ReqWithHeaders", - "safeName": "ReqWithHeaders" - } - }, - "bodyKey": { - "originalName": "body", - "camelCase": { - "unsafeName": "body", - "safeName": "body" - }, - "snakeCase": { - "unsafeName": "body", - "safeName": "body" - }, - "screamingSnakeCase": { - "unsafeName": "BODY", - "safeName": "BODY" - }, - "pascalCase": { - "unsafeName": "Body", - "safeName": "Body" - } - } - }, - "requestParameterName": { - "originalName": "request", - "camelCase": { - "unsafeName": "request", - "safeName": "request" - }, - "snakeCase": { - "unsafeName": "request", - "safeName": "request" - }, - "screamingSnakeCase": { - "unsafeName": "REQUEST", - "safeName": "REQUEST" - }, - "pascalCase": { - "unsafeName": "Request", - "safeName": "Request" - } - } - }, - "response": { - "body": null, - "status-code": null - }, - "errors": [], - "examples": [ - { - "exampleType": "generated", - "url": "/custom-header", - "rootPathParameters": [], - "servicePathParameters": [], - "endpointPathParameters": [], - "serviceHeaders": [ - { - "name": { - "name": { - "originalName": "X-TEST-SERVICE-HEADER", - "camelCase": { - "unsafeName": "xTestServiceHeader", - "safeName": "xTestServiceHeader" - }, - "snakeCase": { - "unsafeName": "x_test_service_header", - "safeName": "x_test_service_header" - }, - "screamingSnakeCase": { - "unsafeName": "X_TEST_SERVICE_HEADER", - "safeName": "X_TEST_SERVICE_HEADER" - }, - "pascalCase": { - "unsafeName": "XTestServiceHeader", - "safeName": "XTestServiceHeader" - } - }, - "wireValue": "X-TEST-SERVICE-HEADER" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - } - ], - "endpointHeaders": [ - { - "name": { - "name": { - "originalName": "X-TEST-ENDPOINT-HEADER", - "camelCase": { - "unsafeName": "xTestEndpointHeader", - "safeName": "xTestEndpointHeader" - }, - "snakeCase": { - "unsafeName": "x_test_endpoint_header", - "safeName": "x_test_endpoint_header" - }, - "screamingSnakeCase": { - "unsafeName": "X_TEST_ENDPOINT_HEADER", - "safeName": "X_TEST_ENDPOINT_HEADER" - }, - "pascalCase": { - "unsafeName": "XTestEndpointHeader", - "safeName": "XTestEndpointHeader" - } - }, - "wireValue": "X-TEST-ENDPOINT-HEADER" - }, - "value": { - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - } - } - ], - "queryParameters": [], - "request": { - "type": "reference", - "shape": { - "type": "primitive", - "primitive": { - "type": "string", - "string": { - "original": "string" - } - } - }, - "jsonExample": "string" - }, - "name": null, - "codeSamples": null, - "response": { - "type": "ok", - "body": null - }, - "docs": null - } - ], - "pagination": null, - "availability": null, - "docs": null - } - ] - } - }, - "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_types/object:ObjectWithRequiredField", - "type_types/enum:WeatherReport", - "type_types/object:ObjectWithOptionalField", - "type_types/object:ObjectWithMapOfMap", - "type_types/object:NestedObjectWithOptionalField", - "type_types/object:NestedObjectWithRequiredField", - "type_types/union:Animal", - "type_general-errors:BadObjectRequestInfo", - "type_types/union:Dog", - "type_types/union:Cat" - ] - }, - "webhookGroups": {}, - "websocketChannels": {}, - "subpackages": { - "subpackage_endpoints": { - "name": { - "originalName": "endpoints", - "camelCase": { - "unsafeName": "endpoints", - "safeName": "endpoints" - }, - "snakeCase": { - "unsafeName": "endpoints", - "safeName": "endpoints" - }, - "screamingSnakeCase": { - "unsafeName": "ENDPOINTS", - "safeName": "ENDPOINTS" - }, - "pascalCase": { - "unsafeName": "Endpoints", - "safeName": "Endpoints" - } - }, - "fernFilepath": { - "allParts": [ - { - "originalName": "endpoints", - "camelCase": { - "unsafeName": "endpoints", - "safeName": "endpoints" - }, - "snakeCase": { - "unsafeName": "endpoints", - "safeName": "endpoints" - }, - "screamingSnakeCase": { - "unsafeName": "ENDPOINTS", - "safeName": "ENDPOINTS" - }, - "pascalCase": { - "unsafeName": "Endpoints", - "safeName": "Endpoints" - } - } - ], - "packagePath": [ - { - "originalName": "endpoints", - "camelCase": { - "unsafeName": "endpoints", - "safeName": "endpoints" - }, - "snakeCase": { - "unsafeName": "endpoints", - "safeName": "endpoints" - }, - "screamingSnakeCase": { - "unsafeName": "ENDPOINTS", - "safeName": "ENDPOINTS" - }, - "pascalCase": { - "unsafeName": "Endpoints", - "safeName": "Endpoints" - } - } - ], - "file": null - }, - "service": null, - "types": [], - "errors": [], - "subpackages": [ - "subpackage_endpoints/container", - "subpackage_endpoints/enum", - "subpackage_endpoints/http-methods", - "subpackage_endpoints/object", - "subpackage_endpoints/params", - "subpackage_endpoints/primitive", - "subpackage_endpoints/union" - ], - "navigationConfig": null, - "webhooks": null, - "websocket": null, - "hasEndpointsInTree": true, - "docs": null - }, - "subpackage_endpoints/container": { - "name": { - "originalName": "container", - "camelCase": { - "unsafeName": "container", - "safeName": "container" - }, - "snakeCase": { - "unsafeName": "container", - "safeName": "container" - }, - "screamingSnakeCase": { - "unsafeName": "CONTAINER", - "safeName": "CONTAINER" - }, - "pascalCase": { - "unsafeName": "Container", - "safeName": "Container" - } - }, - "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": "container", - "camelCase": { - "unsafeName": "container", - "safeName": "container" - }, - "snakeCase": { - "unsafeName": "container", - "safeName": "container" - }, - "screamingSnakeCase": { - "unsafeName": "CONTAINER", - "safeName": "CONTAINER" - }, - "pascalCase": { - "unsafeName": "Container", - "safeName": "Container" - } - } - ], - "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": "container", - "camelCase": { - "unsafeName": "container", - "safeName": "container" - }, - "snakeCase": { - "unsafeName": "container", - "safeName": "container" - }, - "screamingSnakeCase": { - "unsafeName": "CONTAINER", - "safeName": "CONTAINER" - }, - "pascalCase": { - "unsafeName": "Container", - "safeName": "Container" - } - } - }, - "service": "service_endpoints/container", - "types": [], - "errors": [], - "subpackages": [], - "navigationConfig": null, - "webhooks": null, - "websocket": null, - "hasEndpointsInTree": true, - "docs": null - }, - "subpackage_endpoints/enum": { - "name": { - "originalName": "enum", - "camelCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "snakeCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "screamingSnakeCase": { - "unsafeName": "ENUM", - "safeName": "ENUM" - }, - "pascalCase": { - "unsafeName": "Enum", - "safeName": "Enum" - } - }, - "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": "enum", - "camelCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "snakeCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "screamingSnakeCase": { - "unsafeName": "ENUM", - "safeName": "ENUM" - }, - "pascalCase": { - "unsafeName": "Enum", - "safeName": "Enum" - } - } - ], - "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": "enum", - "camelCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "snakeCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "screamingSnakeCase": { - "unsafeName": "ENUM", - "safeName": "ENUM" - }, - "pascalCase": { - "unsafeName": "Enum", - "safeName": "Enum" - } - } - }, - "service": "service_endpoints/enum", - "types": [], - "errors": [], - "subpackages": [], - "navigationConfig": null, - "webhooks": null, - "websocket": null, - "hasEndpointsInTree": true, - "docs": null - }, - "subpackage_endpoints/http-methods": { - "name": { - "originalName": "http-methods", - "camelCase": { - "unsafeName": "httpMethods", - "safeName": "httpMethods" - }, - "snakeCase": { - "unsafeName": "http_methods", - "safeName": "http_methods" - }, - "screamingSnakeCase": { - "unsafeName": "HTTP_METHODS", - "safeName": "HTTP_METHODS" - }, - "pascalCase": { - "unsafeName": "HttpMethods", - "safeName": "HttpMethods" - } - }, - "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": "http-methods", - "camelCase": { - "unsafeName": "httpMethods", - "safeName": "httpMethods" - }, - "snakeCase": { - "unsafeName": "http_methods", - "safeName": "http_methods" - }, - "screamingSnakeCase": { - "unsafeName": "HTTP_METHODS", - "safeName": "HTTP_METHODS" - }, - "pascalCase": { - "unsafeName": "HttpMethods", - "safeName": "HttpMethods" - } - } - ], - "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": "http-methods", - "camelCase": { - "unsafeName": "httpMethods", - "safeName": "httpMethods" - }, - "snakeCase": { - "unsafeName": "http_methods", - "safeName": "http_methods" - }, - "screamingSnakeCase": { - "unsafeName": "HTTP_METHODS", - "safeName": "HTTP_METHODS" - }, - "pascalCase": { - "unsafeName": "HttpMethods", - "safeName": "HttpMethods" - } - } - }, - "service": "service_endpoints/http-methods", - "types": [], - "errors": [], - "subpackages": [], - "navigationConfig": null, - "webhooks": null, - "websocket": null, - "hasEndpointsInTree": true, - "docs": null - }, - "subpackage_endpoints/object": { - "name": { - "originalName": "object", - "camelCase": { - "unsafeName": "object", - "safeName": "object" - }, - "snakeCase": { - "unsafeName": "object", - "safeName": "object" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT", - "safeName": "OBJECT" - }, - "pascalCase": { - "unsafeName": "Object", - "safeName": "Object_" - } - }, - "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": "object", - "camelCase": { - "unsafeName": "object", - "safeName": "object" - }, - "snakeCase": { - "unsafeName": "object", - "safeName": "object" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT", - "safeName": "OBJECT" - }, - "pascalCase": { - "unsafeName": "Object", - "safeName": "Object_" - } - } - ], - "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": "object", - "camelCase": { - "unsafeName": "object", - "safeName": "object" - }, - "snakeCase": { - "unsafeName": "object", - "safeName": "object" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT", - "safeName": "OBJECT" - }, - "pascalCase": { - "unsafeName": "Object", - "safeName": "Object_" - } - } - }, - "service": "service_endpoints/object", - "types": [], - "errors": [], - "subpackages": [], - "navigationConfig": null, - "webhooks": null, - "websocket": null, - "hasEndpointsInTree": true, - "docs": null - }, - "subpackage_endpoints/params": { - "name": { - "originalName": "params", - "camelCase": { - "unsafeName": "params", - "safeName": "params" - }, - "snakeCase": { - "unsafeName": "params", - "safeName": "params" - }, - "screamingSnakeCase": { - "unsafeName": "PARAMS", - "safeName": "PARAMS" - }, - "pascalCase": { - "unsafeName": "Params", - "safeName": "Params" - } - }, - "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" - } - } - }, - "service": "service_endpoints/params", - "types": [], - "errors": [], - "subpackages": [], - "navigationConfig": null, - "webhooks": null, - "websocket": null, - "hasEndpointsInTree": true, - "docs": null - }, - "subpackage_endpoints/primitive": { - "name": { - "originalName": "primitive", - "camelCase": { - "unsafeName": "primitive", - "safeName": "primitive" - }, - "snakeCase": { - "unsafeName": "primitive", - "safeName": "primitive" - }, - "screamingSnakeCase": { - "unsafeName": "PRIMITIVE", - "safeName": "PRIMITIVE" - }, - "pascalCase": { - "unsafeName": "Primitive", - "safeName": "Primitive" - } - }, - "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": "primitive", - "camelCase": { - "unsafeName": "primitive", - "safeName": "primitive" - }, - "snakeCase": { - "unsafeName": "primitive", - "safeName": "primitive" - }, - "screamingSnakeCase": { - "unsafeName": "PRIMITIVE", - "safeName": "PRIMITIVE" - }, - "pascalCase": { - "unsafeName": "Primitive", - "safeName": "Primitive" - } - } - ], - "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": "primitive", - "camelCase": { - "unsafeName": "primitive", - "safeName": "primitive" - }, - "snakeCase": { - "unsafeName": "primitive", - "safeName": "primitive" - }, - "screamingSnakeCase": { - "unsafeName": "PRIMITIVE", - "safeName": "PRIMITIVE" - }, - "pascalCase": { - "unsafeName": "Primitive", - "safeName": "Primitive" - } - } - }, - "service": "service_endpoints/primitive", - "types": [], - "errors": [], - "subpackages": [], - "navigationConfig": null, - "webhooks": null, - "websocket": null, - "hasEndpointsInTree": true, - "docs": null - }, - "subpackage_endpoints/union": { - "name": { - "originalName": "union", - "camelCase": { - "unsafeName": "union", - "safeName": "union" - }, - "snakeCase": { - "unsafeName": "union", - "safeName": "union" - }, - "screamingSnakeCase": { - "unsafeName": "UNION", - "safeName": "UNION" - }, - "pascalCase": { - "unsafeName": "Union", - "safeName": "Union" - } - }, - "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": "union", - "camelCase": { - "unsafeName": "union", - "safeName": "union" - }, - "snakeCase": { - "unsafeName": "union", - "safeName": "union" - }, - "screamingSnakeCase": { - "unsafeName": "UNION", - "safeName": "UNION" - }, - "pascalCase": { - "unsafeName": "Union", - "safeName": "Union" - } - } - ], - "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": "union", - "camelCase": { - "unsafeName": "union", - "safeName": "union" - }, - "snakeCase": { - "unsafeName": "union", - "safeName": "union" - }, - "screamingSnakeCase": { - "unsafeName": "UNION", - "safeName": "UNION" - }, - "pascalCase": { - "unsafeName": "Union", - "safeName": "Union" - } - } - }, - "service": "service_endpoints/union", - "types": [], - "errors": [], - "subpackages": [], - "navigationConfig": null, - "webhooks": null, - "websocket": null, - "hasEndpointsInTree": true, - "docs": null - }, - "subpackage_general-errors": { - "name": { - "originalName": "general-errors", - "camelCase": { - "unsafeName": "generalErrors", - "safeName": "generalErrors" - }, - "snakeCase": { - "unsafeName": "general_errors", - "safeName": "general_errors" - }, - "screamingSnakeCase": { - "unsafeName": "GENERAL_ERRORS", - "safeName": "GENERAL_ERRORS" - }, - "pascalCase": { - "unsafeName": "GeneralErrors", - "safeName": "GeneralErrors" - } - }, - "fernFilepath": { - "allParts": [ - { - "originalName": "general-errors", - "camelCase": { - "unsafeName": "generalErrors", - "safeName": "generalErrors" - }, - "snakeCase": { - "unsafeName": "general_errors", - "safeName": "general_errors" - }, - "screamingSnakeCase": { - "unsafeName": "GENERAL_ERRORS", - "safeName": "GENERAL_ERRORS" - }, - "pascalCase": { - "unsafeName": "GeneralErrors", - "safeName": "GeneralErrors" - } - } - ], - "packagePath": [], - "file": { - "originalName": "general-errors", - "camelCase": { - "unsafeName": "generalErrors", - "safeName": "generalErrors" - }, - "snakeCase": { - "unsafeName": "general_errors", - "safeName": "general_errors" - }, - "screamingSnakeCase": { - "unsafeName": "GENERAL_ERRORS", - "safeName": "GENERAL_ERRORS" - }, - "pascalCase": { - "unsafeName": "GeneralErrors", - "safeName": "GeneralErrors" - } - } - }, - "service": null, - "types": [ - "type_general-errors:BadObjectRequestInfo" - ], - "errors": [ - "error_general-errors:BadRequestBody" - ], - "subpackages": [], - "navigationConfig": null, - "webhooks": null, - "websocket": null, - "hasEndpointsInTree": false, - "docs": null - }, - "subpackage_inlined-requests": { - "name": { - "originalName": "inlined-requests", - "camelCase": { - "unsafeName": "inlinedRequests", - "safeName": "inlinedRequests" - }, - "snakeCase": { - "unsafeName": "inlined_requests", - "safeName": "inlined_requests" - }, - "screamingSnakeCase": { - "unsafeName": "INLINED_REQUESTS", - "safeName": "INLINED_REQUESTS" - }, - "pascalCase": { - "unsafeName": "InlinedRequests", - "safeName": "InlinedRequests" - } - }, - "fernFilepath": { - "allParts": [ - { - "originalName": "inlined-requests", - "camelCase": { - "unsafeName": "inlinedRequests", - "safeName": "inlinedRequests" - }, - "snakeCase": { - "unsafeName": "inlined_requests", - "safeName": "inlined_requests" - }, - "screamingSnakeCase": { - "unsafeName": "INLINED_REQUESTS", - "safeName": "INLINED_REQUESTS" - }, - "pascalCase": { - "unsafeName": "InlinedRequests", - "safeName": "InlinedRequests" - } - } - ], - "packagePath": [], - "file": { - "originalName": "inlined-requests", - "camelCase": { - "unsafeName": "inlinedRequests", - "safeName": "inlinedRequests" - }, - "snakeCase": { - "unsafeName": "inlined_requests", - "safeName": "inlined_requests" - }, - "screamingSnakeCase": { - "unsafeName": "INLINED_REQUESTS", - "safeName": "INLINED_REQUESTS" - }, - "pascalCase": { - "unsafeName": "InlinedRequests", - "safeName": "InlinedRequests" - } - } - }, - "service": "service_inlined-requests", - "types": [], - "errors": [], - "subpackages": [], - "navigationConfig": null, - "webhooks": null, - "websocket": null, - "hasEndpointsInTree": true, - "docs": null - }, - "subpackage_no-auth": { - "name": { - "originalName": "no-auth", - "camelCase": { - "unsafeName": "noAuth", - "safeName": "noAuth" - }, - "snakeCase": { - "unsafeName": "no_auth", - "safeName": "no_auth" - }, - "screamingSnakeCase": { - "unsafeName": "NO_AUTH", - "safeName": "NO_AUTH" - }, - "pascalCase": { - "unsafeName": "NoAuth", - "safeName": "NoAuth" - } - }, - "fernFilepath": { - "allParts": [ - { - "originalName": "no-auth", - "camelCase": { - "unsafeName": "noAuth", - "safeName": "noAuth" - }, - "snakeCase": { - "unsafeName": "no_auth", - "safeName": "no_auth" - }, - "screamingSnakeCase": { - "unsafeName": "NO_AUTH", - "safeName": "NO_AUTH" - }, - "pascalCase": { - "unsafeName": "NoAuth", - "safeName": "NoAuth" - } - } - ], - "packagePath": [], - "file": { - "originalName": "no-auth", - "camelCase": { - "unsafeName": "noAuth", - "safeName": "noAuth" - }, - "snakeCase": { - "unsafeName": "no_auth", - "safeName": "no_auth" - }, - "screamingSnakeCase": { - "unsafeName": "NO_AUTH", - "safeName": "NO_AUTH" - }, - "pascalCase": { - "unsafeName": "NoAuth", - "safeName": "NoAuth" - } - } - }, - "service": "service_no-auth", - "types": [], - "errors": [], - "subpackages": [], - "navigationConfig": null, - "webhooks": null, - "websocket": null, - "hasEndpointsInTree": true, - "docs": null - }, - "subpackage_no-req-body": { - "name": { - "originalName": "no-req-body", - "camelCase": { - "unsafeName": "noReqBody", - "safeName": "noReqBody" - }, - "snakeCase": { - "unsafeName": "no_req_body", - "safeName": "no_req_body" - }, - "screamingSnakeCase": { - "unsafeName": "NO_REQ_BODY", - "safeName": "NO_REQ_BODY" - }, - "pascalCase": { - "unsafeName": "NoReqBody", - "safeName": "NoReqBody" - } - }, - "fernFilepath": { - "allParts": [ - { - "originalName": "no-req-body", - "camelCase": { - "unsafeName": "noReqBody", - "safeName": "noReqBody" - }, - "snakeCase": { - "unsafeName": "no_req_body", - "safeName": "no_req_body" - }, - "screamingSnakeCase": { - "unsafeName": "NO_REQ_BODY", - "safeName": "NO_REQ_BODY" - }, - "pascalCase": { - "unsafeName": "NoReqBody", - "safeName": "NoReqBody" - } - } - ], - "packagePath": [], - "file": { - "originalName": "no-req-body", - "camelCase": { - "unsafeName": "noReqBody", - "safeName": "noReqBody" - }, - "snakeCase": { - "unsafeName": "no_req_body", - "safeName": "no_req_body" - }, - "screamingSnakeCase": { - "unsafeName": "NO_REQ_BODY", - "safeName": "NO_REQ_BODY" - }, - "pascalCase": { - "unsafeName": "NoReqBody", - "safeName": "NoReqBody" - } - } - }, - "service": "service_no-req-body", - "types": [], - "errors": [], - "subpackages": [], - "navigationConfig": null, - "webhooks": null, - "websocket": null, - "hasEndpointsInTree": true, - "docs": null - }, - "subpackage_req-with-headers": { - "name": { - "originalName": "req-with-headers", - "camelCase": { - "unsafeName": "reqWithHeaders", - "safeName": "reqWithHeaders" - }, - "snakeCase": { - "unsafeName": "req_with_headers", - "safeName": "req_with_headers" - }, - "screamingSnakeCase": { - "unsafeName": "REQ_WITH_HEADERS", - "safeName": "REQ_WITH_HEADERS" - }, - "pascalCase": { - "unsafeName": "ReqWithHeaders", - "safeName": "ReqWithHeaders" - } - }, - "fernFilepath": { - "allParts": [ - { - "originalName": "req-with-headers", - "camelCase": { - "unsafeName": "reqWithHeaders", - "safeName": "reqWithHeaders" - }, - "snakeCase": { - "unsafeName": "req_with_headers", - "safeName": "req_with_headers" - }, - "screamingSnakeCase": { - "unsafeName": "REQ_WITH_HEADERS", - "safeName": "REQ_WITH_HEADERS" - }, - "pascalCase": { - "unsafeName": "ReqWithHeaders", - "safeName": "ReqWithHeaders" - } - } - ], - "packagePath": [], - "file": { - "originalName": "req-with-headers", - "camelCase": { - "unsafeName": "reqWithHeaders", - "safeName": "reqWithHeaders" - }, - "snakeCase": { - "unsafeName": "req_with_headers", - "safeName": "req_with_headers" - }, - "screamingSnakeCase": { - "unsafeName": "REQ_WITH_HEADERS", - "safeName": "REQ_WITH_HEADERS" - }, - "pascalCase": { - "unsafeName": "ReqWithHeaders", - "safeName": "ReqWithHeaders" - } - } - }, - "service": "service_req-with-headers", - "types": [], - "errors": [], - "subpackages": [], - "navigationConfig": null, - "webhooks": null, - "websocket": null, - "hasEndpointsInTree": true, - "docs": null - }, - "subpackage_types": { - "name": { - "originalName": "types", - "camelCase": { - "unsafeName": "types", - "safeName": "types" - }, - "snakeCase": { - "unsafeName": "types", - "safeName": "types" - }, - "screamingSnakeCase": { - "unsafeName": "TYPES", - "safeName": "TYPES" - }, - "pascalCase": { - "unsafeName": "Types", - "safeName": "Types" - } - }, - "fernFilepath": { - "allParts": [ - { - "originalName": "types", - "camelCase": { - "unsafeName": "types", - "safeName": "types" - }, - "snakeCase": { - "unsafeName": "types", - "safeName": "types" - }, - "screamingSnakeCase": { - "unsafeName": "TYPES", - "safeName": "TYPES" - }, - "pascalCase": { - "unsafeName": "Types", - "safeName": "Types" - } - } - ], - "packagePath": [ - { - "originalName": "types", - "camelCase": { - "unsafeName": "types", - "safeName": "types" - }, - "snakeCase": { - "unsafeName": "types", - "safeName": "types" - }, - "screamingSnakeCase": { - "unsafeName": "TYPES", - "safeName": "TYPES" - }, - "pascalCase": { - "unsafeName": "Types", - "safeName": "Types" - } - } - ], - "file": null - }, - "service": null, - "types": [], - "errors": [], - "subpackages": [ - "subpackage_types/enum", - "subpackage_types/object", - "subpackage_types/union" - ], - "navigationConfig": null, - "webhooks": null, - "websocket": null, - "hasEndpointsInTree": false, - "docs": null - }, - "subpackage_types/enum": { - "name": { - "originalName": "enum", - "camelCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "snakeCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "screamingSnakeCase": { - "unsafeName": "ENUM", - "safeName": "ENUM" - }, - "pascalCase": { - "unsafeName": "Enum", - "safeName": "Enum" - } - }, - "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": "enum", - "camelCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "snakeCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "screamingSnakeCase": { - "unsafeName": "ENUM", - "safeName": "ENUM" - }, - "pascalCase": { - "unsafeName": "Enum", - "safeName": "Enum" - } - } - ], - "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": "enum", - "camelCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "snakeCase": { - "unsafeName": "enum", - "safeName": "enum_" - }, - "screamingSnakeCase": { - "unsafeName": "ENUM", - "safeName": "ENUM" - }, - "pascalCase": { - "unsafeName": "Enum", - "safeName": "Enum" - } - } - }, - "service": null, - "types": [ - "type_types/enum:WeatherReport" - ], - "errors": [ - "error_types/enum:ErrorWithEnumBody" - ], - "subpackages": [], - "navigationConfig": null, - "webhooks": null, - "websocket": null, - "hasEndpointsInTree": false, - "docs": null - }, - "subpackage_types/object": { - "name": { - "originalName": "object", - "camelCase": { - "unsafeName": "object", - "safeName": "object" - }, - "snakeCase": { - "unsafeName": "object", - "safeName": "object" - }, - "screamingSnakeCase": { - "unsafeName": "OBJECT", - "safeName": "OBJECT" - }, - "pascalCase": { - "unsafeName": "Object", - "safeName": "Object_" - } - }, - "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_" - } - } - }, - "service": null, - "types": [ - "type_types/object:ObjectWithOptionalField", - "type_types/object:ObjectWithRequiredField", - "type_types/object:ObjectWithMapOfMap", - "type_types/object:NestedObjectWithOptionalField", - "type_types/object:NestedObjectWithRequiredField" - ], - "errors": [ - "error_types/object:ObjectWithOptionalFieldError", - "error_types/object:ObjectWithRequiredFieldError", - "error_types/object:NestedObjectWithOptionalFieldError", - "error_types/object:NestedObjectWithRequiredFieldError" - ], - "subpackages": [], - "navigationConfig": null, - "webhooks": null, - "websocket": null, - "hasEndpointsInTree": false, - "docs": null - }, - "subpackage_types/union": { - "name": { - "originalName": "union", - "camelCase": { - "unsafeName": "union", - "safeName": "union" - }, - "snakeCase": { - "unsafeName": "union", - "safeName": "union" - }, - "screamingSnakeCase": { - "unsafeName": "UNION", - "safeName": "UNION" - }, - "pascalCase": { - "unsafeName": "Union", - "safeName": "Union" - } - }, - "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": "union", - "camelCase": { - "unsafeName": "union", - "safeName": "union" - }, - "snakeCase": { - "unsafeName": "union", - "safeName": "union" - }, - "screamingSnakeCase": { - "unsafeName": "UNION", - "safeName": "UNION" - }, - "pascalCase": { - "unsafeName": "Union", - "safeName": "Union" - } - } - ], - "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": "union", - "camelCase": { - "unsafeName": "union", - "safeName": "union" - }, - "snakeCase": { - "unsafeName": "union", - "safeName": "union" - }, - "screamingSnakeCase": { - "unsafeName": "UNION", - "safeName": "UNION" - }, - "pascalCase": { - "unsafeName": "Union", - "safeName": "Union" - } - } - }, - "service": null, - "types": [ - "type_types/union:Animal", - "type_types/union:Dog", - "type_types/union:Cat" - ], - "errors": [ - "error_types/union:ErrorWithUnionBody" - ], - "subpackages": [], - "navigationConfig": null, - "webhooks": null, - "websocket": null, - "hasEndpointsInTree": false, - "docs": null - } - }, - "rootPackage": { - "fernFilepath": { - "allParts": [], - "packagePath": [], - "file": null - }, - "websocket": null, - "service": null, - "types": [], - "errors": [], - "subpackages": [ - "subpackage_endpoints", - "subpackage_general-errors", - "subpackage_inlined-requests", - "subpackage_no-auth", - "subpackage_no-req-body", - "subpackage_req-with-headers", - "subpackage_types" - ], - "webhooks": null, - "navigationConfig": null, - "hasEndpointsInTree": true, - "docs": null - }, - "sdkConfig": { - "isAuthMandatory": false, - "hasStreamingEndpoints": false, - "hasFileDownloadEndpoints": false, - "platformHeaders": { - "language": "X-Fern-Language", - "sdkName": "X-Fern-SDK-Name", - "sdkVersion": "X-Fern-SDK-Version" - } - } -} \ No newline at end of file diff --git a/seed/ts-sdk/exhaustive/bundle/src/Client.ts b/seed/ts-sdk/exhaustive/bundle/src/Client.ts index 7f03dd2a3e..f1a17ae8ab 100644 --- a/seed/ts-sdk/exhaustive/bundle/src/Client.ts +++ b/seed/ts-sdk/exhaustive/bundle/src/Client.ts @@ -18,6 +18,7 @@ export declare namespace FiddleClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/exhaustive/bundle/src/api/resources/endpoints/client/Client.ts b/seed/ts-sdk/exhaustive/bundle/src/api/resources/endpoints/client/Client.ts index 8cd8fabf7d..431e43e574 100644 --- a/seed/ts-sdk/exhaustive/bundle/src/api/resources/endpoints/client/Client.ts +++ b/seed/ts-sdk/exhaustive/bundle/src/api/resources/endpoints/client/Client.ts @@ -20,6 +20,7 @@ export declare namespace Endpoints { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/exhaustive/bundle/src/api/resources/endpoints/resources/container/client/Client.ts b/seed/ts-sdk/exhaustive/bundle/src/api/resources/endpoints/resources/container/client/Client.ts index 6ce538e3ca..b0003cb4d6 100644 --- a/seed/ts-sdk/exhaustive/bundle/src/api/resources/endpoints/resources/container/client/Client.ts +++ b/seed/ts-sdk/exhaustive/bundle/src/api/resources/endpoints/resources/container/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace Container { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -50,6 +51,7 @@ export class Container { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -107,6 +109,7 @@ export class Container { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -157,6 +160,7 @@ export class Container { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -214,6 +218,7 @@ export class Container { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -266,6 +271,7 @@ export class Container { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -325,6 +331,7 @@ export class Container { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -385,6 +392,7 @@ export class Container { : undefined, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { diff --git a/seed/ts-sdk/exhaustive/bundle/src/api/resources/endpoints/resources/enum/client/Client.ts b/seed/ts-sdk/exhaustive/bundle/src/api/resources/endpoints/resources/enum/client/Client.ts index 5568dedd43..fd92b60b0b 100644 --- a/seed/ts-sdk/exhaustive/bundle/src/api/resources/endpoints/resources/enum/client/Client.ts +++ b/seed/ts-sdk/exhaustive/bundle/src/api/resources/endpoints/resources/enum/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace Enum { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -48,6 +49,7 @@ export class Enum { body: await serializers.types.WeatherReport.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { diff --git a/seed/ts-sdk/exhaustive/bundle/src/api/resources/endpoints/resources/httpMethods/client/Client.ts b/seed/ts-sdk/exhaustive/bundle/src/api/resources/endpoints/resources/httpMethods/client/Client.ts index 903475db14..22582df2be 100644 --- a/seed/ts-sdk/exhaustive/bundle/src/api/resources/endpoints/resources/httpMethods/client/Client.ts +++ b/seed/ts-sdk/exhaustive/bundle/src/api/resources/endpoints/resources/httpMethods/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace HttpMethods { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -47,6 +48,7 @@ export class HttpMethods { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -96,6 +98,7 @@ export class HttpMethods { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -147,6 +150,7 @@ export class HttpMethods { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -211,6 +215,7 @@ export class HttpMethods { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -255,6 +260,7 @@ export class HttpMethods { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { diff --git a/seed/ts-sdk/exhaustive/bundle/src/api/resources/endpoints/resources/object/client/Client.ts b/seed/ts-sdk/exhaustive/bundle/src/api/resources/endpoints/resources/object/client/Client.ts index 2e3454ed3d..402de33f19 100644 --- a/seed/ts-sdk/exhaustive/bundle/src/api/resources/endpoints/resources/object/client/Client.ts +++ b/seed/ts-sdk/exhaustive/bundle/src/api/resources/endpoints/resources/object/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace Object_ { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -73,6 +74,7 @@ export class Object_ { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -130,6 +132,7 @@ export class Object_ { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -183,6 +186,7 @@ export class Object_ { body: await serializers.types.ObjectWithMapOfMap.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -256,6 +260,7 @@ export class Object_ { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -331,6 +336,7 @@ export class Object_ { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -405,6 +411,7 @@ export class Object_ { ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { diff --git a/seed/ts-sdk/exhaustive/bundle/src/api/resources/endpoints/resources/params/client/Client.ts b/seed/ts-sdk/exhaustive/bundle/src/api/resources/endpoints/resources/params/client/Client.ts index bd06abc25d..e719768e8e 100644 --- a/seed/ts-sdk/exhaustive/bundle/src/api/resources/endpoints/resources/params/client/Client.ts +++ b/seed/ts-sdk/exhaustive/bundle/src/api/resources/endpoints/resources/params/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace Params { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -52,6 +53,7 @@ export class Params { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -106,6 +108,7 @@ export class Params { queryParameters: _queryParams, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -165,6 +168,7 @@ export class Params { queryParameters: _queryParams, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -217,6 +221,7 @@ export class Params { queryParameters: _queryParams, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -266,6 +271,7 @@ export class Params { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { diff --git a/seed/ts-sdk/exhaustive/bundle/src/api/resources/endpoints/resources/primitive/client/Client.ts b/seed/ts-sdk/exhaustive/bundle/src/api/resources/endpoints/resources/primitive/client/Client.ts index 4390d0617a..f731d73feb 100644 --- a/seed/ts-sdk/exhaustive/bundle/src/api/resources/endpoints/resources/primitive/client/Client.ts +++ b/seed/ts-sdk/exhaustive/bundle/src/api/resources/endpoints/resources/primitive/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace Primitive { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -50,6 +51,7 @@ export class Primitive { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -97,6 +99,7 @@ export class Primitive { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -144,6 +147,7 @@ export class Primitive { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -191,6 +195,7 @@ export class Primitive { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -238,6 +243,7 @@ export class Primitive { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -285,6 +291,7 @@ export class Primitive { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -332,6 +339,7 @@ export class Primitive { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -379,6 +387,7 @@ export class Primitive { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -426,6 +435,7 @@ export class Primitive { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { diff --git a/seed/ts-sdk/exhaustive/bundle/src/api/resources/endpoints/resources/union/client/Client.ts b/seed/ts-sdk/exhaustive/bundle/src/api/resources/endpoints/resources/union/client/Client.ts index 4590cfab3e..8e7015241e 100644 --- a/seed/ts-sdk/exhaustive/bundle/src/api/resources/endpoints/resources/union/client/Client.ts +++ b/seed/ts-sdk/exhaustive/bundle/src/api/resources/endpoints/resources/union/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace Union { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -51,6 +52,7 @@ export class Union { body: await serializers.types.Animal.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { diff --git a/seed/ts-sdk/exhaustive/bundle/src/api/resources/inlinedRequests/client/Client.ts b/seed/ts-sdk/exhaustive/bundle/src/api/resources/inlinedRequests/client/Client.ts index d4039b1e5c..18e0ef6887 100644 --- a/seed/ts-sdk/exhaustive/bundle/src/api/resources/inlinedRequests/client/Client.ts +++ b/seed/ts-sdk/exhaustive/bundle/src/api/resources/inlinedRequests/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace InlinedRequests { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -74,6 +75,7 @@ export class InlinedRequests { body: await serializers.PostWithObjectBody.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { diff --git a/seed/ts-sdk/exhaustive/bundle/src/api/resources/noAuth/client/Client.ts b/seed/ts-sdk/exhaustive/bundle/src/api/resources/noAuth/client/Client.ts index 44918087a5..bce4556d4c 100644 --- a/seed/ts-sdk/exhaustive/bundle/src/api/resources/noAuth/client/Client.ts +++ b/seed/ts-sdk/exhaustive/bundle/src/api/resources/noAuth/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace NoAuth { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -52,6 +53,7 @@ export class NoAuth { body: request, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { diff --git a/seed/ts-sdk/exhaustive/bundle/src/api/resources/noReqBody/client/Client.ts b/seed/ts-sdk/exhaustive/bundle/src/api/resources/noReqBody/client/Client.ts index 58ab5f8cda..a91f1864e2 100644 --- a/seed/ts-sdk/exhaustive/bundle/src/api/resources/noReqBody/client/Client.ts +++ b/seed/ts-sdk/exhaustive/bundle/src/api/resources/noReqBody/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace NoReqBody { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -45,6 +46,7 @@ export class NoReqBody { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -87,6 +89,7 @@ export class NoReqBody { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { diff --git a/seed/ts-sdk/exhaustive/bundle/src/api/resources/reqWithHeaders/client/Client.ts b/seed/ts-sdk/exhaustive/bundle/src/api/resources/reqWithHeaders/client/Client.ts index ff2f8fe4ab..ad4cc1e192 100644 --- a/seed/ts-sdk/exhaustive/bundle/src/api/resources/reqWithHeaders/client/Client.ts +++ b/seed/ts-sdk/exhaustive/bundle/src/api/resources/reqWithHeaders/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace ReqWithHeaders { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -57,6 +58,7 @@ export class ReqWithHeaders { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { diff --git a/seed/ts-sdk/exhaustive/bundle/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/exhaustive/bundle/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/exhaustive/bundle/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/exhaustive/bundle/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/exhaustive/dev-dependencies/src/Client.ts b/seed/ts-sdk/exhaustive/dev-dependencies/src/Client.ts index 7f03dd2a3e..f1a17ae8ab 100644 --- a/seed/ts-sdk/exhaustive/dev-dependencies/src/Client.ts +++ b/seed/ts-sdk/exhaustive/dev-dependencies/src/Client.ts @@ -18,6 +18,7 @@ export declare namespace FiddleClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/endpoints/client/Client.ts b/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/endpoints/client/Client.ts index 8cd8fabf7d..431e43e574 100644 --- a/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/endpoints/client/Client.ts +++ b/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/endpoints/client/Client.ts @@ -20,6 +20,7 @@ export declare namespace Endpoints { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/endpoints/resources/container/client/Client.ts b/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/endpoints/resources/container/client/Client.ts index 6ce538e3ca..b0003cb4d6 100644 --- a/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/endpoints/resources/container/client/Client.ts +++ b/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/endpoints/resources/container/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace Container { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -50,6 +51,7 @@ export class Container { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -107,6 +109,7 @@ export class Container { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -157,6 +160,7 @@ export class Container { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -214,6 +218,7 @@ export class Container { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -266,6 +271,7 @@ export class Container { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -325,6 +331,7 @@ export class Container { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -385,6 +392,7 @@ export class Container { : undefined, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { diff --git a/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/endpoints/resources/enum/client/Client.ts b/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/endpoints/resources/enum/client/Client.ts index 5568dedd43..fd92b60b0b 100644 --- a/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/endpoints/resources/enum/client/Client.ts +++ b/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/endpoints/resources/enum/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace Enum { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -48,6 +49,7 @@ export class Enum { body: await serializers.types.WeatherReport.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { diff --git a/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/endpoints/resources/httpMethods/client/Client.ts b/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/endpoints/resources/httpMethods/client/Client.ts index 903475db14..22582df2be 100644 --- a/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/endpoints/resources/httpMethods/client/Client.ts +++ b/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/endpoints/resources/httpMethods/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace HttpMethods { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -47,6 +48,7 @@ export class HttpMethods { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -96,6 +98,7 @@ export class HttpMethods { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -147,6 +150,7 @@ export class HttpMethods { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -211,6 +215,7 @@ export class HttpMethods { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -255,6 +260,7 @@ export class HttpMethods { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { diff --git a/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/endpoints/resources/object/client/Client.ts b/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/endpoints/resources/object/client/Client.ts index 2e3454ed3d..402de33f19 100644 --- a/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/endpoints/resources/object/client/Client.ts +++ b/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/endpoints/resources/object/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace Object_ { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -73,6 +74,7 @@ export class Object_ { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -130,6 +132,7 @@ export class Object_ { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -183,6 +186,7 @@ export class Object_ { body: await serializers.types.ObjectWithMapOfMap.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -256,6 +260,7 @@ export class Object_ { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -331,6 +336,7 @@ export class Object_ { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -405,6 +411,7 @@ export class Object_ { ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { diff --git a/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/endpoints/resources/params/client/Client.ts b/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/endpoints/resources/params/client/Client.ts index bd06abc25d..e719768e8e 100644 --- a/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/endpoints/resources/params/client/Client.ts +++ b/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/endpoints/resources/params/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace Params { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -52,6 +53,7 @@ export class Params { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -106,6 +108,7 @@ export class Params { queryParameters: _queryParams, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -165,6 +168,7 @@ export class Params { queryParameters: _queryParams, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -217,6 +221,7 @@ export class Params { queryParameters: _queryParams, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -266,6 +271,7 @@ export class Params { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { diff --git a/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/endpoints/resources/primitive/client/Client.ts b/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/endpoints/resources/primitive/client/Client.ts index 4390d0617a..f731d73feb 100644 --- a/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/endpoints/resources/primitive/client/Client.ts +++ b/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/endpoints/resources/primitive/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace Primitive { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -50,6 +51,7 @@ export class Primitive { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -97,6 +99,7 @@ export class Primitive { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -144,6 +147,7 @@ export class Primitive { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -191,6 +195,7 @@ export class Primitive { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -238,6 +243,7 @@ export class Primitive { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -285,6 +291,7 @@ export class Primitive { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -332,6 +339,7 @@ export class Primitive { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -379,6 +387,7 @@ export class Primitive { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -426,6 +435,7 @@ export class Primitive { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { diff --git a/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/endpoints/resources/union/client/Client.ts b/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/endpoints/resources/union/client/Client.ts index 4590cfab3e..8e7015241e 100644 --- a/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/endpoints/resources/union/client/Client.ts +++ b/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/endpoints/resources/union/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace Union { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -51,6 +52,7 @@ export class Union { body: await serializers.types.Animal.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { diff --git a/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/inlinedRequests/client/Client.ts b/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/inlinedRequests/client/Client.ts index d4039b1e5c..18e0ef6887 100644 --- a/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/inlinedRequests/client/Client.ts +++ b/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/inlinedRequests/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace InlinedRequests { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -74,6 +75,7 @@ export class InlinedRequests { body: await serializers.PostWithObjectBody.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { diff --git a/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/noAuth/client/Client.ts b/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/noAuth/client/Client.ts index 44918087a5..bce4556d4c 100644 --- a/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/noAuth/client/Client.ts +++ b/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/noAuth/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace NoAuth { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -52,6 +53,7 @@ export class NoAuth { body: request, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { diff --git a/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/noReqBody/client/Client.ts b/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/noReqBody/client/Client.ts index 58ab5f8cda..a91f1864e2 100644 --- a/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/noReqBody/client/Client.ts +++ b/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/noReqBody/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace NoReqBody { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -45,6 +46,7 @@ export class NoReqBody { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -87,6 +89,7 @@ export class NoReqBody { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { diff --git a/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/reqWithHeaders/client/Client.ts b/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/reqWithHeaders/client/Client.ts index ff2f8fe4ab..ad4cc1e192 100644 --- a/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/reqWithHeaders/client/Client.ts +++ b/seed/ts-sdk/exhaustive/dev-dependencies/src/api/resources/reqWithHeaders/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace ReqWithHeaders { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -57,6 +58,7 @@ export class ReqWithHeaders { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { diff --git a/seed/ts-sdk/exhaustive/dev-dependencies/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/exhaustive/dev-dependencies/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/exhaustive/dev-dependencies/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/exhaustive/dev-dependencies/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/exhaustive/no-custom-config/src/Client.ts b/seed/ts-sdk/exhaustive/no-custom-config/src/Client.ts index 809e3c208e..03f60717a3 100644 --- a/seed/ts-sdk/exhaustive/no-custom-config/src/Client.ts +++ b/seed/ts-sdk/exhaustive/no-custom-config/src/Client.ts @@ -18,6 +18,7 @@ export declare namespace SeedExhaustiveClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/endpoints/client/Client.ts b/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/endpoints/client/Client.ts index 8cd8fabf7d..431e43e574 100644 --- a/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/endpoints/client/Client.ts +++ b/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/endpoints/client/Client.ts @@ -20,6 +20,7 @@ export declare namespace Endpoints { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/endpoints/resources/container/client/Client.ts b/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/endpoints/resources/container/client/Client.ts index 6e3f323f50..4bdf9a927d 100644 --- a/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/endpoints/resources/container/client/Client.ts +++ b/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/endpoints/resources/container/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace Container { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -51,6 +52,7 @@ export class Container { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.container.getAndReturnListOfPrimitives.Response.parseOrThrow( @@ -116,6 +118,7 @@ export class Container { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.container.getAndReturnListOfObjects.Response.parseOrThrow( @@ -179,6 +182,7 @@ export class Container { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.container.getAndReturnSetOfPrimitives.Response.parseOrThrow( @@ -244,6 +248,7 @@ export class Container { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.container.getAndReturnSetOfObjects.Response.parseOrThrow( @@ -309,6 +314,7 @@ export class Container { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.container.getAndReturnMapPrimToPrim.Response.parseOrThrow( @@ -376,6 +382,7 @@ export class Container { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.container.getAndReturnMapOfPrimToObject.Response.parseOrThrow( @@ -444,6 +451,7 @@ export class Container { : undefined, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.container.getAndReturnOptional.Response.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/endpoints/resources/enum/client/Client.ts b/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/endpoints/resources/enum/client/Client.ts index 6ca6f17a98..e948e917d0 100644 --- a/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/endpoints/resources/enum/client/Client.ts +++ b/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/endpoints/resources/enum/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace Enum { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -49,6 +50,7 @@ export class Enum { body: await serializers.types.WeatherReport.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.types.WeatherReport.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/endpoints/resources/httpMethods/client/Client.ts b/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/endpoints/resources/httpMethods/client/Client.ts index 0d67beb0c0..b89eac7ae6 100644 --- a/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/endpoints/resources/httpMethods/client/Client.ts +++ b/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/endpoints/resources/httpMethods/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace HttpMethods { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -45,6 +46,7 @@ export class HttpMethods { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.httpMethods.testGet.Response.parseOrThrow(_response.body, { @@ -107,6 +109,7 @@ export class HttpMethods { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.types.ObjectWithOptionalField.parseOrThrow(_response.body, { @@ -171,6 +174,7 @@ export class HttpMethods { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.types.ObjectWithOptionalField.parseOrThrow(_response.body, { @@ -248,6 +252,7 @@ export class HttpMethods { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.types.ObjectWithOptionalField.parseOrThrow(_response.body, { @@ -302,6 +307,7 @@ export class HttpMethods { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.httpMethods.testDelete.Response.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/endpoints/resources/object/client/Client.ts b/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/endpoints/resources/object/client/Client.ts index 8f1eb3dc2f..e06161a14e 100644 --- a/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/endpoints/resources/object/client/Client.ts +++ b/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/endpoints/resources/object/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace Object_ { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -69,6 +70,7 @@ export class Object_ { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.types.ObjectWithOptionalField.parseOrThrow(_response.body, { @@ -134,6 +136,7 @@ export class Object_ { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.types.ObjectWithRequiredField.parseOrThrow(_response.body, { @@ -198,6 +201,7 @@ export class Object_ { body: await serializers.types.ObjectWithMapOfMap.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.types.ObjectWithMapOfMap.parseOrThrow(_response.body, { @@ -279,6 +283,7 @@ export class Object_ { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.types.NestedObjectWithOptionalField.parseOrThrow(_response.body, { @@ -362,6 +367,7 @@ export class Object_ { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.types.NestedObjectWithRequiredField.parseOrThrow(_response.body, { @@ -444,6 +450,7 @@ export class Object_ { ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.types.NestedObjectWithRequiredField.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/endpoints/resources/params/client/Client.ts b/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/endpoints/resources/params/client/Client.ts index d8548dd1d9..b21a85c1f2 100644 --- a/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/endpoints/resources/params/client/Client.ts +++ b/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/endpoints/resources/params/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace Params { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -50,6 +51,7 @@ export class Params { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.params.getWithPath.Response.parseOrThrow(_response.body, { @@ -117,6 +119,7 @@ export class Params { queryParameters: _queryParams, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; @@ -189,6 +192,7 @@ export class Params { queryParameters: _queryParams, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; @@ -254,6 +258,7 @@ export class Params { queryParameters: _queryParams, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; @@ -316,6 +321,7 @@ export class Params { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.params.modifyWithPath.Response.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/endpoints/resources/primitive/client/Client.ts b/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/endpoints/resources/primitive/client/Client.ts index 553a296fee..726dfb99cf 100644 --- a/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/endpoints/resources/primitive/client/Client.ts +++ b/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/endpoints/resources/primitive/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace Primitive { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -47,6 +48,7 @@ export class Primitive { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.primitive.getAndReturnString.Response.parseOrThrow(_response.body, { @@ -104,6 +106,7 @@ export class Primitive { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.primitive.getAndReturnInt.Response.parseOrThrow(_response.body, { @@ -161,6 +164,7 @@ export class Primitive { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.primitive.getAndReturnLong.Response.parseOrThrow(_response.body, { @@ -218,6 +222,7 @@ export class Primitive { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.primitive.getAndReturnDouble.Response.parseOrThrow(_response.body, { @@ -275,6 +280,7 @@ export class Primitive { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.primitive.getAndReturnBool.Response.parseOrThrow(_response.body, { @@ -332,6 +338,7 @@ export class Primitive { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.primitive.getAndReturnDatetime.Response.parseOrThrow(_response.body, { @@ -389,6 +396,7 @@ export class Primitive { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.primitive.getAndReturnDate.Response.parseOrThrow(_response.body, { @@ -446,6 +454,7 @@ export class Primitive { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.primitive.getAndReturnUuid.Response.parseOrThrow(_response.body, { @@ -503,6 +512,7 @@ export class Primitive { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.primitive.getAndReturnBase64.Response.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/endpoints/resources/union/client/Client.ts b/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/endpoints/resources/union/client/Client.ts index b9e12abab3..9c5206b6c9 100644 --- a/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/endpoints/resources/union/client/Client.ts +++ b/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/endpoints/resources/union/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace Union { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -53,6 +54,7 @@ export class Union { body: await serializers.types.Animal.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.types.Animal.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/inlinedRequests/client/Client.ts b/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/inlinedRequests/client/Client.ts index ff977e9ad7..78afddbc2d 100644 --- a/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/inlinedRequests/client/Client.ts +++ b/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/inlinedRequests/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace InlinedRequests { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -72,6 +73,7 @@ export class InlinedRequests { body: await serializers.PostWithObjectBody.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.types.ObjectWithOptionalField.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/noAuth/client/Client.ts b/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/noAuth/client/Client.ts index 2b3118ebdd..7016fc6a47 100644 --- a/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/noAuth/client/Client.ts +++ b/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/noAuth/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace NoAuth { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -52,6 +53,7 @@ export class NoAuth { body: request, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.noAuth.postWithNoAuth.Response.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/noReqBody/client/Client.ts b/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/noReqBody/client/Client.ts index 239d51124f..1e96f4bcdc 100644 --- a/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/noReqBody/client/Client.ts +++ b/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/noReqBody/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace NoReqBody { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -46,6 +47,7 @@ export class NoReqBody { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.types.ObjectWithOptionalField.parseOrThrow(_response.body, { @@ -99,6 +101,7 @@ export class NoReqBody { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.noReqBody.postWithNoRequestBody.Response.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/reqWithHeaders/client/Client.ts b/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/reqWithHeaders/client/Client.ts index 07e4805c14..08bce6fa19 100644 --- a/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/reqWithHeaders/client/Client.ts +++ b/seed/ts-sdk/exhaustive/no-custom-config/src/api/resources/reqWithHeaders/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace ReqWithHeaders { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -58,6 +59,7 @@ export class ReqWithHeaders { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; diff --git a/seed/ts-sdk/exhaustive/no-custom-config/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/exhaustive/no-custom-config/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/exhaustive/no-custom-config/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/exhaustive/no-custom-config/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/exhaustive/retain-original-casing/src/Client.ts b/seed/ts-sdk/exhaustive/retain-original-casing/src/Client.ts index 809e3c208e..03f60717a3 100644 --- a/seed/ts-sdk/exhaustive/retain-original-casing/src/Client.ts +++ b/seed/ts-sdk/exhaustive/retain-original-casing/src/Client.ts @@ -18,6 +18,7 @@ export declare namespace SeedExhaustiveClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/endpoints/client/Client.ts b/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/endpoints/client/Client.ts index 8cd8fabf7d..431e43e574 100644 --- a/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/endpoints/client/Client.ts +++ b/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/endpoints/client/Client.ts @@ -20,6 +20,7 @@ export declare namespace Endpoints { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/endpoints/resources/container/client/Client.ts b/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/endpoints/resources/container/client/Client.ts index 6e3f323f50..4bdf9a927d 100644 --- a/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/endpoints/resources/container/client/Client.ts +++ b/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/endpoints/resources/container/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace Container { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -51,6 +52,7 @@ export class Container { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.container.getAndReturnListOfPrimitives.Response.parseOrThrow( @@ -116,6 +118,7 @@ export class Container { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.container.getAndReturnListOfObjects.Response.parseOrThrow( @@ -179,6 +182,7 @@ export class Container { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.container.getAndReturnSetOfPrimitives.Response.parseOrThrow( @@ -244,6 +248,7 @@ export class Container { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.container.getAndReturnSetOfObjects.Response.parseOrThrow( @@ -309,6 +314,7 @@ export class Container { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.container.getAndReturnMapPrimToPrim.Response.parseOrThrow( @@ -376,6 +382,7 @@ export class Container { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.container.getAndReturnMapOfPrimToObject.Response.parseOrThrow( @@ -444,6 +451,7 @@ export class Container { : undefined, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.container.getAndReturnOptional.Response.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/endpoints/resources/enum/client/Client.ts b/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/endpoints/resources/enum/client/Client.ts index 6ca6f17a98..e948e917d0 100644 --- a/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/endpoints/resources/enum/client/Client.ts +++ b/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/endpoints/resources/enum/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace Enum { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -49,6 +50,7 @@ export class Enum { body: await serializers.types.WeatherReport.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.types.WeatherReport.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/endpoints/resources/httpMethods/client/Client.ts b/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/endpoints/resources/httpMethods/client/Client.ts index 0d67beb0c0..b89eac7ae6 100644 --- a/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/endpoints/resources/httpMethods/client/Client.ts +++ b/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/endpoints/resources/httpMethods/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace HttpMethods { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -45,6 +46,7 @@ export class HttpMethods { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.httpMethods.testGet.Response.parseOrThrow(_response.body, { @@ -107,6 +109,7 @@ export class HttpMethods { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.types.ObjectWithOptionalField.parseOrThrow(_response.body, { @@ -171,6 +174,7 @@ export class HttpMethods { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.types.ObjectWithOptionalField.parseOrThrow(_response.body, { @@ -248,6 +252,7 @@ export class HttpMethods { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.types.ObjectWithOptionalField.parseOrThrow(_response.body, { @@ -302,6 +307,7 @@ export class HttpMethods { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.httpMethods.testDelete.Response.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/endpoints/resources/object/client/Client.ts b/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/endpoints/resources/object/client/Client.ts index 6915e64a51..dd4f6a8cfa 100644 --- a/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/endpoints/resources/object/client/Client.ts +++ b/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/endpoints/resources/object/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace Object_ { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -69,6 +70,7 @@ export class Object_ { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.types.ObjectWithOptionalField.parseOrThrow(_response.body, { @@ -134,6 +136,7 @@ export class Object_ { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.types.ObjectWithRequiredField.parseOrThrow(_response.body, { @@ -198,6 +201,7 @@ export class Object_ { body: await serializers.types.ObjectWithMapOfMap.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.types.ObjectWithMapOfMap.parseOrThrow(_response.body, { @@ -279,6 +283,7 @@ export class Object_ { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.types.NestedObjectWithOptionalField.parseOrThrow(_response.body, { @@ -362,6 +367,7 @@ export class Object_ { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.types.NestedObjectWithRequiredField.parseOrThrow(_response.body, { @@ -444,6 +450,7 @@ export class Object_ { ), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.types.NestedObjectWithRequiredField.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/endpoints/resources/params/client/Client.ts b/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/endpoints/resources/params/client/Client.ts index d8548dd1d9..b21a85c1f2 100644 --- a/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/endpoints/resources/params/client/Client.ts +++ b/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/endpoints/resources/params/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace Params { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -50,6 +51,7 @@ export class Params { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.params.getWithPath.Response.parseOrThrow(_response.body, { @@ -117,6 +119,7 @@ export class Params { queryParameters: _queryParams, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; @@ -189,6 +192,7 @@ export class Params { queryParameters: _queryParams, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; @@ -254,6 +258,7 @@ export class Params { queryParameters: _queryParams, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; @@ -316,6 +321,7 @@ export class Params { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.params.modifyWithPath.Response.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/endpoints/resources/primitive/client/Client.ts b/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/endpoints/resources/primitive/client/Client.ts index 553a296fee..726dfb99cf 100644 --- a/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/endpoints/resources/primitive/client/Client.ts +++ b/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/endpoints/resources/primitive/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace Primitive { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -47,6 +48,7 @@ export class Primitive { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.primitive.getAndReturnString.Response.parseOrThrow(_response.body, { @@ -104,6 +106,7 @@ export class Primitive { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.primitive.getAndReturnInt.Response.parseOrThrow(_response.body, { @@ -161,6 +164,7 @@ export class Primitive { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.primitive.getAndReturnLong.Response.parseOrThrow(_response.body, { @@ -218,6 +222,7 @@ export class Primitive { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.primitive.getAndReturnDouble.Response.parseOrThrow(_response.body, { @@ -275,6 +280,7 @@ export class Primitive { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.primitive.getAndReturnBool.Response.parseOrThrow(_response.body, { @@ -332,6 +338,7 @@ export class Primitive { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.primitive.getAndReturnDatetime.Response.parseOrThrow(_response.body, { @@ -389,6 +396,7 @@ export class Primitive { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.primitive.getAndReturnDate.Response.parseOrThrow(_response.body, { @@ -446,6 +454,7 @@ export class Primitive { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.primitive.getAndReturnUuid.Response.parseOrThrow(_response.body, { @@ -503,6 +512,7 @@ export class Primitive { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.endpoints.primitive.getAndReturnBase64.Response.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/endpoints/resources/union/client/Client.ts b/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/endpoints/resources/union/client/Client.ts index b9e12abab3..9c5206b6c9 100644 --- a/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/endpoints/resources/union/client/Client.ts +++ b/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/endpoints/resources/union/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace Union { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -53,6 +54,7 @@ export class Union { body: await serializers.types.Animal.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.types.Animal.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/inlinedRequests/client/Client.ts b/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/inlinedRequests/client/Client.ts index 61f834a0d8..f1b10c2806 100644 --- a/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/inlinedRequests/client/Client.ts +++ b/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/inlinedRequests/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace InlinedRequests { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -72,6 +73,7 @@ export class InlinedRequests { body: await serializers.PostWithObjectBody.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.types.ObjectWithOptionalField.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/noAuth/client/Client.ts b/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/noAuth/client/Client.ts index 2b3118ebdd..7016fc6a47 100644 --- a/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/noAuth/client/Client.ts +++ b/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/noAuth/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace NoAuth { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -52,6 +53,7 @@ export class NoAuth { body: request, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.noAuth.postWithNoAuth.Response.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/noReqBody/client/Client.ts b/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/noReqBody/client/Client.ts index 239d51124f..1e96f4bcdc 100644 --- a/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/noReqBody/client/Client.ts +++ b/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/noReqBody/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace NoReqBody { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -46,6 +47,7 @@ export class NoReqBody { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.types.ObjectWithOptionalField.parseOrThrow(_response.body, { @@ -99,6 +101,7 @@ export class NoReqBody { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.noReqBody.postWithNoRequestBody.Response.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/reqWithHeaders/client/Client.ts b/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/reqWithHeaders/client/Client.ts index 2cd531cd63..f56dc61e7c 100644 --- a/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/reqWithHeaders/client/Client.ts +++ b/seed/ts-sdk/exhaustive/retain-original-casing/src/api/resources/reqWithHeaders/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace ReqWithHeaders { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -62,6 +63,7 @@ export class ReqWithHeaders { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; diff --git a/seed/ts-sdk/exhaustive/retain-original-casing/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/exhaustive/retain-original-casing/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/exhaustive/retain-original-casing/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/exhaustive/retain-original-casing/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/extra-properties/src/Client.ts b/seed/ts-sdk/extra-properties/src/Client.ts index 59c7668391..3d5504b8a8 100644 --- a/seed/ts-sdk/extra-properties/src/Client.ts +++ b/seed/ts-sdk/extra-properties/src/Client.ts @@ -13,6 +13,7 @@ export declare namespace SeedExtraPropertiesClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/extra-properties/src/api/resources/user/client/Client.ts b/seed/ts-sdk/extra-properties/src/api/resources/user/client/Client.ts index 83877cfb33..0dafe26001 100644 --- a/seed/ts-sdk/extra-properties/src/api/resources/user/client/Client.ts +++ b/seed/ts-sdk/extra-properties/src/api/resources/user/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace User { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -55,6 +56,7 @@ export class User { }, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.User.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/extra-properties/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/extra-properties/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/extra-properties/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/extra-properties/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/file-download/file-download-reponse-headers/src/Client.ts b/seed/ts-sdk/file-download/file-download-reponse-headers/src/Client.ts index 1a94a47400..44e3c6ce2a 100644 --- a/seed/ts-sdk/file-download/file-download-reponse-headers/src/Client.ts +++ b/seed/ts-sdk/file-download/file-download-reponse-headers/src/Client.ts @@ -13,6 +13,7 @@ export declare namespace SeedFileDownloadClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/file-download/file-download-reponse-headers/src/api/resources/service/client/Client.ts b/seed/ts-sdk/file-download/file-download-reponse-headers/src/api/resources/service/client/Client.ts index 54dd569f1c..0a3ab1be18 100644 --- a/seed/ts-sdk/file-download/file-download-reponse-headers/src/api/resources/service/client/Client.ts +++ b/seed/ts-sdk/file-download/file-download-reponse-headers/src/api/resources/service/client/Client.ts @@ -14,6 +14,7 @@ export declare namespace Service { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -39,6 +40,7 @@ export class Service { responseType: "streaming", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { const _contentLength = core.getHeader(_response.headers ?? {}, "Content-Length"); diff --git a/seed/ts-sdk/file-download/file-download-reponse-headers/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/file-download/file-download-reponse-headers/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/file-download/file-download-reponse-headers/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/file-download/file-download-reponse-headers/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/file-download/no-custom-config/src/Client.ts b/seed/ts-sdk/file-download/no-custom-config/src/Client.ts index 1a94a47400..44e3c6ce2a 100644 --- a/seed/ts-sdk/file-download/no-custom-config/src/Client.ts +++ b/seed/ts-sdk/file-download/no-custom-config/src/Client.ts @@ -13,6 +13,7 @@ export declare namespace SeedFileDownloadClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/file-download/no-custom-config/src/api/resources/service/client/Client.ts b/seed/ts-sdk/file-download/no-custom-config/src/api/resources/service/client/Client.ts index 192b5ae932..3b4573a914 100644 --- a/seed/ts-sdk/file-download/no-custom-config/src/api/resources/service/client/Client.ts +++ b/seed/ts-sdk/file-download/no-custom-config/src/api/resources/service/client/Client.ts @@ -14,6 +14,7 @@ export declare namespace Service { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -35,6 +36,7 @@ export class Service { responseType: "streaming", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return _response.body; diff --git a/seed/ts-sdk/file-download/no-custom-config/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/file-download/no-custom-config/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/file-download/no-custom-config/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/file-download/no-custom-config/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/file-upload/no-custom-config/src/Client.ts b/seed/ts-sdk/file-upload/no-custom-config/src/Client.ts index cf117020f7..292c1c1e4c 100644 --- a/seed/ts-sdk/file-upload/no-custom-config/src/Client.ts +++ b/seed/ts-sdk/file-upload/no-custom-config/src/Client.ts @@ -13,6 +13,7 @@ export declare namespace SeedFileUploadClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/file-upload/no-custom-config/src/api/resources/service/client/Client.ts b/seed/ts-sdk/file-upload/no-custom-config/src/api/resources/service/client/Client.ts index 7485ce0f00..a685afb2f1 100644 --- a/seed/ts-sdk/file-upload/no-custom-config/src/api/resources/service/client/Client.ts +++ b/seed/ts-sdk/file-upload/no-custom-config/src/api/resources/service/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace Service { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -91,6 +92,7 @@ export class Service { body: await _maybeEncodedRequest.getBody(), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; @@ -143,6 +145,7 @@ export class Service { body: await _maybeEncodedRequest.getBody(), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; @@ -231,6 +234,7 @@ export class Service { body: await _maybeEncodedRequest.getBody(), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; diff --git a/seed/ts-sdk/file-upload/no-custom-config/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/file-upload/no-custom-config/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/file-upload/no-custom-config/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/file-upload/no-custom-config/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/file-upload/wrap-file-properties/src/Client.ts b/seed/ts-sdk/file-upload/wrap-file-properties/src/Client.ts index cf117020f7..292c1c1e4c 100644 --- a/seed/ts-sdk/file-upload/wrap-file-properties/src/Client.ts +++ b/seed/ts-sdk/file-upload/wrap-file-properties/src/Client.ts @@ -13,6 +13,7 @@ export declare namespace SeedFileUploadClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/file-upload/wrap-file-properties/src/api/resources/service/client/Client.ts b/seed/ts-sdk/file-upload/wrap-file-properties/src/api/resources/service/client/Client.ts index 39a718fdcf..f5f3826ef8 100644 --- a/seed/ts-sdk/file-upload/wrap-file-properties/src/api/resources/service/client/Client.ts +++ b/seed/ts-sdk/file-upload/wrap-file-properties/src/api/resources/service/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace Service { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -83,6 +84,7 @@ export class Service { body: await _maybeEncodedRequest.getBody(), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; @@ -140,6 +142,7 @@ export class Service { body: await _maybeEncodedRequest.getBody(), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; @@ -227,6 +230,7 @@ export class Service { body: await _maybeEncodedRequest.getBody(), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; diff --git a/seed/ts-sdk/file-upload/wrap-file-properties/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/file-upload/wrap-file-properties/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/file-upload/wrap-file-properties/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/file-upload/wrap-file-properties/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/folders/src/Client.ts b/seed/ts-sdk/folders/src/Client.ts index b4b0f7fdbb..d544cadb17 100644 --- a/seed/ts-sdk/folders/src/Client.ts +++ b/seed/ts-sdk/folders/src/Client.ts @@ -15,6 +15,7 @@ export declare namespace SeedApiClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -41,6 +42,7 @@ export class SeedApiClient { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; diff --git a/seed/ts-sdk/folders/src/api/resources/a/client/Client.ts b/seed/ts-sdk/folders/src/api/resources/a/client/Client.ts index 8875503878..debbc78ed3 100644 --- a/seed/ts-sdk/folders/src/api/resources/a/client/Client.ts +++ b/seed/ts-sdk/folders/src/api/resources/a/client/Client.ts @@ -14,6 +14,7 @@ export declare namespace A { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/folders/src/api/resources/a/resources/b/client/Client.ts b/seed/ts-sdk/folders/src/api/resources/a/resources/b/client/Client.ts index 3dd1596e60..55ca5b0480 100644 --- a/seed/ts-sdk/folders/src/api/resources/a/resources/b/client/Client.ts +++ b/seed/ts-sdk/folders/src/api/resources/a/resources/b/client/Client.ts @@ -13,6 +13,7 @@ export declare namespace B { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -39,6 +40,7 @@ export class B { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; diff --git a/seed/ts-sdk/folders/src/api/resources/a/resources/c/client/Client.ts b/seed/ts-sdk/folders/src/api/resources/a/resources/c/client/Client.ts index a8822bf2e8..ee433c4125 100644 --- a/seed/ts-sdk/folders/src/api/resources/a/resources/c/client/Client.ts +++ b/seed/ts-sdk/folders/src/api/resources/a/resources/c/client/Client.ts @@ -13,6 +13,7 @@ export declare namespace C { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -39,6 +40,7 @@ export class C { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; diff --git a/seed/ts-sdk/folders/src/api/resources/folder/client/Client.ts b/seed/ts-sdk/folders/src/api/resources/folder/client/Client.ts index ab6775ac6d..5659ff1a77 100644 --- a/seed/ts-sdk/folders/src/api/resources/folder/client/Client.ts +++ b/seed/ts-sdk/folders/src/api/resources/folder/client/Client.ts @@ -14,6 +14,7 @@ export declare namespace Folder { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -40,6 +41,7 @@ export class Folder { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; diff --git a/seed/ts-sdk/folders/src/api/resources/folder/resources/service/client/Client.ts b/seed/ts-sdk/folders/src/api/resources/folder/resources/service/client/Client.ts index b5e996b83e..7105a03a97 100644 --- a/seed/ts-sdk/folders/src/api/resources/folder/resources/service/client/Client.ts +++ b/seed/ts-sdk/folders/src/api/resources/folder/resources/service/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace Service { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -42,6 +43,7 @@ export class Service { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; @@ -95,6 +97,7 @@ export class Service { body: request, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; diff --git a/seed/ts-sdk/folders/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/folders/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/folders/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/folders/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/idempotency-headers/src/Client.ts b/seed/ts-sdk/idempotency-headers/src/Client.ts index 07aa87e212..96cd2b785b 100644 --- a/seed/ts-sdk/idempotency-headers/src/Client.ts +++ b/seed/ts-sdk/idempotency-headers/src/Client.ts @@ -14,6 +14,7 @@ export declare namespace SeedIdempotencyHeadersClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/idempotency-headers/src/api/resources/payment/client/Client.ts b/seed/ts-sdk/idempotency-headers/src/api/resources/payment/client/Client.ts index 459736b706..e65456bea0 100644 --- a/seed/ts-sdk/idempotency-headers/src/api/resources/payment/client/Client.ts +++ b/seed/ts-sdk/idempotency-headers/src/api/resources/payment/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace Payment { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } interface IdempotentRequestOptions extends RequestOptions { @@ -59,6 +60,7 @@ export class Payment { body: await serializers.CreatePaymentRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.payment.create.Response.parseOrThrow(_response.body, { @@ -116,6 +118,7 @@ export class Payment { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; diff --git a/seed/ts-sdk/idempotency-headers/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/idempotency-headers/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/idempotency-headers/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/idempotency-headers/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/imdb/src/Client.ts b/seed/ts-sdk/imdb/src/Client.ts index 72e1453ecc..e2e9436237 100644 --- a/seed/ts-sdk/imdb/src/Client.ts +++ b/seed/ts-sdk/imdb/src/Client.ts @@ -14,6 +14,7 @@ export declare namespace SeedApiClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/imdb/src/api/resources/imdb/client/Client.ts b/seed/ts-sdk/imdb/src/api/resources/imdb/client/Client.ts index cb1a26c2ab..ba4d883802 100644 --- a/seed/ts-sdk/imdb/src/api/resources/imdb/client/Client.ts +++ b/seed/ts-sdk/imdb/src/api/resources/imdb/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace Imdb { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -54,6 +55,7 @@ export class Imdb { body: await serializers.CreateMovieRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.MovieId.parseOrThrow(_response.body, { @@ -113,6 +115,7 @@ export class Imdb { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.Movie.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/imdb/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/imdb/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/imdb/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/imdb/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/literal/src/Client.ts b/seed/ts-sdk/literal/src/Client.ts index bdcefde296..6db0d854fd 100644 --- a/seed/ts-sdk/literal/src/Client.ts +++ b/seed/ts-sdk/literal/src/Client.ts @@ -17,6 +17,7 @@ export declare namespace SeedLiteralClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/literal/src/api/resources/headers/client/Client.ts b/seed/ts-sdk/literal/src/api/resources/headers/client/Client.ts index 9fd8155384..84edea0f5b 100644 --- a/seed/ts-sdk/literal/src/api/resources/headers/client/Client.ts +++ b/seed/ts-sdk/literal/src/api/resources/headers/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace Headers { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -57,6 +58,7 @@ export class Headers { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.SendResponse.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/literal/src/api/resources/inlined/client/Client.ts b/seed/ts-sdk/literal/src/api/resources/inlined/client/Client.ts index a187afb44d..34c34e2b8e 100644 --- a/seed/ts-sdk/literal/src/api/resources/inlined/client/Client.ts +++ b/seed/ts-sdk/literal/src/api/resources/inlined/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace Inlined { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -60,6 +61,7 @@ export class Inlined { }, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.SendResponse.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/literal/src/api/resources/path/client/Client.ts b/seed/ts-sdk/literal/src/api/resources/path/client/Client.ts index b470d830b6..0459680a4d 100644 --- a/seed/ts-sdk/literal/src/api/resources/path/client/Client.ts +++ b/seed/ts-sdk/literal/src/api/resources/path/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace Path { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -45,6 +46,7 @@ export class Path { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.SendResponse.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/literal/src/api/resources/query/client/Client.ts b/seed/ts-sdk/literal/src/api/resources/query/client/Client.ts index 744b97668b..cf22d6647a 100644 --- a/seed/ts-sdk/literal/src/api/resources/query/client/Client.ts +++ b/seed/ts-sdk/literal/src/api/resources/query/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace Query { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -58,6 +59,7 @@ export class Query { queryParameters: _queryParams, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.SendResponse.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/literal/src/api/resources/reference/client/Client.ts b/seed/ts-sdk/literal/src/api/resources/reference/client/Client.ts index 6d6ecdf1b2..3cb8d3e1b8 100644 --- a/seed/ts-sdk/literal/src/api/resources/reference/client/Client.ts +++ b/seed/ts-sdk/literal/src/api/resources/reference/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace Reference { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -53,6 +54,7 @@ export class Reference { body: await serializers.SendRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.SendResponse.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/literal/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/literal/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/literal/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/literal/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/mixed-case/no-custom-config/src/Client.ts b/seed/ts-sdk/mixed-case/no-custom-config/src/Client.ts index 56f5331021..1e2ad42baa 100644 --- a/seed/ts-sdk/mixed-case/no-custom-config/src/Client.ts +++ b/seed/ts-sdk/mixed-case/no-custom-config/src/Client.ts @@ -13,6 +13,7 @@ export declare namespace SeedMixedCaseClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/mixed-case/no-custom-config/src/api/resources/service/client/Client.ts b/seed/ts-sdk/mixed-case/no-custom-config/src/api/resources/service/client/Client.ts index baaa3af35d..c68e237a64 100644 --- a/seed/ts-sdk/mixed-case/no-custom-config/src/api/resources/service/client/Client.ts +++ b/seed/ts-sdk/mixed-case/no-custom-config/src/api/resources/service/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace Service { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -49,6 +50,7 @@ export class Service { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.Resource.parseOrThrow(_response.body, { @@ -113,6 +115,7 @@ export class Service { queryParameters: _queryParams, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.service.listResources.Response.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/mixed-case/no-custom-config/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/mixed-case/no-custom-config/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/mixed-case/no-custom-config/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/mixed-case/no-custom-config/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/mixed-case/retain-original-casing/src/Client.ts b/seed/ts-sdk/mixed-case/retain-original-casing/src/Client.ts index 56f5331021..1e2ad42baa 100644 --- a/seed/ts-sdk/mixed-case/retain-original-casing/src/Client.ts +++ b/seed/ts-sdk/mixed-case/retain-original-casing/src/Client.ts @@ -13,6 +13,7 @@ export declare namespace SeedMixedCaseClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/mixed-case/retain-original-casing/src/api/resources/service/client/Client.ts b/seed/ts-sdk/mixed-case/retain-original-casing/src/api/resources/service/client/Client.ts index 106574b08d..f313c94d4d 100644 --- a/seed/ts-sdk/mixed-case/retain-original-casing/src/api/resources/service/client/Client.ts +++ b/seed/ts-sdk/mixed-case/retain-original-casing/src/api/resources/service/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace Service { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -49,6 +50,7 @@ export class Service { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.Resource.parseOrThrow(_response.body, { @@ -113,6 +115,7 @@ export class Service { queryParameters: _queryParams, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.service.listResources.Response.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/mixed-case/retain-original-casing/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/mixed-case/retain-original-casing/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/mixed-case/retain-original-casing/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/mixed-case/retain-original-casing/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/multi-line-docs/src/Client.ts b/seed/ts-sdk/multi-line-docs/src/Client.ts index 9d9639f82a..b1e5b06fed 100644 --- a/seed/ts-sdk/multi-line-docs/src/Client.ts +++ b/seed/ts-sdk/multi-line-docs/src/Client.ts @@ -13,6 +13,7 @@ export declare namespace SeedMultiLineDocsClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/multi-line-docs/src/api/resources/user/client/Client.ts b/seed/ts-sdk/multi-line-docs/src/api/resources/user/client/Client.ts index f5042fb1a9..015493ce32 100644 --- a/seed/ts-sdk/multi-line-docs/src/api/resources/user/client/Client.ts +++ b/seed/ts-sdk/multi-line-docs/src/api/resources/user/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace User { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -47,6 +48,7 @@ export class User { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; @@ -105,6 +107,7 @@ export class User { body: await serializers.CreateUserRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.User.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/multi-line-docs/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/multi-line-docs/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/multi-line-docs/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/multi-line-docs/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/multi-url-environment/src/Client.ts b/seed/ts-sdk/multi-url-environment/src/Client.ts index c3512875cc..8472bd43ba 100644 --- a/seed/ts-sdk/multi-url-environment/src/Client.ts +++ b/seed/ts-sdk/multi-url-environment/src/Client.ts @@ -18,6 +18,7 @@ export declare namespace SeedMultiUrlEnvironmentClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/multi-url-environment/src/api/resources/ec2/client/Client.ts b/seed/ts-sdk/multi-url-environment/src/api/resources/ec2/client/Client.ts index 372f6111c7..24f9b61a74 100644 --- a/seed/ts-sdk/multi-url-environment/src/api/resources/ec2/client/Client.ts +++ b/seed/ts-sdk/multi-url-environment/src/api/resources/ec2/client/Client.ts @@ -20,6 +20,7 @@ export declare namespace Ec2 { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -60,6 +61,7 @@ export class Ec2 { body: await serializers.BootInstanceRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; diff --git a/seed/ts-sdk/multi-url-environment/src/api/resources/s3/client/Client.ts b/seed/ts-sdk/multi-url-environment/src/api/resources/s3/client/Client.ts index 89ab3354a2..b2e38f34ba 100644 --- a/seed/ts-sdk/multi-url-environment/src/api/resources/s3/client/Client.ts +++ b/seed/ts-sdk/multi-url-environment/src/api/resources/s3/client/Client.ts @@ -20,6 +20,7 @@ export declare namespace S3 { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -60,6 +61,7 @@ export class S3 { body: await serializers.GetPresignedUrlRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.s3.getPresignedUrl.Response.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/multi-url-environment/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/multi-url-environment/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/multi-url-environment/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/multi-url-environment/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/no-environment/src/Client.ts b/seed/ts-sdk/no-environment/src/Client.ts index 312fb38821..01c0b56e85 100644 --- a/seed/ts-sdk/no-environment/src/Client.ts +++ b/seed/ts-sdk/no-environment/src/Client.ts @@ -14,6 +14,7 @@ export declare namespace SeedNoEnvironmentClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/no-environment/src/api/resources/dummy/client/Client.ts b/seed/ts-sdk/no-environment/src/api/resources/dummy/client/Client.ts index 35225e4353..9ce477c70d 100644 --- a/seed/ts-sdk/no-environment/src/api/resources/dummy/client/Client.ts +++ b/seed/ts-sdk/no-environment/src/api/resources/dummy/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace Dummy { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -43,6 +44,7 @@ export class Dummy { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.dummy.getDummy.Response.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/no-environment/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/no-environment/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/no-environment/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/no-environment/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/oauth-client-credentials-default/src/Client.ts b/seed/ts-sdk/oauth-client-credentials-default/src/Client.ts index 38131c27f9..defaaf6192 100644 --- a/seed/ts-sdk/oauth-client-credentials-default/src/Client.ts +++ b/seed/ts-sdk/oauth-client-credentials-default/src/Client.ts @@ -15,6 +15,7 @@ export declare namespace SeedOauthClientCredentialsDefaultClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/oauth-client-credentials-default/src/api/resources/auth/client/Client.ts b/seed/ts-sdk/oauth-client-credentials-default/src/api/resources/auth/client/Client.ts index 236af943ff..c706921d3c 100644 --- a/seed/ts-sdk/oauth-client-credentials-default/src/api/resources/auth/client/Client.ts +++ b/seed/ts-sdk/oauth-client-credentials-default/src/api/resources/auth/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace Auth { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -56,6 +57,7 @@ export class Auth { }, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.TokenResponse.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/oauth-client-credentials-default/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/oauth-client-credentials-default/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/oauth-client-credentials-default/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/oauth-client-credentials-default/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/oauth-client-credentials-environment-variables/src/Client.ts b/seed/ts-sdk/oauth-client-credentials-environment-variables/src/Client.ts index 0fa1b3b595..6e00bb60a9 100644 --- a/seed/ts-sdk/oauth-client-credentials-environment-variables/src/Client.ts +++ b/seed/ts-sdk/oauth-client-credentials-environment-variables/src/Client.ts @@ -15,6 +15,7 @@ export declare namespace SeedOauthClientCredentialsEnvironmentVariablesClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/oauth-client-credentials-environment-variables/src/api/resources/auth/client/Client.ts b/seed/ts-sdk/oauth-client-credentials-environment-variables/src/api/resources/auth/client/Client.ts index aed3dfa80a..f9a32c060d 100644 --- a/seed/ts-sdk/oauth-client-credentials-environment-variables/src/api/resources/auth/client/Client.ts +++ b/seed/ts-sdk/oauth-client-credentials-environment-variables/src/api/resources/auth/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace Auth { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -59,6 +60,7 @@ export class Auth { }, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.TokenResponse.parseOrThrow(_response.body, { @@ -128,6 +130,7 @@ export class Auth { }, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.TokenResponse.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/oauth-client-credentials-environment-variables/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/oauth-client-credentials-environment-variables/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/oauth-client-credentials-environment-variables/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/oauth-client-credentials-environment-variables/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/oauth-client-credentials/src/Client.ts b/seed/ts-sdk/oauth-client-credentials/src/Client.ts index 2427b50b32..7677091ed4 100644 --- a/seed/ts-sdk/oauth-client-credentials/src/Client.ts +++ b/seed/ts-sdk/oauth-client-credentials/src/Client.ts @@ -15,6 +15,7 @@ export declare namespace SeedOauthClientCredentialsClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/oauth-client-credentials/src/api/resources/auth/client/Client.ts b/seed/ts-sdk/oauth-client-credentials/src/api/resources/auth/client/Client.ts index 180289ca40..64dfb7853e 100644 --- a/seed/ts-sdk/oauth-client-credentials/src/api/resources/auth/client/Client.ts +++ b/seed/ts-sdk/oauth-client-credentials/src/api/resources/auth/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace Auth { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -59,6 +60,7 @@ export class Auth { }, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.TokenResponse.parseOrThrow(_response.body, { @@ -128,6 +130,7 @@ export class Auth { }, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.TokenResponse.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/oauth-client-credentials/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/oauth-client-credentials/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/oauth-client-credentials/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/oauth-client-credentials/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/optional/src/Client.ts b/seed/ts-sdk/optional/src/Client.ts index 015a7e86a4..5d5461a2cf 100644 --- a/seed/ts-sdk/optional/src/Client.ts +++ b/seed/ts-sdk/optional/src/Client.ts @@ -13,6 +13,7 @@ export declare namespace SeedObjectsWithImportsClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/optional/src/api/resources/optional/client/Client.ts b/seed/ts-sdk/optional/src/api/resources/optional/client/Client.ts index 1e1ee5f6c7..172e0aba9b 100644 --- a/seed/ts-sdk/optional/src/api/resources/optional/client/Client.ts +++ b/seed/ts-sdk/optional/src/api/resources/optional/client/Client.ts @@ -15,6 +15,7 @@ export declare namespace Optional { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -55,6 +56,7 @@ export class Optional { : undefined, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.optional.sendOptionalBody.Response.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/optional/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/optional/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/optional/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/optional/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/package-yml/src/Client.ts b/seed/ts-sdk/package-yml/src/Client.ts index ce1c2dc58b..401bb3db1e 100644 --- a/seed/ts-sdk/package-yml/src/Client.ts +++ b/seed/ts-sdk/package-yml/src/Client.ts @@ -17,6 +17,7 @@ export declare namespace SeedPackageYmlClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -48,6 +49,7 @@ export class SeedPackageYmlClient { body: await serializers.echo.Request.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.echo.Response.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/package-yml/src/api/resources/service/client/Client.ts b/seed/ts-sdk/package-yml/src/api/resources/service/client/Client.ts index 94326d5a2b..256f803abd 100644 --- a/seed/ts-sdk/package-yml/src/api/resources/service/client/Client.ts +++ b/seed/ts-sdk/package-yml/src/api/resources/service/client/Client.ts @@ -15,6 +15,7 @@ export declare namespace Service { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -45,6 +46,7 @@ export class Service { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; diff --git a/seed/ts-sdk/package-yml/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/package-yml/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/package-yml/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/package-yml/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/pagination/src/Client.ts b/seed/ts-sdk/pagination/src/Client.ts index e473c2195c..53e2b10b05 100644 --- a/seed/ts-sdk/pagination/src/Client.ts +++ b/seed/ts-sdk/pagination/src/Client.ts @@ -14,6 +14,7 @@ export declare namespace SeedPaginationClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/pagination/src/api/resources/users/client/Client.ts b/seed/ts-sdk/pagination/src/api/resources/users/client/Client.ts index d037d1339c..a7684de10b 100644 --- a/seed/ts-sdk/pagination/src/api/resources/users/client/Client.ts +++ b/seed/ts-sdk/pagination/src/api/resources/users/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace Users { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -72,6 +73,7 @@ export class Users { queryParameters: _queryParams, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.ListUsersPaginationResponse.parseOrThrow(_response.body, { @@ -153,6 +155,7 @@ export class Users { queryParameters: _queryParams, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.ListUsersPaginationResponse.parseOrThrow(_response.body, { @@ -219,6 +222,7 @@ export class Users { queryParameters: _queryParams, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.ListUsersExtendedResponse.parseOrThrow(_response.body, { @@ -285,6 +289,7 @@ export class Users { queryParameters: _queryParams, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.UsernameCursor.parseOrThrow(_response.body, { @@ -351,6 +356,7 @@ export class Users { queryParameters: _queryParams, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.UsernameContainer.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/pagination/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/pagination/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/pagination/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/pagination/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/plain-text/src/Client.ts b/seed/ts-sdk/plain-text/src/Client.ts index 4d767e9fbf..8c39ab0ddf 100644 --- a/seed/ts-sdk/plain-text/src/Client.ts +++ b/seed/ts-sdk/plain-text/src/Client.ts @@ -13,6 +13,7 @@ export declare namespace SeedPlainTextClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/plain-text/src/api/resources/service/client/Client.ts b/seed/ts-sdk/plain-text/src/api/resources/service/client/Client.ts index 76315f4e6c..27692ae798 100644 --- a/seed/ts-sdk/plain-text/src/api/resources/service/client/Client.ts +++ b/seed/ts-sdk/plain-text/src/api/resources/service/client/Client.ts @@ -14,6 +14,7 @@ export declare namespace Service { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -41,6 +42,7 @@ export class Service { responseType: "text", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return _response.body as string; diff --git a/seed/ts-sdk/plain-text/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/plain-text/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/plain-text/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/plain-text/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/query-parameters/no-custom-config/src/Client.ts b/seed/ts-sdk/query-parameters/no-custom-config/src/Client.ts index e3641d4e90..327be953a7 100644 --- a/seed/ts-sdk/query-parameters/no-custom-config/src/Client.ts +++ b/seed/ts-sdk/query-parameters/no-custom-config/src/Client.ts @@ -13,6 +13,7 @@ export declare namespace SeedQueryParametersClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/query-parameters/no-custom-config/src/api/resources/user/client/Client.ts b/seed/ts-sdk/query-parameters/no-custom-config/src/api/resources/user/client/Client.ts index 7aae40a13b..9d4e6ebce1 100644 --- a/seed/ts-sdk/query-parameters/no-custom-config/src/api/resources/user/client/Client.ts +++ b/seed/ts-sdk/query-parameters/no-custom-config/src/api/resources/user/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace User { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -150,6 +151,7 @@ export class User { queryParameters: _queryParams, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.User.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/query-parameters/no-custom-config/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/query-parameters/no-custom-config/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/query-parameters/no-custom-config/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/query-parameters/no-custom-config/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/query-parameters/no-serde-layer-query/src/Client.ts b/seed/ts-sdk/query-parameters/no-serde-layer-query/src/Client.ts index e3641d4e90..327be953a7 100644 --- a/seed/ts-sdk/query-parameters/no-serde-layer-query/src/Client.ts +++ b/seed/ts-sdk/query-parameters/no-serde-layer-query/src/Client.ts @@ -13,6 +13,7 @@ export declare namespace SeedQueryParametersClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/query-parameters/no-serde-layer-query/src/api/resources/user/client/Client.ts b/seed/ts-sdk/query-parameters/no-serde-layer-query/src/api/resources/user/client/Client.ts index 2922bae44e..b162b91e49 100644 --- a/seed/ts-sdk/query-parameters/no-serde-layer-query/src/api/resources/user/client/Client.ts +++ b/seed/ts-sdk/query-parameters/no-serde-layer-query/src/api/resources/user/client/Client.ts @@ -15,6 +15,7 @@ export declare namespace User { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -119,6 +120,7 @@ export class User { queryParameters: _queryParams, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return _response.body as SeedQueryParameters.User; diff --git a/seed/ts-sdk/query-parameters/no-serde-layer-query/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/query-parameters/no-serde-layer-query/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/query-parameters/no-serde-layer-query/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/query-parameters/no-serde-layer-query/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/reserved-keywords/src/Client.ts b/seed/ts-sdk/reserved-keywords/src/Client.ts index 07f0466d3b..fca8b77c20 100644 --- a/seed/ts-sdk/reserved-keywords/src/Client.ts +++ b/seed/ts-sdk/reserved-keywords/src/Client.ts @@ -13,6 +13,7 @@ export declare namespace SeedNurseryApiClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/reserved-keywords/src/api/resources/package/client/Client.ts b/seed/ts-sdk/reserved-keywords/src/api/resources/package/client/Client.ts index f1318fceef..6bdc6998ad 100644 --- a/seed/ts-sdk/reserved-keywords/src/api/resources/package/client/Client.ts +++ b/seed/ts-sdk/reserved-keywords/src/api/resources/package/client/Client.ts @@ -14,6 +14,7 @@ export declare namespace Package { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -47,6 +48,7 @@ export class Package { queryParameters: _queryParams, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; diff --git a/seed/ts-sdk/reserved-keywords/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/reserved-keywords/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/reserved-keywords/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/reserved-keywords/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/response-property/src/Client.ts b/seed/ts-sdk/response-property/src/Client.ts index 468febb90d..9b7594f9dd 100644 --- a/seed/ts-sdk/response-property/src/Client.ts +++ b/seed/ts-sdk/response-property/src/Client.ts @@ -13,6 +13,7 @@ export declare namespace SeedResponsePropertyClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/response-property/src/api/resources/service/client/Client.ts b/seed/ts-sdk/response-property/src/api/resources/service/client/Client.ts index a5f99d4da8..f2dce2a611 100644 --- a/seed/ts-sdk/response-property/src/api/resources/service/client/Client.ts +++ b/seed/ts-sdk/response-property/src/api/resources/service/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace Service { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -47,6 +48,7 @@ export class Service { body: await serializers.service.getMovie.Request.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.Response.parseOrThrow(_response.body, { @@ -106,6 +108,7 @@ export class Service { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.Response.parseOrThrow(_response.body, { @@ -165,6 +168,7 @@ export class Service { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.StringResponse.parseOrThrow(_response.body, { @@ -224,6 +228,7 @@ export class Service { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.Response.parseOrThrow(_response.body, { @@ -283,6 +288,7 @@ export class Service { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.service.getOptionalMovie.Response.parseOrThrow(_response.body, { @@ -342,6 +348,7 @@ export class Service { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.OptionalWithDocs.parseOrThrow(_response.body, { @@ -401,6 +408,7 @@ export class Service { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.OptionalStringResponse.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/response-property/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/response-property/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/response-property/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/response-property/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/server-sent-events/src/Client.ts b/seed/ts-sdk/server-sent-events/src/Client.ts index 3b7035701a..e8760c4c40 100644 --- a/seed/ts-sdk/server-sent-events/src/Client.ts +++ b/seed/ts-sdk/server-sent-events/src/Client.ts @@ -13,6 +13,7 @@ export declare namespace SeedServerSentEventsClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/server-sent-events/src/api/resources/completions/client/Client.ts b/seed/ts-sdk/server-sent-events/src/api/resources/completions/client/Client.ts index 312620d744..051ebe402d 100644 --- a/seed/ts-sdk/server-sent-events/src/api/resources/completions/client/Client.ts +++ b/seed/ts-sdk/server-sent-events/src/api/resources/completions/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace Completions { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -42,6 +43,7 @@ export class Completions { responseType: "streaming", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return new core.Stream({ diff --git a/seed/ts-sdk/server-sent-events/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/server-sent-events/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/server-sent-events/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/server-sent-events/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/server-sent-events/src/core/streaming-fetcher/Stream.ts b/seed/ts-sdk/server-sent-events/src/core/streaming-fetcher/Stream.ts index a0433b3267..5fcb49684a 100644 --- a/seed/ts-sdk/server-sent-events/src/core/streaming-fetcher/Stream.ts +++ b/seed/ts-sdk/server-sent-events/src/core/streaming-fetcher/Stream.ts @@ -11,6 +11,10 @@ export declare namespace Stream { * The event shape to use for parsing the stream data. */ eventShape: JsonEvent | SseEvent; + /** + * An abort signal to stop the stream. + */ + signal?: AbortSignal; } interface JsonEvent { @@ -36,8 +40,9 @@ export class Stream implements AsyncIterable { private prefix: string | undefined; private messageTerminator: string; private streamTerminator: string | undefined; + private controller: AbortController = new AbortController(); - constructor({ stream, parse, eventShape }: Stream.Args & { parse: (val: unknown) => Promise }) { + constructor({ stream, parse, eventShape, signal }: Stream.Args & { parse: (val: unknown) => Promise }) { this.stream = stream; this.parse = parse; if (eventShape.type === "sse") { @@ -47,9 +52,11 @@ export class Stream implements AsyncIterable { } else { this.messageTerminator = eventShape.messageTerminator; } + signal?.addEventListener("abort", () => this.controller.abort()); } private async *iterMessages(): AsyncGenerator { + this.controller.signal; const stream = readableStreamAsyncIterable(this.stream); let buf = ""; let prefixSeen = false; diff --git a/seed/ts-sdk/single-url-environment-default/src/Client.ts b/seed/ts-sdk/single-url-environment-default/src/Client.ts index 9e058e1d08..8c13f27400 100644 --- a/seed/ts-sdk/single-url-environment-default/src/Client.ts +++ b/seed/ts-sdk/single-url-environment-default/src/Client.ts @@ -15,6 +15,7 @@ export declare namespace SeedSingleUrlEnvironmentDefaultClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/single-url-environment-default/src/api/resources/dummy/client/Client.ts b/seed/ts-sdk/single-url-environment-default/src/api/resources/dummy/client/Client.ts index 43131f27bf..439fe935e8 100644 --- a/seed/ts-sdk/single-url-environment-default/src/api/resources/dummy/client/Client.ts +++ b/seed/ts-sdk/single-url-environment-default/src/api/resources/dummy/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace Dummy { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -48,6 +49,7 @@ export class Dummy { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.dummy.getDummy.Response.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/single-url-environment-default/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/single-url-environment-default/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/single-url-environment-default/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/single-url-environment-default/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/single-url-environment-no-default/src/Client.ts b/seed/ts-sdk/single-url-environment-no-default/src/Client.ts index 655fd1cf25..2660e7f8d1 100644 --- a/seed/ts-sdk/single-url-environment-no-default/src/Client.ts +++ b/seed/ts-sdk/single-url-environment-no-default/src/Client.ts @@ -15,6 +15,7 @@ export declare namespace SeedSingleUrlEnvironmentNoDefaultClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/single-url-environment-no-default/src/api/resources/dummy/client/Client.ts b/seed/ts-sdk/single-url-environment-no-default/src/api/resources/dummy/client/Client.ts index 1ef1bb32ca..6d3cd07b55 100644 --- a/seed/ts-sdk/single-url-environment-no-default/src/api/resources/dummy/client/Client.ts +++ b/seed/ts-sdk/single-url-environment-no-default/src/api/resources/dummy/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace Dummy { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -44,6 +45,7 @@ export class Dummy { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.dummy.getDummy.Response.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/single-url-environment-no-default/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/single-url-environment-no-default/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/single-url-environment-no-default/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/single-url-environment-no-default/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/streaming/allow-custom-fetcher/src/Client.ts b/seed/ts-sdk/streaming/allow-custom-fetcher/src/Client.ts index b6c2047230..ecf4954456 100644 --- a/seed/ts-sdk/streaming/allow-custom-fetcher/src/Client.ts +++ b/seed/ts-sdk/streaming/allow-custom-fetcher/src/Client.ts @@ -14,6 +14,7 @@ export declare namespace SeedStreamingClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/streaming/allow-custom-fetcher/src/api/resources/dummy/client/Client.ts b/seed/ts-sdk/streaming/allow-custom-fetcher/src/api/resources/dummy/client/Client.ts index dec624eaa2..4bfd54e518 100644 --- a/seed/ts-sdk/streaming/allow-custom-fetcher/src/api/resources/dummy/client/Client.ts +++ b/seed/ts-sdk/streaming/allow-custom-fetcher/src/api/resources/dummy/client/Client.ts @@ -18,6 +18,7 @@ export declare namespace Dummy { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -43,6 +44,7 @@ export class Dummy { responseType: "streaming", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 2000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return new core.Stream({ diff --git a/seed/ts-sdk/streaming/allow-custom-fetcher/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/streaming/allow-custom-fetcher/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/streaming/allow-custom-fetcher/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/streaming/allow-custom-fetcher/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/streaming/allow-custom-fetcher/src/core/streaming-fetcher/Stream.ts b/seed/ts-sdk/streaming/allow-custom-fetcher/src/core/streaming-fetcher/Stream.ts index a0433b3267..5fcb49684a 100644 --- a/seed/ts-sdk/streaming/allow-custom-fetcher/src/core/streaming-fetcher/Stream.ts +++ b/seed/ts-sdk/streaming/allow-custom-fetcher/src/core/streaming-fetcher/Stream.ts @@ -11,6 +11,10 @@ export declare namespace Stream { * The event shape to use for parsing the stream data. */ eventShape: JsonEvent | SseEvent; + /** + * An abort signal to stop the stream. + */ + signal?: AbortSignal; } interface JsonEvent { @@ -36,8 +40,9 @@ export class Stream implements AsyncIterable { private prefix: string | undefined; private messageTerminator: string; private streamTerminator: string | undefined; + private controller: AbortController = new AbortController(); - constructor({ stream, parse, eventShape }: Stream.Args & { parse: (val: unknown) => Promise }) { + constructor({ stream, parse, eventShape, signal }: Stream.Args & { parse: (val: unknown) => Promise }) { this.stream = stream; this.parse = parse; if (eventShape.type === "sse") { @@ -47,9 +52,11 @@ export class Stream implements AsyncIterable { } else { this.messageTerminator = eventShape.messageTerminator; } + signal?.addEventListener("abort", () => this.controller.abort()); } private async *iterMessages(): AsyncGenerator { + this.controller.signal; const stream = readableStreamAsyncIterable(this.stream); let buf = ""; let prefixSeen = false; diff --git a/seed/ts-sdk/streaming/no-custom-config/src/Client.ts b/seed/ts-sdk/streaming/no-custom-config/src/Client.ts index fdd242702e..22005ee06a 100644 --- a/seed/ts-sdk/streaming/no-custom-config/src/Client.ts +++ b/seed/ts-sdk/streaming/no-custom-config/src/Client.ts @@ -13,6 +13,7 @@ export declare namespace SeedStreamingClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/streaming/no-custom-config/src/api/resources/dummy/client/Client.ts b/seed/ts-sdk/streaming/no-custom-config/src/api/resources/dummy/client/Client.ts index cf775985f0..69dc34c3c2 100644 --- a/seed/ts-sdk/streaming/no-custom-config/src/api/resources/dummy/client/Client.ts +++ b/seed/ts-sdk/streaming/no-custom-config/src/api/resources/dummy/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace Dummy { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -42,6 +43,7 @@ export class Dummy { responseType: "streaming", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return new core.Stream({ diff --git a/seed/ts-sdk/streaming/no-custom-config/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/streaming/no-custom-config/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/streaming/no-custom-config/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/streaming/no-custom-config/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/streaming/no-custom-config/src/core/streaming-fetcher/Stream.ts b/seed/ts-sdk/streaming/no-custom-config/src/core/streaming-fetcher/Stream.ts index a0433b3267..5fcb49684a 100644 --- a/seed/ts-sdk/streaming/no-custom-config/src/core/streaming-fetcher/Stream.ts +++ b/seed/ts-sdk/streaming/no-custom-config/src/core/streaming-fetcher/Stream.ts @@ -11,6 +11,10 @@ export declare namespace Stream { * The event shape to use for parsing the stream data. */ eventShape: JsonEvent | SseEvent; + /** + * An abort signal to stop the stream. + */ + signal?: AbortSignal; } interface JsonEvent { @@ -36,8 +40,9 @@ export class Stream implements AsyncIterable { private prefix: string | undefined; private messageTerminator: string; private streamTerminator: string | undefined; + private controller: AbortController = new AbortController(); - constructor({ stream, parse, eventShape }: Stream.Args & { parse: (val: unknown) => Promise }) { + constructor({ stream, parse, eventShape, signal }: Stream.Args & { parse: (val: unknown) => Promise }) { this.stream = stream; this.parse = parse; if (eventShape.type === "sse") { @@ -47,9 +52,11 @@ export class Stream implements AsyncIterable { } else { this.messageTerminator = eventShape.messageTerminator; } + signal?.addEventListener("abort", () => this.controller.abort()); } private async *iterMessages(): AsyncGenerator { + this.controller.signal; const stream = readableStreamAsyncIterable(this.stream); let buf = ""; let prefixSeen = false; diff --git a/seed/ts-sdk/trace/exhaustive/src/Client.ts b/seed/ts-sdk/trace/exhaustive/src/Client.ts index 7c0679eba6..161c95057c 100644 --- a/seed/ts-sdk/trace/exhaustive/src/Client.ts +++ b/seed/ts-sdk/trace/exhaustive/src/Client.ts @@ -23,6 +23,7 @@ export declare namespace SeedTraceClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/trace/exhaustive/src/api/resources/admin/client/Client.ts b/seed/ts-sdk/trace/exhaustive/src/api/resources/admin/client/Client.ts index 36f1b5c721..e3c8a5bea4 100644 --- a/seed/ts-sdk/trace/exhaustive/src/api/resources/admin/client/Client.ts +++ b/seed/ts-sdk/trace/exhaustive/src/api/resources/admin/client/Client.ts @@ -18,6 +18,7 @@ export declare namespace Admin { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -62,6 +63,7 @@ export class Admin { timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : undefined, maxRetries: requestOptions?.maxRetries, withCredentials: true, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -117,6 +119,7 @@ export class Admin { timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : undefined, maxRetries: requestOptions?.maxRetries, withCredentials: true, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -169,6 +172,7 @@ export class Admin { timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : undefined, maxRetries: requestOptions?.maxRetries, withCredentials: true, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -224,6 +228,7 @@ export class Admin { timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : undefined, maxRetries: requestOptions?.maxRetries, withCredentials: true, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -293,6 +298,7 @@ export class Admin { timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : undefined, maxRetries: requestOptions?.maxRetries, withCredentials: true, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -357,6 +363,7 @@ export class Admin { timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : undefined, maxRetries: requestOptions?.maxRetries, withCredentials: true, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -425,6 +432,7 @@ export class Admin { timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : undefined, maxRetries: requestOptions?.maxRetries, withCredentials: true, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -487,6 +495,7 @@ export class Admin { timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : undefined, maxRetries: requestOptions?.maxRetries, withCredentials: true, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { diff --git a/seed/ts-sdk/trace/exhaustive/src/api/resources/homepage/client/Client.ts b/seed/ts-sdk/trace/exhaustive/src/api/resources/homepage/client/Client.ts index cfacb55e03..5ce6498358 100644 --- a/seed/ts-sdk/trace/exhaustive/src/api/resources/homepage/client/Client.ts +++ b/seed/ts-sdk/trace/exhaustive/src/api/resources/homepage/client/Client.ts @@ -18,6 +18,7 @@ export declare namespace Homepage { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -55,6 +56,7 @@ export class Homepage { timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : undefined, maxRetries: requestOptions?.maxRetries, withCredentials: true, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -110,6 +112,7 @@ export class Homepage { timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : undefined, maxRetries: requestOptions?.maxRetries, withCredentials: true, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { diff --git a/seed/ts-sdk/trace/exhaustive/src/api/resources/migration/client/Client.ts b/seed/ts-sdk/trace/exhaustive/src/api/resources/migration/client/Client.ts index 63962777f7..af5d97e057 100644 --- a/seed/ts-sdk/trace/exhaustive/src/api/resources/migration/client/Client.ts +++ b/seed/ts-sdk/trace/exhaustive/src/api/resources/migration/client/Client.ts @@ -18,6 +18,7 @@ export declare namespace Migration { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -61,6 +62,7 @@ export class Migration { timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : undefined, maxRetries: requestOptions?.maxRetries, withCredentials: true, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { diff --git a/seed/ts-sdk/trace/exhaustive/src/api/resources/playlist/client/Client.ts b/seed/ts-sdk/trace/exhaustive/src/api/resources/playlist/client/Client.ts index aed96a35ac..dc4f290814 100644 --- a/seed/ts-sdk/trace/exhaustive/src/api/resources/playlist/client/Client.ts +++ b/seed/ts-sdk/trace/exhaustive/src/api/resources/playlist/client/Client.ts @@ -18,6 +18,7 @@ export declare namespace Playlist { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -77,6 +78,7 @@ export class Playlist { timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : undefined, maxRetries: requestOptions?.maxRetries, withCredentials: true, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -162,6 +164,7 @@ export class Playlist { timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : undefined, maxRetries: requestOptions?.maxRetries, withCredentials: true, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -220,6 +223,7 @@ export class Playlist { timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : undefined, maxRetries: requestOptions?.maxRetries, withCredentials: true, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -308,6 +312,7 @@ export class Playlist { timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : undefined, maxRetries: requestOptions?.maxRetries, withCredentials: true, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -384,6 +389,7 @@ export class Playlist { timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : undefined, maxRetries: requestOptions?.maxRetries, withCredentials: true, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { diff --git a/seed/ts-sdk/trace/exhaustive/src/api/resources/problem/client/Client.ts b/seed/ts-sdk/trace/exhaustive/src/api/resources/problem/client/Client.ts index 61b899b9b9..1eed5d88b3 100644 --- a/seed/ts-sdk/trace/exhaustive/src/api/resources/problem/client/Client.ts +++ b/seed/ts-sdk/trace/exhaustive/src/api/resources/problem/client/Client.ts @@ -18,6 +18,7 @@ export declare namespace Problem { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -90,6 +91,7 @@ export class Problem { timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : undefined, maxRetries: requestOptions?.maxRetries, withCredentials: true, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -177,6 +179,7 @@ export class Problem { timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : undefined, maxRetries: requestOptions?.maxRetries, withCredentials: true, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -231,6 +234,7 @@ export class Problem { timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : undefined, maxRetries: requestOptions?.maxRetries, withCredentials: true, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -292,6 +296,7 @@ export class Problem { timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : undefined, maxRetries: requestOptions?.maxRetries, withCredentials: true, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { diff --git a/seed/ts-sdk/trace/exhaustive/src/api/resources/submission/client/Client.ts b/seed/ts-sdk/trace/exhaustive/src/api/resources/submission/client/Client.ts index bf189192d8..1fd2dad500 100644 --- a/seed/ts-sdk/trace/exhaustive/src/api/resources/submission/client/Client.ts +++ b/seed/ts-sdk/trace/exhaustive/src/api/resources/submission/client/Client.ts @@ -18,6 +18,7 @@ export declare namespace Submission { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -64,6 +65,7 @@ export class Submission { timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : undefined, maxRetries: requestOptions?.maxRetries, withCredentials: true, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -120,6 +122,7 @@ export class Submission { timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : undefined, maxRetries: requestOptions?.maxRetries, withCredentials: true, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -174,6 +177,7 @@ export class Submission { timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : undefined, maxRetries: requestOptions?.maxRetries, withCredentials: true, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -224,6 +228,7 @@ export class Submission { timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : undefined, maxRetries: requestOptions?.maxRetries, withCredentials: true, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { diff --git a/seed/ts-sdk/trace/exhaustive/src/api/resources/sysprop/client/Client.ts b/seed/ts-sdk/trace/exhaustive/src/api/resources/sysprop/client/Client.ts index ebf206a3c7..b798720102 100644 --- a/seed/ts-sdk/trace/exhaustive/src/api/resources/sysprop/client/Client.ts +++ b/seed/ts-sdk/trace/exhaustive/src/api/resources/sysprop/client/Client.ts @@ -18,6 +18,7 @@ export declare namespace Sysprop { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -61,6 +62,7 @@ export class Sysprop { timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : undefined, maxRetries: requestOptions?.maxRetries, withCredentials: true, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -108,6 +110,7 @@ export class Sysprop { timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : undefined, maxRetries: requestOptions?.maxRetries, withCredentials: true, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { diff --git a/seed/ts-sdk/trace/exhaustive/src/api/resources/v2/client/Client.ts b/seed/ts-sdk/trace/exhaustive/src/api/resources/v2/client/Client.ts index 8252a4cfad..5b2d9dc5de 100644 --- a/seed/ts-sdk/trace/exhaustive/src/api/resources/v2/client/Client.ts +++ b/seed/ts-sdk/trace/exhaustive/src/api/resources/v2/client/Client.ts @@ -18,6 +18,7 @@ export declare namespace V2 { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -50,6 +51,7 @@ export class V2 { timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : undefined, maxRetries: requestOptions?.maxRetries, withCredentials: true, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { diff --git a/seed/ts-sdk/trace/exhaustive/src/api/resources/v2/resources/problem/client/Client.ts b/seed/ts-sdk/trace/exhaustive/src/api/resources/v2/resources/problem/client/Client.ts index 0a8c1c9e3f..f04253647c 100644 --- a/seed/ts-sdk/trace/exhaustive/src/api/resources/v2/resources/problem/client/Client.ts +++ b/seed/ts-sdk/trace/exhaustive/src/api/resources/v2/resources/problem/client/Client.ts @@ -18,6 +18,7 @@ export declare namespace Problem { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -59,6 +60,7 @@ export class Problem { timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : undefined, maxRetries: requestOptions?.maxRetries, withCredentials: true, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -111,6 +113,7 @@ export class Problem { timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : undefined, maxRetries: requestOptions?.maxRetries, withCredentials: true, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -165,6 +168,7 @@ export class Problem { timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : undefined, maxRetries: requestOptions?.maxRetries, withCredentials: true, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -223,6 +227,7 @@ export class Problem { timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : undefined, maxRetries: requestOptions?.maxRetries, withCredentials: true, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { diff --git a/seed/ts-sdk/trace/exhaustive/src/api/resources/v2/resources/v3/client/Client.ts b/seed/ts-sdk/trace/exhaustive/src/api/resources/v2/resources/v3/client/Client.ts index 65215204e5..dc68d99d0e 100644 --- a/seed/ts-sdk/trace/exhaustive/src/api/resources/v2/resources/v3/client/Client.ts +++ b/seed/ts-sdk/trace/exhaustive/src/api/resources/v2/resources/v3/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace V3 { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/trace/exhaustive/src/api/resources/v2/resources/v3/resources/problem/client/Client.ts b/seed/ts-sdk/trace/exhaustive/src/api/resources/v2/resources/v3/resources/problem/client/Client.ts index 100dc2b74d..4f1b3992b2 100644 --- a/seed/ts-sdk/trace/exhaustive/src/api/resources/v2/resources/v3/resources/problem/client/Client.ts +++ b/seed/ts-sdk/trace/exhaustive/src/api/resources/v2/resources/v3/resources/problem/client/Client.ts @@ -18,6 +18,7 @@ export declare namespace Problem { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -62,6 +63,7 @@ export class Problem { timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : undefined, maxRetries: requestOptions?.maxRetries, withCredentials: true, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -114,6 +116,7 @@ export class Problem { timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : undefined, maxRetries: requestOptions?.maxRetries, withCredentials: true, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -168,6 +171,7 @@ export class Problem { timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : undefined, maxRetries: requestOptions?.maxRetries, withCredentials: true, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -226,6 +230,7 @@ export class Problem { timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : undefined, maxRetries: requestOptions?.maxRetries, withCredentials: true, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { diff --git a/seed/ts-sdk/trace/exhaustive/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/trace/exhaustive/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/trace/exhaustive/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/trace/exhaustive/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/trace/no-custom-config/src/Client.ts b/seed/ts-sdk/trace/no-custom-config/src/Client.ts index 7c0679eba6..161c95057c 100644 --- a/seed/ts-sdk/trace/no-custom-config/src/Client.ts +++ b/seed/ts-sdk/trace/no-custom-config/src/Client.ts @@ -23,6 +23,7 @@ export declare namespace SeedTraceClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/trace/no-custom-config/src/api/resources/admin/client/Client.ts b/seed/ts-sdk/trace/no-custom-config/src/api/resources/admin/client/Client.ts index 8dc667e58b..e10743e365 100644 --- a/seed/ts-sdk/trace/no-custom-config/src/api/resources/admin/client/Client.ts +++ b/seed/ts-sdk/trace/no-custom-config/src/api/resources/admin/client/Client.ts @@ -19,6 +19,7 @@ export declare namespace Admin { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -64,6 +65,7 @@ export class Admin { body: await serializers.TestSubmissionStatus.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; @@ -134,6 +136,7 @@ export class Admin { body: await serializers.TestSubmissionUpdate.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; @@ -200,6 +203,7 @@ export class Admin { body: await serializers.WorkspaceSubmissionStatus.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; @@ -270,6 +274,7 @@ export class Admin { body: await serializers.WorkspaceSubmissionUpdate.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; @@ -354,6 +359,7 @@ export class Admin { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; @@ -433,6 +439,7 @@ export class Admin { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; @@ -518,6 +525,7 @@ export class Admin { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; @@ -595,6 +603,7 @@ export class Admin { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; diff --git a/seed/ts-sdk/trace/no-custom-config/src/api/resources/homepage/client/Client.ts b/seed/ts-sdk/trace/no-custom-config/src/api/resources/homepage/client/Client.ts index c02b36fe32..d9884a35a8 100644 --- a/seed/ts-sdk/trace/no-custom-config/src/api/resources/homepage/client/Client.ts +++ b/seed/ts-sdk/trace/no-custom-config/src/api/resources/homepage/client/Client.ts @@ -19,6 +19,7 @@ export declare namespace Homepage { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -53,6 +54,7 @@ export class Homepage { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.homepage.getHomepageProblems.Response.parseOrThrow(_response.body, { @@ -120,6 +122,7 @@ export class Homepage { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; diff --git a/seed/ts-sdk/trace/no-custom-config/src/api/resources/migration/client/Client.ts b/seed/ts-sdk/trace/no-custom-config/src/api/resources/migration/client/Client.ts index 9acd8fdb57..343f93c417 100644 --- a/seed/ts-sdk/trace/no-custom-config/src/api/resources/migration/client/Client.ts +++ b/seed/ts-sdk/trace/no-custom-config/src/api/resources/migration/client/Client.ts @@ -19,6 +19,7 @@ export declare namespace Migration { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -61,6 +62,7 @@ export class Migration { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.migration.getAttemptedMigrations.Response.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/trace/no-custom-config/src/api/resources/playlist/client/Client.ts b/seed/ts-sdk/trace/no-custom-config/src/api/resources/playlist/client/Client.ts index 91e80a4e78..3889962d16 100644 --- a/seed/ts-sdk/trace/no-custom-config/src/api/resources/playlist/client/Client.ts +++ b/seed/ts-sdk/trace/no-custom-config/src/api/resources/playlist/client/Client.ts @@ -19,6 +19,7 @@ export declare namespace Playlist { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -77,6 +78,7 @@ export class Playlist { body: await serializers.PlaylistCreateRequest.jsonOrThrow(_body, { unrecognizedObjectKeys: "strip" }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.Playlist.parseOrThrow(_response.body, { @@ -174,6 +176,7 @@ export class Playlist { queryParameters: _queryParams, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.playlist.getPlaylists.Response.parseOrThrow(_response.body, { @@ -247,6 +250,7 @@ export class Playlist { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.Playlist.parseOrThrow(_response.body, { @@ -344,6 +348,7 @@ export class Playlist { : undefined, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.playlist.updatePlaylist.Response.parseOrThrow(_response.body, { @@ -426,6 +431,7 @@ export class Playlist { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; diff --git a/seed/ts-sdk/trace/no-custom-config/src/api/resources/problem/client/Client.ts b/seed/ts-sdk/trace/no-custom-config/src/api/resources/problem/client/Client.ts index adc40b4942..ff1bd2fe45 100644 --- a/seed/ts-sdk/trace/no-custom-config/src/api/resources/problem/client/Client.ts +++ b/seed/ts-sdk/trace/no-custom-config/src/api/resources/problem/client/Client.ts @@ -19,6 +19,7 @@ export declare namespace Problem { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -103,6 +104,7 @@ export class Problem { body: await serializers.CreateProblemRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.CreateProblemResponse.parseOrThrow(_response.body, { @@ -215,6 +217,7 @@ export class Problem { body: await serializers.CreateProblemRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.UpdateProblemResponse.parseOrThrow(_response.body, { @@ -278,6 +281,7 @@ export class Problem { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; @@ -353,6 +357,7 @@ export class Problem { }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.GetDefaultStarterFilesResponse.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/trace/no-custom-config/src/api/resources/submission/client/Client.ts b/seed/ts-sdk/trace/no-custom-config/src/api/resources/submission/client/Client.ts index 3d82a08b7b..3ce979ece8 100644 --- a/seed/ts-sdk/trace/no-custom-config/src/api/resources/submission/client/Client.ts +++ b/seed/ts-sdk/trace/no-custom-config/src/api/resources/submission/client/Client.ts @@ -19,6 +19,7 @@ export declare namespace Submission { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -62,6 +63,7 @@ export class Submission { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.ExecutionSessionResponse.parseOrThrow(_response.body, { @@ -128,6 +130,7 @@ export class Submission { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.submission.getExecutionSession.Response.parseOrThrow(_response.body, { @@ -191,6 +194,7 @@ export class Submission { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; @@ -248,6 +252,7 @@ export class Submission { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.GetExecutionSessionStateResponse.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/trace/no-custom-config/src/api/resources/sysprop/client/Client.ts b/seed/ts-sdk/trace/no-custom-config/src/api/resources/sysprop/client/Client.ts index d97fe7f49e..75aa70cc17 100644 --- a/seed/ts-sdk/trace/no-custom-config/src/api/resources/sysprop/client/Client.ts +++ b/seed/ts-sdk/trace/no-custom-config/src/api/resources/sysprop/client/Client.ts @@ -19,6 +19,7 @@ export declare namespace Sysprop { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -61,6 +62,7 @@ export class Sysprop { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; @@ -118,6 +120,7 @@ export class Sysprop { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.sysprop.getNumWarmInstances.Response.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/trace/no-custom-config/src/api/resources/v2/client/Client.ts b/seed/ts-sdk/trace/no-custom-config/src/api/resources/v2/client/Client.ts index b25e65debd..1e6c99b716 100644 --- a/seed/ts-sdk/trace/no-custom-config/src/api/resources/v2/client/Client.ts +++ b/seed/ts-sdk/trace/no-custom-config/src/api/resources/v2/client/Client.ts @@ -18,6 +18,7 @@ export declare namespace V2 { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -49,6 +50,7 @@ export class V2 { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; diff --git a/seed/ts-sdk/trace/no-custom-config/src/api/resources/v2/resources/problem/client/Client.ts b/seed/ts-sdk/trace/no-custom-config/src/api/resources/v2/resources/problem/client/Client.ts index 62784f60b5..b325db4675 100644 --- a/seed/ts-sdk/trace/no-custom-config/src/api/resources/v2/resources/problem/client/Client.ts +++ b/seed/ts-sdk/trace/no-custom-config/src/api/resources/v2/resources/problem/client/Client.ts @@ -19,6 +19,7 @@ export declare namespace Problem { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -57,6 +58,7 @@ export class Problem { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.v2.problem.getLightweightProblems.Response.parseOrThrow(_response.body, { @@ -119,6 +121,7 @@ export class Problem { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.v2.problem.getProblems.Response.parseOrThrow(_response.body, { @@ -185,6 +188,7 @@ export class Problem { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.v2.ProblemInfoV2.parseOrThrow(_response.body, { @@ -255,6 +259,7 @@ export class Problem { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.v2.ProblemInfoV2.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/trace/no-custom-config/src/api/resources/v2/resources/v3/client/Client.ts b/seed/ts-sdk/trace/no-custom-config/src/api/resources/v2/resources/v3/client/Client.ts index 65215204e5..dc68d99d0e 100644 --- a/seed/ts-sdk/trace/no-custom-config/src/api/resources/v2/resources/v3/client/Client.ts +++ b/seed/ts-sdk/trace/no-custom-config/src/api/resources/v2/resources/v3/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace V3 { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/trace/no-custom-config/src/api/resources/v2/resources/v3/resources/problem/client/Client.ts b/seed/ts-sdk/trace/no-custom-config/src/api/resources/v2/resources/v3/resources/problem/client/Client.ts index 2805739f6a..eb92a47ba9 100644 --- a/seed/ts-sdk/trace/no-custom-config/src/api/resources/v2/resources/v3/resources/problem/client/Client.ts +++ b/seed/ts-sdk/trace/no-custom-config/src/api/resources/v2/resources/v3/resources/problem/client/Client.ts @@ -19,6 +19,7 @@ export declare namespace Problem { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -57,6 +58,7 @@ export class Problem { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.v2.v3.problem.getLightweightProblems.Response.parseOrThrow(_response.body, { @@ -119,6 +121,7 @@ export class Problem { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.v2.v3.problem.getProblems.Response.parseOrThrow(_response.body, { @@ -185,6 +188,7 @@ export class Problem { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.v2.v3.ProblemInfoV2.parseOrThrow(_response.body, { @@ -255,6 +259,7 @@ export class Problem { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.v2.v3.ProblemInfoV2.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/trace/no-custom-config/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/trace/no-custom-config/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/trace/no-custom-config/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/trace/no-custom-config/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/trace/no-zurg-no-throwing/src/Client.ts b/seed/ts-sdk/trace/no-zurg-no-throwing/src/Client.ts index 7c0679eba6..161c95057c 100644 --- a/seed/ts-sdk/trace/no-zurg-no-throwing/src/Client.ts +++ b/seed/ts-sdk/trace/no-zurg-no-throwing/src/Client.ts @@ -23,6 +23,7 @@ export declare namespace SeedTraceClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/trace/no-zurg-no-throwing/src/api/resources/admin/client/Client.ts b/seed/ts-sdk/trace/no-zurg-no-throwing/src/api/resources/admin/client/Client.ts index d051896cb9..31c9247744 100644 --- a/seed/ts-sdk/trace/no-zurg-no-throwing/src/api/resources/admin/client/Client.ts +++ b/seed/ts-sdk/trace/no-zurg-no-throwing/src/api/resources/admin/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace Admin { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -60,6 +61,7 @@ export class Admin { body: request, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -115,6 +117,7 @@ export class Admin { body: request, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -166,6 +169,7 @@ export class Admin { body: request, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -221,6 +225,7 @@ export class Admin { body: request, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -290,6 +295,7 @@ export class Admin { body: request, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -354,6 +360,7 @@ export class Admin { body: request, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -422,6 +429,7 @@ export class Admin { body: request, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -482,6 +490,7 @@ export class Admin { body: request, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { diff --git a/seed/ts-sdk/trace/no-zurg-no-throwing/src/api/resources/homepage/client/Client.ts b/seed/ts-sdk/trace/no-zurg-no-throwing/src/api/resources/homepage/client/Client.ts index 868aaadff8..6679a0bdd8 100644 --- a/seed/ts-sdk/trace/no-zurg-no-throwing/src/api/resources/homepage/client/Client.ts +++ b/seed/ts-sdk/trace/no-zurg-no-throwing/src/api/resources/homepage/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace Homepage { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -53,6 +54,7 @@ export class Homepage { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -100,6 +102,7 @@ export class Homepage { body: request, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { diff --git a/seed/ts-sdk/trace/no-zurg-no-throwing/src/api/resources/migration/client/Client.ts b/seed/ts-sdk/trace/no-zurg-no-throwing/src/api/resources/migration/client/Client.ts index 1149cfaa22..fc355fad60 100644 --- a/seed/ts-sdk/trace/no-zurg-no-throwing/src/api/resources/migration/client/Client.ts +++ b/seed/ts-sdk/trace/no-zurg-no-throwing/src/api/resources/migration/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace Migration { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -59,6 +60,7 @@ export class Migration { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { diff --git a/seed/ts-sdk/trace/no-zurg-no-throwing/src/api/resources/playlist/client/Client.ts b/seed/ts-sdk/trace/no-zurg-no-throwing/src/api/resources/playlist/client/Client.ts index 6bfdaad843..d1a9dd51fc 100644 --- a/seed/ts-sdk/trace/no-zurg-no-throwing/src/api/resources/playlist/client/Client.ts +++ b/seed/ts-sdk/trace/no-zurg-no-throwing/src/api/resources/playlist/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace Playlist { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -75,6 +76,7 @@ export class Playlist { body: _body, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -154,6 +156,7 @@ export class Playlist { queryParameters: _queryParams, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -204,6 +207,7 @@ export class Playlist { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -271,6 +275,7 @@ export class Playlist { body: request != null ? request : undefined, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -331,6 +336,7 @@ export class Playlist { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { diff --git a/seed/ts-sdk/trace/no-zurg-no-throwing/src/api/resources/problem/client/Client.ts b/seed/ts-sdk/trace/no-zurg-no-throwing/src/api/resources/problem/client/Client.ts index 61fa177f9a..eba0b2deb6 100644 --- a/seed/ts-sdk/trace/no-zurg-no-throwing/src/api/resources/problem/client/Client.ts +++ b/seed/ts-sdk/trace/no-zurg-no-throwing/src/api/resources/problem/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace Problem { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -101,6 +102,7 @@ export class Problem { body: request, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -195,6 +197,7 @@ export class Problem { body: request, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -243,6 +246,7 @@ export class Problem { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -305,6 +309,7 @@ export class Problem { body: request, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { diff --git a/seed/ts-sdk/trace/no-zurg-no-throwing/src/api/resources/submission/client/Client.ts b/seed/ts-sdk/trace/no-zurg-no-throwing/src/api/resources/submission/client/Client.ts index 7b36f5921f..a7a4863145 100644 --- a/seed/ts-sdk/trace/no-zurg-no-throwing/src/api/resources/submission/client/Client.ts +++ b/seed/ts-sdk/trace/no-zurg-no-throwing/src/api/resources/submission/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace Submission { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -62,6 +63,7 @@ export class Submission { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -112,6 +114,7 @@ export class Submission { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -160,6 +163,7 @@ export class Submission { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -209,6 +213,7 @@ export class Submission { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { diff --git a/seed/ts-sdk/trace/no-zurg-no-throwing/src/api/resources/sysprop/client/Client.ts b/seed/ts-sdk/trace/no-zurg-no-throwing/src/api/resources/sysprop/client/Client.ts index 4ffe8f5742..2e1911b554 100644 --- a/seed/ts-sdk/trace/no-zurg-no-throwing/src/api/resources/sysprop/client/Client.ts +++ b/seed/ts-sdk/trace/no-zurg-no-throwing/src/api/resources/sysprop/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace Sysprop { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -57,6 +58,7 @@ export class Sysprop { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -103,6 +105,7 @@ export class Sysprop { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { diff --git a/seed/ts-sdk/trace/no-zurg-no-throwing/src/api/resources/v2/client/Client.ts b/seed/ts-sdk/trace/no-zurg-no-throwing/src/api/resources/v2/client/Client.ts index 898ef5b0db..78bd6722dc 100644 --- a/seed/ts-sdk/trace/no-zurg-no-throwing/src/api/resources/v2/client/Client.ts +++ b/seed/ts-sdk/trace/no-zurg-no-throwing/src/api/resources/v2/client/Client.ts @@ -18,6 +18,7 @@ export declare namespace V2 { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -49,6 +50,7 @@ export class V2 { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { diff --git a/seed/ts-sdk/trace/no-zurg-no-throwing/src/api/resources/v2/resources/problem/client/Client.ts b/seed/ts-sdk/trace/no-zurg-no-throwing/src/api/resources/v2/resources/problem/client/Client.ts index 7bdcac85c0..585ee89d77 100644 --- a/seed/ts-sdk/trace/no-zurg-no-throwing/src/api/resources/v2/resources/problem/client/Client.ts +++ b/seed/ts-sdk/trace/no-zurg-no-throwing/src/api/resources/v2/resources/problem/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace Problem { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -57,6 +58,7 @@ export class Problem { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -103,6 +105,7 @@ export class Problem { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -151,6 +154,7 @@ export class Problem { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -203,6 +207,7 @@ export class Problem { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { diff --git a/seed/ts-sdk/trace/no-zurg-no-throwing/src/api/resources/v2/resources/v3/client/Client.ts b/seed/ts-sdk/trace/no-zurg-no-throwing/src/api/resources/v2/resources/v3/client/Client.ts index 65215204e5..dc68d99d0e 100644 --- a/seed/ts-sdk/trace/no-zurg-no-throwing/src/api/resources/v2/resources/v3/client/Client.ts +++ b/seed/ts-sdk/trace/no-zurg-no-throwing/src/api/resources/v2/resources/v3/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace V3 { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/trace/no-zurg-no-throwing/src/api/resources/v2/resources/v3/resources/problem/client/Client.ts b/seed/ts-sdk/trace/no-zurg-no-throwing/src/api/resources/v2/resources/v3/resources/problem/client/Client.ts index c3bc722f38..10debf231c 100644 --- a/seed/ts-sdk/trace/no-zurg-no-throwing/src/api/resources/v2/resources/v3/resources/problem/client/Client.ts +++ b/seed/ts-sdk/trace/no-zurg-no-throwing/src/api/resources/v2/resources/v3/resources/problem/client/Client.ts @@ -17,6 +17,7 @@ export declare namespace Problem { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -60,6 +61,7 @@ export class Problem { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -106,6 +108,7 @@ export class Problem { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -154,6 +157,7 @@ export class Problem { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { @@ -206,6 +210,7 @@ export class Problem { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return { diff --git a/seed/ts-sdk/trace/no-zurg-no-throwing/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/trace/no-zurg-no-throwing/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/trace/no-zurg-no-throwing/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/trace/no-zurg-no-throwing/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/trace/no-zurg-trace/src/Client.ts b/seed/ts-sdk/trace/no-zurg-trace/src/Client.ts index 7c0679eba6..161c95057c 100644 --- a/seed/ts-sdk/trace/no-zurg-trace/src/Client.ts +++ b/seed/ts-sdk/trace/no-zurg-trace/src/Client.ts @@ -23,6 +23,7 @@ export declare namespace SeedTraceClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/trace/no-zurg-trace/src/api/resources/admin/client/Client.ts b/seed/ts-sdk/trace/no-zurg-trace/src/api/resources/admin/client/Client.ts index 5d7c63d9c3..82536bd3f0 100644 --- a/seed/ts-sdk/trace/no-zurg-trace/src/api/resources/admin/client/Client.ts +++ b/seed/ts-sdk/trace/no-zurg-trace/src/api/resources/admin/client/Client.ts @@ -18,6 +18,7 @@ export declare namespace Admin { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -61,6 +62,7 @@ export class Admin { body: request, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; @@ -129,6 +131,7 @@ export class Admin { body: request, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; @@ -193,6 +196,7 @@ export class Admin { body: request, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; @@ -261,6 +265,7 @@ export class Admin { body: request, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; @@ -343,6 +348,7 @@ export class Admin { body: request, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; @@ -420,6 +426,7 @@ export class Admin { body: request, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; @@ -501,6 +508,7 @@ export class Admin { body: request, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; @@ -574,6 +582,7 @@ export class Admin { body: request, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; diff --git a/seed/ts-sdk/trace/no-zurg-trace/src/api/resources/homepage/client/Client.ts b/seed/ts-sdk/trace/no-zurg-trace/src/api/resources/homepage/client/Client.ts index d9797c0072..9c4833af39 100644 --- a/seed/ts-sdk/trace/no-zurg-trace/src/api/resources/homepage/client/Client.ts +++ b/seed/ts-sdk/trace/no-zurg-trace/src/api/resources/homepage/client/Client.ts @@ -18,6 +18,7 @@ export declare namespace Homepage { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -52,6 +53,7 @@ export class Homepage { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return _response.body as SeedTrace.ProblemId[]; @@ -112,6 +114,7 @@ export class Homepage { body: request, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; diff --git a/seed/ts-sdk/trace/no-zurg-trace/src/api/resources/migration/client/Client.ts b/seed/ts-sdk/trace/no-zurg-trace/src/api/resources/migration/client/Client.ts index ee1c5f1748..b65c9499be 100644 --- a/seed/ts-sdk/trace/no-zurg-trace/src/api/resources/migration/client/Client.ts +++ b/seed/ts-sdk/trace/no-zurg-trace/src/api/resources/migration/client/Client.ts @@ -18,6 +18,7 @@ export declare namespace Migration { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -60,6 +61,7 @@ export class Migration { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return _response.body as SeedTrace.Migration[]; diff --git a/seed/ts-sdk/trace/no-zurg-trace/src/api/resources/playlist/client/Client.ts b/seed/ts-sdk/trace/no-zurg-trace/src/api/resources/playlist/client/Client.ts index f201e96f0b..86ca480236 100644 --- a/seed/ts-sdk/trace/no-zurg-trace/src/api/resources/playlist/client/Client.ts +++ b/seed/ts-sdk/trace/no-zurg-trace/src/api/resources/playlist/client/Client.ts @@ -18,6 +18,7 @@ export declare namespace Playlist { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -76,6 +77,7 @@ export class Playlist { body: _body, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return _response.body as SeedTrace.Playlist; @@ -168,6 +170,7 @@ export class Playlist { queryParameters: _queryParams, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return _response.body as SeedTrace.Playlist[]; @@ -234,6 +237,7 @@ export class Playlist { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return _response.body as SeedTrace.Playlist; @@ -314,6 +318,7 @@ export class Playlist { body: request != null ? request : undefined, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return _response.body as SeedTrace.Playlist | undefined; @@ -384,6 +389,7 @@ export class Playlist { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; diff --git a/seed/ts-sdk/trace/no-zurg-trace/src/api/resources/problem/client/Client.ts b/seed/ts-sdk/trace/no-zurg-trace/src/api/resources/problem/client/Client.ts index 2c9d568055..903e672be2 100644 --- a/seed/ts-sdk/trace/no-zurg-trace/src/api/resources/problem/client/Client.ts +++ b/seed/ts-sdk/trace/no-zurg-trace/src/api/resources/problem/client/Client.ts @@ -18,6 +18,7 @@ export declare namespace Problem { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -102,6 +103,7 @@ export class Problem { body: request, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return _response.body as SeedTrace.CreateProblemResponse; @@ -209,6 +211,7 @@ export class Problem { body: request, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return _response.body as SeedTrace.UpdateProblemResponse; @@ -267,6 +270,7 @@ export class Problem { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; @@ -340,6 +344,7 @@ export class Problem { body: request, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return _response.body as SeedTrace.GetDefaultStarterFilesResponse; diff --git a/seed/ts-sdk/trace/no-zurg-trace/src/api/resources/submission/client/Client.ts b/seed/ts-sdk/trace/no-zurg-trace/src/api/resources/submission/client/Client.ts index 99557d41e7..1a68fb649c 100644 --- a/seed/ts-sdk/trace/no-zurg-trace/src/api/resources/submission/client/Client.ts +++ b/seed/ts-sdk/trace/no-zurg-trace/src/api/resources/submission/client/Client.ts @@ -18,6 +18,7 @@ export declare namespace Submission { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -61,6 +62,7 @@ export class Submission { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return _response.body as SeedTrace.ExecutionSessionResponse; @@ -122,6 +124,7 @@ export class Submission { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return _response.body as SeedTrace.ExecutionSessionResponse | undefined; @@ -180,6 +183,7 @@ export class Submission { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; @@ -237,6 +241,7 @@ export class Submission { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return _response.body as SeedTrace.GetExecutionSessionStateResponse; diff --git a/seed/ts-sdk/trace/no-zurg-trace/src/api/resources/sysprop/client/Client.ts b/seed/ts-sdk/trace/no-zurg-trace/src/api/resources/sysprop/client/Client.ts index e0c41dd3ea..341ffb52c5 100644 --- a/seed/ts-sdk/trace/no-zurg-trace/src/api/resources/sysprop/client/Client.ts +++ b/seed/ts-sdk/trace/no-zurg-trace/src/api/resources/sysprop/client/Client.ts @@ -18,6 +18,7 @@ export declare namespace Sysprop { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -58,6 +59,7 @@ export class Sysprop { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; @@ -115,6 +117,7 @@ export class Sysprop { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return _response.body as Record; diff --git a/seed/ts-sdk/trace/no-zurg-trace/src/api/resources/v2/client/Client.ts b/seed/ts-sdk/trace/no-zurg-trace/src/api/resources/v2/client/Client.ts index b25e65debd..1e6c99b716 100644 --- a/seed/ts-sdk/trace/no-zurg-trace/src/api/resources/v2/client/Client.ts +++ b/seed/ts-sdk/trace/no-zurg-trace/src/api/resources/v2/client/Client.ts @@ -18,6 +18,7 @@ export declare namespace V2 { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -49,6 +50,7 @@ export class V2 { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; diff --git a/seed/ts-sdk/trace/no-zurg-trace/src/api/resources/v2/resources/problem/client/Client.ts b/seed/ts-sdk/trace/no-zurg-trace/src/api/resources/v2/resources/problem/client/Client.ts index 56dea063cd..f66743ff22 100644 --- a/seed/ts-sdk/trace/no-zurg-trace/src/api/resources/v2/resources/problem/client/Client.ts +++ b/seed/ts-sdk/trace/no-zurg-trace/src/api/resources/v2/resources/problem/client/Client.ts @@ -18,6 +18,7 @@ export declare namespace Problem { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -56,6 +57,7 @@ export class Problem { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return _response.body as SeedTrace.v2.LightweightProblemInfoV2[]; @@ -113,6 +115,7 @@ export class Problem { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return _response.body as SeedTrace.v2.ProblemInfoV2[]; @@ -174,6 +177,7 @@ export class Problem { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return _response.body as SeedTrace.v2.ProblemInfoV2; @@ -239,6 +243,7 @@ export class Problem { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return _response.body as SeedTrace.v2.ProblemInfoV2; diff --git a/seed/ts-sdk/trace/no-zurg-trace/src/api/resources/v2/resources/v3/client/Client.ts b/seed/ts-sdk/trace/no-zurg-trace/src/api/resources/v2/resources/v3/client/Client.ts index 65215204e5..dc68d99d0e 100644 --- a/seed/ts-sdk/trace/no-zurg-trace/src/api/resources/v2/resources/v3/client/Client.ts +++ b/seed/ts-sdk/trace/no-zurg-trace/src/api/resources/v2/resources/v3/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace V3 { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/trace/no-zurg-trace/src/api/resources/v2/resources/v3/resources/problem/client/Client.ts b/seed/ts-sdk/trace/no-zurg-trace/src/api/resources/v2/resources/v3/resources/problem/client/Client.ts index 5dec401a35..118396c7fc 100644 --- a/seed/ts-sdk/trace/no-zurg-trace/src/api/resources/v2/resources/v3/resources/problem/client/Client.ts +++ b/seed/ts-sdk/trace/no-zurg-trace/src/api/resources/v2/resources/v3/resources/problem/client/Client.ts @@ -18,6 +18,7 @@ export declare namespace Problem { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -56,6 +57,7 @@ export class Problem { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return _response.body as SeedTrace.v2.v3.LightweightProblemInfoV2[]; @@ -113,6 +115,7 @@ export class Problem { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return _response.body as SeedTrace.v2.v3.ProblemInfoV2[]; @@ -174,6 +177,7 @@ export class Problem { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return _response.body as SeedTrace.v2.v3.ProblemInfoV2; @@ -239,6 +243,7 @@ export class Problem { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return _response.body as SeedTrace.v2.v3.ProblemInfoV2; diff --git a/seed/ts-sdk/trace/no-zurg-trace/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/trace/no-zurg-trace/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/trace/no-zurg-trace/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/trace/no-zurg-trace/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/undiscriminated-unions/no-custom-config/src/Client.ts b/seed/ts-sdk/undiscriminated-unions/no-custom-config/src/Client.ts index 004d8f61c2..db8eda9ab6 100644 --- a/seed/ts-sdk/undiscriminated-unions/no-custom-config/src/Client.ts +++ b/seed/ts-sdk/undiscriminated-unions/no-custom-config/src/Client.ts @@ -13,6 +13,7 @@ export declare namespace SeedUndiscriminatedUnionsClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/undiscriminated-unions/no-custom-config/src/api/resources/union/client/Client.ts b/seed/ts-sdk/undiscriminated-unions/no-custom-config/src/api/resources/union/client/Client.ts index 4b21f3171b..06637f78fd 100644 --- a/seed/ts-sdk/undiscriminated-unions/no-custom-config/src/api/resources/union/client/Client.ts +++ b/seed/ts-sdk/undiscriminated-unions/no-custom-config/src/api/resources/union/client/Client.ts @@ -15,6 +15,7 @@ export declare namespace Union { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -46,6 +47,7 @@ export class Union { body: await serializers.MyUnion.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.MyUnion.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/undiscriminated-unions/no-custom-config/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/undiscriminated-unions/no-custom-config/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/undiscriminated-unions/no-custom-config/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/undiscriminated-unions/no-custom-config/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/undiscriminated-unions/skip-response-validation/src/Client.ts b/seed/ts-sdk/undiscriminated-unions/skip-response-validation/src/Client.ts index 004d8f61c2..db8eda9ab6 100644 --- a/seed/ts-sdk/undiscriminated-unions/skip-response-validation/src/Client.ts +++ b/seed/ts-sdk/undiscriminated-unions/skip-response-validation/src/Client.ts @@ -13,6 +13,7 @@ export declare namespace SeedUndiscriminatedUnionsClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/undiscriminated-unions/skip-response-validation/src/api/resources/union/client/Client.ts b/seed/ts-sdk/undiscriminated-unions/skip-response-validation/src/api/resources/union/client/Client.ts index 0589a1d667..30ae3dca66 100644 --- a/seed/ts-sdk/undiscriminated-unions/skip-response-validation/src/api/resources/union/client/Client.ts +++ b/seed/ts-sdk/undiscriminated-unions/skip-response-validation/src/api/resources/union/client/Client.ts @@ -15,6 +15,7 @@ export declare namespace Union { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -46,6 +47,7 @@ export class Union { body: await serializers.MyUnion.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.MyUnion.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/undiscriminated-unions/skip-response-validation/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/undiscriminated-unions/skip-response-validation/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/undiscriminated-unions/skip-response-validation/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/undiscriminated-unions/skip-response-validation/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/unions/src/Client.ts b/seed/ts-sdk/unions/src/Client.ts index 67dede57c4..f6bfb70d9a 100644 --- a/seed/ts-sdk/unions/src/Client.ts +++ b/seed/ts-sdk/unions/src/Client.ts @@ -13,6 +13,7 @@ export declare namespace SeedUnionsClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/unions/src/api/resources/union/client/Client.ts b/seed/ts-sdk/unions/src/api/resources/union/client/Client.ts index 44ed5083d2..3c384ec36c 100644 --- a/seed/ts-sdk/unions/src/api/resources/union/client/Client.ts +++ b/seed/ts-sdk/unions/src/api/resources/union/client/Client.ts @@ -16,6 +16,7 @@ export declare namespace Union { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -43,6 +44,7 @@ export class Union { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.Shape.parseOrThrow(_response.body, { @@ -101,6 +103,7 @@ export class Union { body: await serializers.Shape.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.union.update.Response.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/unions/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/unions/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/unions/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/unions/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/unknown/no-custom-config/src/Client.ts b/seed/ts-sdk/unknown/no-custom-config/src/Client.ts index 87464db022..608f612066 100644 --- a/seed/ts-sdk/unknown/no-custom-config/src/Client.ts +++ b/seed/ts-sdk/unknown/no-custom-config/src/Client.ts @@ -13,6 +13,7 @@ export declare namespace SeedUnknownAsAnyClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/unknown/no-custom-config/src/api/resources/unknown/client/Client.ts b/seed/ts-sdk/unknown/no-custom-config/src/api/resources/unknown/client/Client.ts index 46771f8b43..8be6f723c4 100644 --- a/seed/ts-sdk/unknown/no-custom-config/src/api/resources/unknown/client/Client.ts +++ b/seed/ts-sdk/unknown/no-custom-config/src/api/resources/unknown/client/Client.ts @@ -14,6 +14,7 @@ export declare namespace Unknown { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -44,6 +45,7 @@ export class Unknown { body: request, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.unknown.post.Response.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/unknown/no-custom-config/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/unknown/no-custom-config/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/unknown/no-custom-config/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/unknown/no-custom-config/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/unknown/unknown-as-any/src/Client.ts b/seed/ts-sdk/unknown/unknown-as-any/src/Client.ts index 87464db022..608f612066 100644 --- a/seed/ts-sdk/unknown/unknown-as-any/src/Client.ts +++ b/seed/ts-sdk/unknown/unknown-as-any/src/Client.ts @@ -13,6 +13,7 @@ export declare namespace SeedUnknownAsAnyClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/unknown/unknown-as-any/src/api/resources/unknown/client/Client.ts b/seed/ts-sdk/unknown/unknown-as-any/src/api/resources/unknown/client/Client.ts index 4a45724ad3..a9f0eb2989 100644 --- a/seed/ts-sdk/unknown/unknown-as-any/src/api/resources/unknown/client/Client.ts +++ b/seed/ts-sdk/unknown/unknown-as-any/src/api/resources/unknown/client/Client.ts @@ -14,6 +14,7 @@ export declare namespace Unknown { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -44,6 +45,7 @@ export class Unknown { body: request, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.unknown.post.Response.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/unknown/unknown-as-any/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/unknown/unknown-as-any/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/unknown/unknown-as-any/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/unknown/unknown-as-any/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/validation/src/Client.ts b/seed/ts-sdk/validation/src/Client.ts index 34f885f239..83d30d586d 100644 --- a/seed/ts-sdk/validation/src/Client.ts +++ b/seed/ts-sdk/validation/src/Client.ts @@ -16,6 +16,7 @@ export declare namespace SeedValidationClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -51,6 +52,7 @@ export class SeedValidationClient { body: await serializers.CreateRequest.jsonOrThrow(request, { unrecognizedObjectKeys: "strip" }), timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.Type.parseOrThrow(_response.body, { @@ -117,6 +119,7 @@ export class SeedValidationClient { queryParameters: _queryParams, timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return await serializers.Type.parseOrThrow(_response.body, { diff --git a/seed/ts-sdk/validation/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/validation/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/validation/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/validation/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl; diff --git a/seed/ts-sdk/variables/src/Client.ts b/seed/ts-sdk/variables/src/Client.ts index aff6c331dd..ac0f4d973d 100644 --- a/seed/ts-sdk/variables/src/Client.ts +++ b/seed/ts-sdk/variables/src/Client.ts @@ -14,6 +14,7 @@ export declare namespace SeedVariablesClient { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } diff --git a/seed/ts-sdk/variables/src/api/resources/service/client/Client.ts b/seed/ts-sdk/variables/src/api/resources/service/client/Client.ts index ad3bb6d256..5261e38d16 100644 --- a/seed/ts-sdk/variables/src/api/resources/service/client/Client.ts +++ b/seed/ts-sdk/variables/src/api/resources/service/client/Client.ts @@ -15,6 +15,7 @@ export declare namespace Service { interface RequestOptions { timeoutInSeconds?: number; maxRetries?: number; + abortSignal?: AbortSignal; } } @@ -44,6 +45,7 @@ export class Service { contentType: "application/json", timeoutMs: requestOptions?.timeoutInSeconds != null ? requestOptions.timeoutInSeconds * 1000 : 60000, maxRetries: requestOptions?.maxRetries, + abortSignal: requestOptions?.abortSignal, }); if (_response.ok) { return; diff --git a/seed/ts-sdk/variables/src/core/fetcher/Fetcher.ts b/seed/ts-sdk/variables/src/core/fetcher/Fetcher.ts index 8d3dc783a9..265126ea97 100644 --- a/seed/ts-sdk/variables/src/core/fetcher/Fetcher.ts +++ b/seed/ts-sdk/variables/src/core/fetcher/Fetcher.ts @@ -15,6 +15,7 @@ export declare namespace Fetcher { timeoutMs?: number; maxRetries?: number; withCredentials?: boolean; + abortSignal?: AbortSignal; responseType?: "json" | "blob" | "streaming" | "text"; } @@ -103,21 +104,33 @@ async function fetcherImpl(args: Fetcher.Args): Promise => { - const controller = new AbortController(); - let abortId = undefined; + const signals: AbortSignal[] = []; + + // Add timeout signal + let timeoutAbortId: NodeJS.Timeout | undefined = undefined; if (args.timeoutMs != null) { - abortId = setTimeout(() => controller.abort(), args.timeoutMs); + const { signal, abortId } = getTimeoutSignal(args.timeoutMs); + timeoutAbortId = abortId; + signals.push(signal); + } + + // Add arbitrary signal + if (args.abortSignal != null) { + signals.push(args.abortSignal); } + const response = await fetchFn(url, { method: args.method, headers, body, - signal: controller.signal, + signal: anySignal(signals), credentials: args.withCredentials ? "include" : undefined, }); - if (abortId != null) { - clearTimeout(abortId); + + if (timeoutAbortId != null) { + clearTimeout(timeoutAbortId); } + return response; }; @@ -181,7 +194,15 @@ async function fetcherImpl(args: Fetcher.Args): Promise(args: Fetcher.Args): Promise controller.abort(TIMEOUT), timeoutMs); + return { signal: controller.signal, abortId }; +} + +/** + * Returns an abort signal that is getting aborted when + * at least one of the specified abort signals is aborted. + * + * Requires at least node.js 18. + */ +function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal { + // Allowing signals to be passed either as array + // of signals or as multiple arguments. + const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args); + + const controller = new AbortController(); + + for (const signal of signals) { + if (signal.aborted) { + // Exiting early if one of the signals + // is already aborted. + controller.abort((signal as any)?.reason); + break; + } + + // Listening for signals and removing the listeners + // when at least one symbol is aborted. + signal.addEventListener("abort", () => controller.abort((signal as any)?.reason), { + signal: controller.signal, + }); + } + + return controller.signal; +} + export const fetcher: FetchFunction = fetcherImpl;