From aa6e4a716883384730f820692a101b26d66c2fa2 Mon Sep 17 00:00:00 2001 From: "fern-api[bot]" <115122769+fern-api[bot]@users.noreply.github.com> Date: Fri, 13 Mar 2026 17:30:13 +0000 Subject: [PATCH] feat: add logging support and remove InputStream methods from LabReportClient MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add optional logging configuration to ClientOptions through LogConfig parameter and remove InputStream-based file upload methods from lab report parsing APIs. Updates SSE stream handling with new event discrimination capabilities. Key changes: - Add optional logging parameter to ClientOptions.Builder - Remove InputStream-based parserCreateJob methods from LabReportClient - Add SSE_EVENT_DISCRIMINATED stream type and related parsing logic - Update method documentation to clarify multi-file upload support 🌿 Generated with Fern --- .fern/metadata.json | 7 +- .fernignore | 1 + build.gradle | 4 +- changelog.md | 37 ++ reference.md | 341 ++++++++++- src/main/java/com/vital/api/AsyncVital.java | 16 + .../java/com/vital/api/AsyncVitalBuilder.java | 24 + src/main/java/com/vital/api/Vital.java | 16 + src/main/java/com/vital/api/VitalBuilder.java | 24 + .../com/vital/api/core/ClientOptions.java | 36 +- .../com/vital/api/core/ConsoleLogger.java | 51 ++ src/main/java/com/vital/api/core/ILogger.java | 38 ++ .../java/com/vital/api/core/LogConfig.java | 98 ++++ .../java/com/vital/api/core/LogLevel.java | 36 ++ src/main/java/com/vital/api/core/Logger.java | 97 ++++ .../vital/api/core/LoggingInterceptor.java | 104 ++++ .../java/com/vital/api/core/SseEvent.java | 114 ++++ .../com/vital/api/core/SseEventParser.java | 228 ++++++++ src/main/java/com/vital/api/core/Stream.java | 221 ++++++- .../activity/AsyncRawActivityClient.java | 8 +- .../resources/activity/RawActivityClient.java | 8 +- .../requests/ActivityGetRawRequest.java | 16 + .../activity/requests/ActivityGetRequest.java | 16 + .../aggregate/AsyncRawAggregateClient.java | 12 +- .../aggregate/RawAggregateClient.java | 12 +- ...tTaskHistoryForContinuousQueryRequest.java | 10 + .../aggregate/requests/QueryBatch.java | 16 + .../resources/body/AsyncRawBodyClient.java | 8 +- .../api/resources/body/RawBodyClient.java | 8 +- .../body/requests/BodyGetRawRequest.java | 16 + .../body/requests/BodyGetRequest.java | 16 + .../compendium/AsyncCompendiumClient.java | 48 ++ .../compendium/AsyncRawCompendiumClient.java | 191 ++++++ .../compendium/CompendiumClient.java | 45 ++ .../compendium/RawCompendiumClient.java | 156 +++++ .../requests/ConvertCompendiumBody.java | 245 ++++++++ .../requests/SearchCompendiumBody.java | 345 +++++++++++ .../types/CompendiumConvertRequestTeamId.java | 22 + .../types/CompendiumSearchRequestTeamId.java | 22 + .../devices/AsyncRawDevicesClient.java | 4 +- .../resources/devices/RawDevicesClient.java | 4 +- .../requests/DevicesGetRawRequest.java | 10 + .../AsyncRawElectrocardiogramClient.java | 4 +- .../RawElectrocardiogramClient.java | 4 +- .../requests/ElectrocardiogramGetRequest.java | 16 + .../insurance/AsyncRawInsuranceClient.java | 12 +- .../insurance/RawInsuranceClient.java | 12 +- .../InsuranceSearchDiagnosisRequest.java | 16 + .../InsuranceSearchGetPayorInfoRequest.java | 10 + .../requests/PayorSearchRequest.java | 10 + .../introspect/AsyncRawIntrospectClient.java | 8 +- .../introspect/RawIntrospectClient.java | 8 +- ...trospectGetUserHistoricalPullsRequest.java | 10 + .../IntrospectGetUserResourcesRequest.java | 10 + .../labaccount/AsyncLabAccountClient.java | 46 ++ .../labaccount/AsyncRawLabAccountClient.java | 118 ++++ .../labaccount/LabAccountClient.java | 44 ++ .../labaccount/RawLabAccountClient.java | 97 ++++ .../LabAccountGetTeamLabAccountsRequest.java | 132 +++++ .../labreport/AsyncLabReportClient.java | 26 +- .../labreport/AsyncRawLabReportClient.java | 241 +------- .../resources/labreport/LabReportClient.java | 25 +- .../labreport/RawLabReportClient.java | 180 +----- .../BodyCreateLabReportParserJob.java | 16 + .../labtests/AsyncLabTestsClient.java | 20 +- .../labtests/AsyncRawLabTestsClient.java | 194 ++++--- .../resources/labtests/LabTestsClient.java | 20 +- .../resources/labtests/RawLabTestsClient.java | 194 ++++--- ...OrdersHelpersAppointmentCancelRequest.java | 16 + .../requests/CreateLabTestRequest.java | 99 +++- .../CreateOrderRequestCompatible.java | 48 ++ .../labtests/requests/ImportOrderBody.java | 16 + .../LabTestsBookPscAppointmentRequest.java | 16 + .../requests/LabTestsGetAreaInfoRequest.java | 16 + .../requests/LabTestsGetByIdRequest.java | 10 + .../requests/LabTestsGetLabelsPdfRequest.java | 16 + ...tsGetMarkersByLabAndProviderIdRequest.java | 10 + .../LabTestsGetMarkersForLabTestRequest.java | 10 + .../LabTestsGetMarkersForOrderSetRequest.java | 16 + .../requests/LabTestsGetMarkersRequest.java | 45 +- .../LabTestsGetOrderPscInfoRequest.java | 10 + .../requests/LabTestsGetOrdersRequest.java | 10 + .../requests/LabTestsGetPaginatedRequest.java | 10 + ...ebotomyAppointmentAvailabilityRequest.java | 16 + ...sGetPscAppointmentAvailabilityRequest.java | 29 +- .../requests/LabTestsGetPscInfoRequest.java | 16 + .../labtests/requests/LabTestsGetRequest.java | 10 + .../LabTestsSimulateOrderProcessRequest.java | 10 + .../requests/RequestAppointmentRequest.java | 59 +- .../requests/UpdateLabTestRequest.java | 10 + .../requests/ValidateIcdCodesBody.java | 10 + ...GetlabsSchemaAppointmentCancelRequest.java | 16 + .../resources/link/AsyncRawLinkClient.java | 95 +-- .../api/resources/link/RawLinkClient.java | 95 +-- .../link/requests/BeginLinkTokenRequest.java | 16 + .../requests/BulkExportConnectionsBody.java | 16 + .../requests/BulkImportConnectionsBody.java | 16 + .../requests/BulkPauseConnectionsBody.java | 16 + .../BulkTriggerHistoricalPullBody.java | 16 + .../CompletePasswordProviderMfaBody.java | 16 + .../DemoConnectionCreationPayload.java | 16 + .../link/requests/EmailAuthLink.java | 16 + .../link/requests/EmailProviderAuthLink.java | 16 + .../link/requests/IndividualProviderData.java | 16 + .../link/requests/LinkCodeCreateRequest.java | 16 + .../LinkGenerateOauthLinkRequest.java | 10 + .../requests/LinkGetAllProvidersRequest.java | 10 + .../link/requests/LinkListBulkOpsRequest.java | 10 + .../link/requests/LinkTokenExchange.java | 16 + .../link/requests/LinkTokenStateRequest.java | 10 + .../requests/LinkTokenValidationRequest.java | 16 + .../link/requests/ManualConnectionData.java | 129 ++++- .../link/requests/PasswordAuthLink.java | 16 + .../resources/meal/AsyncRawMealClient.java | 4 +- .../api/resources/meal/RawMealClient.java | 4 +- .../meal/requests/MealGetRequest.java | 16 + .../AsyncRawMenstrualCycleClient.java | 4 +- .../RawMenstrualCycleClient.java | 4 +- .../requests/MenstrualCycleGetRequest.java | 16 + .../resources/order/AsyncRawOrderClient.java | 4 +- .../api/resources/order/RawOrderClient.java | 4 +- .../order/requests/ResendWebhookBody.java | 10 + .../AsyncRawOrderTransactionClient.java | 12 +- .../RawOrderTransactionClient.java | 12 +- .../resources/payor/AsyncRawPayorClient.java | 4 +- .../api/resources/payor/RawPayorClient.java | 4 +- .../payor/requests/CreatePayorBody.java | 16 + .../profile/AsyncRawProfileClient.java | 8 +- .../resources/profile/RawProfileClient.java | 8 +- .../requests/ProfileGetRawRequest.java | 10 + .../profile/requests/ProfileGetRequest.java | 10 + .../providers/AsyncRawProvidersClient.java | 4 +- .../providers/RawProvidersClient.java | 4 +- .../requests/ProvidersGetAllRequest.java | 10 + .../resources/sleep/AsyncRawSleepClient.java | 12 +- .../api/resources/sleep/RawSleepClient.java | 12 +- .../sleep/requests/SleepGetRawRequest.java | 16 + .../sleep/requests/SleepGetRequest.java | 16 + .../sleepcycle/AsyncRawSleepCycleClient.java | 4 +- .../sleepcycle/RawSleepCycleClient.java | 4 +- .../requests/SleepCycleGetRequest.java | 16 + .../resources/team/AsyncRawTeamClient.java | 31 +- .../api/resources/team/RawTeamClient.java | 31 +- .../requests/TeamGetLinkConfigRequest.java | 10 + .../TeamGetSourcePrioritiesRequest.java | 10 + .../team/requests/TeamGetUserByIdRequest.java | 10 + .../testkit/AsyncRawTestkitClient.java | 8 +- .../resources/testkit/RawTestkitClient.java | 8 +- .../CreateRegistrableTestkitOrderRequest.java | 16 + .../requests/RegisterTestkitRequest.java | 16 + .../resources/user/AsyncRawUserClient.java | 76 +-- .../api/resources/user/RawUserClient.java | 76 +-- .../user/requests/CreateInsuranceRequest.java | 16 + .../requests/CreateUserPortalUrlBody.java | 16 + .../user/requests/UserCreateBody.java | 16 + .../user/requests/UserGetAllRequest.java | 10 + .../UserGetLatestInsuranceRequest.java | 10 + .../user/requests/UserInfoCreateRequest.java | 30 +- .../user/requests/UserPatchBody.java | 10 + .../user/requests/UserRefreshRequest.java | 10 + .../user/requests/UserUndoDeleteRequest.java | 10 + .../vitals/AsyncRawVitalsClient.java | 312 +++++----- .../api/resources/vitals/RawVitalsClient.java | 312 +++++----- .../VitalsAfibBurdenGroupedRequest.java | 16 + ...alsBasalBodyTemperatureGroupedRequest.java | 16 + .../VitalsBloodOxygenGroupedRequest.java | 16 + .../requests/VitalsBloodOxygenRequest.java | 16 + .../VitalsBloodPressureGroupedRequest.java | 16 + .../requests/VitalsBloodPressureRequest.java | 16 + .../requests/VitalsBodyFatGroupedRequest.java | 16 + .../vitals/requests/VitalsBodyFatRequest.java | 16 + .../VitalsBodyMassIndexGroupedRequest.java | 16 + ...alsBodyTemperatureDeltaGroupedRequest.java | 16 + .../VitalsBodyTemperatureGroupedRequest.java | 16 + .../VitalsBodyWeightGroupedRequest.java | 16 + .../requests/VitalsBodyWeightRequest.java | 16 + .../VitalsCaffeineGroupedRequest.java | 16 + .../requests/VitalsCaffeineRequest.java | 16 + .../VitalsCaloriesActiveGroupedRequest.java | 16 + .../requests/VitalsCaloriesActiveRequest.java | 16 + .../VitalsCaloriesBasalGroupedRequest.java | 16 + .../requests/VitalsCaloriesBasalRequest.java | 16 + .../VitalsCarbohydratesGroupedRequest.java | 16 + .../VitalsCholesterolGroupedRequest.java | 16 + .../requests/VitalsCholesterolHdlRequest.java | 16 + .../requests/VitalsCholesterolLdlRequest.java | 16 + .../requests/VitalsCholesterolRequest.java | 16 + .../VitalsCholesterolTotalRequest.java | 16 + ...VitalsCholesterolTriglyceridesRequest.java | 16 + .../VitalsDaylightExposureGroupedRequest.java | 16 + .../VitalsDistanceGroupedRequest.java | 16 + .../requests/VitalsDistanceRequest.java | 16 + ...lectrocardiogramVoltageGroupedRequest.java | 16 + ...VitalsElectrocardiogramVoltageRequest.java | 16 + .../requests/VitalsFallGroupedRequest.java | 16 + .../VitalsFloorsClimbedGroupedRequest.java | 16 + .../requests/VitalsFloorsClimbedRequest.java | 16 + ...ForcedExpiratoryVolume1GroupedRequest.java | 16 + ...talsForcedVitalCapacityGroupedRequest.java | 16 + .../requests/VitalsGlucoseGroupedRequest.java | 16 + .../vitals/requests/VitalsGlucoseRequest.java | 16 + .../VitalsHandwashingGroupedRequest.java | 16 + .../VitalsHeartRateAlertGroupedRequest.java | 16 + ...rtRateRecoveryOneMinuteGroupedRequest.java | 16 + .../VitalsHeartrateGroupedRequest.java | 16 + .../requests/VitalsHeartrateRequest.java | 16 + .../requests/VitalsHrvGroupedRequest.java | 16 + .../vitals/requests/VitalsHrvRequest.java | 16 + .../VitalsHypnogramGroupedRequest.java | 16 + .../requests/VitalsHypnogramRequest.java | 16 + .../requests/VitalsIgeGroupedRequest.java | 16 + .../vitals/requests/VitalsIgeRequest.java | 16 + .../requests/VitalsIggGroupedRequest.java | 16 + .../vitals/requests/VitalsIggRequest.java | 16 + .../VitalsInhalerUsageGroupedRequest.java | 16 + .../VitalsInsulinInjectionGroupedRequest.java | 16 + .../VitalsLeanBodyMassGroupedRequest.java | 16 + ...italsMindfulnessMinutesGroupedRequest.java | 16 + .../VitalsMindfulnessMinutesRequest.java | 16 + .../requests/VitalsNoteGroupedRequest.java | 16 + ...sPeakExpiratoryFlowRateGroupedRequest.java | 16 + .../VitalsRespiratoryRateGroupedRequest.java | 16 + .../VitalsRespiratoryRateRequest.java | 16 + .../VitalsSleepApneaAlertGroupedRequest.java | 16 + ...eepBreathingDisturbanceGroupedRequest.java | 16 + .../VitalsStandDurationGroupedRequest.java | 16 + .../VitalsStandHourGroupedRequest.java | 16 + .../requests/VitalsStepsGroupedRequest.java | 16 + .../vitals/requests/VitalsStepsRequest.java | 16 + .../VitalsStressLevelGroupedRequest.java | 16 + .../requests/VitalsStressLevelRequest.java | 16 + .../VitalsUvExposureGroupedRequest.java | 16 + .../requests/VitalsVo2MaxGroupedRequest.java | 16 + .../vitals/requests/VitalsVo2MaxRequest.java | 16 + ...italsWaistCircumferenceGroupedRequest.java | 16 + .../requests/VitalsWaterGroupedRequest.java | 16 + .../vitals/requests/VitalsWaterRequest.java | 16 + .../VitalsWheelchairPushGroupedRequest.java | 16 + .../VitalsWorkoutDistanceGroupedRequest.java | 16 + .../VitalsWorkoutDurationGroupedRequest.java | 16 + ...lsWorkoutSwimmingStrokeGroupedRequest.java | 16 + .../workouts/AsyncRawWorkoutsClient.java | 12 +- .../resources/workouts/RawWorkoutsClient.java | 12 +- .../requests/WorkoutsGetRawRequest.java | 16 + .../workouts/requests/WorkoutsGetRequest.java | 16 + .../vital/api/types/ActivityColumnExpr.java | 16 + .../com/vital/api/types/ActivityV2InDb.java | 16 + .../java/com/vital/api/types/AddOnOrder.java | 10 + .../java/com/vital/api/types/Address.java | 53 +- .../com/vital/api/types/AggregateExpr.java | 16 + .../com/vital/api/types/AggregateExprArg.java | 78 +-- .../vital/api/types/AggregationResponse.java | 10 + .../vital/api/types/AggregationResult.java | 10 + src/main/java/com/vital/api/types/Answer.java | 16 + src/main/java/com/vital/api/types/AoE.java | 10 + .../java/com/vital/api/types/AoEAnswer.java | 16 + .../types/AppointmentAvailabilitySlots.java | 10 + .../api/types/AppointmentBookingRequest.java | 48 ++ .../vital/api/types/AppointmentLocation.java | 16 + .../vital/api/types/AppointmentProvider.java | 4 +- .../vital/api/types/AppointmentPscLabs.java | 24 + .../types/AppointmentRescheduleRequest.java | 55 +- .../java/com/vital/api/types/AreaInfo.java | 16 + .../api/types/AsleepAtValueMacroExpr.java | 10 + .../api/types/AwakeAtValueMacroExpr.java | 10 + .../api/types/BasalBodyTemperatureEntry.java | 16 + .../com/vital/api/types/BiomarkerResult.java | 16 + .../types/BloodPressureTimeseriesExpr.java | 16 + .../com/vital/api/types/BodyColumnExpr.java | 16 + .../java/com/vital/api/types/BodyV2InDb.java | 16 + .../types/BulkExportConnectionsResponse.java | 10 + .../types/BulkImportConnectionsResponse.java | 10 + src/main/java/com/vital/api/types/BulkOp.java | 16 + .../com/vital/api/types/BulkOpsResponse.java | 10 + .../vital/api/types/CanonicalCandidate.java | 397 +++++++++++++ .../vital/api/types/CervicalMucusEntry.java | 16 + .../api/types/ChronotypeValueMacroExpr.java | 10 + .../api/types/ClientActivityResponse.java | 10 + .../vital/api/types/ClientBodyResponse.java | 10 + .../types/ClientFacingAFibBurdenSample.java | 16 + .../vital/api/types/ClientFacingActivity.java | 16 + .../types/ClientFacingActivityChanged.java | 16 + ...FacingActivityHistoricalPullCompleted.java | 16 + .../types/ClientFacingAfibBurdenChanged.java | 16 + ...cingAfibBurdenHistoricalPullCompleted.java | 16 + .../vital/api/types/ClientFacingApiKey.java | 16 + .../api/types/ClientFacingAppointment.java | 48 ++ ...ntFacingAppointmentCancellationReason.java | 16 + .../types/ClientFacingAppointmentChanged.java | 16 + .../types/ClientFacingAppointmentEvent.java | 16 + .../ClientFacingAtHomePhlebotomyOrder.java | 16 + ...entFacingAtHomePhlebotomyOrderDetails.java | 10 + ...ientFacingBasalBodyTemperatureChanged.java | 16 + ...odyTemperatureHistoricalPullCompleted.java | 16 + ...lientFacingBasalBodyTemperatureSample.java | 16 + .../types/ClientFacingBloodOxygenChanged.java | 16 + ...ingBloodOxygenHistoricalPullCompleted.java | 16 + .../ClientFacingBloodOxygenTimeseries.java | 16 + .../ClientFacingBloodPressureChanged.java | 16 + ...gBloodPressureHistoricalPullCompleted.java | 16 + .../ClientFacingBloodPressureTimeseries.java | 16 + .../com/vital/api/types/ClientFacingBody.java | 16 + .../api/types/ClientFacingBodyChanged.java | 16 + .../types/ClientFacingBodyFatTimeseries.java | 16 + ...ientFacingBodyHistoricalPullCompleted.java | 16 + .../ClientFacingBodyMassIndexChanged.java | 16 + ...gBodyMassIndexHistoricalPullCompleted.java | 16 + .../ClientFacingBodyMassIndexSample.java | 16 + .../ClientFacingBodyTemperatureChanged.java | 16 + ...ientFacingBodyTemperatureDeltaChanged.java | 16 + ...mperatureDeltaHistoricalPullCompleted.java | 16 + ...lientFacingBodyTemperatureDeltaSample.java | 16 + ...odyTemperatureHistoricalPullCompleted.java | 16 + .../ClientFacingBodyTemperatureSample.java | 16 + .../ClientFacingBodyWeightTimeseries.java | 16 + .../types/ClientFacingCaffeineChanged.java | 16 + ...FacingCaffeineHistoricalPullCompleted.java | 16 + .../types/ClientFacingCaffeineTimeseries.java | 16 + .../ClientFacingCaloriesActiveChanged.java | 16 + ...CaloriesActiveHistoricalPullCompleted.java | 16 + .../ClientFacingCaloriesActiveTimeseries.java | 16 + .../ClientFacingCaloriesBasalChanged.java | 16 + ...gCaloriesBasalHistoricalPullCompleted.java | 16 + .../ClientFacingCaloriesBasalTimeseries.java | 16 + .../ClientFacingCarbohydratesChanged.java | 16 + ...gCarbohydratesHistoricalPullCompleted.java | 16 + .../ClientFacingCarbohydratesSample.java | 16 + .../types/ClientFacingCholesterolChanged.java | 16 + ...ingCholesterolHistoricalPullCompleted.java | 16 + .../ClientFacingCholesterolTimeseries.java | 16 + .../ClientFacingConnectionErrorDetails.java | 16 + ...cingContinuousQueryResultTableChanged.java | 16 + .../api/types/ClientFacingCriticalResult.java | 16 + .../ClientFacingCriticalResultIdentified.java | 16 + .../ClientFacingDaylightExposureChanged.java | 16 + ...ylightExposureHistoricalPullCompleted.java | 16 + .../ClientFacingDaylightExposureSample.java | 16 + .../vital/api/types/ClientFacingDevice.java | 16 + .../api/types/ClientFacingDeviceChanged.java | 16 + .../ClientFacingDiagnosisInformation.java | 16 + .../types/ClientFacingDistanceChanged.java | 16 + ...FacingDistanceHistoricalPullCompleted.java | 16 + .../types/ClientFacingDistanceTimeseries.java | 16 + .../types/ClientFacingElectrocardiogram.java | 16 + .../ClientFacingElectrocardiogramChanged.java | 16 + ...ctrocardiogramHistoricalPullCompleted.java | 16 + ...ClientFacingElectrocardiogramResponse.java | 10 + ...FacingElectrocardiogramVoltageChanged.java | 16 + ...diogramVoltageHistoricalPullCompleted.java | 16 + ...ingElectrocardiogramVoltageTimeseries.java | 16 + .../api/types/ClientFacingFallChanged.java | 16 + ...ientFacingFallHistoricalPullCompleted.java | 16 + .../api/types/ClientFacingFallSample.java | 16 + .../api/types/ClientFacingFatChanged.java | 16 + ...lientFacingFatHistoricalPullCompleted.java | 16 + .../ClientFacingFloorsClimbedChanged.java | 16 + ...gFloorsClimbedHistoricalPullCompleted.java | 16 + .../ClientFacingFloorsClimbedTimeseries.java | 16 + .../com/vital/api/types/ClientFacingFood.java | 10 + ...tFacingForcedExpiratoryVolume1Changed.java | 16 + ...iratoryVolume1HistoricalPullCompleted.java | 16 + ...ntFacingForcedExpiratoryVolume1Sample.java | 16 + ...lientFacingForcedVitalCapacityChanged.java | 16 + ...dVitalCapacityHistoricalPullCompleted.java | 16 + ...ClientFacingForcedVitalCapacitySample.java | 16 + .../api/types/ClientFacingGlucoseChanged.java | 16 + ...tFacingGlucoseHistoricalPullCompleted.java | 16 + .../types/ClientFacingGlucoseTimeseries.java | 16 + .../types/ClientFacingHandwashingChanged.java | 16 + ...ingHandwashingHistoricalPullCompleted.java | 16 + .../types/ClientFacingHandwashingSample.java | 16 + .../api/types/ClientFacingHeartRate.java | 10 + .../ClientFacingHeartRateAlertChanged.java | 16 + ...HeartRateAlertHistoricalPullCompleted.java | 16 + .../ClientFacingHeartRateAlertSample.java | 16 + ...cingHeartRateRecoveryOneMinuteChanged.java | 16 + ...overyOneMinuteHistoricalPullCompleted.java | 16 + ...acingHeartRateRecoveryOneMinuteSample.java | 16 + .../ClientFacingHeartRateTimeseries.java | 16 + .../types/ClientFacingHeartrateChanged.java | 16 + ...acingHeartrateHistoricalPullCompleted.java | 16 + .../api/types/ClientFacingHrvChanged.java | 16 + ...lientFacingHrvHistoricalPullCompleted.java | 16 + .../api/types/ClientFacingHrvTimeseries.java | 16 + .../ClientFacingHypnogramTimeseries.java | 16 + .../api/types/ClientFacingIgeChanged.java | 16 + ...lientFacingIgeHistoricalPullCompleted.java | 16 + .../api/types/ClientFacingIgeTimeseries.java | 16 + .../api/types/ClientFacingIggChanged.java | 16 + ...lientFacingIggHistoricalPullCompleted.java | 16 + .../api/types/ClientFacingIggTimeseries.java | 16 + .../ClientFacingInhalerUsageChanged.java | 16 + ...ngInhalerUsageHistoricalPullCompleted.java | 16 + .../types/ClientFacingInhalerUsageSample.java | 16 + .../ClientFacingInsulinInjectionChanged.java | 16 + ...sulinInjectionHistoricalPullCompleted.java | 16 + .../ClientFacingInsulinInjectionSample.java | 16 + .../api/types/ClientFacingInsurance.java | 16 + .../com/vital/api/types/ClientFacingLab.java | 16 + .../api/types/ClientFacingLabAccount.java | 451 +++++++++++++++ .../api/types/ClientFacingLabLocation.java | 16 + ...FacingLabReportParsingJobCreatedEvent.java | 199 +++++++ ...FacingLabReportParsingJobUpdatedEvent.java | 199 +++++++ .../vital/api/types/ClientFacingLabTest.java | 16 + .../com/vital/api/types/ClientFacingLabs.java | 4 +- .../ClientFacingLeanBodyMassChanged.java | 16 + ...ngLeanBodyMassHistoricalPullCompleted.java | 16 + .../types/ClientFacingLeanBodyMassSample.java | 16 + .../vital/api/types/ClientFacingLoinc.java | 16 + .../vital/api/types/ClientFacingMarker.java | 16 + .../api/types/ClientFacingMarkerComplete.java | 16 + .../api/types/ClientFacingMealChanged.java | 16 + ...ientFacingMealHistoricalPullCompleted.java | 16 + .../api/types/ClientFacingMealResponse.java | 10 + .../api/types/ClientFacingMenstrualCycle.java | 16 + .../ClientFacingMenstrualCycleChanged.java | 16 + ...MenstrualCycleHistoricalPullCompleted.java | 16 + ...ClientFacingMindfulnessMinutesChanged.java | 16 + ...fulnessMinutesHistoricalPullCompleted.java | 16 + ...entFacingMindfulnessMinutesTimeseries.java | 16 + .../api/types/ClientFacingNoteChanged.java | 16 + ...ientFacingNoteHistoricalPullCompleted.java | 16 + .../api/types/ClientFacingNoteSample.java | 16 + .../ClientFacingOnSiteCollectionOrder.java | 16 + ...entFacingOnSiteCollectionOrderDetails.java | 10 + .../vital/api/types/ClientFacingOrder.java | 80 ++- .../api/types/ClientFacingOrderChanged.java | 16 + .../api/types/ClientFacingOrderEvent.java | 16 + .../types/ClientFacingOrderInTransaction.java | 16 + .../types/ClientFacingOrderTransaction.java | 16 + .../ClientFacingPatientDetailsCompatible.java | 16 + .../vital/api/types/ClientFacingPayor.java | 16 + .../ClientFacingPayorSearchResponse.java | 16 + ...ntFacingPayorSearchResponseDeprecated.java | 16 + ...ntFacingPeakExpiratoryFlowRateChanged.java | 16 + ...ratoryFlowRateHistoricalPullCompleted.java | 16 + ...entFacingPeakExpiratoryFlowRateSample.java | 16 + .../api/types/ClientFacingPhysician.java | 16 + .../vital/api/types/ClientFacingProfile.java | 16 + .../api/types/ClientFacingProfileChanged.java | 16 + ...tFacingProfileHistoricalPullCompleted.java | 16 + .../vital/api/types/ClientFacingProvider.java | 16 + ...tFacingProviderConnectionCreatedEvent.java | 16 + ...entFacingProviderConnectionErrorEvent.java | 16 + .../types/ClientFacingProviderDetailed.java | 16 + .../types/ClientFacingProviderWithStatus.java | 16 + .../ClientFacingRespiratoryRateChanged.java | 16 + ...espiratoryRateHistoricalPullCompleted.java | 16 + ...ClientFacingRespiratoryRateTimeseries.java | 16 + .../vital/api/types/ClientFacingResult.java | 16 + .../ClientFacingShallowWorkoutStream.java | 16 + .../vital/api/types/ClientFacingShipment.java | 16 + .../vital/api/types/ClientFacingSleep.java | 16 + .../ClientFacingSleepApneaAlertChanged.java | 16 + ...leepApneaAlertHistoricalPullCompleted.java | 16 + .../ClientFacingSleepApneaAlertSample.java | 16 + ...acingSleepBreathingDisturbanceChanged.java | 16 + ...ingDisturbanceHistoricalPullCompleted.java | 16 + ...FacingSleepBreathingDisturbanceSample.java | 16 + .../api/types/ClientFacingSleepChanged.java | 16 + .../api/types/ClientFacingSleepCycle.java | 16 + .../types/ClientFacingSleepCycleChanged.java | 16 + ...cingSleepCycleHistoricalPullCompleted.java | 16 + ...entFacingSleepHistoricalPullCompleted.java | 16 + .../api/types/ClientFacingSleepStream.java | 10 + .../vital/api/types/ClientFacingSource.java | 16 + .../vital/api/types/ClientFacingSport.java | 16 + .../ClientFacingStandDurationChanged.java | 16 + ...gStandDurationHistoricalPullCompleted.java | 16 + .../ClientFacingStandDurationSample.java | 16 + .../types/ClientFacingStandHourChanged.java | 16 + ...acingStandHourHistoricalPullCompleted.java | 16 + .../types/ClientFacingStandHourSample.java | 16 + .../api/types/ClientFacingStepsChanged.java | 16 + ...entFacingStepsHistoricalPullCompleted.java | 16 + .../types/ClientFacingStepsTimeseries.java | 16 + .../vital/api/types/ClientFacingStream.java | 10 + .../types/ClientFacingStressLevelChanged.java | 16 + ...ingStressLevelHistoricalPullCompleted.java | 16 + .../ClientFacingStressLevelTimeseries.java | 16 + .../com/vital/api/types/ClientFacingTeam.java | 16 + .../ClientFacingTestKitOrderDetails.java | 10 + .../api/types/ClientFacingTestkitOrder.java | 16 + .../com/vital/api/types/ClientFacingUser.java | 16 + .../vital/api/types/ClientFacingUserKey.java | 16 + .../types/ClientFacingUvExposureChanged.java | 16 + ...cingUvExposureHistoricalPullCompleted.java | 16 + .../types/ClientFacingUvExposureSample.java | 16 + .../api/types/ClientFacingVo2MaxChanged.java | 16 + ...ntFacingVo2MaxHistoricalPullCompleted.java | 16 + .../types/ClientFacingVo2MaxTimeseries.java | 16 + ...ClientFacingWaistCircumferenceChanged.java | 16 + ...tCircumferenceHistoricalPullCompleted.java | 16 + .../ClientFacingWaistCircumferenceSample.java | 16 + .../types/ClientFacingWalkInOrderDetails.java | 10 + .../types/ClientFacingWalkInTestOrder.java | 16 + .../api/types/ClientFacingWaterChanged.java | 16 + ...entFacingWaterHistoricalPullCompleted.java | 16 + .../types/ClientFacingWaterTimeseries.java | 16 + .../api/types/ClientFacingWeightChanged.java | 16 + ...ntFacingWeightHistoricalPullCompleted.java | 16 + .../ClientFacingWheelchairPushChanged.java | 16 + ...WheelchairPushHistoricalPullCompleted.java | 16 + .../ClientFacingWheelchairPushSample.java | 16 + .../vital/api/types/ClientFacingWorkout.java | 16 + .../ClientFacingWorkoutDistanceChanged.java | 16 + ...orkoutDistanceHistoricalPullCompleted.java | 16 + .../ClientFacingWorkoutDistanceSample.java | 16 + .../ClientFacingWorkoutDurationChanged.java | 16 + ...orkoutDurationHistoricalPullCompleted.java | 16 + .../ClientFacingWorkoutDurationSample.java | 16 + .../api/types/ClientFacingWorkoutMap.java | 10 + .../ClientFacingWorkoutStreamChanged.java | 16 + ...gWorkoutStreamHistoricalPullCompleted.java | 16 + ...entFacingWorkoutSwimmingStrokeChanged.java | 16 + ...SwimmingStrokeHistoricalPullCompleted.java | 16 + ...ientFacingWorkoutSwimmingStrokeSample.java | 16 + .../types/ClientFacingWorkoutsChanged.java | 16 + ...FacingWorkoutsHistoricalPullCompleted.java | 16 + .../api/types/ClientSleepCycleResponse.java | 10 + .../vital/api/types/ClientSleepResponse.java | 10 + .../vital/api/types/ClientUserIdConflict.java | 16 + .../types/ClientUserIdConflictResponse.java | 16 + .../api/types/ClientWorkoutResponse.java | 10 + .../vital/api/types/ClinicalInformation.java | 10 + .../com/vital/api/types/CompanyDetails.java | 16 + .../vital/api/types/CompendiumSearchLabs.java | 28 + .../types/ConnectedSourceClientFacing.java | 16 + .../com/vital/api/types/ConnectionRecipe.java | 16 + .../java/com/vital/api/types/Consent.java | 16 + .../ContinuousQueryResultTableChanges.java | 16 + .../ContinuousQueryTaskHistoryEntry.java | 16 + .../ContinuousQueryTaskHistoryResponse.java | 10 + .../vital/api/types/ContraceptiveEntry.java | 16 + .../api/types/ConvertCompendiumResponse.java | 344 +++++++++++ .../types/CreateUserPortalUrlResponse.java | 16 + .../com/vital/api/types/DatePartExpr.java | 16 + .../com/vital/api/types/DateTruncExpr.java | 16 + .../java/com/vital/api/types/DaySlots.java | 16 + .../vital/api/types/DemoConnectionStatus.java | 16 + .../api/types/DerivedReadinessColumnExpr.java | 130 +++++ ...edReadinessColumnExprDerivedReadiness.java | 36 ++ .../api/types/DetectedDeviationEntry.java | 16 + .../com/vital/api/types/DeviceV2InDb.java | 16 + .../api/types/DiscreteTimeseriesExpr.java | 16 + src/main/java/com/vital/api/types/Energy.java | 16 + .../types/EventDestinationPreferences.java | 16 + .../vital/api/types/FallbackBirthDate.java | 16 + .../com/vital/api/types/FallbackTimeZone.java | 16 + src/main/java/com/vital/api/types/Fats.java | 10 + .../vital/api/types/GetMarkersResponse.java | 10 + .../types/GetOrderTransactionResponse.java | 28 +- .../vital/api/types/GetOrdersResponse.java | 10 + .../api/types/GetTeamLabAccountsResponse.java | 107 ++++ .../vital/api/types/GroupKeyColumnExpr.java | 16 + .../vital/api/types/GroupedAFibBurden.java | 16 + .../api/types/GroupedAFibBurdenResponse.java | 10 + .../types/GroupedBasalBodyTemperature.java | 16 + .../GroupedBasalBodyTemperatureResponse.java | 10 + .../vital/api/types/GroupedBloodOxygen.java | 16 + .../api/types/GroupedBloodOxygenResponse.java | 10 + .../vital/api/types/GroupedBloodPressure.java | 16 + .../types/GroupedBloodPressureResponse.java | 10 + .../com/vital/api/types/GroupedBodyFat.java | 16 + .../api/types/GroupedBodyFatResponse.java | 10 + .../vital/api/types/GroupedBodyMassIndex.java | 16 + .../types/GroupedBodyMassIndexResponse.java | 10 + .../api/types/GroupedBodyTemperature.java | 16 + .../types/GroupedBodyTemperatureDelta.java | 16 + .../GroupedBodyTemperatureDeltaResponse.java | 10 + .../types/GroupedBodyTemperatureResponse.java | 10 + .../vital/api/types/GroupedBodyWeight.java | 16 + .../api/types/GroupedBodyWeightResponse.java | 10 + .../com/vital/api/types/GroupedCaffeine.java | 16 + .../api/types/GroupedCaffeineResponse.java | 10 + .../api/types/GroupedCaloriesActive.java | 16 + .../types/GroupedCaloriesActiveResponse.java | 10 + .../vital/api/types/GroupedCaloriesBasal.java | 16 + .../types/GroupedCaloriesBasalResponse.java | 10 + .../vital/api/types/GroupedCarbohydrates.java | 16 + .../types/GroupedCarbohydratesResponse.java | 10 + .../vital/api/types/GroupedCholesterol.java | 16 + .../api/types/GroupedCholesterolResponse.java | 10 + .../api/types/GroupedDaylightExposure.java | 16 + .../GroupedDaylightExposureResponse.java | 10 + .../com/vital/api/types/GroupedDistance.java | 16 + .../api/types/GroupedDistanceResponse.java | 10 + .../GroupedElectrocardiogramVoltage.java | 16 + ...oupedElectrocardiogramVoltageResponse.java | 10 + .../java/com/vital/api/types/GroupedFall.java | 16 + .../vital/api/types/GroupedFallResponse.java | 10 + .../vital/api/types/GroupedFloorsClimbed.java | 16 + .../types/GroupedFloorsClimbedResponse.java | 10 + .../types/GroupedForcedExpiratoryVolume1.java | 16 + ...roupedForcedExpiratoryVolume1Response.java | 10 + .../api/types/GroupedForcedVitalCapacity.java | 16 + .../GroupedForcedVitalCapacityResponse.java | 10 + .../com/vital/api/types/GroupedGlucose.java | 16 + .../api/types/GroupedGlucoseResponse.java | 10 + .../vital/api/types/GroupedHandwashing.java | 16 + .../api/types/GroupedHandwashingResponse.java | 10 + .../com/vital/api/types/GroupedHeartRate.java | 16 + .../api/types/GroupedHeartRateAlert.java | 16 + .../types/GroupedHeartRateAlertResponse.java | 10 + .../GroupedHeartRateRecoveryOneMinute.java | 16 + ...pedHeartRateRecoveryOneMinuteResponse.java | 10 + .../api/types/GroupedHeartRateResponse.java | 10 + .../java/com/vital/api/types/GroupedHrv.java | 16 + .../vital/api/types/GroupedHrvResponse.java | 10 + .../com/vital/api/types/GroupedHypnogram.java | 16 + .../api/types/GroupedHypnogramResponse.java | 10 + .../java/com/vital/api/types/GroupedIge.java | 16 + .../vital/api/types/GroupedIgeResponse.java | 10 + .../java/com/vital/api/types/GroupedIgg.java | 16 + .../vital/api/types/GroupedIggResponse.java | 10 + .../vital/api/types/GroupedInhalerUsage.java | 16 + .../types/GroupedInhalerUsageResponse.java | 10 + .../api/types/GroupedInsulinInjection.java | 16 + .../GroupedInsulinInjectionResponse.java | 10 + .../vital/api/types/GroupedLeanBodyMass.java | 16 + .../types/GroupedLeanBodyMassResponse.java | 10 + .../api/types/GroupedMindfulnessMinutes.java | 16 + .../GroupedMindfulnessMinutesResponse.java | 10 + .../java/com/vital/api/types/GroupedNote.java | 16 + .../vital/api/types/GroupedNoteResponse.java | 10 + .../types/GroupedPeakExpiratoryFlowRate.java | 16 + ...GroupedPeakExpiratoryFlowRateResponse.java | 10 + .../api/types/GroupedRespiratoryRate.java | 16 + .../types/GroupedRespiratoryRateResponse.java | 10 + .../api/types/GroupedSleepApneaAlert.java | 16 + .../types/GroupedSleepApneaAlertResponse.java | 10 + .../GroupedSleepBreathingDisturbance.java | 16 + ...upedSleepBreathingDisturbanceResponse.java | 10 + .../vital/api/types/GroupedStandDuration.java | 16 + .../types/GroupedStandDurationResponse.java | 10 + .../com/vital/api/types/GroupedStandHour.java | 16 + .../api/types/GroupedStandHourResponse.java | 10 + .../com/vital/api/types/GroupedSteps.java | 16 + .../vital/api/types/GroupedStepsResponse.java | 10 + .../vital/api/types/GroupedStressLevel.java | 16 + .../api/types/GroupedStressLevelResponse.java | 10 + .../vital/api/types/GroupedUvExposure.java | 16 + .../api/types/GroupedUvExposureResponse.java | 10 + .../com/vital/api/types/GroupedVo2Max.java | 16 + .../api/types/GroupedVo2MaxResponse.java | 10 + .../api/types/GroupedWaistCircumference.java | 16 + .../GroupedWaistCircumferenceResponse.java | 10 + .../com/vital/api/types/GroupedWater.java | 16 + .../vital/api/types/GroupedWaterResponse.java | 10 + .../api/types/GroupedWheelchairPush.java | 16 + .../types/GroupedWheelchairPushResponse.java | 10 + .../api/types/GroupedWorkoutDistance.java | 16 + .../types/GroupedWorkoutDistanceResponse.java | 10 + .../api/types/GroupedWorkoutDuration.java | 16 + .../types/GroupedWorkoutDurationResponse.java | 10 + .../types/GroupedWorkoutSwimmingStroke.java | 16 + .../GroupedWorkoutSwimmingStrokeResponse.java | 10 + .../com/vital/api/types/GuarantorDetails.java | 16 + .../types/HealthInsuranceCreateRequest.java | 10 + .../api/types/HistoricalPullCompleted.java | 16 + .../api/types/HistoricalPullTimeline.java | 16 + .../api/types/HomePregnancyTestEntry.java | 16 + .../api/types/HomeProgesteroneTestEntry.java | 16 + .../vital/api/types/HttpValidationError.java | 10 + .../vital/api/types/IcdExcludesViolation.java | 16 + .../vital/api/types/IcdExcludesWarning.java | 16 + .../com/vital/api/types/IndexColumnExpr.java | 16 + .../vital/api/types/IndexColumnExprIndex.java | 2 + .../types/IntermenstrualBleedingEntry.java | 16 + .../api/types/IntervalTimeseriesExpr.java | 16 + src/main/java/com/vital/api/types/Jpeg.java | 16 + .../api/types/LabAccountDelegatedFlow.java | 28 + .../com/vital/api/types/LabAccountStatus.java | 26 + .../vital/api/types/LabLocationMetadata.java | 16 + .../com/vital/api/types/LabReportResult.java | 16 + .../vital/api/types/LabResultsMetadata.java | 16 + .../com/vital/api/types/LabResultsRaw.java | 54 +- .../api/types/LabTestResourcesResponse.java | 10 + src/main/java/com/vital/api/types/Labs.java | 2 + .../java/com/vital/api/types/LastAttempt.java | 16 + .../java/com/vital/api/types/LibreConfig.java | 10 + .../api/types/LinkTokenExchangeResponse.java | 16 + src/main/java/com/vital/api/types/LngLat.java | 16 + .../java/com/vital/api/types/LoincMatch.java | 16 + src/main/java/com/vital/api/types/Macros.java | 10 + .../com/vital/api/types/ManualProviders.java | 4 +- .../com/vital/api/types/MealColumnExpr.java | 16 + .../types/MealInDbBaseClientFacingSource.java | 16 + .../api/types/MenstrualCycleResponse.java | 10 + .../vital/api/types/MenstrualFlowEntry.java | 16 + .../com/vital/api/types/MetricsResult.java | 16 + src/main/java/com/vital/api/types/Micros.java | 10 + .../api/types/MissingBiomarkerResult.java | 16 + .../vital/api/types/NotFoundErrorBody.java | 10 + .../vital/api/types/NoteTimeseriesExpr.java | 16 + .../com/vital/api/types/OrderSetRequest.java | 10 + .../com/vital/api/types/OrderSummary.java | 16 + .../vital/api/types/OvulationTestEntry.java | 16 + .../api/types/PaginatedUsersResponse.java | 16 + .../vital/api/types/ParentBiomarkerData.java | 16 + .../vital/api/types/ParsedLabReportData.java | 16 + .../java/com/vital/api/types/ParsingJob.java | 57 +- .../com/vital/api/types/PatientAddress.java | 59 +- .../api/types/PatientAddressCompatible.java | 58 +- .../types/PatientAddressWithValidation.java | 58 +- .../types/PatientDetailsWithValidation.java | 16 + .../api/types/PayorCodeExternalProvider.java | 6 +- .../com/vital/api/types/PerLabCandidate.java | 546 ++++++++++++++++++ .../vital/api/types/PerformingLaboratory.java | 16 + src/main/java/com/vital/api/types/Period.java | 16 + .../vital/api/types/PhlebotomyAreaInfo.java | 16 + .../api/types/PhlebotomyProviderInfo.java | 16 + .../api/types/PhysicianCreateRequest.java | 16 + .../api/types/PhysicianCreateRequestBase.java | 16 + .../java/com/vital/api/types/Placeholder.java | 16 + src/main/java/com/vital/api/types/Png.java | 16 + .../vital/api/types/PostOrderResponse.java | 16 + .../vital/api/types/ProfileColumnExpr.java | 16 + .../java/com/vital/api/types/ProfileInDb.java | 16 + .../api/types/ProviderConnectionCreated.java | 16 + .../api/types/ProviderConnectionError.java | 16 + .../types/ProviderIdConversionResponse.java | 152 +++++ .../vital/api/types/ProviderLinkResponse.java | 16 + .../vital/api/types/ProviderMfaRequest.java | 16 + .../java/com/vital/api/types/Providers.java | 2 + .../java/com/vital/api/types/PscAreaInfo.java | 16 + .../vital/api/types/PscAreaInfoDetails.java | 16 + .../java/com/vital/api/types/PscInfo.java | 16 + src/main/java/com/vital/api/types/Query.java | 10 + .../java/com/vital/api/types/QueryConfig.java | 10 + .../com/vital/api/types/QueryGroupByItem.java | 78 +-- .../com/vital/api/types/QuerySelectItem.java | 82 +-- .../java/com/vital/api/types/Question.java | 16 + .../java/com/vital/api/types/RawActivity.java | 10 + .../java/com/vital/api/types/RawBody.java | 10 + .../java/com/vital/api/types/RawDevices.java | 10 + .../java/com/vital/api/types/RawProfile.java | 16 + .../java/com/vital/api/types/RawSleep.java | 10 + .../java/com/vital/api/types/RawWorkout.java | 10 + .../com/vital/api/types/RelatedCandidate.java | 201 +++++++ .../vital/api/types/RelativeTimeframe.java | 16 + .../api/types/ResendWebhookResponse.java | 10 + .../vital/api/types/ResourceAvailability.java | 16 + .../com/vital/api/types/ResultMetadata.java | 42 ++ .../vital/api/types/ResultMetadataGender.java | 26 + .../java/com/vital/api/types/SampleData.java | 10 + .../api/types/ScopeRequirementsGrants.java | 16 + .../vital/api/types/ScopeRequirementsStr.java | 10 + .../api/types/SearchCompendiumResponse.java | 244 ++++++++ .../java/com/vital/api/types/SearchMode.java | 24 + .../vital/api/types/SexualActivityEntry.java | 16 + .../com/vital/api/types/ShippingAddress.java | 16 + .../types/ShippingAddressWithValidation.java | 16 + .../com/vital/api/types/SimulationFlags.java | 10 + .../types/SingleHistoricalPullStatistics.java | 16 + .../SingleProviderHistoricalPullResponse.java | 10 + .../api/types/SingleResourceStatistics.java | 10 + .../SingleUserHistoricalPullResponse.java | 16 + .../api/types/SingleUserResourceResponse.java | 16 + .../com/vital/api/types/SleepColumnExpr.java | 16 + .../api/types/SleepScoreValueMacroExpr.java | 10 + .../java/com/vital/api/types/SleepV2InDb.java | 16 + src/main/java/com/vital/api/types/Source.java | 16 + .../com/vital/api/types/SourceColumnExpr.java | 16 + .../java/com/vital/api/types/SourceLink.java | 16 + .../java/com/vital/api/types/TeamConfig.java | 16 + .../api/types/TemperatureTimeseriesExpr.java | 16 + .../java/com/vital/api/types/TimeSlot.java | 16 + .../api/types/TimeseriesMetricPoint.java | 16 + .../api/types/UnrecognizedValueMacroExpr.java | 16 + .../java/com/vital/api/types/UsAddress.java | 53 +- .../java/com/vital/api/types/UsState.java | 120 ++++ .../java/com/vital/api/types/UserAddress.java | 280 +++++++++ .../types/UserHistoricalPullsResponse.java | 10 + .../java/com/vital/api/types/UserInfo.java | 28 +- .../api/types/UserRefreshErrorResponse.java | 16 + .../api/types/UserRefreshSuccessResponse.java | 16 + .../api/types/UserResourcesResponse.java | 10 + .../api/types/UserSignInTokenResponse.java | 16 + .../vital/api/types/UserSuccessResponse.java | 16 + .../types/UtcTimestampWithTimezoneOffset.java | 16 + .../api/types/ValidateIcdCodesResponse.java | 16 + .../com/vital/api/types/ValidationError.java | 16 + ...asLabTestHealthInsurancePersonDetails.java | 16 + ...bSchemasLabTestInsurancePersonDetails.java | 16 + .../api/types/VitalTokenCreatedResponse.java | 16 + .../vital/api/types/WorkoutColumnExpr.java | 16 + .../types/WorkoutDurationTimeseriesExpr.java | 16 + .../com/vital/api/types/WorkoutV2InDb.java | 16 + src/test/java/com/vital/api/StreamTest.java | 23 + 790 files changed, 18287 insertions(+), 1540 deletions(-) create mode 100644 changelog.md create mode 100644 src/main/java/com/vital/api/core/ConsoleLogger.java create mode 100644 src/main/java/com/vital/api/core/ILogger.java create mode 100644 src/main/java/com/vital/api/core/LogConfig.java create mode 100644 src/main/java/com/vital/api/core/LogLevel.java create mode 100644 src/main/java/com/vital/api/core/Logger.java create mode 100644 src/main/java/com/vital/api/core/LoggingInterceptor.java create mode 100644 src/main/java/com/vital/api/core/SseEvent.java create mode 100644 src/main/java/com/vital/api/core/SseEventParser.java create mode 100644 src/main/java/com/vital/api/resources/compendium/AsyncCompendiumClient.java create mode 100644 src/main/java/com/vital/api/resources/compendium/AsyncRawCompendiumClient.java create mode 100644 src/main/java/com/vital/api/resources/compendium/CompendiumClient.java create mode 100644 src/main/java/com/vital/api/resources/compendium/RawCompendiumClient.java create mode 100644 src/main/java/com/vital/api/resources/compendium/requests/ConvertCompendiumBody.java create mode 100644 src/main/java/com/vital/api/resources/compendium/requests/SearchCompendiumBody.java create mode 100644 src/main/java/com/vital/api/resources/compendium/types/CompendiumConvertRequestTeamId.java create mode 100644 src/main/java/com/vital/api/resources/compendium/types/CompendiumSearchRequestTeamId.java create mode 100644 src/main/java/com/vital/api/resources/labaccount/AsyncLabAccountClient.java create mode 100644 src/main/java/com/vital/api/resources/labaccount/AsyncRawLabAccountClient.java create mode 100644 src/main/java/com/vital/api/resources/labaccount/LabAccountClient.java create mode 100644 src/main/java/com/vital/api/resources/labaccount/RawLabAccountClient.java create mode 100644 src/main/java/com/vital/api/resources/labaccount/requests/LabAccountGetTeamLabAccountsRequest.java create mode 100644 src/main/java/com/vital/api/types/AppointmentPscLabs.java create mode 100644 src/main/java/com/vital/api/types/CanonicalCandidate.java create mode 100644 src/main/java/com/vital/api/types/ClientFacingLabAccount.java create mode 100644 src/main/java/com/vital/api/types/ClientFacingLabReportParsingJobCreatedEvent.java create mode 100644 src/main/java/com/vital/api/types/ClientFacingLabReportParsingJobUpdatedEvent.java create mode 100644 src/main/java/com/vital/api/types/CompendiumSearchLabs.java create mode 100644 src/main/java/com/vital/api/types/ConvertCompendiumResponse.java create mode 100644 src/main/java/com/vital/api/types/DerivedReadinessColumnExpr.java create mode 100644 src/main/java/com/vital/api/types/DerivedReadinessColumnExprDerivedReadiness.java create mode 100644 src/main/java/com/vital/api/types/GetTeamLabAccountsResponse.java create mode 100644 src/main/java/com/vital/api/types/LabAccountDelegatedFlow.java create mode 100644 src/main/java/com/vital/api/types/LabAccountStatus.java create mode 100644 src/main/java/com/vital/api/types/PerLabCandidate.java create mode 100644 src/main/java/com/vital/api/types/ProviderIdConversionResponse.java create mode 100644 src/main/java/com/vital/api/types/RelatedCandidate.java create mode 100644 src/main/java/com/vital/api/types/ResultMetadataGender.java create mode 100644 src/main/java/com/vital/api/types/SearchCompendiumResponse.java create mode 100644 src/main/java/com/vital/api/types/SearchMode.java create mode 100644 src/main/java/com/vital/api/types/UsState.java create mode 100644 src/main/java/com/vital/api/types/UserAddress.java diff --git a/.fern/metadata.json b/.fern/metadata.json index 189279f9..e2e470ed 100644 --- a/.fern/metadata.json +++ b/.fern/metadata.json @@ -1,12 +1,13 @@ { - "cliVersion": "3.48.2", + "cliVersion": "4.27.0", "generatorName": "fernapi/fern-java-sdk", - "generatorVersion": "3.33.2", + "generatorVersion": "3.39.1", "generatorConfig": { "publish-to": "central", "base-api-exception-class-name": "ApiError", "client-class-name": "Vital", "enable-forward-compatible-enums": false }, - "sdkVersion": "1.2.605" + "originGitCommit": "856e195ab66a0f38c0e09885cf5623b9a19fad8c", + "sdkVersion": "2.0.0" } \ No newline at end of file diff --git a/.fernignore b/.fernignore index 43ca0d22..07281cd7 100644 --- a/.fernignore +++ b/.fernignore @@ -1,3 +1,4 @@ # Specify files that shouldn't be modified by Fern README.md +changelog.md diff --git a/build.gradle b/build.gradle index a36120f5..c7a2ef79 100644 --- a/build.gradle +++ b/build.gradle @@ -47,7 +47,7 @@ java { group = 'io.tryvital' -version = '1.2.605' +version = '2.0.0' jar { dependsOn(":generatePomFileForMavenPublication") @@ -78,7 +78,7 @@ publishing { maven(MavenPublication) { groupId = 'io.tryvital' artifactId = 'vital-java' - version = '1.2.605' + version = '2.0.0' from components.java pom { name = 'vital' diff --git a/changelog.md b/changelog.md new file mode 100644 index 00000000..4bde30e8 --- /dev/null +++ b/changelog.md @@ -0,0 +1,37 @@ +## 2.0.0 - 2026-03-13 +* The InputStream-based `parserCreateJob` methods have been removed from `LabReportClient` and `AsyncLabReportClient`. Use the File-based `parserCreateJob(File, BodyCreateLabReportParserJob)` method instead for uploading lab report files. +* The `RawLabReportClient.parserCreateJob()` method no longer accepts `InputStream` parameters. Use the `File`-based overloads instead. Additionally, several request classes now include new optional fields for enhanced lab configuration: `labAccountId` and `labSlug` in `CreateLabTestRequest`, `labSlug` in `LabTestsGetMarkersRequest`, and `appointmentNotes` in `RequestAppointmentRequest`. +* The SDK now supports additional fields for enhanced functionality: SDK version tracking in ManualConnectionData, access notes for addresses, appointment notes for rescheduling, and clinical notes for orders. A new DerivedReadinessColumnExpr type is available for readiness data queries. +* Breaking changes to improve type safety: GetOrderTransactionResponse.status is now an OrderTransactionStatus enum instead of String, and ParsingJob.jobId field has been removed. New optional fields added: orderTransaction on LabResultsRaw and accessNotes on PatientAddress types. Enhanced QueryGroupByItem with DerivedReadinessColumnExpr support. +* New DerivedReadinessColumnExpr type available for advanced query expressions in QuerySelectItem. The UsAddress type now includes an optional access_notes field for delivery instructions. Lab test marker methods have been enhanced with new getMarkersForLabTest methods that include reflex markers, and improved documentation. +* The getMarkers method now supports a lab_slug parameter for filtering markers by lab slug. Documentation has been enhanced for marker-related methods to clarify that reflex markers are excluded from general marker listings but included when fetching markers for specific lab tests. +* The SDK now supports configurable logging with LogConfig for debugging HTTP requests and responses. New provider options include SONORA_QUEST for lab services, SAMSUNG_HEALTH for manual data entry, and APERO/PVERIFY for payor code verification. Additional client methods compendium() and labAccount() are now available. +* New CompendiumClient available with search() and convert() methods for working with compendium data. The client supports both synchronous and asynchronous operations with comprehensive error handling. +* New compendium search and convert APIs are now available for lab test data operations. The SDK also adds a new LabAccountClient for managing team lab accounts with full async support. +* New lab account management capabilities with `RawLabAccountClient.getTeamLabAccounts()` method for retrieving lab account information. The SDK now supports optional clinical notes when creating lab test orders through the `clinicalNotes` field in `CreateOrderRequestCompatible`. +* New builder methods `additionalProperty()` and `additionalProperties()` are now available on all request class builders, allowing developers to include custom key-value pairs in API requests that aren't explicitly defined in the schema. +* New `additionalProperty()` and `additionalProperties()` builder methods are now available on all request objects, providing a convenient way to add custom properties to API requests with fluent method chaining. +* New `additionalProperty()` and `additionalProperties()` methods available on all vitals request builders, allowing custom key-value pairs to be included with API requests. +* New builder methods `additionalProperty()` and `additionalProperties()` are now available on all vitals request builders, enabling custom metadata to be passed alongside standard parameters. +* The SDK now supports additional properties on builder classes through new `additionalProperty()` and `additionalProperties()` methods. These methods allow setting custom key-value pairs for extensibility and forward compatibility. Additionally, `AppointmentBookingRequest` now accepts optional appointment notes, and a new `AppointmentPscLabs` enum has been added for Quest and Sonora Quest lab providers. +* New CanonicalCandidate type available for biomarker canonical search operations. Builder classes now support setting additional properties via additionalProperty() and additionalProperties() methods. +* The ClientFacingAppointment class now includes an optional appointmentNotes field to store provider notes and comments. Access appointment notes using the new getAppointmentNotes() method or set them via the builder pattern. +* New builder methods `additionalProperty()` and `additionalProperties()` are now available on all data model classes. These methods enable fluent setting of additional properties that may not be explicitly defined in the schema. +* The SDK now provides builder methods for setting additional properties on data objects. Use `additionalProperty(key, value)` or `additionalProperties(map)` on any builder to include custom properties during object construction. +* The SDK now supports setting additional properties on model objects through their builders. New `additionalProperty()` and `additionalProperties()` methods are available on all model builders to handle extra fields that may be present in API responses. +* New webhook events for lab report parsing job lifecycle tracking: `lab_report.parsing_job.created` and `lab_report.parsing_job.updated`. Added `ClientFacingLabAccount` class for managing laboratory account configurations including billing, team access controls, and business unit settings. All model builders now include `additionalProperty()` and `additionalProperties()` methods for extensible field support. +* Builder classes now support setting additional properties via new `additionalProperty()` and `additionalProperties()` methods. These methods enable more flexible object construction for cases requiring custom fields or metadata. +* New builder methods `additionalProperty()` and `additionalProperties()` are now available on data model classes for setting custom properties dynamically. +* New `additionalProperty()` and `additionalProperties()` builder methods are now available on all type classes, providing a convenient way to set custom properties that aren't part of the defined schema. +* New `additionalProperty()` and `additionalProperties()` builder methods are now available on client-facing type classes, providing a fluent interface for managing additional properties on model objects and improving API extensibility. +* New compendium conversion types and builder flexibility added. The SDK now includes CompendiumSearchLabs enum for lab provider constants, ConvertCompendiumResponse for handling lab test conversions, and DerivedReadinessColumnExpr types for readiness data queries. Builder classes now support additionalProperty methods for dynamic property handling. +* New builder methods `additionalProperty()` and `additionalProperties()` are now available on model builders for better handling of unknown JSON fields. The SDK also adds support for team lab account operations with the new `GetTeamLabAccountsResponse` class. +* The SDK now supports setting additional properties on grouped data types through new builder methods. Use `additionalProperty()` to set individual properties or `additionalProperties()` to set multiple properties at once. +* New builder methods `additionalProperty()` and `additionalProperties()` are now available on grouped data type builders, allowing custom properties to be set during object construction. +* The SDK now includes optional builder methods for setting additional properties on model objects, providing more flexibility in object construction. New enum values have been added for expanded type support including DERIVED_READINESS index expressions and SONORA_QUEST lab provider. +* New builder methods `additionalProperty()` and `additionalProperties()` are now available on response and data type builders, allowing programmatic construction of objects with custom fields. +* New PerLabCandidate type is now available for working with laboratory test candidates, including detailed metadata such as LOINC codes, CPT codes, and confidence scores. All builder classes now consistently support additionalProperty() methods for handling custom JSON fields. +* The SDK now supports Samsung Health as a provider option and includes new types for provider ID conversion functionality. A gender field has been added to ResultMetadata with support for male, female, and other values. +* New `SearchCompendiumResponse` and `SearchMode` types available for compendium search functionality. The `UsState` enum provides standardized US state abbreviations. Enhanced builder patterns across existing types now support additional properties for improved extensibility. +* New UserAddress type available for representing user address information with fields for address lines, country, zip, city, state, and optional access notes. + diff --git a/reference.md b/reference.md index ab88a1cb..4c472928 100644 --- a/reference.md +++ b/reference.md @@ -706,7 +706,6 @@ Check link token state - can be hit continuously used as heartbeat client.link().tokenState( LinkTokenStateRequest .builder() - .vitalLinkToken("x-vital-link-token") .build() ); ``` @@ -768,7 +767,6 @@ client.link().emailAuth( .email("email") .provider(Providers.OURA) .authType(AuthType.PASSWORD) - .vitalLinkToken("x-vital-link-token") .build() ); ``` @@ -863,7 +861,6 @@ client.link().passwordAuth( .password("password") .provider(Providers.OURA) .authType(AuthType.PASSWORD) - .vitalLinkToken("x-vital-link-token") .build() ); ``` @@ -955,7 +952,6 @@ client.link().generateOauthLink( OAuthProviders.OURA, LinkGenerateOauthLinkRequest .builder() - .vitalLinkToken("x-vital-link-token") .build() ); ``` @@ -1025,7 +1021,6 @@ client.link().connectPasswordProvider( .builder() .username("username") .password("password") - .vitalLinkToken("x-vital-link-token") .build() ); ``` @@ -1118,7 +1113,6 @@ client.link().completePasswordProviderMfa( CompletePasswordProviderMfaBody .builder() .mfaCode("mfa_code") - .vitalLinkToken("x-vital-link-token") .build() ); ``` @@ -1195,7 +1189,6 @@ client.link().connectEmailAuthProvider( EmailProviderAuthLink .builder() .email("email") - .vitalLinkToken("x-vital-link-token") .build() ); ``` @@ -1286,7 +1279,6 @@ GET List of all available providers given the generated link token. client.link().getAllProviders( LinkGetAllProvidersRequest .builder() - .vitalLinkToken("x-vital-link-token") .build() ); ``` @@ -1357,6 +1349,22 @@ client.link().connectManualProvider(
client.compendium.search(request) -> SearchCompendiumResponseclient.compendium.convert(request) -> ConvertCompendiumResponseclient.labAccount.getTeamLabAccounts() -> GetTeamLabAccountsResponseUses the "fern" logger name with a simple format of "LEVEL - message". + */ +public final class ConsoleLogger implements ILogger { + + private static final java.util.logging.Logger logger = java.util.logging.Logger.getLogger("fern"); + + static { + if (logger.getHandlers().length == 0) { + java.util.logging.ConsoleHandler handler = new java.util.logging.ConsoleHandler(); + handler.setFormatter(new java.util.logging.SimpleFormatter() { + @Override + public String format(java.util.logging.LogRecord record) { + return record.getLevel() + " - " + record.getMessage() + System.lineSeparator(); + } + }); + logger.addHandler(handler); + logger.setUseParentHandlers(false); + logger.setLevel(Level.ALL); + } + } + + @Override + public void debug(String message) { + logger.log(Level.FINE, message); + } + + @Override + public void info(String message) { + logger.log(Level.INFO, message); + } + + @Override + public void warn(String message) { + logger.log(Level.WARNING, message); + } + + @Override + public void error(String message) { + logger.log(Level.SEVERE, message); + } +} diff --git a/src/main/java/com/vital/api/core/ILogger.java b/src/main/java/com/vital/api/core/ILogger.java new file mode 100644 index 00000000..b8972346 --- /dev/null +++ b/src/main/java/com/vital/api/core/ILogger.java @@ -0,0 +1,38 @@ +/** + * This file was auto-generated by Fern from our API Definition. + */ +package com.vital.api.core; + +/** + * Interface for custom logger implementations. + * + *
Implement this interface to provide a custom logging backend for the SDK. + * The SDK will call the appropriate method based on the log level. + * + *
Example: + *
{@code
+ * public class MyCustomLogger implements ILogger {
+ * public void debug(String message) {
+ * System.out.println("[DBG] " + message);
+ * }
+ * public void info(String message) {
+ * System.out.println("[INF] " + message);
+ * }
+ * public void warn(String message) {
+ * System.out.println("[WRN] " + message);
+ * }
+ * public void error(String message) {
+ * System.out.println("[ERR] " + message);
+ * }
+ * }
+ * }
+ */
+public interface ILogger {
+ void debug(String message);
+
+ void info(String message);
+
+ void warn(String message);
+
+ void error(String message);
+}
diff --git a/src/main/java/com/vital/api/core/LogConfig.java b/src/main/java/com/vital/api/core/LogConfig.java
new file mode 100644
index 00000000..33c5b4aa
--- /dev/null
+++ b/src/main/java/com/vital/api/core/LogConfig.java
@@ -0,0 +1,98 @@
+/**
+ * This file was auto-generated by Fern from our API Definition.
+ */
+package com.vital.api.core;
+
+/**
+ * Configuration for SDK logging.
+ *
+ * Use the builder to configure logging behavior: + *
{@code
+ * LogConfig config = LogConfig.builder()
+ * .level(LogLevel.DEBUG)
+ * .silent(false)
+ * .build();
+ * }
+ *
+ * Or with a custom logger: + *
{@code
+ * LogConfig config = LogConfig.builder()
+ * .level(LogLevel.DEBUG)
+ * .logger(new MyCustomLogger())
+ * .silent(false)
+ * .build();
+ * }
+ *
+ * Defaults: + *
Silent by default — no log output unless explicitly configured. + * Create via {@link LogConfig} or directly: + *
{@code
+ * Logger logger = new Logger(LogLevel.DEBUG, new ConsoleLogger(), false);
+ * logger.debug("request sent");
+ * }
+ */
+public final class Logger {
+
+ private static final Logger DEFAULT = new Logger(LogLevel.INFO, new ConsoleLogger(), true);
+
+ private final LogLevel level;
+ private final ILogger logger;
+ private final boolean silent;
+
+ public Logger(LogLevel level, ILogger logger, boolean silent) {
+ this.level = level;
+ this.logger = logger;
+ this.silent = silent;
+ }
+
+ /**
+ * Returns a default silent logger (no output).
+ */
+ public static Logger getDefault() {
+ return DEFAULT;
+ }
+
+ /**
+ * Creates a Logger from a {@link LogConfig}. If config is {@code null}, returns the default silent logger.
+ */
+ public static Logger from(LogConfig config) {
+ if (config == null) {
+ return DEFAULT;
+ }
+ return new Logger(config.level(), config.logger(), config.silent());
+ }
+
+ /**
+ * Creates a Logger from an {@code OptionalLogs request method, URL, and headers (with sensitive values redacted) at debug level.
+ * Logs response status at debug level, and 4xx/5xx responses at error level.
+ * Does nothing if the logger is silent.
+ */
+public final class LoggingInterceptor implements Interceptor {
+
+ private static final Set
+ * Handles two discrimination patterns:
+ *
+ * Constructs the full SSE envelope object with event, data, id, and retry fields,
+ * then deserializes it to the target union type.
+ *
+ * @param eventType The SSE event type (from event: field)
+ * @param data The SSE data content (from data: field)
+ * @param id The SSE event ID (from id: field), may be null
+ * @param retry The SSE retry value (from retry: field), may be null
+ * @param unionClass The target union class
+ * @param discriminatorProperty The property name used for discrimination (e.g., "event")
+ * @param
+ * Simply parses the data field as JSON and deserializes it to the target type.
+ * Jackson's polymorphic deserialization handles the discrimination automatically.
+ *
+ * @param data The SSE data content (from data: field)
+ * @param valueType The target type
+ * @param
+ *
+ */
+public final class SseEventParser {
+
+ private static final Set