diff --git a/.changeset/clear-houses-tease.md b/.changeset/clear-houses-tease.md new file mode 100644 index 000000000..10e1033c8 --- /dev/null +++ b/.changeset/clear-houses-tease.md @@ -0,0 +1,5 @@ +--- +"swagger-typescript-api": patch +--- + +Resolve internal references in Swagger v2 to OpenAPI v3 conversion by adding `resolveInternal` option and enhancing type definitions for request payloads. diff --git a/src/swagger-schema-resolver.ts b/src/swagger-schema-resolver.ts index 02ebd43c3..1836d0231 100644 --- a/src/swagger-schema-resolver.ts +++ b/src/swagger-schema-resolver.ts @@ -59,6 +59,7 @@ export class SwaggerSchemaResolver { result as OpenAPIV2.Document, { ...converterOptions, + resolveInternal: true, warnOnly: true, refSiblings: "preserve", rbname: "requestBodyName", diff --git a/tests/__snapshots__/extended.test.ts.snap b/tests/__snapshots__/extended.test.ts.snap index 625ec5675..38116f028 100644 --- a/tests/__snapshots__/extended.test.ts.snap +++ b/tests/__snapshots__/extended.test.ts.snap @@ -116,8 +116,28 @@ export type AllTriggersData = Trigger[]; export type BatchCreateDataData = DataResponse[]; +export type BatchCreateDataPayload = { + /** @format dateTime */ + created_at?: string; + ele?: string; + epoch?: number; + lat?: string; + lon?: string; + value?: string; +}[]; + export type BatchCreateGroupFeedDataData = DataResponse[]; +export type BatchCreateGroupFeedDataPayload = { + /** @format dateTime */ + created_at?: string; + ele?: string; + epoch?: number; + lat?: string; + lon?: string; + value?: string; +}[]; + export interface Block { block_feeds?: BlockFeed[]; column?: number; @@ -178,10 +198,43 @@ export interface ChartDataParams { export type CreateBlockData = Block; +export interface CreateBlockPayload { + block_feeds?: { + feed_id?: string; + group_id?: string; + }[]; + column?: number; + dashboard_id?: number; + description?: string; + key?: string; + name?: string; + properties?: object; + row?: number; + size_x?: number; + size_y?: number; + visual_type?: string; +} + export type CreateDashboardData = Dashboard; +export interface CreateDashboardPayload { + description?: string; + key?: string; + name?: string; +} + export type CreateDataData = Data; +export interface CreateDataPayload { + /** @format dateTime */ + created_at?: string; + ele?: string; + epoch?: number; + lat?: string; + lon?: string; + value?: string; +} + export type CreateFeedData = Feed; export interface CreateFeedParams { @@ -190,6 +243,13 @@ export interface CreateFeedParams { username: string; } +export interface CreateFeedPayload { + description?: string; + key?: string; + license?: string; + name?: string; +} + export type CreateGroupData = Group; export type CreateGroupDataData = DataResponse[]; @@ -214,6 +274,29 @@ export type CreateGroupFeedData = Feed; export type CreateGroupFeedDataData = DataResponse; +export interface CreateGroupFeedDataPayload { + /** @format dateTime */ + created_at?: string; + ele?: string; + epoch?: number; + lat?: string; + lon?: string; + value?: string; +} + +export interface CreateGroupFeedPayload { + description?: string; + key?: string; + license?: string; + name?: string; +} + +export interface CreateGroupPayload { + description?: string; + key?: string; + name?: string; +} + export type CreatePermissionData = Permission; /** @default "r" */ @@ -223,6 +306,14 @@ export enum CreatePermissionModeEnum { Rw = "rw", } +export interface CreatePermissionPayload { + /** @default "r" */ + mode?: CreatePermissionModeEnum; + /** @default "public" */ + scope?: CreatePermissionScopeEnum; + scope_value?: string; +} + /** @default "public" */ export enum CreatePermissionScopeEnum { Secret = "secret", @@ -235,8 +326,16 @@ export type CreateRawWebhookFeedDataData = Data; export type CreateTokenData = Token; +export interface CreateTokenPayload { + token?: string; +} + export type CreateTriggerData = Trigger; +export interface CreateTriggerPayload { + name?: string; +} + export type CreateWebhookFeedDataData = Data; export interface CreateWebhookFeedDataPayload { @@ -495,20 +594,97 @@ export interface RemoveFeedFromGroupParams { export type ReplaceBlockData = Block; +export interface ReplaceBlockPayload { + block_feeds?: { + feed_id?: string; + group_id?: string; + }[]; + column?: number; + dashboard_id?: number; + description?: string; + key?: string; + name?: string; + properties?: object; + row?: number; + size_x?: number; + size_y?: number; + visual_type?: string; +} + export type ReplaceDashboardData = Dashboard; +export interface ReplaceDashboardPayload { + description?: string; + key?: string; + name?: string; +} + export type ReplaceDataData = DataResponse; +export interface ReplaceDataPayload { + /** @format dateTime */ + created_at?: string; + ele?: string; + epoch?: number; + lat?: string; + lon?: string; + value?: string; +} + export type ReplaceFeedData = Feed; +export interface ReplaceFeedPayload { + description?: string; + key?: string; + license?: string; + name?: string; +} + export type ReplaceGroupData = Group; +export interface ReplaceGroupPayload { + description?: string; + key?: string; + name?: string; +} + export type ReplacePermissionData = Permission; +/** @default "r" */ +export enum ReplacePermissionModeEnum { + R = "r", + W = "w", + Rw = "rw", +} + +export interface ReplacePermissionPayload { + /** @default "r" */ + mode?: ReplacePermissionModeEnum; + /** @default "public" */ + scope?: ReplacePermissionScopeEnum; + scope_value?: string; +} + +/** @default "public" */ +export enum ReplacePermissionScopeEnum { + Secret = "secret", + Public = "public", + User = "user", + Organization = "organization", +} + export type ReplaceTokenData = Token; +export interface ReplaceTokenPayload { + token?: string; +} + export type ReplaceTriggerData = Trigger; +export interface ReplaceTriggerPayload { + name?: string; +} + export type RetainDataData = string; export interface ShallowGroup { @@ -529,20 +705,97 @@ export interface Trigger { export type UpdateBlockData = Block; +export interface UpdateBlockPayload { + block_feeds?: { + feed_id?: string; + group_id?: string; + }[]; + column?: number; + dashboard_id?: number; + description?: string; + key?: string; + name?: string; + properties?: object; + row?: number; + size_x?: number; + size_y?: number; + visual_type?: string; +} + export type UpdateDashboardData = Dashboard; +export interface UpdateDashboardPayload { + description?: string; + key?: string; + name?: string; +} + export type UpdateDataData = DataResponse; +export interface UpdateDataPayload { + /** @format dateTime */ + created_at?: string; + ele?: string; + epoch?: number; + lat?: string; + lon?: string; + value?: string; +} + export type UpdateFeedData = Feed; +export interface UpdateFeedPayload { + description?: string; + key?: string; + license?: string; + name?: string; +} + export type UpdateGroupData = Group; +export interface UpdateGroupPayload { + description?: string; + key?: string; + name?: string; +} + export type UpdatePermissionData = Permission; +/** @default "r" */ +export enum UpdatePermissionModeEnum { + R = "r", + W = "w", + Rw = "rw", +} + +export interface UpdatePermissionPayload { + /** @default "r" */ + mode?: UpdatePermissionModeEnum; + /** @default "public" */ + scope?: UpdatePermissionScopeEnum; + scope_value?: string; +} + +/** @default "public" */ +export enum UpdatePermissionScopeEnum { + Secret = "secret", + Public = "public", + User = "user", + Organization = "organization", +} + export type UpdateTokenData = Token; +export interface UpdateTokenPayload { + token?: string; +} + export type UpdateTriggerData = Trigger; +export interface UpdateTriggerPayload { + name?: string; +} + export interface User { color?: string; /** @format dateTime */ @@ -909,15 +1162,7 @@ export namespace Username { username: string; }; export type RequestQuery = {}; - export type RequestBody = { - /** @format dateTime */ - created_at?: string; - ele?: string; - epoch?: number; - lat?: string; - lon?: string; - value?: string; - }[]; + export type RequestBody = BatchCreateDataPayload; export type RequestHeaders = {}; export type ResponseBody = BatchCreateDataData; } @@ -939,15 +1184,7 @@ export namespace Username { username: string; }; export type RequestQuery = {}; - export type RequestBody = { - /** @format dateTime */ - created_at?: string; - ele?: string; - epoch?: number; - lat?: string; - lon?: string; - value?: string; - }[]; + export type RequestBody = BatchCreateGroupFeedDataPayload; export type RequestHeaders = {}; export type ResponseBody = BatchCreateGroupFeedDataData; } @@ -1009,22 +1246,7 @@ export namespace Username { username: string; }; export type RequestQuery = {}; - export type RequestBody = { - block_feeds?: { - feed_id?: string; - group_id?: string; - }[]; - column?: number; - dashboard_id?: number; - description?: string; - key?: string; - name?: string; - properties?: object; - row?: number; - size_x?: number; - size_y?: number; - visual_type?: string; - }; + export type RequestBody = CreateBlockPayload; export type RequestHeaders = {}; export type ResponseBody = CreateBlockData; } @@ -1043,11 +1265,7 @@ export namespace Username { username: string; }; export type RequestQuery = {}; - export type RequestBody = { - description?: string; - key?: string; - name?: string; - }; + export type RequestBody = CreateDashboardPayload; export type RequestHeaders = {}; export type ResponseBody = CreateDashboardData; } @@ -1068,15 +1286,7 @@ export namespace Username { username: string; }; export type RequestQuery = {}; - export type RequestBody = { - /** @format dateTime */ - created_at?: string; - ele?: string; - epoch?: number; - lat?: string; - lon?: string; - value?: string; - }; + export type RequestBody = CreateDataPayload; export type RequestHeaders = {}; export type ResponseBody = CreateDataData; } @@ -1097,12 +1307,7 @@ export namespace Username { export type RequestQuery = { group_key?: string; }; - export type RequestBody = { - description?: string; - key?: string; - license?: string; - name?: string; - }; + export type RequestBody = CreateFeedPayload; export type RequestHeaders = {}; export type ResponseBody = CreateFeedData; } @@ -1121,11 +1326,7 @@ export namespace Username { username: string; }; export type RequestQuery = {}; - export type RequestBody = { - description?: string; - key?: string; - name?: string; - }; + export type RequestBody = CreateGroupPayload; export type RequestHeaders = {}; export type ResponseBody = CreateGroupData; } @@ -1165,12 +1366,7 @@ export namespace Username { username: string; }; export type RequestQuery = {}; - export type RequestBody = { - description?: string; - key?: string; - license?: string; - name?: string; - }; + export type RequestBody = CreateGroupFeedPayload; export type RequestHeaders = {}; export type ResponseBody = CreateGroupFeedData; } @@ -1192,15 +1388,7 @@ export namespace Username { username: string; }; export type RequestQuery = {}; - export type RequestBody = { - /** @format dateTime */ - created_at?: string; - ele?: string; - epoch?: number; - lat?: string; - lon?: string; - value?: string; - }; + export type RequestBody = CreateGroupFeedDataPayload; export type RequestHeaders = {}; export type ResponseBody = CreateGroupFeedDataData; } @@ -1221,13 +1409,7 @@ export namespace Username { username: string; }; export type RequestQuery = {}; - export type RequestBody = { - /** @default "r" */ - mode?: CreatePermissionModeEnum; - /** @default "public" */ - scope?: CreatePermissionScopeEnum; - scope_value?: string; - }; + export type RequestBody = CreatePermissionPayload; export type RequestHeaders = {}; export type ResponseBody = CreatePermissionData; } @@ -1246,9 +1428,7 @@ export namespace Username { username: string; }; export type RequestQuery = {}; - export type RequestBody = { - token?: string; - }; + export type RequestBody = CreateTokenPayload; export type RequestHeaders = {}; export type ResponseBody = CreateTokenData; } @@ -1267,9 +1447,7 @@ export namespace Username { username: string; }; export type RequestQuery = {}; - export type RequestBody = { - name?: string; - }; + export type RequestBody = CreateTriggerPayload; export type RequestHeaders = {}; export type ResponseBody = CreateTriggerData; } @@ -1835,22 +2013,7 @@ export namespace Username { username: string; }; export type RequestQuery = {}; - export type RequestBody = { - block_feeds?: { - feed_id?: string; - group_id?: string; - }[]; - column?: number; - dashboard_id?: number; - description?: string; - key?: string; - name?: string; - properties?: object; - row?: number; - size_x?: number; - size_y?: number; - visual_type?: string; - }; + export type RequestBody = ReplaceBlockPayload; export type RequestHeaders = {}; export type ResponseBody = ReplaceBlockData; } @@ -1870,11 +2033,7 @@ export namespace Username { username: string; }; export type RequestQuery = {}; - export type RequestBody = { - description?: string; - key?: string; - name?: string; - }; + export type RequestBody = ReplaceDashboardPayload; export type RequestHeaders = {}; export type ResponseBody = ReplaceDashboardData; } @@ -1896,15 +2055,7 @@ export namespace Username { username: string; }; export type RequestQuery = {}; - export type RequestBody = { - /** @format dateTime */ - created_at?: string; - ele?: string; - epoch?: number; - lat?: string; - lon?: string; - value?: string; - }; + export type RequestBody = ReplaceDataPayload; export type RequestHeaders = {}; export type ResponseBody = ReplaceDataData; } @@ -1925,12 +2076,7 @@ export namespace Username { username: string; }; export type RequestQuery = {}; - export type RequestBody = { - description?: string; - key?: string; - license?: string; - name?: string; - }; + export type RequestBody = ReplaceFeedPayload; export type RequestHeaders = {}; export type ResponseBody = ReplaceFeedData; } @@ -1950,11 +2096,7 @@ export namespace Username { username: string; }; export type RequestQuery = {}; - export type RequestBody = { - description?: string; - key?: string; - name?: string; - }; + export type RequestBody = ReplaceGroupPayload; export type RequestHeaders = {}; export type ResponseBody = ReplaceGroupData; } @@ -1976,13 +2118,7 @@ export namespace Username { username: string; }; export type RequestQuery = {}; - export type RequestBody = { - /** @default "r" */ - mode?: CreatePermissionModeEnum; - /** @default "public" */ - scope?: CreatePermissionScopeEnum; - scope_value?: string; - }; + export type RequestBody = ReplacePermissionPayload; export type RequestHeaders = {}; export type ResponseBody = ReplacePermissionData; } @@ -2002,9 +2138,7 @@ export namespace Username { username: string; }; export type RequestQuery = {}; - export type RequestBody = { - token?: string; - }; + export type RequestBody = ReplaceTokenPayload; export type RequestHeaders = {}; export type ResponseBody = ReplaceTokenData; } @@ -2024,9 +2158,7 @@ export namespace Username { username: string; }; export type RequestQuery = {}; - export type RequestBody = { - name?: string; - }; + export type RequestBody = ReplaceTriggerPayload; export type RequestHeaders = {}; export type ResponseBody = ReplaceTriggerData; } @@ -2068,22 +2200,7 @@ export namespace Username { username: string; }; export type RequestQuery = {}; - export type RequestBody = { - block_feeds?: { - feed_id?: string; - group_id?: string; - }[]; - column?: number; - dashboard_id?: number; - description?: string; - key?: string; - name?: string; - properties?: object; - row?: number; - size_x?: number; - size_y?: number; - visual_type?: string; - }; + export type RequestBody = UpdateBlockPayload; export type RequestHeaders = {}; export type ResponseBody = UpdateBlockData; } @@ -2103,11 +2220,7 @@ export namespace Username { username: string; }; export type RequestQuery = {}; - export type RequestBody = { - description?: string; - key?: string; - name?: string; - }; + export type RequestBody = UpdateDashboardPayload; export type RequestHeaders = {}; export type ResponseBody = UpdateDashboardData; } @@ -2129,15 +2242,7 @@ export namespace Username { username: string; }; export type RequestQuery = {}; - export type RequestBody = { - /** @format dateTime */ - created_at?: string; - ele?: string; - epoch?: number; - lat?: string; - lon?: string; - value?: string; - }; + export type RequestBody = UpdateDataPayload; export type RequestHeaders = {}; export type ResponseBody = UpdateDataData; } @@ -2158,12 +2263,7 @@ export namespace Username { username: string; }; export type RequestQuery = {}; - export type RequestBody = { - description?: string; - key?: string; - license?: string; - name?: string; - }; + export type RequestBody = UpdateFeedPayload; export type RequestHeaders = {}; export type ResponseBody = UpdateFeedData; } @@ -2183,11 +2283,7 @@ export namespace Username { username: string; }; export type RequestQuery = {}; - export type RequestBody = { - description?: string; - key?: string; - name?: string; - }; + export type RequestBody = UpdateGroupPayload; export type RequestHeaders = {}; export type ResponseBody = UpdateGroupData; } @@ -2209,13 +2305,7 @@ export namespace Username { username: string; }; export type RequestQuery = {}; - export type RequestBody = { - /** @default "r" */ - mode?: CreatePermissionModeEnum; - /** @default "public" */ - scope?: CreatePermissionScopeEnum; - scope_value?: string; - }; + export type RequestBody = UpdatePermissionPayload; export type RequestHeaders = {}; export type ResponseBody = UpdatePermissionData; } @@ -2235,9 +2325,7 @@ export namespace Username { username: string; }; export type RequestQuery = {}; - export type RequestBody = { - token?: string; - }; + export type RequestBody = UpdateTokenPayload; export type RequestHeaders = {}; export type ResponseBody = UpdateTokenData; } @@ -2257,9 +2345,7 @@ export namespace Username { username: string; }; export type RequestQuery = {}; - export type RequestBody = { - name?: string; - }; + export type RequestBody = UpdateTriggerPayload; export type RequestHeaders = {}; export type ResponseBody = UpdateTriggerData; } @@ -2892,20 +2978,7 @@ export class Api extends HttpClient + batchCreateData: (username: string, feedKey: string, data: BatchCreateDataPayload, params: RequestParams = {}) => this.request({ path: \`/\${username}/feeds/\${feedKey}/data/batch\`, method: "POST", @@ -2929,15 +3002,7 @@ export class Api extends HttpClient this.request({ @@ -2978,27 +3043,7 @@ export class Api extends HttpClient + createBlock: (username: string, dashboardId: string, block: CreateBlockPayload, params: RequestParams = {}) => this.request({ path: \`/\${username}/dashboards/\${dashboardId}/blocks\`, method: "POST", @@ -3018,15 +3063,7 @@ export class Api extends HttpClient + createDashboard: (username: string, dashboard: CreateDashboardPayload, params: RequestParams = {}) => this.request({ path: \`/\${username}/dashboards\`, method: "POST", @@ -3046,20 +3083,7 @@ export class Api extends HttpClient + createData: (username: string, feedKey: string, datum: CreateDataPayload, params: RequestParams = {}) => this.request({ path: \`/\${username}/feeds/\${feedKey}/data\`, method: "POST", @@ -3079,16 +3103,7 @@ export class Api extends HttpClient + createFeed: ({ username, ...query }: CreateFeedParams, feed: CreateFeedPayload, params: RequestParams = {}) => this.request({ path: \`/\${username}/feeds\`, method: "POST", @@ -3109,15 +3124,7 @@ export class Api extends HttpClient + createGroup: (username: string, group: CreateGroupPayload, params: RequestParams = {}) => this.request({ path: \`/\${username}/groups\`, method: "POST", @@ -3162,17 +3169,7 @@ export class Api extends HttpClient + createGroupFeed: (username: string, groupKey: string, feed: CreateGroupFeedPayload, params: RequestParams = {}) => this.request({ path: \`/\${username}/groups/\${groupKey}/feeds\`, method: "POST", @@ -3196,15 +3193,7 @@ export class Api extends HttpClient this.request({ @@ -3230,13 +3219,7 @@ export class Api extends HttpClient this.request({ @@ -3258,13 +3241,7 @@ export class Api extends HttpClient + createToken: (username: string, token: CreateTokenPayload, params: RequestParams = {}) => this.request({ path: \`/\${username}/tokens\`, method: "POST", @@ -3284,13 +3261,7 @@ export class Api extends HttpClient + createTrigger: (username: string, trigger: CreateTriggerPayload, params: RequestParams = {}) => this.request({ path: \`/\${username}/triggers\`, method: "POST", @@ -3773,22 +3744,7 @@ export class Api extends HttpClient this.request({ @@ -3810,16 +3766,7 @@ export class Api extends HttpClient + replaceDashboard: (username: string, id: string, dashboard: ReplaceDashboardPayload, params: RequestParams = {}) => this.request({ path: \`/\${username}/dashboards/\${id}\`, method: "PUT", @@ -3843,15 +3790,7 @@ export class Api extends HttpClient this.request({ @@ -3873,17 +3812,7 @@ export class Api extends HttpClient + replaceFeed: (username: string, feedKey: string, feed: ReplaceFeedPayload, params: RequestParams = {}) => this.request({ path: \`/\${username}/feeds/\${feedKey}\`, method: "PUT", @@ -3903,16 +3832,7 @@ export class Api extends HttpClient + replaceGroup: (username: string, groupKey: string, group: ReplaceGroupPayload, params: RequestParams = {}) => this.request({ path: \`/\${username}/groups/\${groupKey}\`, method: "PUT", @@ -3937,13 +3857,7 @@ export class Api extends HttpClient this.request({ @@ -3965,14 +3879,7 @@ export class Api extends HttpClient + replaceToken: (username: string, id: string, token: ReplaceTokenPayload, params: RequestParams = {}) => this.request({ path: \`/\${username}/tokens/\${id}\`, method: "PUT", @@ -3992,14 +3899,7 @@ export class Api extends HttpClient + replaceTrigger: (username: string, id: string, trigger: ReplaceTriggerPayload, params: RequestParams = {}) => this.request({ path: \`/\${username}/triggers/\${id}\`, method: "PUT", @@ -4041,22 +3941,7 @@ export class Api extends HttpClient this.request({ @@ -4078,16 +3963,7 @@ export class Api extends HttpClient + updateDashboard: (username: string, id: string, dashboard: UpdateDashboardPayload, params: RequestParams = {}) => this.request({ path: \`/\${username}/dashboards/\${id}\`, method: "PATCH", @@ -4107,21 +3983,7 @@ export class Api extends HttpClient + updateData: (username: string, feedKey: string, id: string, datum: UpdateDataPayload, params: RequestParams = {}) => this.request({ path: \`/\${username}/feeds/\${feedKey}/data/\${id}\`, method: "PATCH", @@ -4141,17 +4003,7 @@ export class Api extends HttpClient + updateFeed: (username: string, feedKey: string, feed: UpdateFeedPayload, params: RequestParams = {}) => this.request({ path: \`/\${username}/feeds/\${feedKey}\`, method: "PATCH", @@ -4171,16 +4023,7 @@ export class Api extends HttpClient + updateGroup: (username: string, groupKey: string, group: UpdateGroupPayload, params: RequestParams = {}) => this.request({ path: \`/\${username}/groups/\${groupKey}\`, method: "PATCH", @@ -4205,13 +4048,7 @@ export class Api extends HttpClient this.request({ @@ -4233,14 +4070,7 @@ export class Api extends HttpClient + updateToken: (username: string, id: string, token: UpdateTokenPayload, params: RequestParams = {}) => this.request({ path: \`/\${username}/tokens/\${id}\`, method: "PATCH", @@ -4260,14 +4090,7 @@ export class Api extends HttpClient + updateTrigger: (username: string, id: string, trigger: UpdateTriggerPayload, params: RequestParams = {}) => this.request({ path: \`/\${username}/triggers/\${id}\`, method: "PATCH", @@ -5091,6 +4914,10 @@ export interface Category { name?: string; } +export type CreateUsersWithArrayInputPayload = User[]; + +export type CreateUsersWithListInputPayload = User[]; + /** * some description * @pattern ^[A-Z]{3,3}$ @@ -5120,8 +4947,20 @@ export interface FindPetsByTagsParams { export type FormUrlEncodedRequest2Data = any; +export interface FormUrlEncodedRequest2Payload { + /** @format string */ + param1: string; + param2: string; +} + export type FormUrlEncodedRequestData = any; +export interface FormUrlEncodedRequestPayload { + /** @format string */ + param1: string; + param2: string; +} + export type GetInventoryData = Record; export type GetOrderByIdData = Order; @@ -5367,11 +5206,7 @@ export namespace Pet { export namespace FormUrlEncodedRequest { export type RequestParams = {}; export type RequestQuery = {}; - export type RequestBody = { - /** @format string */ - param1: string; - param2: string; - }; + export type RequestBody = FormUrlEncodedRequestPayload; export type RequestHeaders = {}; export type ResponseBody = FormUrlEncodedRequestData; } @@ -5388,11 +5223,7 @@ export namespace Pet { export namespace FormUrlEncodedRequest2 { export type RequestParams = {}; export type RequestQuery = {}; - export type RequestBody = { - /** @format string */ - param1: string; - param2: string; - }; + export type RequestBody = FormUrlEncodedRequest2Payload; export type RequestHeaders = {}; export type ResponseBody = FormUrlEncodedRequest2Data; } @@ -5595,7 +5426,7 @@ export namespace User { export namespace CreateUsersWithArrayInput { export type RequestParams = {}; export type RequestQuery = {}; - export type RequestBody = User[]; + export type RequestBody = CreateUsersWithArrayInputPayload; export type RequestHeaders = {}; export type ResponseBody = any; } @@ -5610,7 +5441,7 @@ export namespace User { export namespace CreateUsersWithListInput { export type RequestParams = {}; export type RequestQuery = {}; - export type RequestBody = User[]; + export type RequestBody = CreateUsersWithListInputPayload; export type RequestHeaders = {}; export type ResponseBody = any; } @@ -6011,14 +5842,7 @@ export class Api extends HttpClient + formUrlEncodedRequest: (data: FormUrlEncodedRequestPayload, params: RequestParams = {}) => this.request({ path: \`/pet/form-url-encoded\`, method: "POST", @@ -6037,14 +5861,7 @@ export class Api extends HttpClient + formUrlEncodedRequest2: (data: FormUrlEncodedRequest2Payload, params: RequestParams = {}) => this.request({ path: \`/pet/end-form-url-encoded\`, method: "POST", @@ -6240,7 +6057,7 @@ export class Api extends HttpClient + createUsersWithArrayInput: (body: CreateUsersWithArrayInputPayload, params: RequestParams = {}) => this.request({ path: \`/user/createWithArray\`, method: "POST", @@ -6257,7 +6074,7 @@ export class Api extends HttpClient + createUsersWithListInput: (body: CreateUsersWithListInputPayload, params: RequestParams = {}) => this.request({ path: \`/user/createWithList\`, method: "POST", @@ -65233,6 +65050,10 @@ export interface Category { name?: string; } +export type CreateUsersWithArrayInputPayload = User[]; + +export type CreateUsersWithListInputPayload = User[]; + export type FindPetsByStatusData = Pet[]; export interface FindPetsByStatusParams { @@ -65625,7 +65446,7 @@ export namespace User { export namespace CreateUsersWithArrayInput { export type RequestParams = {}; export type RequestQuery = {}; - export type RequestBody = User[]; + export type RequestBody = CreateUsersWithArrayInputPayload; export type RequestHeaders = {}; export type ResponseBody = any; } @@ -65640,7 +65461,7 @@ export namespace User { export namespace CreateUsersWithListInput { export type RequestParams = {}; export type RequestQuery = {}; - export type RequestBody = User[]; + export type RequestBody = CreateUsersWithListInputPayload; export type RequestHeaders = {}; export type ResponseBody = any; } @@ -66203,7 +66024,7 @@ export class Api extends HttpClient + createUsersWithArrayInput: (body: CreateUsersWithArrayInputPayload, params: RequestParams = {}) => this.request({ path: \`/user/createWithArray\`, method: "POST", @@ -66220,7 +66041,7 @@ export class Api extends HttpClient + createUsersWithListInput: (body: CreateUsersWithListInputPayload, params: RequestParams = {}) => this.request({ path: \`/user/createWithList\`, method: "POST", diff --git a/tests/__snapshots__/simple.test.ts.snap b/tests/__snapshots__/simple.test.ts.snap index 43999f7d4..4f43c6668 100644 --- a/tests/__snapshots__/simple.test.ts.snap +++ b/tests/__snapshots__/simple.test.ts.snap @@ -691,7 +691,15 @@ export class Api extends HttpClient + createDashboard: ( + username: string, + dashboard: { + description?: string; + key?: string; + name?: string; + }, + params: RequestParams = {}, + ) => this.request({ path: \`/\${username}/dashboards\`, method: "POST", @@ -729,7 +737,27 @@ export class Api extends HttpClient + createBlock: ( + username: string, + dashboardId: string, + block: { + block_feeds?: { + feed_id?: string; + group_id?: string; + }[]; + column?: number; + dashboard_id?: number; + description?: string; + key?: string; + name?: string; + properties?: object; + row?: number; + size_x?: number; + size_y?: number; + visual_type?: string; + }, + params: RequestParams = {}, + ) => this.request({ path: \`/\${username}/dashboards/\${dashboardId}/blocks\`, method: "POST", @@ -981,7 +1009,12 @@ export class Api extends HttpClient extends HttpClient + batchCreateData: ( + username: string, + feedKey: string, + data: { + /** @format dateTime */ + created_at?: string; + ele?: string; + epoch?: number; + lat?: string; + lon?: string; + value?: string; + }[], + params: RequestParams = {}, + ) => this.request({ path: \`/\${username}/feeds/\${feedKey}/data/batch\`, method: "POST", @@ -1533,7 +1579,15 @@ export class Api extends HttpClient + createGroup: ( + username: string, + group: { + description?: string; + key?: string; + name?: string; + }, + params: RequestParams = {}, + ) => this.request({ path: \`/\${username}/groups\`, method: "POST", @@ -1936,7 +1990,13 @@ export class Api extends HttpClient + createToken: ( + username: string, + token: { + token?: string; + }, + params: RequestParams = {}, + ) => this.request({ path: \`/\${username}/tokens\`, method: "POST", @@ -2064,7 +2124,13 @@ export class Api extends HttpClient + createTrigger: ( + username: string, + trigger: { + name?: string; + }, + params: RequestParams = {}, + ) => this.request({ path: \`/\${username}/triggers\`, method: "POST", @@ -2196,7 +2262,13 @@ export class Api extends HttpClient this.request({ diff --git a/tests/spec/axios/__snapshots__/basic.test.ts.snap b/tests/spec/axios/__snapshots__/basic.test.ts.snap index e388e261a..e0ee8b9d7 100644 --- a/tests/spec/axios/__snapshots__/basic.test.ts.snap +++ b/tests/spec/axios/__snapshots__/basic.test.ts.snap @@ -2306,6 +2306,7 @@ export class Api extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient { path: \`/gists/\${id}/comments\`, method: "POST", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -2681,6 +2682,7 @@ export class Api { path: \`/notifications\`, method: "PUT", body: body, + type: ContentType.Json, ...params, }), @@ -2964,6 +2966,7 @@ export class Api { path: \`/orgs/\${org}/repos\`, method: "POST", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -3223,6 +3226,7 @@ export class Api { path: \`/repos/\${owner}/\${repo}/comments/\${commentId}\`, method: "PATCH", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -3810,6 +3814,7 @@ export class Api { path: \`/repos/\${owner}/\${repo}/hooks\`, method: "POST", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -3852,6 +3857,7 @@ export class Api { path: \`/repos/\${owner}/\${repo}/hooks/\${hookId}\`, method: "PATCH", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -3920,6 +3926,7 @@ export class Api { path: \`/repos/\${owner}/\${repo}/issues\`, method: "POST", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -3997,6 +4004,7 @@ export class Api { path: \`/repos/\${owner}/\${repo}/issues/comments/\${commentId}\`, method: "PATCH", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -4054,6 +4062,7 @@ export class Api { path: \`/repos/\${owner}/\${repo}/issues/\${number}\`, method: "PATCH", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -4091,6 +4100,7 @@ export class Api { path: \`/repos/\${owner}/\${repo}/issues/\${number}/comments\`, method: "POST", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -4149,6 +4159,7 @@ export class Api { path: \`/repos/\${owner}/\${repo}/issues/\${number}/labels\`, method: "POST", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -4164,6 +4175,7 @@ export class Api { path: \`/repos/\${owner}/\${repo}/issues/\${number}/labels\`, method: "PUT", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -4208,6 +4220,7 @@ export class Api { path: \`/repos/\${owner}/\${repo}/keys\`, method: "POST", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -4264,6 +4277,7 @@ export class Api { path: \`/repos/\${owner}/\${repo}/labels\`, method: "POST", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -4306,6 +4320,7 @@ export class Api { path: \`/repos/\${owner}/\${repo}/labels/\${name}\`, method: "PATCH", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -4381,6 +4396,7 @@ export class Api { path: \`/repos/\${owner}/\${repo}/milestones\`, method: "POST", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -4429,6 +4445,7 @@ export class Api { path: \`/repos/\${owner}/\${repo}/milestones/\${number}\`, method: "PATCH", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -4491,6 +4508,7 @@ export class Api { path: \`/repos/\${owner}/\${repo}/notifications\`, method: "PUT", body: body, + type: ContentType.Json, ...params, }), @@ -4616,6 +4634,7 @@ export class Api { path: \`/repos/\${owner}/\${repo}/pulls/comments/\${commentId}\`, method: "PATCH", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -4793,6 +4812,7 @@ export class Api { path: \`/repos/\${owner}/\${repo}/releases\`, method: "POST", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -4884,6 +4904,7 @@ export class Api { path: \`/repos/\${owner}/\${repo}/releases/\${id}\`, method: "PATCH", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -5583,6 +5604,7 @@ export class Api { path: \`/user/emails\`, method: "POST", body: body, + type: ContentType.Json, ...params, }), @@ -5716,6 +5738,7 @@ export class Api { path: \`/user/keys\`, method: "POST", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -5793,6 +5816,7 @@ export class Api { path: \`/user/repos\`, method: "POST", body: body, + type: ContentType.Json, format: "json", ...params, }), diff --git a/tests/spec/extractRequestBody/__snapshots__/basic.test.ts.snap b/tests/spec/extractRequestBody/__snapshots__/basic.test.ts.snap index 8b1bc4846..ed78ae397 100644 --- a/tests/spec/extractRequestBody/__snapshots__/basic.test.ts.snap +++ b/tests/spec/extractRequestBody/__snapshots__/basic.test.ts.snap @@ -152,6 +152,18 @@ export interface SingleFormUrlEncodedRequestPayloadTTT { param2: string; } +export interface FormUrlEncodedRequestPayloadTTT { + /** @format string */ + param1: string; + param2: string; +} + +export interface FormUrlEncodedRequest2PayloadTTT { + /** @format string */ + param1: string; + param2: string; +} + export interface UpdatePetWithFormPayloadTTT { /** Updated name of the pet */ name?: string; @@ -166,6 +178,10 @@ export interface UploadFilePayloadTTT { file?: File; } +export type CreateUsersWithArrayInputPayloadTTT = UserTTT[]; + +export type CreateUsersWithListInputPayloadTTT = UserTTT[]; + export type QueryParamsType = Record; export type ResponseFormat = keyof Omit; @@ -477,14 +493,7 @@ export class Api extends HttpClient + formUrlEncodedRequest: (data: FormUrlEncodedRequestPayloadTTT, params: RequestParams = {}) => this.request({ path: \`/pet/form-url-encoded\`, method: "POST", @@ -503,14 +512,7 @@ export class Api extends HttpClient + formUrlEncodedRequest2: (data: FormUrlEncodedRequest2PayloadTTT, params: RequestParams = {}) => this.request({ path: \`/pet/end-form-url-encoded\`, method: "POST", @@ -713,7 +715,7 @@ export class Api extends HttpClient + createUsersWithArrayInput: (body: CreateUsersWithArrayInputPayloadTTT, params: RequestParams = {}) => this.request({ path: \`/user/createWithArray\`, method: "POST", @@ -730,7 +732,7 @@ export class Api extends HttpClient + createUsersWithListInput: (body: CreateUsersWithListInputPayloadTTT, params: RequestParams = {}) => this.request({ path: \`/user/createWithList\`, method: "POST", diff --git a/tests/spec/js/__snapshots__/basic.test.ts.snap b/tests/spec/js/__snapshots__/basic.test.ts.snap index 6877bd25e..b3765c7a5 100644 --- a/tests/spec/js/__snapshots__/basic.test.ts.snap +++ b/tests/spec/js/__snapshots__/basic.test.ts.snap @@ -274,6 +274,7 @@ export class Api extends HttpClient { path: \`/gists/\${id}/comments\`, method: "POST", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -555,6 +556,7 @@ export class Api extends HttpClient { path: \`/notifications\`, method: "PUT", body: body, + type: ContentType.Json, ...params, }), /** @@ -790,6 +792,7 @@ export class Api extends HttpClient { path: \`/orgs/\${org}/repos\`, method: "POST", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -1027,6 +1030,7 @@ export class Api extends HttpClient { path: \`/repos/\${owner}/\${repo}/comments/\${commentId}\`, method: "PATCH", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -1512,6 +1516,7 @@ export class Api extends HttpClient { path: \`/repos/\${owner}/\${repo}/hooks\`, method: "POST", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -1551,6 +1556,7 @@ export class Api extends HttpClient { path: \`/repos/\${owner}/\${repo}/hooks/\${hookId}\`, method: "PATCH", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -1591,6 +1597,7 @@ export class Api extends HttpClient { path: \`/repos/\${owner}/\${repo}/issues\`, method: "POST", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -1644,6 +1651,7 @@ export class Api extends HttpClient { path: \`/repos/\${owner}/\${repo}/issues/comments/\${commentId}\`, method: "PATCH", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -1697,6 +1705,7 @@ export class Api extends HttpClient { path: \`/repos/\${owner}/\${repo}/issues/\${number}\`, method: "PATCH", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -1726,6 +1735,7 @@ export class Api extends HttpClient { path: \`/repos/\${owner}/\${repo}/issues/\${number}/comments\`, method: "POST", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -1780,6 +1790,7 @@ export class Api extends HttpClient { path: \`/repos/\${owner}/\${repo}/issues/\${number}/labels\`, method: "POST", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -1794,6 +1805,7 @@ export class Api extends HttpClient { path: \`/repos/\${owner}/\${repo}/issues/\${number}/labels\`, method: "PUT", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -1835,6 +1847,7 @@ export class Api extends HttpClient { path: \`/repos/\${owner}/\${repo}/keys\`, method: "POST", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -1887,6 +1900,7 @@ export class Api extends HttpClient { path: \`/repos/\${owner}/\${repo}/labels\`, method: "POST", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -1926,6 +1940,7 @@ export class Api extends HttpClient { path: \`/repos/\${owner}/\${repo}/labels/\${name}\`, method: "PATCH", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -1982,6 +1997,7 @@ export class Api extends HttpClient { path: \`/repos/\${owner}/\${repo}/milestones\`, method: "POST", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -2021,6 +2037,7 @@ export class Api extends HttpClient { path: \`/repos/\${owner}/\${repo}/milestones/\${number}\`, method: "PATCH", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -2062,6 +2079,7 @@ export class Api extends HttpClient { path: \`/repos/\${owner}/\${repo}/notifications\`, method: "PUT", body: body, + type: ContentType.Json, ...params, }), /** @@ -2143,6 +2161,7 @@ export class Api extends HttpClient { path: \`/repos/\${owner}/\${repo}/pulls/comments/\${commentId}\`, method: "PATCH", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -2295,6 +2314,7 @@ export class Api extends HttpClient { path: \`/repos/\${owner}/\${repo}/releases\`, method: "POST", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -2374,6 +2394,7 @@ export class Api extends HttpClient { path: \`/repos/\${owner}/\${repo}/releases/\${id}\`, method: "PATCH", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -2924,6 +2945,7 @@ export class Api extends HttpClient { path: \`/user/emails\`, method: "POST", body: body, + type: ContentType.Json, ...params, }), /** @@ -3026,6 +3048,7 @@ export class Api extends HttpClient { path: \`/user/keys\`, method: "POST", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -3092,6 +3115,7 @@ export class Api extends HttpClient { path: \`/user/repos\`, method: "POST", body: body, + type: ContentType.Json, format: "json", ...params, }), diff --git a/tests/spec/jsAxios/__snapshots__/basic.test.ts.snap b/tests/spec/jsAxios/__snapshots__/basic.test.ts.snap index bb860a405..2d8d28222 100644 --- a/tests/spec/jsAxios/__snapshots__/basic.test.ts.snap +++ b/tests/spec/jsAxios/__snapshots__/basic.test.ts.snap @@ -332,6 +332,7 @@ export class Api extends HttpClient { path: \`/gists/\${id}/comments\`, method: "POST", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -613,6 +614,7 @@ export class Api extends HttpClient { path: \`/notifications\`, method: "PUT", body: body, + type: ContentType.Json, ...params, }), /** @@ -848,6 +850,7 @@ export class Api extends HttpClient { path: \`/orgs/\${org}/repos\`, method: "POST", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -1085,6 +1088,7 @@ export class Api extends HttpClient { path: \`/repos/\${owner}/\${repo}/comments/\${commentId}\`, method: "PATCH", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -1570,6 +1574,7 @@ export class Api extends HttpClient { path: \`/repos/\${owner}/\${repo}/hooks\`, method: "POST", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -1609,6 +1614,7 @@ export class Api extends HttpClient { path: \`/repos/\${owner}/\${repo}/hooks/\${hookId}\`, method: "PATCH", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -1649,6 +1655,7 @@ export class Api extends HttpClient { path: \`/repos/\${owner}/\${repo}/issues\`, method: "POST", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -1702,6 +1709,7 @@ export class Api extends HttpClient { path: \`/repos/\${owner}/\${repo}/issues/comments/\${commentId}\`, method: "PATCH", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -1755,6 +1763,7 @@ export class Api extends HttpClient { path: \`/repos/\${owner}/\${repo}/issues/\${number}\`, method: "PATCH", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -1784,6 +1793,7 @@ export class Api extends HttpClient { path: \`/repos/\${owner}/\${repo}/issues/\${number}/comments\`, method: "POST", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -1838,6 +1848,7 @@ export class Api extends HttpClient { path: \`/repos/\${owner}/\${repo}/issues/\${number}/labels\`, method: "POST", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -1852,6 +1863,7 @@ export class Api extends HttpClient { path: \`/repos/\${owner}/\${repo}/issues/\${number}/labels\`, method: "PUT", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -1893,6 +1905,7 @@ export class Api extends HttpClient { path: \`/repos/\${owner}/\${repo}/keys\`, method: "POST", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -1945,6 +1958,7 @@ export class Api extends HttpClient { path: \`/repos/\${owner}/\${repo}/labels\`, method: "POST", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -1984,6 +1998,7 @@ export class Api extends HttpClient { path: \`/repos/\${owner}/\${repo}/labels/\${name}\`, method: "PATCH", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -2040,6 +2055,7 @@ export class Api extends HttpClient { path: \`/repos/\${owner}/\${repo}/milestones\`, method: "POST", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -2079,6 +2095,7 @@ export class Api extends HttpClient { path: \`/repos/\${owner}/\${repo}/milestones/\${number}\`, method: "PATCH", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -2120,6 +2137,7 @@ export class Api extends HttpClient { path: \`/repos/\${owner}/\${repo}/notifications\`, method: "PUT", body: body, + type: ContentType.Json, ...params, }), /** @@ -2201,6 +2219,7 @@ export class Api extends HttpClient { path: \`/repos/\${owner}/\${repo}/pulls/comments/\${commentId}\`, method: "PATCH", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -2353,6 +2372,7 @@ export class Api extends HttpClient { path: \`/repos/\${owner}/\${repo}/releases\`, method: "POST", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -2432,6 +2452,7 @@ export class Api extends HttpClient { path: \`/repos/\${owner}/\${repo}/releases/\${id}\`, method: "PATCH", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -2982,6 +3003,7 @@ export class Api extends HttpClient { path: \`/user/emails\`, method: "POST", body: body, + type: ContentType.Json, ...params, }), /** @@ -3084,6 +3106,7 @@ export class Api extends HttpClient { path: \`/user/keys\`, method: "POST", body: body, + type: ContentType.Json, format: "json", ...params, }), @@ -3150,6 +3173,7 @@ export class Api extends HttpClient { path: \`/user/repos\`, method: "POST", body: body, + type: ContentType.Json, format: "json", ...params, }), diff --git a/tests/spec/patch/__snapshots__/basic.test.ts.snap b/tests/spec/patch/__snapshots__/basic.test.ts.snap index 679de8bbb..330de7669 100644 --- a/tests/spec/patch/__snapshots__/basic.test.ts.snap +++ b/tests/spec/patch/__snapshots__/basic.test.ts.snap @@ -2227,6 +2227,7 @@ export class Api extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient extends HttpClient