From 5f2b052b251a2de012c3f044a11708d5c9199674 Mon Sep 17 00:00:00 2001 From: "fern-api[bot]" <115122769+fern-api[bot]@users.noreply.github.com> Date: Tue, 31 Mar 2026 19:19:59 +0000 Subject: [PATCH 1/2] SDK regeneration --- .fern/metadata.json | 16 + .github/workflows/ci.yml | 4 + build.gradle | 25 +- reference.md | 4232 ++++++++++------- .../com/schematic/api/AsyncBaseSchematic.java | 24 + .../api/AsyncBaseSchematicBuilder.java | 24 + .../schematic/api/AsyncRawBaseSchematic.java | 36 +- .../schematic/api/BaseSchematicBuilder.java | 24 + .../com/schematic/api/RawBaseSchematic.java | 36 +- .../api/core/BaseSchematicApiException.java | 4 +- .../com/schematic/api/core/ClientOptions.java | 48 +- .../com/schematic/api/core/ConsoleLogger.java | 51 + .../schematic/api/core/DoubleSerializer.java | 43 + .../java/com/schematic/api/core/ILogger.java | 38 + .../com/schematic/api/core/LogConfig.java | 98 + .../java/com/schematic/api/core/LogLevel.java | 36 + .../java/com/schematic/api/core/Logger.java | 97 + .../api/core/LoggingInterceptor.java | 104 + .../api/core/NullableNonemptyFilter.java | 5 +- .../com/schematic/api/core/ObjectMappers.java | 10 + .../schematic/api/core/RequestOptions.java | 41 +- .../api/core/Rfc2822DateTimeDeserializer.java | 25 + .../java/com/schematic/api/core/SseEvent.java | 114 + .../schematic/api/core/SseEventParser.java | 228 + .../java/com/schematic/api/core/Stream.java | 221 +- .../AsyncRawAccesstokensClient.java | 22 +- .../accesstokens/RawAccesstokensClient.java | 22 +- .../IssueTemporaryAccessTokenRequestBody.java | 16 + .../IssueTemporaryAccessTokenResponse.java | 16 + .../resources/accounts/AccountsClient.java | 66 +- .../accounts/AsyncAccountsClient.java | 69 +- .../accounts/AsyncRawAccountsClient.java | 712 ++- .../resources/accounts/RawAccountsClient.java | 618 +-- .../requests/CountApiKeysRequest.java | 48 +- .../requests/CountAuditLogsRequest.java | 89 +- .../requests/CreateApiKeyRequestBody.java | 52 +- .../CreateEnvironmentRequestBody.java | 16 + .../accounts/requests/ListApiKeysRequest.java | 48 +- .../requests/ListAuditLogsRequest.java | 89 +- .../requests/ListEnvironmentsRequest.java | 34 +- .../requests/UpdateApiKeyRequestBody.java | 10 + .../UpdateEnvironmentRequestBody.java | 10 + .../accounts/types/CountApiKeysParams.java | 34 +- .../accounts/types/CountApiKeysResponse.java | 16 + .../accounts/types/CountAuditLogsParams.java | 91 +- .../types/CountAuditLogsResponse.java | 16 + .../accounts/types/CreateApiKeyResponse.java | 16 + .../types/CreateEnvironmentResponse.java | 16 + .../accounts/types/DeleteApiKeyResponse.java | 16 + .../types/DeleteEnvironmentResponse.java | 16 + .../accounts/types/GetApiKeyResponse.java | 16 + .../accounts/types/GetAuditLogResponse.java | 16 + .../types/GetEnvironmentResponse.java | 16 + ...stResponse.java => GetWhoAmIResponse.java} | 50 +- .../accounts/types/ListApiKeysParams.java | 34 +- .../accounts/types/ListApiKeysResponse.java | 16 + .../accounts/types/ListAuditLogsParams.java | 91 +- .../accounts/types/ListAuditLogsResponse.java | 16 + .../types/ListEnvironmentsParams.java | 34 +- .../types/ListEnvironmentsResponse.java | 16 + .../accounts/types/QuickstartResponse.java | 16 + .../accounts/types/UpdateApiKeyResponse.java | 16 + .../types/UpdateEnvironmentResponse.java | 16 + .../resources/billing/AsyncBillingClient.java | 33 + .../billing/AsyncRawBillingClient.java | 420 +- .../api/resources/billing/BillingClient.java | 32 + .../resources/billing/RawBillingClient.java | 418 +- .../requests/CountBillingProductsRequest.java | 34 +- .../requests/CountCustomersRequest.java | 34 +- .../CreateBillingCustomerRequestBody.java | 16 + .../CreateBillingPriceRequestBody.java | 44 +- .../CreateBillingProductRequestBody.java | 60 +- .../CreateBillingSubscriptionRequestBody.java | 92 +- .../requests/CreateCouponRequestBody.java | 64 +- .../requests/CreateInvoiceRequestBody.java | 97 +- .../requests/CreateMeterRequestBody.java | 16 + .../CreatePaymentMethodRequestBody.java | 48 +- .../requests/ListBillingPricesRequest.java | 78 +- .../ListBillingProductPricesRequest.java | 78 +- .../requests/ListBillingProductsRequest.java | 34 +- .../billing/requests/ListCouponsRequest.java | 34 +- ...ListCustomersWithSubscriptionsRequest.java | 34 +- .../billing/requests/ListInvoicesRequest.java | 48 +- .../billing/requests/ListMetersRequest.java | 34 +- .../requests/ListPaymentMethodsRequest.java | 48 +- .../types/CountBillingProductsParams.java | 34 +- .../types/CountBillingProductsResponse.java | 16 + .../billing/types/CountCustomersParams.java | 34 +- .../billing/types/CountCustomersResponse.java | 16 + .../types/DeleteBillingProductResponse.java | 16 + .../types/DeleteProductPriceResponse.java | 16 + .../types/ListBillingPricesParams.java | 80 +- .../types/ListBillingPricesResponse.java | 16 + .../types/ListBillingProductPricesParams.java | 80 +- .../ListBillingProductPricesResponse.java | 16 + .../types/ListBillingProductsParams.java | 34 +- .../types/ListBillingProductsResponse.java | 16 + .../billing/types/ListCouponsParams.java | 34 +- .../billing/types/ListCouponsResponse.java | 16 + .../ListCustomersWithSubscriptionsParams.java | 34 +- ...istCustomersWithSubscriptionsResponse.java | 16 + .../billing/types/ListInvoicesParams.java | 34 +- .../billing/types/ListInvoicesResponse.java | 16 + .../billing/types/ListMetersParams.java | 34 +- .../billing/types/ListMetersResponse.java | 16 + .../types/ListPaymentMethodsParams.java | 34 +- .../types/ListPaymentMethodsResponse.java | 16 + .../types/UpsertBillingCouponResponse.java | 16 + .../types/UpsertBillingCustomerResponse.java | 16 + .../types/UpsertBillingMeterResponse.java | 16 + .../types/UpsertBillingPriceResponse.java | 16 + .../types/UpsertBillingProductResponse.java | 16 + .../UpsertBillingSubscriptionResponse.java | 16 + .../billing/types/UpsertInvoiceResponse.java | 16 + .../types/UpsertPaymentMethodResponse.java | 16 + .../checkout/AsyncCheckoutClient.java | 7 + .../checkout/AsyncRawCheckoutClient.java | 162 +- .../resources/checkout/CheckoutClient.java | 7 + .../resources/checkout/RawCheckoutClient.java | 161 +- .../requests/CancelSubscriptionRequest.java | 16 + .../requests/CheckoutDataRequestBody.java | 16 + .../requests/UpdateTrialEndRequestBody.java | 10 + .../types/CancelSubscriptionResponse.java | 16 + .../types/CheckoutInternalResponse.java | 16 + .../types/GetCheckoutDataResponse.java | 16 + .../checkout/types/ManagePlanResponse.java | 16 + .../PreviewCheckoutInternalResponse.java | 16 + .../types/PreviewManagePlanResponse.java | 16 + ...eCustomerSubscriptionTrialEndResponse.java | 16 + .../companies/AsyncCompaniesClient.java | 114 +- .../companies/AsyncRawCompaniesClient.java | 1277 +++-- .../resources/companies/CompaniesClient.java | 110 +- .../companies/RawCompaniesClient.java | 1140 ++--- ...ountCompaniesForAdvancedFilterRequest.java | 595 --- .../requests/CountCompaniesRequest.java | 98 +- .../CountEntityKeyDefinitionsRequest.java | 34 +- .../CountEntityTraitDefinitionsRequest.java | 34 +- .../requests/CountPlanTraitsRequest.java | 34 +- .../companies/requests/CountUsersRequest.java | 34 +- ...reateEntityTraitDefinitionRequestBody.java | 16 + .../requests/CreatePlanTraitRequestBody.java | 16 + .../requests/DeleteCompanyRequest.java | 10 + .../GetActiveCompanySubscriptionRequest.java | 34 +- .../requests/GetEntityTraitValuesRequest.java | 48 +- ...tOrCreateCompanyMembershipRequestBody.java | 16 + ...ListCompaniesForAdvancedFilterRequest.java | 595 --- .../requests/ListCompaniesRequest.java | 98 +- .../ListCompanyMembershipsRequest.java | 34 +- .../ListEntityKeyDefinitionsRequest.java | 34 +- .../ListEntityTraitDefinitionsRequest.java | 34 +- .../requests/ListPlanChangesRequest.java | 34 +- .../requests/ListPlanTraitsRequest.java | 34 +- .../companies/requests/ListUsersRequest.java | 34 +- .../requests/LookupCompanyRequest.java | 10 + .../companies/requests/LookupUserRequest.java | 10 + ...pdateEntityTraitDefinitionRequestBody.java | 16 + .../UpdatePlanTraitBulkRequestBody.java | 16 + .../requests/UpdatePlanTraitRequestBody.java | 16 + ...CountCompaniesForAdvancedFilterParams.java | 553 --- .../companies/types/CountCompaniesParams.java | 104 +- .../types/CountCompaniesResponse.java | 16 + .../CountEntityKeyDefinitionsParams.java | 34 +- .../CountEntityKeyDefinitionsResponse.java | 16 + .../CountEntityTraitDefinitionsParams.java | 34 +- .../CountEntityTraitDefinitionsResponse.java | 16 + .../types/CountPlanTraitsParams.java | 34 +- .../types/CountPlanTraitsResponse.java | 16 + .../companies/types/CountUsersParams.java | 34 +- .../companies/types/CountUsersResponse.java | 16 + .../types/CreateCompanyResponse.java | 16 + .../types/CreatePlanTraitResponse.java | 16 + .../companies/types/CreateUserResponse.java | 16 + .../types/DeleteCompanyByKeysResponse.java | 16 + .../DeleteCompanyMembershipResponse.java | 16 + .../companies/types/DeleteCompanyParams.java | 10 + .../types/DeleteCompanyResponse.java | 16 + .../types/DeletePlanTraitResponse.java | 16 + .../types/DeleteUserByKeysResponse.java | 16 + .../companies/types/DeleteUserResponse.java | 16 + .../GetActiveCompanySubscriptionParams.java | 34 +- .../GetActiveCompanySubscriptionResponse.java | 16 + .../companies/types/GetCompanyResponse.java | 16 + .../GetEntityTraitDefinitionResponse.java | 16 + .../types/GetEntityTraitValuesParams.java | 34 +- .../types/GetEntityTraitValuesResponse.java | 16 + .../GetOrCreateCompanyMembershipResponse.java | 16 + ...OrCreateEntityTraitDefinitionResponse.java | 16 + .../types/GetPlanChangeResponse.java | 16 + .../companies/types/GetPlanTraitResponse.java | 16 + .../companies/types/GetUserResponse.java | 16 + .../ListCompaniesForAdvancedFilterParams.java | 553 --- .../companies/types/ListCompaniesParams.java | 104 +- .../types/ListCompaniesResponse.java | 16 + .../types/ListCompanyMembershipsParams.java | 34 +- .../types/ListCompanyMembershipsResponse.java | 16 + .../types/ListEntityKeyDefinitionsParams.java | 34 +- .../ListEntityKeyDefinitionsResponse.java | 16 + .../ListEntityTraitDefinitionsParams.java | 34 +- .../ListEntityTraitDefinitionsResponse.java | 16 + .../types/ListPlanChangesParams.java | 34 +- .../types/ListPlanChangesResponse.java | 16 + .../companies/types/ListPlanTraitsParams.java | 34 +- .../types/ListPlanTraitsResponse.java | 16 + .../companies/types/ListUsersParams.java | 34 +- .../companies/types/ListUsersResponse.java | 16 + .../companies/types/LookupCompanyParams.java | 10 + .../types/LookupCompanyResponse.java | 16 + .../companies/types/LookupUserParams.java | 10 + .../companies/types/LookupUserResponse.java | 16 + .../UpdateEntityTraitDefinitionResponse.java | 16 + .../types/UpdatePlanTraitResponse.java | 16 + .../types/UpdatePlanTraitsBulkResponse.java | 10 + .../types/UpsertCompanyResponse.java | 16 + .../types/UpsertCompanyTraitResponse.java | 16 + .../companies/types/UpsertUserResponse.java | 16 + .../types/UpsertUserTraitResponse.java | 16 + .../components/AsyncComponentsClient.java | 17 + .../components/AsyncRawComponentsClient.java | 158 +- .../components/ComponentsClient.java | 16 + .../components/RawComponentsClient.java | 151 +- .../requests/CountComponentsRequest.java | 35 +- .../requests/CreateComponentRequestBody.java | 16 + .../requests/ListComponentsRequest.java | 35 +- .../requests/PreviewComponentDataRequest.java | 10 + .../requests/UpdateComponentRequestBody.java | 10 + .../types/CountComponentsParams.java | 35 +- .../types/CountComponentsResponse.java | 16 + .../types/CreateComponentResponse.java | 16 + .../types/DeleteComponentResponse.java | 16 + .../types/GetComponentResponse.java | 16 + .../types/ListComponentsParams.java | 35 +- .../types/ListComponentsResponse.java | 16 + .../types/PreviewComponentDataParams.java | 10 + .../types/PreviewComponentDataResponse.java | 16 + .../types/UpdateComponentResponse.java | 16 + .../AsyncComponentspublicClient.java | 35 + .../AsyncRawComponentspublicClient.java | 116 + .../ComponentspublicClient.java | 34 + .../RawComponentspublicClient.java | 90 + .../types/GetPublicPlansResponse.java | 181 + .../resources/credits/AsyncCreditsClient.java | 78 + .../credits/AsyncRawCreditsClient.java | 772 ++- .../api/resources/credits/CreditsClient.java | 73 + .../resources/credits/RawCreditsClient.java | 719 ++- .../CountBillingCreditsGrantsRequest.java | 34 +- .../requests/CountBillingCreditsRequest.java | 34 +- .../CountBillingPlanCreditGrantsRequest.java | 119 +- .../requests/CountCompanyGrantsRequest.java | 34 +- .../requests/CountCreditBundlesRequest.java | 34 +- .../CountCreditEventLedgerRequest.java | 376 ++ .../requests/CountCreditLedgerRequest.java | 48 +- .../CreateBillingCreditRequestBody.java | 82 +- .../requests/CreateCompanyCreditGrant.java | 92 +- .../CreateCreditBundleRequestBody.java | 94 +- .../DeleteBillingPlanCreditGrantRequest.java | 10 + .../GetEnrichedCreditLedgerRequest.java | 48 +- .../requests/ListBillingCreditsRequest.java | 34 +- .../ListBillingPlanCreditGrantsRequest.java | 119 +- .../requests/ListCompanyGrantsRequest.java | 34 +- .../requests/ListCreditBundlesRequest.java | 34 +- .../ListCreditEventLedgerRequest.java | 376 ++ .../requests/ListGrantsForCreditRequest.java | 34 +- .../UpdateBillingCreditRequestBody.java | 82 +- .../UpdateCreditBundleDetailsRequestBody.java | 94 +- .../requests/ZeroOutGrantRequestBody.java | 10 + .../CountBillingCreditsGrantsParams.java | 34 +- .../CountBillingCreditsGrantsResponse.java | 16 + .../types/CountBillingCreditsParams.java | 34 +- .../types/CountBillingCreditsResponse.java | 16 + .../CountBillingPlanCreditGrantsParams.java | 65 +- .../CountBillingPlanCreditGrantsResponse.java | 16 + .../types/CountCompanyGrantsParams.java | 34 +- .../types/CountCompanyGrantsResponse.java | 16 + .../types/CountCreditBundlesParams.java | 34 +- .../types/CountCreditBundlesResponse.java | 16 + .../types/CountCreditEventLedgerParams.java | 305 ++ .../CountCreditEventLedgerResponse.java} | 53 +- .../types/CountCreditLedgerParams.java | 34 +- .../types/CountCreditLedgerResponse.java | 16 + .../types/CreateBillingCreditResponse.java | 16 + .../CreateBillingPlanCreditGrantResponse.java | 16 + .../types/CreateCreditBundleResponse.java | 16 + .../DeleteBillingPlanCreditGrantParams.java | 10 + .../DeleteBillingPlanCreditGrantResponse.java | 16 + .../types/DeleteCreditBundleResponse.java | 16 + .../types/GetCreditBundleResponse.java | 16 + .../types/GetEnrichedCreditLedgerParams.java | 34 +- .../GetEnrichedCreditLedgerResponse.java | 16 + .../types/GetSingleBillingCreditResponse.java | 16 + .../GrantBillingCreditsToCompanyResponse.java | 16 + .../types/ListBillingCreditsParams.java | 34 +- .../types/ListBillingCreditsResponse.java | 16 + .../ListBillingPlanCreditGrantsParams.java | 65 +- .../ListBillingPlanCreditGrantsResponse.java | 16 + .../types/ListCompanyGrantsParams.java | 34 +- .../types/ListCompanyGrantsResponse.java | 16 + .../types/ListCreditBundlesParams.java | 34 +- .../types/ListCreditBundlesResponse.java | 16 + .../types/ListCreditEventLedgerParams.java | 305 ++ .../types/ListCreditEventLedgerResponse.java} | 72 +- .../types/ListGrantsForCreditParams.java | 34 +- .../types/ListGrantsForCreditResponse.java | 16 + .../SoftDeleteBillingCreditResponse.java | 16 + .../types/UpdateBillingCreditResponse.java | 16 + .../UpdateBillingPlanCreditGrantResponse.java | 16 + .../UpdateCreditBundleDetailsResponse.java | 16 + .../credits/types/ZeroOutGrantResponse.java | 16 + .../AsyncRawDataexportsClient.java | 41 +- .../dataexports/RawDataexportsClient.java | 40 +- .../requests/CreateDataExportRequestBody.java | 16 + .../types/CreateDataExportResponse.java | 16 + .../entitlements/AsyncEntitlementsClient.java | 24 + .../AsyncRawEntitlementsClient.java | 410 +- .../entitlements/EntitlementsClient.java | 24 + .../entitlements/RawEntitlementsClient.java | 405 +- .../CountCompanyOverridesRequest.java | 34 +- .../CountFeatureCompaniesRequest.java | 48 +- .../requests/CountFeatureUsageRequest.java | 34 +- .../requests/CountFeatureUsersRequest.java | 48 +- .../CountPlanEntitlementsRequest.java | 34 +- .../CreateCompanyOverrideRequestBody.java | 32 +- .../CreatePlanEntitlementRequestBody.java | 128 +- .../DuplicatePlanEntitlementsRequestBody.java | 16 + .../GetFeatureUsageByCompanyRequest.java | 10 + .../GetFeatureUsageTimeSeriesRequest.java | 16 + .../requests/ListCompanyOverridesRequest.java | 34 +- .../requests/ListFeatureCompaniesRequest.java | 48 +- .../requests/ListFeatureUsageRequest.java | 34 +- .../requests/ListFeatureUsersRequest.java | 48 +- .../requests/ListPlanEntitlementsRequest.java | 34 +- .../UpdateCompanyOverrideRequestBody.java | 32 +- .../UpdatePlanEntitlementRequestBody.java | 96 +- .../types/CountCompanyOverridesParams.java | 34 +- .../types/CountCompanyOverridesResponse.java | 16 + .../types/CountFeatureCompaniesParams.java | 34 +- .../types/CountFeatureCompaniesResponse.java | 16 + .../types/CountFeatureUsageParams.java | 34 +- .../types/CountFeatureUsageResponse.java | 16 + .../types/CountFeatureUsersParams.java | 34 +- .../types/CountFeatureUsersResponse.java | 16 + .../types/CountPlanEntitlementsParams.java | 34 +- .../types/CountPlanEntitlementsResponse.java | 16 + .../types/CreateCompanyOverrideResponse.java | 16 + .../types/CreatePlanEntitlementResponse.java | 16 + .../types/DeleteCompanyOverrideResponse.java | 16 + .../types/DeletePlanEntitlementResponse.java | 16 + .../DuplicatePlanEntitlementsResponse.java | 16 + .../types/GetCompanyOverrideResponse.java | 16 + .../types/GetFeatureUsageByCompanyParams.java | 10 + .../GetFeatureUsageByCompanyResponse.java | 16 + .../GetFeatureUsageTimeSeriesParams.java | 10 + .../GetFeatureUsageTimeSeriesResponse.java | 16 + .../types/GetPlanEntitlementResponse.java | 16 + .../types/ListCompanyOverridesParams.java | 34 +- .../types/ListCompanyOverridesResponse.java | 16 + .../types/ListFeatureCompaniesParams.java | 34 +- .../types/ListFeatureCompaniesResponse.java | 16 + .../types/ListFeatureUsageParams.java | 34 +- .../types/ListFeatureUsageResponse.java | 16 + .../types/ListFeatureUsersParams.java | 34 +- .../types/ListFeatureUsersResponse.java | 16 + .../types/ListPlanEntitlementsParams.java | 34 +- .../types/ListPlanEntitlementsResponse.java | 16 + .../types/UpdateCompanyOverrideResponse.java | 16 + .../types/UpdatePlanEntitlementResponse.java | 16 + .../resources/events/AsyncEventsClient.java | 8 + .../events/AsyncRawEventsClient.java | 128 +- .../api/resources/events/EventsClient.java | 8 + .../api/resources/events/RawEventsClient.java | 127 +- .../requests/CreateEventBatchRequestBody.java | 10 + .../requests/GetEventSummariesRequest.java | 34 +- .../events/requests/ListEventsRequest.java | 34 +- .../types/CreateEventBatchResponse.java | 16 + .../events/types/CreateEventResponse.java | 16 + .../events/types/GetEventResponse.java | 16 + .../events/types/GetEventSummariesParams.java | 34 +- .../types/GetEventSummariesResponse.java | 16 + .../GetSegmentIntegrationStatusResponse.java | 16 + .../events/types/ListEventsParams.java | 34 +- .../events/types/ListEventsResponse.java | 16 + .../features/AsyncFeaturesClient.java | 28 + .../features/AsyncRawFeaturesClient.java | 366 +- .../resources/features/FeaturesClient.java | 28 + .../resources/features/RawFeaturesClient.java | 366 +- .../requests/CheckFlagsBulkRequestBody.java | 10 + .../requests/CountFeaturesRequest.java | 66 +- .../features/requests/CountFlagsRequest.java | 34 +- .../requests/CreateFeatureRequestBody.java | 16 + .../requests/ListFeaturesRequest.java | 66 +- .../features/requests/ListFlagsRequest.java | 34 +- .../requests/UpdateFeatureRequestBody.java | 10 + .../requests/UpdateFlagRulesRequestBody.java | 10 + .../features/types/CheckFlagResponse.java | 16 + .../types/CheckFlagsBulkResponse.java | 16 + .../features/types/CheckFlagsResponse.java | 16 + .../features/types/CountFeaturesParams.java | 66 +- .../features/types/CountFeaturesResponse.java | 16 + .../features/types/CountFlagsParams.java | 34 +- .../features/types/CountFlagsResponse.java | 16 + .../features/types/CreateFeatureResponse.java | 16 + .../features/types/CreateFlagResponse.java | 16 + .../features/types/DeleteFeatureResponse.java | 16 + .../features/types/DeleteFlagResponse.java | 16 + .../features/types/GetFeatureResponse.java | 16 + .../features/types/GetFlagResponse.java | 16 + .../features/types/ListFeaturesParams.java | 66 +- .../features/types/ListFeaturesResponse.java | 16 + .../features/types/ListFlagsParams.java | 34 +- .../features/types/ListFlagsResponse.java | 16 + .../features/types/UpdateFeatureResponse.java | 16 + .../features/types/UpdateFlagResponse.java | 16 + .../types/UpdateFlagRulesResponse.java | 16 + .../planbundle/AsyncRawPlanbundleClient.java | 46 +- .../planbundle/RawPlanbundleClient.java | 44 +- .../requests/CreatePlanBundleRequestBody.java | 10 + .../requests/UpdatePlanBundleRequestBody.java | 39 +- .../types/CreatePlanBundleResponse.java | 16 + .../types/UpdatePlanBundleResponse.java | 16 + .../plangroups/AsyncPlangroupsClient.java | 10 + .../plangroups/AsyncRawPlangroupsClient.java | 95 +- .../plangroups/PlangroupsClient.java | 9 + .../plangroups/RawPlangroupsClient.java | 93 +- .../requests/CreatePlanGroupRequestBody.java | 63 +- .../requests/GetPlanGroupRequest.java | 105 + .../requests/UpdatePlanGroupRequestBody.java | 63 +- .../types/CreatePlanGroupResponse.java | 16 + .../plangroups/types/GetPlanGroupParams.java | 105 + .../types/GetPlanGroupResponse.java | 64 +- .../types/UpdatePlanGroupResponse.java | 16 + .../AsyncPlanmigrationsClient.java | 116 + .../AsyncRawPlanmigrationsClient.java | 576 +++ .../planmigrations/PlanmigrationsClient.java | 110 + .../RawPlanmigrationsClient.java | 451 ++ .../CountCompanyMigrationsRequest.java} | 131 +- .../requests/CountMigrationsRequest.java | 192 + .../ListCompanyMigrationsRequest.java} | 131 +- .../requests/ListMigrationsRequest.java | 192 + .../types/CountCompanyMigrationsParams.java} | 129 +- .../types/CountCompanyMigrationsResponse.java | 153 + .../types/CountMigrationsParams.java | 192 + .../types/CountMigrationsResponse.java} | 50 +- .../types/GetMigrationResponse.java | 183 + .../types/ListCompanyMigrationsParams.java} | 129 +- .../types/ListCompanyMigrationsResponse.java} | 73 +- .../types/ListMigrationsParams.java | 192 + .../types/ListMigrationsResponse.java | 177 + .../api/resources/plans/AsyncPlansClient.java | 53 + .../resources/plans/AsyncRawPlansClient.java | 426 +- .../api/resources/plans/PlansClient.java | 49 + .../api/resources/plans/RawPlansClient.java | 379 +- .../plans/requests/CountPlansRequest.java | 66 +- .../requests/DeletePlanVersionRequest.java | 106 + .../plans/requests/GetPlanRequest.java | 111 + .../plans/requests/ListPlanIssuesRequest.java | 55 +- .../plans/requests/ListPlansRequest.java | 66 +- .../PublishPlanVersionRequestBody.java | 166 + .../UpdateCompanyPlansRequestBody.java | 10 + .../plans/types/CountPlansParams.java | 72 +- .../plans/types/CountPlansResponse.java | 16 + .../plans/types/CreatePlanResponse.java | 16 + .../plans/types/DeletePlanResponse.java | 16 + .../plans/types/DeletePlanVersionParams.java | 106 + .../types/DeletePlanVersionResponse.java | 153 + .../resources/plans/types/GetPlanParams.java | 111 + .../plans/types/GetPlanResponse.java | 64 +- .../plans/types/ListPlanIssuesParams.java | 41 +- .../plans/types/ListPlanIssuesResponse.java | 16 + .../plans/types/ListPlansParams.java | 72 +- .../plans/types/ListPlansResponse.java | 16 + .../types/PublishPlanVersionResponse.java | 181 + .../types/UpdateCompanyPlansResponse.java | 16 + .../plans/types/UpdatePlanResponse.java | 16 + .../UpsertBillingProductPlanResponse.java | 16 + .../AsyncRawScheduledcheckoutClient.java | 443 ++ .../AsyncScheduledcheckoutClient.java | 97 + .../RawScheduledcheckoutClient.java | 342 ++ .../ScheduledcheckoutClient.java | 94 + .../CreateScheduledCheckoutRequest.java | 195 + .../ListScheduledCheckoutsRequest.java | 192 + .../UpdateScheduledCheckoutRequest.java | 132 + .../CreateScheduledCheckoutResponse.java | 183 + .../types/GetScheduledCheckoutResponse.java | 183 + .../types/ListScheduledCheckoutsParams.java | 192 + .../types/ListScheduledCheckoutsResponse.java | 177 + .../UpdateScheduledCheckoutResponse.java | 183 + .../webhooks/AsyncRawWebhooksClient.java | 196 +- .../webhooks/AsyncWebhooksClient.java | 20 + .../resources/webhooks/RawWebhooksClient.java | 196 +- .../resources/webhooks/WebhooksClient.java | 20 + .../requests/CountWebhookEventsRequest.java | 34 +- .../requests/CountWebhooksRequest.java | 35 +- .../requests/CreateWebhookRequestBody.java | 16 + .../requests/ListWebhookEventsRequest.java | 34 +- .../requests/ListWebhooksRequest.java | 35 +- .../requests/UpdateWebhookRequestBody.java | 10 + .../types/CountWebhookEventsParams.java | 34 +- .../types/CountWebhookEventsResponse.java | 16 + .../webhooks/types/CountWebhooksParams.java | 35 +- .../webhooks/types/CountWebhooksResponse.java | 16 + .../webhooks/types/CreateWebhookResponse.java | 16 + .../webhooks/types/DeleteWebhookResponse.java | 16 + .../types/GetWebhookEventResponse.java | 16 + .../webhooks/types/GetWebhookResponse.java | 16 + .../types/ListWebhookEventsParams.java | 34 +- .../types/ListWebhookEventsResponse.java | 16 + .../webhooks/types/ListWebhooksParams.java | 35 +- .../webhooks/types/ListWebhooksResponse.java | 16 + .../webhooks/types/UpdateWebhookResponse.java | 16 + .../com/schematic/api/types/ActorType.java | 10 + .../com/schematic/api/types/ApiError.java | 16 + .../api/types/ApiKeyCreateResponseData.java | 48 +- .../types/ApiKeyRequestListResponseData.java | 567 --- .../api/types/ApiKeyRequestResponseData.java | 695 --- .../api/types/ApiKeyResponseData.java | 49 +- .../api/types/AuditLogListResponseData.java | 48 +- .../api/types/AuditLogResponseData.java | 48 +- .../api/types/BillingCouponResponseData.java | 76 +- .../BillingCreditBundleResponseData.java | 95 +- .../api/types/BillingCreditBundleView.java | 111 +- .../types/BillingCreditGrantResponseData.java | 60 +- .../BillingCreditLedgerResponseData.java | 16 + .../api/types/BillingCreditResponseData.java | 110 +- .../api/types/BillingCreditView.java | 655 +++ .../types/BillingCustomerResponseData.java | 16 + .../types/BillingCustomerSubscription.java | 40 +- ...CustomerWithSubscriptionsResponseData.java | 16 + .../api/types/BillingMeterResponseData.java | 16 + .../BillingPlanCreditGrantResponseData.java | 275 +- .../api/types/BillingPriceResponseData.java | 28 +- .../schematic/api/types/BillingPriceView.java | 40 +- .../BillingProductDetailResponseData.java | 28 +- ...ingProductForSubscriptionResponseData.java | 56 +- .../types/BillingProductPlanResponseData.java | 32 +- .../BillingProductPriceResponseData.java | 40 +- .../BillingProductPriceTierResponseData.java | 46 +- .../api/types/BillingProductPricing.java | 72 +- .../api/types/BillingProductResponseData.java | 16 + .../types/BillingSubscriptionDiscount.java | 16 + .../BillingSubscriptionDiscountView.java | 48 +- .../BillingSubscriptionResponseData.java | 84 +- .../api/types/BillingSubscriptionView.java | 84 +- .../schematic/api/types/CaptureRawEvent.java | 226 + .../api/types/CaptureRawEventBatch.java | 116 + ...ChangeSubscriptionInternalRequestBody.java | 16 + .../types/ChangeSubscriptionRequestBody.java | 16 + .../api/types/CheckFlagRequestBody.java | 10 + .../api/types/CheckFlagResponseData.java | 133 +- .../api/types/CheckFlagsBulkResponseData.java | 10 + .../api/types/CheckFlagsResponseData.java | 44 +- .../api/types/CheckoutDataResponseData.java | 10 + .../types/CheckoutSettingsResponseData.java | 16 + .../api/types/CheckoutSubscription.java | 84 +- .../api/types/CompanyDetailResponseData.java | 60 +- ...CompanyEventPeriodMetricsResponseData.java | 28 +- .../api/types/CompanyLedgerResponseData.java | 16 + .../CompanyMembershipDetailResponseData.java | 16 + .../types/CompanyMembershipResponseData.java | 16 + .../CompanyOverrideNoteResponseData.java | 16 + .../types/CompanyOverrideResponseData.java | 32 +- .../types/CompanyPlanDetailResponseData.java | 155 +- .../types/CompanyPlanWithBillingSubView.java | 32 +- .../api/types/CompanyResponseData.java | 16 + .../CompanySubscriptionResponseData.java | 28 +- ...mpanyViewWithFeatureUsageResponseData.java | 938 ---- .../schematic/api/types/CompatiblePlans.java | 16 + .../types/CompatiblePlansResponseData.java | 16 + .../api/types/ComponentCapabilities.java | 16 + .../api/types/ComponentCheckoutSettings.java | 16 + .../api/types/ComponentDisplaySettings.java | 47 +- .../types/ComponentHydrateResponseData.java | 48 + .../types/ComponentPreviewResponseData.java | 48 + .../api/types/ComponentResponseData.java | 16 + .../types/ComponentSettingsResponseData.java | 47 +- .../com/schematic/api/types/Condition.java | 32 +- .../schematic/api/types/ConditionGroup.java | 10 + .../api/types/ConditionGroupResponseData.java | 65 +- .../api/types/ConditionGroupView.java | 48 +- .../api/types/ConditionResponseData.java | 76 +- .../schematic/api/types/ConditionView.java | 76 +- .../schematic/api/types/CountResponse.java | 10 + .../api/types/CouponRequestBody.java | 64 +- ...eateBillingPlanCreditGrantRequestBody.java | 124 +- .../CreateBillingPriceTierRequestBody.java | 64 +- .../CreateEntitlementInBundleRequestBody.java | 160 +- .../api/types/CreateEntitlementReqCommon.java | 32 +- .../api/types/CreateEventRequestBody.java | 27 + .../api/types/CreateFlagRequestBody.java | 16 + ...eateOrUpdateConditionGroupRequestBody.java | 10 + .../CreateOrUpdateConditionRequestBody.java | 32 +- .../types/CreateOrUpdateFlagRequestBody.java | 16 + .../types/CreateOrUpdateRuleRequestBody.java | 28 +- .../api/types/CreatePlanRequestBody.java | 16 + .../api/types/CreatePriceTierRequestBody.java | 46 +- .../api/types/CreditBundleCurrencyPrice.java | 149 + .../CreditBundleCurrencyPriceRequestBody.java | 184 + ...CreditBundleCurrencyPriceResponseData.java | 150 + .../CreditBundlePurchaseResponseData.java | 40 +- .../api/types/CreditCompanyGrantView.java | 76 +- .../types/CreditCurrencyPriceRequestBody.java | 183 + .../CreditCurrencyPriceResponseData.java | 149 + .../types/CreditEventLedgerResponseData.java | 1048 ++++ .../schematic/api/types/CreditEventType.java | 103 + .../api/types/CreditGrantDetail.java | 16 + .../types/CreditGrantExpiryRequestBody.java | 32 +- ...CreditLedgerEnrichedEntryResponseData.java | 136 +- .../api/types/CreditTransferResponseData.java | 16 + .../api/types/CreditTransferView.java | 16 + .../api/types/CreditTriggerConfig.java | 16 + .../com/schematic/api/types/CreditUsage.java | 10 + .../api/types/CreditUsageAggregation.java | 10 + .../api/types/CreditUsageResponseData.java | 300 -- .../types/CreditsAutoTopupCompanySummary.java | 16 + .../types/CreditsAutoTopupCreditSummary.java | 16 + .../types/CreditsAutoTopupHardFailure.java | 10 + .../types/CreditsAutoTopupRetryFailure.java | 28 +- .../schematic/api/types/CustomPlanConfig.java | 16 + .../CustomPlanViewConfigResponseData.java | 16 + .../schematic/api/types/DataEventPayload.java | 208 + .../api/types/DataExportResponseData.java | 16 + .../api/types/DatastreamCompanyPlan.java | 172 + ...leteBillingPlanCreditGrantRequestBody.java | 10 + .../schematic/api/types/DeleteResponse.java | 10 + ...ePlanEntitlementsResponseResponseData.java | 10 + ...EntitlementCurrencyPricesResponseData.java | 183 + .../api/types/EntitlementTriggerConfig.java | 16 + .../api/types/EntitlementsInPlan.java | 16 + .../EntityKeyDefinitionResponseData.java | 16 + .../types/EntityKeyDetailResponseData.java | 16 + .../api/types/EntityKeyResponseData.java | 16 + .../EntityTraitDefinitionResponseData.java | 16 + .../types/EntityTraitDetailResponseData.java | 16 + .../api/types/EntityTraitResponseData.java | 16 + .../schematic/api/types/EntityTraitValue.java | 16 + .../types/EnvironmentDetailResponseData.java | 16 + .../api/types/EnvironmentResponseData.java | 16 + .../api/types/EventBodyFlagCheck.java | 16 + .../api/types/EventBodyIdentify.java | 10 + .../api/types/EventBodyIdentifyCompany.java | 10 + .../schematic/api/types/EventBodyTrack.java | 16 + .../api/types/EventDetailResponseData.java | 28 +- .../api/types/EventResponseData.java | 28 +- .../api/types/EventSummaryResponseData.java | 52 +- .../api/types/FeatureCompanyResponseData.java | 133 +- .../types/FeatureCompanyUserResponseData.java | 59 +- .../api/types/FeatureDetailResponseData.java | 16 + .../api/types/FeatureEntitlement.java | 75 +- .../api/types/FeatureLedgerResponseData.java | 16 + .../api/types/FeatureResponseData.java | 16 + .../types/FeatureUsageDataResponseData.java | 553 --- .../types/FeatureUsageDetailResponseData.java | 10 + .../types/FeatureUsageLegacyResponseData.java | 48 +- .../api/types/FeatureUsageResponseData.java | 133 +- .../FeatureUsageTimeSeriesResponseData.java | 16 + .../com/schematic/api/types/FeatureView.java | 16 + .../api/types/FlagDetailResponseData.java | 16 + .../schematic/api/types/FlagResponseData.java | 16 + .../com/schematic/api/types/FlagView.java | 16 + .../api/types/GenericPreviewObject.java | 16 + .../api/types/InvoiceRequestBody.java | 96 +- .../api/types/InvoiceResponseData.java | 96 +- .../schematic/api/types/InvoiceStatus.java | 113 + ...IssueTemporaryAccessTokenResponseData.java | 16 + .../schematic/api/types/KeysRequestBody.java | 10 + .../LimitTimeSeriesPointResponseData.java | 32 +- ...ManagePlanPreviewResponseResponseData.java | 10 + .../api/types/ManagePlanRequest.java | 48 + .../types/ManagePlanResponseResponseData.java | 16 + .../schematic/api/types/MeterRequestBody.java | 16 + .../api/types/OrderedPlansInGroup.java | 16 + .../api/types/PaymentMethodRequestBody.java | 48 +- .../api/types/PaymentMethodResponseData.java | 48 +- .../PlanBundleCreditGrantRequestBody.java | 16 + .../PlanBundleEntitlementRequestBody.java | 16 + .../api/types/PlanBundleResponseData.java | 10 + .../schematic/api/types/PlanChangeAction.java | 11 + .../api/types/PlanChangeResponseData.java | 168 +- .../api/types/PlanCreditGrantView.java | 300 +- .../types/PlanCurrencyPriceRequestBody.java | 213 + .../types/PlanCurrencyPricesResponseData.java | 213 + .../api/types/PlanDetailResponseData.java | 155 +- .../types/PlanEntitlementResponseData.java | 111 +- .../api/types/PlanEntitlementsOrder.java | 16 + .../api/types/PlanGroupBundleOrder.java | 16 + .../types/PlanGroupDetailResponseData.java | 32 +- .../PlanGroupPlanDetailResponseData.java | 155 +- .../types/PlanGroupPlanEntitlementsOrder.java | 16 + .../api/types/PlanGroupResponseData.java | 32 +- .../api/types/PlanIssueResponseData.java | 16 + .../schematic/api/types/PlanResponseData.java | 16 + .../schematic/api/types/PlanSelection.java | 56 +- .../schematic/api/types/PlanSnapshotView.java | 16 + .../api/types/PlanTraitResponseData.java | 16 + ...anVersionCompanyMigrationResponseData.java | 419 ++ .../PlanVersionCompanyMigrationStatus.java | 119 + .../PlanVersionMigrationResponseData.java | 526 ++ .../api/types/PlanVersionMigrationStatus.java | 106 + .../types/PlanVersionMigrationStrategy.java | 85 + .../api/types/PlanVersionResponseData.java | 28 +- .../api/types/PlanVersionSnapshotView.java | 162 + .../api/types/PlanViewPublicResponseData.java | 1066 +++++ .../schematic/api/types/PreviewObject.java | 16 + .../api/types/PreviewObjectResponseData.java | 16 + ...PreviewSubscriptionChangeResponseData.java | 123 +- ...reviewSubscriptionFinanceResponseData.java | 92 +- ...wSubscriptionUpcomingInvoiceLineItems.java | 40 +- .../api/types/PublicPlansResponseData.java | 404 ++ .../schematic/api/types/QuickstartResp.java | 16 + .../api/types/RawEventBatchResponseData.java | 10 + .../api/types/RawEventResponseData.java | 16 + .../java/com/schematic/api/types/Rule.java | 28 +- .../RuleConditionDetailResponseData.java | 32 +- .../RuleConditionGroupDetailResponseData.java | 16 + .../types/RuleConditionGroupResponseData.java | 16 + .../api/types/RuleConditionResponseData.java | 32 +- .../api/types/RuleDetailResponseData.java | 28 +- .../schematic/api/types/RuleResponseData.java | 28 +- .../com/schematic/api/types/RuleView.java | 60 +- .../api/types/RulesDetailResponseData.java | 10 + .../api/types/RulesEngineSchemaVersion.java | 18 +- .../api/types/RulesengineCheckFlagResult.java | 48 +- .../api/types/RulesengineCompany.java | 16 + .../api/types/RulesengineCompanyMetric.java | 28 +- .../api/types/RulesengineCondition.java | 32 +- .../api/types/RulesengineConditionGroup.java | 10 + .../types/RulesengineFeatureEntitlement.java | 75 +- .../schematic/api/types/RulesengineFlag.java | 16 + .../schematic/api/types/RulesengineRule.java | 28 +- .../api/types/RulesengineSubscription.java | 16 + .../schematic/api/types/RulesengineTrait.java | 16 + .../api/types/RulesengineTraitDefinition.java | 16 + .../schematic/api/types/RulesengineUser.java | 16 + .../types/ScheduledCheckoutResponseData.java | 504 ++ .../api/types/ScheduledCheckoutStatus.java | 114 + .../types/ScheduledDowngradeResponseData.java | 408 ++ .../api/types/SegmentStatusResp.java | 16 + .../SkippedEntitlementErrorResponseData.java | 16 + .../types/SkippedEntitlementResponseData.java | 16 + .../schematic/api/types/StripeEmbedInfo.java | 16 + .../api/types/SubscriptionTraitUpdate.java | 16 + .../TemporaryAccessTokenResponseData.java | 16 + .../schematic/api/types/TraitDefinition.java | 16 + .../api/types/UpdateAddOnRequestBody.java | 16 + ...dateBillingPlanCreditGrantRequestBody.java | 96 +- .../types/UpdateCreditBundleRequestBody.java | 28 +- .../api/types/UpdateEntitlementReqCommon.java | 32 +- .../types/UpdatePayInAdvanceRequestBody.java | 28 +- .../api/types/UpdatePlanRequestBody.java | 16 + .../UpdatePlanTraitTraitRequestBody.java | 16 + .../api/types/UpdateRuleRequestBody.java | 28 +- .../UpsertBillingProductRequestBody.java | 113 +- .../api/types/UpsertCompanyRequestBody.java | 40 +- .../api/types/UpsertTraitRequestBody.java | 32 +- .../api/types/UpsertUserRequestBody.java | 10 + .../api/types/UpsertUserSubRequestBody.java | 10 + .../UsageBasedEntitlementRequestBody.java | 58 +- .../UsageBasedEntitlementResponseData.java | 48 +- .../UsageTimeSeriesPointResponseData.java | 28 +- .../api/types/UserDetailResponseData.java | 16 + .../schematic/api/types/UserResponseData.java | 16 + .../types/WebFeatureUsageWebhookOutput.java | 48 +- .../WebScheduledDowngradeWebhookOutput.java | 313 ++ .../types/WebhookEventDetailResponseData.java | 32 +- .../api/types/WebhookEventResponseData.java | 32 +- .../api/types/WebhookRequestType.java | 22 + .../api/types/WebhookResponseData.java | 16 + .../api/types/WhoAmIResponseData.java | 384 ++ .../java/com/schematic/api/StreamTest.java | 46 +- 767 files changed, 42685 insertions(+), 15968 deletions(-) create mode 100644 .fern/metadata.json create mode 100644 src/main/java/com/schematic/api/core/ConsoleLogger.java create mode 100644 src/main/java/com/schematic/api/core/DoubleSerializer.java create mode 100644 src/main/java/com/schematic/api/core/ILogger.java create mode 100644 src/main/java/com/schematic/api/core/LogConfig.java create mode 100644 src/main/java/com/schematic/api/core/LogLevel.java create mode 100644 src/main/java/com/schematic/api/core/Logger.java create mode 100644 src/main/java/com/schematic/api/core/LoggingInterceptor.java create mode 100644 src/main/java/com/schematic/api/core/Rfc2822DateTimeDeserializer.java create mode 100644 src/main/java/com/schematic/api/core/SseEvent.java create mode 100644 src/main/java/com/schematic/api/core/SseEventParser.java rename src/main/java/com/schematic/api/resources/accounts/types/{GetApiRequestResponse.java => GetWhoAmIResponse.java} (72%) delete mode 100644 src/main/java/com/schematic/api/resources/companies/requests/CountCompaniesForAdvancedFilterRequest.java delete mode 100644 src/main/java/com/schematic/api/resources/companies/requests/ListCompaniesForAdvancedFilterRequest.java delete mode 100644 src/main/java/com/schematic/api/resources/companies/types/CountCompaniesForAdvancedFilterParams.java delete mode 100644 src/main/java/com/schematic/api/resources/companies/types/ListCompaniesForAdvancedFilterParams.java create mode 100644 src/main/java/com/schematic/api/resources/componentspublic/AsyncComponentspublicClient.java create mode 100644 src/main/java/com/schematic/api/resources/componentspublic/AsyncRawComponentspublicClient.java create mode 100644 src/main/java/com/schematic/api/resources/componentspublic/ComponentspublicClient.java create mode 100644 src/main/java/com/schematic/api/resources/componentspublic/RawComponentspublicClient.java create mode 100644 src/main/java/com/schematic/api/resources/componentspublic/types/GetPublicPlansResponse.java create mode 100644 src/main/java/com/schematic/api/resources/credits/requests/CountCreditEventLedgerRequest.java create mode 100644 src/main/java/com/schematic/api/resources/credits/requests/ListCreditEventLedgerRequest.java create mode 100644 src/main/java/com/schematic/api/resources/credits/types/CountCreditEventLedgerParams.java rename src/main/java/com/schematic/api/resources/{companies/types/CountCompaniesForAdvancedFilterResponse.java => credits/types/CountCreditEventLedgerResponse.java} (64%) create mode 100644 src/main/java/com/schematic/api/resources/credits/types/ListCreditEventLedgerParams.java rename src/main/java/com/schematic/api/resources/{accounts/types/ListApiRequestsResponse.java => credits/types/ListCreditEventLedgerResponse.java} (59%) create mode 100644 src/main/java/com/schematic/api/resources/plangroups/requests/GetPlanGroupRequest.java create mode 100644 src/main/java/com/schematic/api/resources/plangroups/types/GetPlanGroupParams.java create mode 100644 src/main/java/com/schematic/api/resources/planmigrations/AsyncPlanmigrationsClient.java create mode 100644 src/main/java/com/schematic/api/resources/planmigrations/AsyncRawPlanmigrationsClient.java create mode 100644 src/main/java/com/schematic/api/resources/planmigrations/PlanmigrationsClient.java create mode 100644 src/main/java/com/schematic/api/resources/planmigrations/RawPlanmigrationsClient.java rename src/main/java/com/schematic/api/resources/{accounts/requests/CountApiRequestsRequest.java => planmigrations/requests/CountCompanyMigrationsRequest.java} (51%) create mode 100644 src/main/java/com/schematic/api/resources/planmigrations/requests/CountMigrationsRequest.java rename src/main/java/com/schematic/api/resources/{accounts/requests/ListApiRequestsRequest.java => planmigrations/requests/ListCompanyMigrationsRequest.java} (51%) create mode 100644 src/main/java/com/schematic/api/resources/planmigrations/requests/ListMigrationsRequest.java rename src/main/java/com/schematic/api/resources/{accounts/types/ListApiRequestsParams.java => planmigrations/types/CountCompanyMigrationsParams.java} (51%) create mode 100644 src/main/java/com/schematic/api/resources/planmigrations/types/CountCompanyMigrationsResponse.java create mode 100644 src/main/java/com/schematic/api/resources/planmigrations/types/CountMigrationsParams.java rename src/main/java/com/schematic/api/resources/{accounts/types/CountApiRequestsResponse.java => planmigrations/types/CountMigrationsResponse.java} (65%) create mode 100644 src/main/java/com/schematic/api/resources/planmigrations/types/GetMigrationResponse.java rename src/main/java/com/schematic/api/resources/{accounts/types/CountApiRequestsParams.java => planmigrations/types/ListCompanyMigrationsParams.java} (51%) rename src/main/java/com/schematic/api/resources/{companies/types/ListCompaniesForAdvancedFilterResponse.java => planmigrations/types/ListCompanyMigrationsResponse.java} (58%) create mode 100644 src/main/java/com/schematic/api/resources/planmigrations/types/ListMigrationsParams.java create mode 100644 src/main/java/com/schematic/api/resources/planmigrations/types/ListMigrationsResponse.java create mode 100644 src/main/java/com/schematic/api/resources/plans/requests/DeletePlanVersionRequest.java create mode 100644 src/main/java/com/schematic/api/resources/plans/requests/GetPlanRequest.java create mode 100644 src/main/java/com/schematic/api/resources/plans/requests/PublishPlanVersionRequestBody.java create mode 100644 src/main/java/com/schematic/api/resources/plans/types/DeletePlanVersionParams.java create mode 100644 src/main/java/com/schematic/api/resources/plans/types/DeletePlanVersionResponse.java create mode 100644 src/main/java/com/schematic/api/resources/plans/types/GetPlanParams.java create mode 100644 src/main/java/com/schematic/api/resources/plans/types/PublishPlanVersionResponse.java create mode 100644 src/main/java/com/schematic/api/resources/scheduledcheckout/AsyncRawScheduledcheckoutClient.java create mode 100644 src/main/java/com/schematic/api/resources/scheduledcheckout/AsyncScheduledcheckoutClient.java create mode 100644 src/main/java/com/schematic/api/resources/scheduledcheckout/RawScheduledcheckoutClient.java create mode 100644 src/main/java/com/schematic/api/resources/scheduledcheckout/ScheduledcheckoutClient.java create mode 100644 src/main/java/com/schematic/api/resources/scheduledcheckout/requests/CreateScheduledCheckoutRequest.java create mode 100644 src/main/java/com/schematic/api/resources/scheduledcheckout/requests/ListScheduledCheckoutsRequest.java create mode 100644 src/main/java/com/schematic/api/resources/scheduledcheckout/requests/UpdateScheduledCheckoutRequest.java create mode 100644 src/main/java/com/schematic/api/resources/scheduledcheckout/types/CreateScheduledCheckoutResponse.java create mode 100644 src/main/java/com/schematic/api/resources/scheduledcheckout/types/GetScheduledCheckoutResponse.java create mode 100644 src/main/java/com/schematic/api/resources/scheduledcheckout/types/ListScheduledCheckoutsParams.java create mode 100644 src/main/java/com/schematic/api/resources/scheduledcheckout/types/ListScheduledCheckoutsResponse.java create mode 100644 src/main/java/com/schematic/api/resources/scheduledcheckout/types/UpdateScheduledCheckoutResponse.java delete mode 100644 src/main/java/com/schematic/api/types/ApiKeyRequestListResponseData.java delete mode 100644 src/main/java/com/schematic/api/types/ApiKeyRequestResponseData.java create mode 100644 src/main/java/com/schematic/api/types/BillingCreditView.java create mode 100644 src/main/java/com/schematic/api/types/CaptureRawEvent.java create mode 100644 src/main/java/com/schematic/api/types/CaptureRawEventBatch.java delete mode 100644 src/main/java/com/schematic/api/types/CompanyViewWithFeatureUsageResponseData.java create mode 100644 src/main/java/com/schematic/api/types/CreditBundleCurrencyPrice.java create mode 100644 src/main/java/com/schematic/api/types/CreditBundleCurrencyPriceRequestBody.java create mode 100644 src/main/java/com/schematic/api/types/CreditBundleCurrencyPriceResponseData.java create mode 100644 src/main/java/com/schematic/api/types/CreditCurrencyPriceRequestBody.java create mode 100644 src/main/java/com/schematic/api/types/CreditCurrencyPriceResponseData.java create mode 100644 src/main/java/com/schematic/api/types/CreditEventLedgerResponseData.java create mode 100644 src/main/java/com/schematic/api/types/CreditEventType.java delete mode 100644 src/main/java/com/schematic/api/types/CreditUsageResponseData.java create mode 100644 src/main/java/com/schematic/api/types/DataEventPayload.java create mode 100644 src/main/java/com/schematic/api/types/DatastreamCompanyPlan.java create mode 100644 src/main/java/com/schematic/api/types/EntitlementCurrencyPricesResponseData.java delete mode 100644 src/main/java/com/schematic/api/types/FeatureUsageDataResponseData.java create mode 100644 src/main/java/com/schematic/api/types/InvoiceStatus.java create mode 100644 src/main/java/com/schematic/api/types/PlanCurrencyPriceRequestBody.java create mode 100644 src/main/java/com/schematic/api/types/PlanCurrencyPricesResponseData.java create mode 100644 src/main/java/com/schematic/api/types/PlanVersionCompanyMigrationResponseData.java create mode 100644 src/main/java/com/schematic/api/types/PlanVersionCompanyMigrationStatus.java create mode 100644 src/main/java/com/schematic/api/types/PlanVersionMigrationResponseData.java create mode 100644 src/main/java/com/schematic/api/types/PlanVersionMigrationStatus.java create mode 100644 src/main/java/com/schematic/api/types/PlanVersionMigrationStrategy.java create mode 100644 src/main/java/com/schematic/api/types/PlanVersionSnapshotView.java create mode 100644 src/main/java/com/schematic/api/types/PlanViewPublicResponseData.java create mode 100644 src/main/java/com/schematic/api/types/PublicPlansResponseData.java create mode 100644 src/main/java/com/schematic/api/types/ScheduledCheckoutResponseData.java create mode 100644 src/main/java/com/schematic/api/types/ScheduledCheckoutStatus.java create mode 100644 src/main/java/com/schematic/api/types/ScheduledDowngradeResponseData.java create mode 100644 src/main/java/com/schematic/api/types/WebScheduledDowngradeWebhookOutput.java create mode 100644 src/main/java/com/schematic/api/types/WhoAmIResponseData.java diff --git a/.fern/metadata.json b/.fern/metadata.json new file mode 100644 index 0000000..8d2fe62 --- /dev/null +++ b/.fern/metadata.json @@ -0,0 +1,16 @@ +{ + "cliVersion": "4.43.1", + "generatorName": "fernapi/fern-java-sdk", + "generatorVersion": "3.44.6", + "generatorConfig": { + "client-class-name": "BaseSchematic", + "generate-unknown-as-json-node": true, + "enable-wire-tests": false, + "custom-dependencies": [ + "testImplementation org.mockito:mockito-core:5.3.1", + "testImplementation org.mockito:mockito-junit-jupiter:5.3.1" + ] + }, + "originGitCommit": "2717563b79232180e36aa245da14c045650ea31b", + "sdkVersion": "1.3.1" +} \ No newline at end of file diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2cba5f8..1f32646 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,6 +2,10 @@ name: ci on: [push] +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: false + jobs: compile: runs-on: ubuntu-latest diff --git a/build.gradle b/build.gradle index e1ffc06..29c05bb 100644 --- a/build.gradle +++ b/build.gradle @@ -14,10 +14,10 @@ repositories { } dependencies { - api 'com.squareup.okhttp3:okhttp:4.12.0' - api 'com.fasterxml.jackson.core:jackson-databind:2.17.2' - api 'com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.17.2' - api 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.17.2' + api 'com.squareup.okhttp3:okhttp:5.2.1' + api 'com.fasterxml.jackson.core:jackson-databind:2.18.6' + api 'com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.18.6' + api 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.18.6' testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.2' testImplementation 'org.junit.jupiter:junit-jupiter-engine:5.8.2' testImplementation 'org.junit.jupiter:junit-jupiter-params:5.8.2' @@ -49,7 +49,7 @@ java { group = 'com.schematichq' -version = '1.3.0' +version = '1.3.1' jar { dependsOn(":generatePomFileForMavenPublication") @@ -80,22 +80,21 @@ publishing { maven(MavenPublication) { groupId = 'com.schematichq' artifactId = 'schematic-java' - version = '1.3.0' + version = '1.3.1' from components.java pom { - name = 'schematic' - description = 'The official SDK of schematic' - url = 'https://buildwithfern.com' + name = 'Schematic' + description = 'Official Java SDK for Schematic' + url = 'https://schematichq.com' licenses { license { - name = 'The MIT License (MIT)' - url = 'https://mit-license.org/' + name = 'MIT' } } developers { developer { - name = 'schematic' - email = 'developers@schematic.com' + name = 'Schematic' + email = 'support@schematichq.com' } } scm { diff --git a/reference.md b/reference.md index 0d60eec..1c3e10b 100644 --- a/reference.md +++ b/reference.md @@ -98,8 +98,8 @@ client.accounts().listApiKeys( .builder() .requireEnvironment(true) .environmentId("environment_id") - .limit(1) - .offset(1) + .limit(1000000L) + .offset(1000000L) .build() ); ``` @@ -132,7 +132,7 @@ client.accounts().listApiKeys(
client.accounts.listApiRequests() -> ListApiRequestsResponseclient.accounts.listAuditLogs() -> ListAuditLogsResponseclient.accounts.getApiRequest(apiRequestId) -> GetApiRequestResponseclient.accounts.countApiRequests() -> CountApiRequestsResponseclient.accounts.getAuditLog(auditLogId) -> GetAuditLogResponseclient.accounts.listAuditLogs() -> ListAuditLogsResponseclient.accounts.countAuditLogs() -> CountAuditLogsResponseclient.accounts.getAuditLog(auditLogId) -> GetAuditLogResponseclient.accounts.countAuditLogs() -> CountAuditLogsResponseclient.accounts.getWhoAmI() -> GetWhoAmIResponseclient.checkout.internal(request) -> CheckoutInternalResponseclient.credits.listCreditEventLedger() -> ListCreditEventLedgerResponseclient.checkout.getCheckoutData(request) -> GetCheckoutDataResponseclient.credits.countCreditEventLedger() -> CountCreditEventLedgerResponseclient.checkout.previewCheckoutInternal(request) -> PreviewCheckoutInternalResponseclient.checkout.internal(request) -> CheckoutInternalResponseclient.checkout.managePlan(request) -> ManagePlanResponseclient.checkout.getCheckoutData(request) -> GetCheckoutDataResponseclient.checkout.previewManagePlan(request) -> PreviewManagePlanResponseclient.checkout.previewCheckoutInternal(request) -> PreviewCheckoutInternalResponseclient.checkout.managePlan(request) -> ManagePlanResponseclient.checkout.previewManagePlan(request) -> PreviewManagePlanResponseclient.companies.countCompaniesForAdvancedFilter() -> CountCompaniesForAdvancedFilterResponseclient.companies.createCompany(request) -> CreateCompanyResponseclient.companies.deleteCompanyByKeys(request) -> DeleteCompanyByKeysResponseclient.companies.lookupCompany() -> LookupCompanyResponseclient.companies.createCompany(request) -> CreateCompanyResponseclient.companies.listCompanyMemberships() -> ListCompanyMembershipsResponseclient.companies.deleteCompanyByKeys(request) -> DeleteCompanyByKeysResponseclient.companies.listCompaniesForAdvancedFilter() -> ListCompaniesForAdvancedFilterResponseclient.companies.getOrCreateCompanyMembership(request) -> GetOrCreateCompanyMembershipResponseclient.companies.deleteCompanyMembership(companyMembershipId) -> DeleteCompanyMembershipResponseclient.companies.getActiveCompanySubscription() -> GetActiveCompanySubscriptionResponseclient.companies.lookupCompany() -> LookupCompanyResponseclient.companies.upsertCompanyTrait(request) -> UpsertCompanyTraitResponseclient.companies.listCompanyMemberships() -> ListCompanyMembershipsResponseclient.companies.listEntityKeyDefinitions() -> ListEntityKeyDefinitionsResponseclient.companies.getOrCreateCompanyMembership(request) -> GetOrCreateCompanyMembershipResponseclient.companies.countEntityKeyDefinitions() -> CountEntityKeyDefinitionsResponseclient.companies.deleteCompanyMembership(companyMembershipId) -> DeleteCompanyMembershipResponseclient.companies.getActiveCompanySubscription() -> GetActiveCompanySubscriptionResponseclient.companies.listEntityTraitDefinitions() -> ListEntityTraitDefinitionsResponseclient.companies.upsertCompanyTrait(request) -> UpsertCompanyTraitResponseclient.companies.listEntityKeyDefinitions() -> ListEntityKeyDefinitionsResponseclient.companies.getOrCreateEntityTraitDefinition(request) -> GetOrCreateEntityTraitDefinitionResponseclient.companies.countEntityKeyDefinitions() -> CountEntityKeyDefinitionsResponseclient.companies.getEntityTraitDefinition(entityTraitDefinitionId) -> GetEntityTraitDefinitionResponseclient.companies.updateEntityTraitDefinition(entityTraitDefinitionId, request) -> UpdateEntityTraitDefinitionResponseclient.companies.listEntityTraitDefinitions() -> ListEntityTraitDefinitionsResponseclient.companies.countEntityTraitDefinitions() -> CountEntityTraitDefinitionsResponseclient.companies.getOrCreateEntityTraitDefinition(request) -> GetOrCreateEntityTraitDefinitionResponseclient.companies.getEntityTraitValues() -> GetEntityTraitValuesResponseclient.companies.getEntityTraitDefinition(entityTraitDefinitionId) -> GetEntityTraitDefinitionResponseclient.companies.listPlanChanges() -> ListPlanChangesResponseclient.companies.updateEntityTraitDefinition(entityTraitDefinitionId, request) -> UpdateEntityTraitDefinitionResponseclient.companies.getPlanChange(planChangeId) -> GetPlanChangeResponseclient.companies.countEntityTraitDefinitions() -> CountEntityTraitDefinitionsResponseclient.companies.listPlanTraits() -> ListPlanTraitsResponseclient.companies.getEntityTraitValues() -> GetEntityTraitValuesResponseclient.companies.createPlanTrait(request) -> CreatePlanTraitResponseclient.companies.listPlanChanges() -> ListPlanChangesResponseclient.companies.getPlanTrait(planTraitId) -> GetPlanTraitResponseclient.companies.updatePlanTrait(planTraitId, request) -> UpdatePlanTraitResponseclient.companies.getPlanChange(planChangeId) -> GetPlanChangeResponseclient.companies.deletePlanTrait(planTraitId) -> DeletePlanTraitResponseclient.companies.listPlanTraits() -> ListPlanTraitsResponseclient.companies.updatePlanTraitsBulk(request) -> UpdatePlanTraitsBulkResponseclient.companies.createPlanTrait(request) -> CreatePlanTraitResponseclient.companies.countPlanTraits() -> CountPlanTraitsResponseclient.companies.getPlanTrait(planTraitId) -> GetPlanTraitResponseclient.companies.upsertUserTrait(request) -> UpsertUserTraitResponseclient.companies.updatePlanTrait(planTraitId, request) -> UpdatePlanTraitResponseclient.companies.listUsers() -> ListUsersResponseclient.companies.deletePlanTrait(planTraitId) -> DeletePlanTraitResponseclient.companies.updatePlanTraitsBulk(request) -> UpdatePlanTraitsBulkResponseclient.companies.upsertUser(request) -> UpsertUserResponseclient.companies.countPlanTraits() -> CountPlanTraitsResponseclient.companies.getUser(userId) -> GetUserResponseclient.companies.upsertUserTrait(request) -> UpsertUserTraitResponseclient.companies.deleteUser(userId) -> DeleteUserResponseclient.companies.listUsers() -> ListUsersResponseclient.companies.countUsers() -> CountUsersResponseclient.companies.upsertUser(request) -> UpsertUserResponseclient.companies.createUser(request) -> CreateUserResponseclient.companies.getUser(userId) -> GetUserResponseclient.companies.deleteUserByKeys(request) -> DeleteUserByKeysResponseclient.companies.deleteUser(userId) -> DeleteUserResponseclient.companies.lookupUser() -> LookupUserResponseclient.companies.countUsers() -> CountUsersResponseclient.entitlements.listCompanyOverrides() -> ListCompanyOverridesResponseclient.companies.createUser(request) -> CreateUserResponseclient.entitlements.createCompanyOverride(request) -> CreateCompanyOverrideResponseclient.companies.deleteUserByKeys(request) -> DeleteUserByKeysResponseclient.companies.lookupUser() -> LookupUserResponseclient.entitlements.getCompanyOverride(companyOverrideId) -> GetCompanyOverrideResponseclient.entitlements.listCompanyOverrides() -> ListCompanyOverridesResponseclient.entitlements.updateCompanyOverride(companyOverrideId, request) -> UpdateCompanyOverrideResponseclient.entitlements.createCompanyOverride(request) -> CreateCompanyOverrideResponseclient.entitlements.deleteCompanyOverride(companyOverrideId) -> DeleteCompanyOverrideResponseclient.entitlements.countCompanyOverrides() -> CountCompanyOverridesResponseclient.entitlements.getCompanyOverride(companyOverrideId) -> GetCompanyOverrideResponseclient.entitlements.updateCompanyOverride(companyOverrideId, request) -> UpdateCompanyOverrideResponseclient.entitlements.listFeatureCompanies() -> ListFeatureCompaniesResponseclient.entitlements.countFeatureCompanies() -> CountFeatureCompaniesResponseclient.entitlements.deleteCompanyOverride(companyOverrideId) -> DeleteCompanyOverrideResponseclient.entitlements.countCompanyOverrides() -> CountCompanyOverridesResponseclient.entitlements.listFeatureUsage() -> ListFeatureUsageResponseclient.entitlements.listFeatureCompanies() -> ListFeatureCompaniesResponseclient.entitlements.getFeatureUsageTimeSeries() -> GetFeatureUsageTimeSeriesResponseclient.entitlements.countFeatureCompanies() -> CountFeatureCompaniesResponseclient.entitlements.listFeatureUsage() -> ListFeatureUsageResponseclient.entitlements.getFeatureUsageTimeSeries() -> GetFeatureUsageTimeSeriesResponseclient.plans.deletePlanVersion(planId) -> DeletePlanVersionResponseclient.plans.publishPlanVersion(planId, request) -> PublishPlanVersionResponseclient.plangroups.updatePlanGroup(planGroupId, request) -> UpdatePlanGroupResponseclient.planmigrations.listCompanyMigrations() -> ListCompanyMigrationsResponseclient.planmigrations.countCompanyMigrations() -> CountCompanyMigrationsResponseclient.planmigrations.listMigrations() -> ListMigrationsResponseclient.planmigrations.getMigration(planVersionMigrationId) -> GetMigrationResponseclient.plangroups.updatePlanGroup(planGroupId, request) -> UpdatePlanGroupResponseclient.planmigrations.countMigrations() -> CountMigrationsResponseclient.componentspublic.getPublicPlans() -> GetPublicPlansResponseclient.scheduledcheckout.listScheduledCheckouts() -> ListScheduledCheckoutsResponseclient.scheduledcheckout.createScheduledCheckout(request) -> CreateScheduledCheckoutResponseclient.scheduledcheckout.getScheduledCheckout(scheduledCheckoutId) -> GetScheduledCheckoutResponseclient.scheduledcheckout.updateScheduledCheckout(scheduledCheckoutId, request) -> UpdateScheduledCheckoutResponseUses 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/schematic/api/core/DoubleSerializer.java b/src/main/java/com/schematic/api/core/DoubleSerializer.java
new file mode 100644
index 0000000..2b47145
--- /dev/null
+++ b/src/main/java/com/schematic/api/core/DoubleSerializer.java
@@ -0,0 +1,43 @@
+/**
+ * This file was auto-generated by Fern from our API Definition.
+ */
+package com.schematic.api.core;
+
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
+import com.fasterxml.jackson.databind.module.SimpleModule;
+import java.io.IOException;
+
+/**
+ * Custom serializer that writes integer-valued doubles without a decimal point.
+ * For example, {@code 24000.0} is serialized as {@code 24000} instead of {@code 24000.0}.
+ * Non-integer values like {@code 3.14} are serialized normally.
+ */
+class DoubleSerializer extends JsonSerializer 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:
+ * Use the builder to configure logging behavior:
+ * Or with a custom logger:
+ * Defaults:
+ * Silent by default — no log output unless explicitly configured.
+ * Create via {@link LogConfig} or directly:
+ * Logs 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 {@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/schematic/api/core/LogConfig.java b/src/main/java/com/schematic/api/core/LogConfig.java
new file mode 100644
index 0000000..64f39bd
--- /dev/null
+++ b/src/main/java/com/schematic/api/core/LogConfig.java
@@ -0,0 +1,98 @@
+/**
+ * This file was auto-generated by Fern from our API Definition.
+ */
+package com.schematic.api.core;
+
+/**
+ * Configuration for SDK logging.
+ *
+ * {@code
+ * LogConfig config = LogConfig.builder()
+ * .level(LogLevel.DEBUG)
+ * .silent(false)
+ * .build();
+ * }
+ *
+ * {@code
+ * LogConfig config = LogConfig.builder()
+ * .level(LogLevel.DEBUG)
+ * .logger(new MyCustomLogger())
+ * .silent(false)
+ * .build();
+ * }
+ *
+ *
+ *
+ */
+public final class LogConfig {
+
+ private final LogLevel level;
+ private final ILogger logger;
+ private final boolean silent;
+
+ private LogConfig(LogLevel level, ILogger logger, boolean silent) {
+ this.level = level;
+ this.logger = logger;
+ this.silent = silent;
+ }
+
+ public LogLevel level() {
+ return level;
+ }
+
+ public ILogger logger() {
+ return logger;
+ }
+
+ public boolean silent() {
+ return silent;
+ }
+
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public static final class Builder {
+ private LogLevel level = LogLevel.INFO;
+ private ILogger logger = new ConsoleLogger();
+ private boolean silent = true;
+
+ private Builder() {}
+
+ /**
+ * Set the minimum log level. Only messages at this level or above will be logged.
+ * Defaults to {@link LogLevel#INFO}.
+ */
+ public Builder level(LogLevel level) {
+ this.level = level;
+ return this;
+ }
+
+ /**
+ * Set a custom logger implementation. Defaults to {@link ConsoleLogger}.
+ */
+ public Builder logger(ILogger logger) {
+ this.logger = logger;
+ return this;
+ }
+
+ /**
+ * Set whether logging is silent (disabled). Defaults to {@code true}.
+ * Set to {@code false} to enable log output.
+ */
+ public Builder silent(boolean silent) {
+ this.silent = silent;
+ return this;
+ }
+
+ public LogConfig build() {
+ return new LogConfig(level, logger, silent);
+ }
+ }
+}
diff --git a/src/main/java/com/schematic/api/core/LogLevel.java b/src/main/java/com/schematic/api/core/LogLevel.java
new file mode 100644
index 0000000..f9f4ad4
--- /dev/null
+++ b/src/main/java/com/schematic/api/core/LogLevel.java
@@ -0,0 +1,36 @@
+/**
+ * This file was auto-generated by Fern from our API Definition.
+ */
+package com.schematic.api.core;
+
+/**
+ * Log levels for SDK logging configuration.
+ * Silent by default — no log output unless explicitly configured.
+ */
+public enum LogLevel {
+ DEBUG(1),
+ INFO(2),
+ WARN(3),
+ ERROR(4);
+
+ private final int value;
+
+ LogLevel(int value) {
+ this.value = value;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ /**
+ * Parse a log level from a string (case-insensitive).
+ *
+ * @param level the level string (debug, info, warn, error)
+ * @return the corresponding LogLevel
+ * @throws IllegalArgumentException if the string does not match any level
+ */
+ public static LogLevel fromString(String level) {
+ return LogLevel.valueOf(level.toUpperCase());
+ }
+}
diff --git a/src/main/java/com/schematic/api/core/Logger.java b/src/main/java/com/schematic/api/core/Logger.java
new file mode 100644
index 0000000..25e4696
--- /dev/null
+++ b/src/main/java/com/schematic/api/core/Logger.java
@@ -0,0 +1,97 @@
+/**
+ * This file was auto-generated by Fern from our API Definition.
+ */
+package com.schematic.api.core;
+
+/**
+ * SDK logger that filters messages based on level and silent mode.
+ *
+ * {@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 Optional
+ *
+ */
+public final class SseEventParser {
+
+ private static final Set